From 3af84ec7e47a817b05e898ad982dde098df31850 Mon Sep 17 00:00:00 2001 From: Larry Osterman Date: Fri, 28 Aug 2026 15:39:13 -0700 Subject: [PATCH] Upgrade Vally evaluations to 0.14 Update experiment configuration, consolidate Rust evals, parameterize execution and grader models, and make workers invoke the package-local Vally executable. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/run-vally-evaluations.yml | 2 +- tests/package-lock.json | 1261 ++++++++++++- tests/package.json | 4 +- tests/plugins/vally-eval-models.test.ts | 142 ++ tests/pnpm-lock.yaml | 1612 +++++++++++------ tests/pnpm-workspace.yaml | 2 + tests/run-skill-experiments.ps1 | 147 +- .../rust-cargo-build-failure/package.json | 2 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-ai-contentsafety-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../scenarios/azure-ai-ml-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-ai-projects-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-ai-textanalytics-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-ai-transcription-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-ai-voicelive-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-appconfiguration-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-cosmos-db-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../scenarios/azure-cosmos-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-cosmos-rust/vally/eval.yaml | 88 +- .../vally/skill_effectiveness_eval.yaml | 229 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../azure-data-tables-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-eventgrid-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-eventhub-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-eventhub-rust/vally/eval.yaml | 78 +- .../vally/skill_effectiveness_eval.yaml | 210 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../azure-identity-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-identity-rust/vally/eval.yaml | 77 +- .../vally/skill_effectiveness_eval.yaml | 252 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../vally/eval.yaml | 78 +- .../vally/skill_effectiveness_eval.yaml | 248 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../azure-keyvault-keys-rust/vally/eval.yaml | 78 +- .../vally/skill_effectiveness_eval.yaml | 253 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../azure-keyvault-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 78 +- .../vally/skill_effectiveness_eval.yaml | 235 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-mgmt-apicenter-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-mgmt-botservice-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-mgmt-fabric-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-monitor-query-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-search-documents-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-servicebus-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-storage-blob-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval-keyvault-encryption.yaml | 4 +- .../azure-storage-blob-rust/vally/eval.yaml | 69 +- .../vally/skill_effectiveness_eval.yaml | 246 --- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-storage-queue-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../azure-storage-queue-rust/vally/eval.yaml | 77 +- .../vally/skill_effectiveness_eval.yaml | 195 -- .../vally/skill_effectiveness_experiment.yaml | 13 +- .../fastapi-router-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../scenarios/m365-agents-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- .../pydantic-models-py/vally/eval.yaml | 4 +- .../vally/skill_effectiveness_experiment.yaml | 11 +- 113 files changed, 2960 insertions(+), 3411 deletions(-) create mode 100644 tests/plugins/vally-eval-models.test.ts delete mode 100644 tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-identity-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_eval.yaml delete mode 100644 tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_eval.yaml diff --git a/.github/workflows/run-vally-evaluations.yml b/.github/workflows/run-vally-evaluations.yml index a9f4a0d8..01639a5b 100644 --- a/.github/workflows/run-vally-evaluations.yml +++ b/.github/workflows/run-vally-evaluations.yml @@ -47,7 +47,7 @@ jobs: run: python -m pip install -r tests/requirements.txt - name: Install Vally CLI - run: npm install -g @microsoft/vally-cli@0.10.0 + run: npm install -g @microsoft/vally-cli@0.14.0 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 diff --git a/tests/package-lock.json b/tests/package-lock.json index 1fb80080..3fa14018 100644 --- a/tests/package-lock.json +++ b/tests/package-lock.json @@ -15,7 +15,8 @@ "zod": "^3.23.8" }, "devDependencies": { - "@microsoft/vally": "^0.10.0", + "@microsoft/vally": "^0.14.0", + "@microsoft/vally-cli": "^0.14.0", "@types/node": "^20.14.0", "@vitest/coverage-v8": "^4.1.9", "eslint": "^9.5.0", @@ -25,7 +26,139 @@ "vitest": "^4.1.9" }, "engines": { - "node": ">=20.17.0" + "node": ">=22.0.0" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.2.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha1-k+DoKwGGLn6jtbaZWHGdPz/SyKw=", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.11.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-auth/-/core-auth-1.11.0.tgz", + "integrity": "sha1-Ha7/32LRqHHSK4ZfnzFkpj6h9XU=", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.11.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-client/-/core-client-1.11.0.tgz", + "integrity": "sha1-5z0JrHl33l17QVaWt+1F0/3rZ7A=", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.25.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-rest-pipeline/-/core-rest-pipeline-1.25.0.tgz", + "integrity": "sha1-kupJEu27H3OV9IKaMAYxF0qoLwg=", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.4.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-tracing/-/core-tracing-1.4.0.tgz", + "integrity": "sha1-1lenAOJNJW0ZXmKKeV22qMxHXqs=", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.14.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-util/-/core-util-1.14.0.tgz", + "integrity": "sha1-fOn+V5WPEy3UIlc4VuWkXHIyuwQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.4.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/logger/-/logger-1.4.0.tgz", + "integrity": "sha1-PVpif+WaJ27OdIenndkq1cUIwzk=", + "dev": true, + "license": "MIT", + "dependencies": { + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/monitor-opentelemetry-exporter": { + "version": "1.0.0-beta.32", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/monitor-opentelemetry-exporter/-/monitor-opentelemetry-exporter-1.0.0-beta.32.tgz", + "integrity": "sha1-ncv2m4X9D4XAOTPEuxNtZDNSxRw=", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-rest-pipeline": "^1.19.0", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api-logs": "^0.200.0", + "@opentelemetry/core": "^2.0.0", + "@opentelemetry/resources": "^2.0.0", + "@opentelemetry/sdk-logs": "^0.200.0", + "@opentelemetry/sdk-metrics": "^2.0.0", + "@opentelemetry/sdk-trace-base": "^2.0.0", + "@opentelemetry/semantic-conventions": "^1.32.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@babel/helper-string-parser": { @@ -894,6 +1027,19 @@ "copilot-win32-x64": "copilot.exe" } }, + "node_modules/@hono/node-server": { + "version": "2.1.1", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@hono/node-server/-/node-server-2.1.1.tgz", + "integrity": "sha1-nPqGSensvNSO31BbEDACQC6lHnA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "hono": "^4" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1215,18 +1361,75 @@ } }, "node_modules/@microsoft/vally": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@microsoft/vally/-/vally-0.10.0.tgz", - "integrity": "sha512-2KpsOdsZqrWFScZS9UVZPj4Gpwh3NeUXh6TYWh/60lkTSbO6eNAz39zL3r69+epFlOrPIjq7SI0l6SwD8wJzvA==", + "version": "0.14.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@microsoft/vally/-/vally-0.14.0.tgz", + "integrity": "sha1-m6h5RBbRXhqHw/UjU1EXLDwAF18=", "dev": true, "license": "MIT", "dependencies": { - "@github/copilot-sdk": "^1.0.5", + "@github/copilot-sdk": "^1.0.7", "@opentelemetry/api": "^1.9.1", "js-tiktoken": "^1.0.21", + "mdast-util-from-markdown": "^2.0.3", "picomatch": "^4.0.5", "yaml": "^2.9.0", "zod": "^4.4.3" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@microsoft/vally-cli": { + "version": "0.14.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@microsoft/vally-cli/-/vally-cli-0.14.0.tgz", + "integrity": "sha1-kp2aELnDzM1eR1F9oL0WxTN4LIg=", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.32", + "@microsoft/vally": "^0.14.0", + "@microsoft/vally-server": "^0.14.0", + "@opentelemetry/api": "^1.9.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.221.0", + "@opentelemetry/resources": "^2.10.0", + "@opentelemetry/sdk-trace-base": "^2.10.0", + "@opentelemetry/sdk-trace-node": "^2.10.0", + "commander": "^15.0.0" + }, + "bin": { + "vally": "dist/index.js" + }, + "engines": { + "node": ">=22.12.0" + }, + "optionalDependencies": { + "@vscode/deviceid": "~0.1.5" + } + }, + "node_modules/@microsoft/vally-cli/node_modules/commander": { + "version": "15.0.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/commander/-/commander-15.0.0.tgz", + "integrity": "sha1-lvOWHxKtrBeZ7z+9i8YdQFctGxE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@microsoft/vally-server": { + "version": "0.14.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@microsoft/vally-server/-/vally-server-0.14.0.tgz", + "integrity": "sha1-fAB77Koyrmv/v+CdHkJ/GWEp9OM=", + "dev": true, + "license": "MIT", + "dependencies": { + "@hono/node-server": "^2.0.12", + "@microsoft/vally": "^0.14.0", + "better-sqlite3": "^13.0.2", + "hono": "^4.13.1" + }, + "engines": { + "node": ">=22.12.0" } }, "node_modules/@microsoft/vally/node_modules/zod": { @@ -1268,6 +1471,286 @@ "node": ">=8.0.0" } }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.200.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/api-logs/-/api-logs-0.200.0.tgz", + "integrity": "sha1-+QFf2ESSDBOWhxWzzcz1pNT/kH4=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/context-async-hooks": { + "version": "2.10.0", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/context-async-hooks/-/context-async-hooks-2.10.0.tgz", + "integrity": "sha1-clms/Vk2rnE74/bTYkmt166Kylo=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "2.10.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/core/-/core-2.10.0.tgz", + "integrity": "sha1-qnf3E450ulOZ1fO7DereDBaPALI=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-http": { + "version": "0.221.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.221.0.tgz", + "integrity": "sha1-tSimB24D3L4BiiscfleFM79N9/8=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/otlp-exporter-base": "0.221.0", + "@opentelemetry/otlp-transformer": "0.221.0", + "@opentelemetry/sdk-trace": "2.10.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.221.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.221.0.tgz", + "integrity": "sha1-BqsA2SdikoM4SOmsxc0iXyOGhGc=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/otlp-transformer": "0.221.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.221.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/otlp-transformer/-/otlp-transformer-0.221.0.tgz", + "integrity": "sha1-6/xaZZWh43zk8gTJcRXI7YaNv7s=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.221.0", + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0", + "@opentelemetry/sdk-logs": "0.221.0", + "@opentelemetry/sdk-metrics": "2.10.0", + "@opentelemetry/sdk-trace": "2.10.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/api-logs": { + "version": "0.221.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/api-logs/-/api-logs-0.221.0.tgz", + "integrity": "sha1-ZrhAWxIv8cdu50O5vSynOACi4t8=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-logs": { + "version": "0.221.0", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-logs/-/sdk-logs-0.221.0.tgz", + "integrity": "sha1-nsDiy/tXKRe5SBAZg+CIaKaQkV4=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.221.0", + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "2.10.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/resources/-/resources-2.10.0.tgz", + "integrity": "sha1-znbBwbqvzkx3vCmJCWW6H1ZnGsw=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.200.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-logs/-/sdk-logs-0.200.0.tgz", + "integrity": "sha1-iT2GzvpvLAKnzQPVy0qVnu02U9E=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.200.0", + "@opentelemetry/core": "2.0.0", + "@opentelemetry/resources": "2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "2.0.0", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/core/-/core-2.0.0.tgz", + "integrity": "sha1-N+nw6d3sRHmyZ6ym8y2IdXyUGzo=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "2.0.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/resources/-/resources-2.0.0.tgz", + "integrity": "sha1-FcBHlMMrfQs8dYkiXs5q6buiWYk=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.0.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "2.10.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-metrics/-/sdk-metrics-2.10.0.tgz", + "integrity": "sha1-Go841FFkuj77s1Bb62jK9KPs8tk=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.9.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace": { + "version": "2.10.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-trace/-/sdk-trace-2.10.0.tgz", + "integrity": "sha1-drAzEJJFKwGosvcESA4ldmQccBE=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "2.10.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.10.0.tgz", + "integrity": "sha1-P5v4oUwduoeQYZ4oMm98V/i5528=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0", + "@opentelemetry/sdk-trace": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-node": { + "version": "2.10.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.10.0.tgz", + "integrity": "sha1-ay7F8Vy5nJqsdHZDCAHR3JM+zxk=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/context-async-hooks": "2.10.0", + "@opentelemetry/core": "2.10.0", + "@opentelemetry/sdk-trace-base": "2.10.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.43.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha1-8/Rn42wnMy8Oc17IbNzXjdbyeGU=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, "node_modules/@oxc-project/types": { "version": "0.137.0", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.137.0.tgz", @@ -1589,6 +2072,16 @@ "assertion-error": "^2.0.1" } }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha1-ItHMnVQtNZPK6nZPl0MGqzYobuc=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/deep-eql": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", @@ -1610,6 +2103,23 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha1-fM9y7dLxqn3TQ34YDGQ3NYWATdY=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha1-BSqmekjszEMJ1/AZG35BQ0uQu3g=", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "20.19.33", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz", @@ -1620,6 +2130,28 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha1-rKqw+RnOaczmKcLU7S60rcG2wgw=", + "dev": true, + "license": "MIT" + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.8", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.8.tgz", + "integrity": "sha1-tN7lpeeXGu3HCVO7fS2/V4P0LTg=", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, "node_modules/@vitest/coverage-v8": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.9.tgz", @@ -1764,6 +2296,19 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vscode/deviceid": { + "version": "0.1.5", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vscode/deviceid/-/deviceid-0.1.5.tgz", + "integrity": "sha1-ven4iNvP0fzpoBcj+qJ1LUh58pw=", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "fs-extra": "^11.2.0", + "uuid": "^14.0.0" + } + }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", @@ -1787,6 +2332,16 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha1-48121MVI7oldPD/Y3B9sW5Ay56g=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1861,6 +2416,20 @@ ], "license": "MIT" }, + "node_modules/better-sqlite3": { + "version": "13.0.3", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/better-sqlite3/-/better-sqlite3-13.0.3.tgz", + "integrity": "sha1-tuoNx//34o0E2Qk+gQUdOPe+q+I=", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.0.0" + }, + "engines": { + "node": ">=22" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -1904,6 +2473,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha1-LQnC5yzZUjB2zLIRV9/2atQ/zCI=", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1980,6 +2560,20 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha1-PkBgN2CHTC5YZ2kbWZ1zp9oltT8=", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1987,6 +2581,16 @@ "dev": true, "license": "MIT" }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha1-JkQhTxmX057Q7g7OcjNUkKesZ74=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -1996,6 +2600,20 @@ "node": ">=8" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha1-TbfCyk3G4Og0wwvnDJS7yXbccBg=", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/es-module-lexer": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.2.0.tgz", @@ -2355,6 +2973,22 @@ "dev": true, "license": "ISC" }, + "node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha1-+I7W0YCsnhS2GwjmeUaPCxtrRzA=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2409,6 +3043,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=", + "dev": true, + "license": "ISC", + "optional": true + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2419,6 +3061,16 @@ "node": ">=8" } }, + "node_modules/hono": { + "version": "4.13.3", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/hono/-/hono-4.13.3.tgz", + "integrity": "sha1-lxWjX2NxFfdFUofOb93cqyFlPWs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -2426,6 +3078,34 @@ "dev": true, "license": "MIT" }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha1-mosfJGhmwChQlIZYX2K48sGMJw4=", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha1-2o3+rH2hMLBcK6S1nJts1mYRprk=", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -2583,6 +3263,20 @@ "dev": true, "license": "MIT" }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -2968,6 +3662,508 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha1-yVgiuRqrdfGKTL6LL1G4c+0s8Mc=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha1-elEhR1VWoE5+3etnsmSq550xKBQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha1-kTlaPhiEoZjmIRbjPJxWjjmTb9s=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha1-xpFjDkhQIaaM8o28Kyyifr9njNQ=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha1-j++OD3CB8EdPvdkt61DJkKAmRjk=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha1-UmfvqX8eUlTvx/ILRZo4yyEFi6E=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha1-NtAhLpYrKzEh+FJfx6PHwCnzNPw=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha1-I35KpdWKlYY/AQMtnumwkPHebpQ=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha1-BrJrKYPE0nv8xlezPiUTTUhosLE=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha1-L5h4MaQNTFEKwmHomFLE6XA8zaY=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha1-R/vNk0caP8yrhs/wOEf8NVLbEFE=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha1-05n6+cRcoUyLS+mLHqSBvO2Htik=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha1-Kg9JCrCL/1zC/V7sbdDKBPibMKk=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha1-/PFbZgl5OI5vEYzba/fXnXPSb+U=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha1-bLmVguXScehO/KjmGoB5lNcWHrI=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha1-DVHRwJVVHPqsNoMmljz1XxX1QLg=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha1-5AQDCWSBmGtBwQZif5j3LU0QuCU=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha1-ww13sugyrPZSb4vxqke8nJQ4wW0=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha1-4aLWLN0jcjCirhGDkCexk4HjHos=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha1-q4l4m4GKWHUrc9a1UjhiG3+qj9c=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha1-2K3lug8xl6HPaimZ+7/mNXoaGe4=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha1-5dpJTo6ysHGg0I+zT2zv7GwKGbg=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha1-8AIl9fWg68MlT5bDa2YFxLOTkI4=", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3014,6 +4210,16 @@ "dev": true, "license": "MIT" }, + "node_modules/node-addon-api": { + "version": "8.9.2", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/node-addon-api/-/node-addon-api-8.9.2.tgz", + "integrity": "sha1-23rJShP/2bVebLBFhL1e+OHXSxg=", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, "node_modules/obug": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", @@ -3383,8 +4589,7 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "0BSD", - "optional": true + "license": "0BSD" }, "node_modules/tsx": { "version": "4.21.0", @@ -3440,6 +4645,31 @@ "dev": true, "license": "MIT" }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha1-RJxuIaiA4IVb9aq63rOnQDFKusI=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3450,6 +4680,21 @@ "punycode": "^2.1.0" } }, + "node_modules/uuid": { + "version": "14.0.2", + "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/uuid/-/uuid-14.0.2.tgz", + "integrity": "sha1-1a4D5NsIgchycfiwub1zEtAseZo=", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, "node_modules/vite": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.0.tgz", diff --git a/tests/package.json b/tests/package.json index 82205428..ad8fa5bd 100644 --- a/tests/package.json +++ b/tests/package.json @@ -21,8 +21,8 @@ "zod": "^3.23.8" }, "devDependencies": { - "@microsoft/vally": "^0.10.0", - "@microsoft/vally-cli": "^0.10.0", + "@microsoft/vally": "^0.14.0", + "@microsoft/vally-cli": "^0.14.0", "@types/node": "^20.14.0", "@vitest/coverage-v8": "^4.1.9", "eslint": "^9.5.0", diff --git a/tests/plugins/vally-eval-models.test.ts b/tests/plugins/vally-eval-models.test.ts new file mode 100644 index 00000000..cd3e55b0 --- /dev/null +++ b/tests/plugins/vally-eval-models.test.ts @@ -0,0 +1,142 @@ +import { readdirSync, readFileSync } from "node:fs"; +import { basename, dirname, join, relative, resolve } from "node:path"; +import { parse } from "yaml"; +import { describe, expect, it } from "vitest"; + +type Grader = { + type?: string; + model?: string; + config?: { + model?: string; + }; +}; + +type EvalSpec = { + defaults?: { + model?: string; + judge_model?: string; + }; + stimuli?: Array<{ + graders?: Grader[]; + }>; +}; + +type ExperimentSpec = { + evals?: string[]; + variants?: Record< + string, + { + overrides?: { + model?: string; + judge_model?: string; + }; + } + >; +}; + +const scenariosDirectory = resolve(import.meta.dirname, "../scenarios"); +const generatorModel = "${MODEL=gpt-5.6-terra}"; +const graderModel = "${GRADER_MODEL=claude-sonnet-4.6}"; + +function findYamlFiles(directory: string): string[] { + return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => { + const path = join(directory, entry.name); + return entry.isDirectory() + ? findYamlFiles(path) + : /\.ya?ml$/i.test(entry.name) + ? [path] + : []; + }); +} + +function readYaml(path: string): T { + return parse(readFileSync(path, "utf8")) as T; +} + +function promptGraderModels(spec: EvalSpec, judgeModel: string): string[] { + return (spec.stimuli ?? []).flatMap((stimulus) => + (stimulus.graders ?? []) + .filter((grader) => grader.type === "prompt") + .map((grader) => grader.model ?? grader.config?.model ?? judgeModel), + ); +} + +function expectSeparateModels( + label: string, + executionModel: string | undefined, + judgeModel: string | undefined, + spec: EvalSpec, +): void { + expect(executionModel, `${label} must use the configured generator model`).toBe( + generatorModel, + ); + expect(judgeModel, `${label} must use the configured grader model`).toBe( + graderModel, + ); + expect(judgeModel, `${label} must use a different judge model`).not.toBe( + executionModel, + ); + + for (const promptGraderModel of promptGraderModels(spec, judgeModel ?? "")) { + expect( + promptGraderModel, + `${label} has a prompt grader using a different grader model`, + ).toBe(graderModel); + } +} + +const yamlFiles = findYamlFiles(scenariosDirectory); +const evalFiles = yamlFiles.filter((path) => + /^eval(?:-[^.]+)?\.ya?ml$/i.test(basename(path)), +); +const experimentFiles = yamlFiles.filter( + (path) => basename(path) === "skill_effectiveness_experiment.yaml", +); + +describe("Vally eval model separation", () => { + for (const evalFile of evalFiles) { + const label = relative(scenariosDirectory, evalFile); + + it(`${label} separates execution and grader models`, () => { + const spec = readYaml(evalFile); + expectSeparateModels( + label, + spec.defaults?.model, + spec.defaults?.judge_model, + spec, + ); + }); + } + + for (const experimentFile of experimentFiles) { + const experiment = readYaml(experimentFile); + + for (const evalReference of experiment.evals ?? []) { + const evalFile = resolve(dirname(experimentFile), evalReference); + const spec = readYaml(evalFile); + + for (const [variantName, variant] of Object.entries( + experiment.variants ?? {}, + )) { + const label = `${relative(scenariosDirectory, experimentFile)} (${variantName}, ${evalReference})`; + + it(`${label} separates execution and grader models`, () => { + expect( + variant.overrides?.model, + `${label} must inherit the parameterized generator model`, + ).toBeUndefined(); + expect( + variant.overrides?.judge_model, + `${label} must inherit the parameterized grader model`, + ).toBeUndefined(); + expectSeparateModels( + label, + variant.overrides?.model ?? spec.defaults?.model, + variant.overrides?.judge_model ?? spec.defaults?.judge_model, + spec, + ); + }); + } + } + } +}); diff --git a/tests/pnpm-lock.yaml b/tests/pnpm-lock.yaml index 374ddbcf..a023212e 100644 --- a/tests/pnpm-lock.yaml +++ b/tests/pnpm-lock.yaml @@ -25,11 +25,11 @@ importers: version: 3.25.76 devDependencies: '@microsoft/vally': - specifier: ^0.10.0 - version: 0.10.0 + specifier: ^0.14.0 + version: 0.14.0 '@microsoft/vally-cli': - specifier: ^0.10.0 - version: 0.10.0 + specifier: ^0.14.0 + version: 0.14.0 '@types/node': specifier: ^20.14.0 version: 20.19.30 @@ -54,618 +54,766 @@ importers: packages: + '@azure/abort-controller@2.2.0': + resolution: {integrity: sha1-k+DoKwGGLn6jtbaZWHGdPz/SyKw=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/abort-controller/-/abort-controller-2.2.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/core-auth@1.11.0': + resolution: {integrity: sha1-Ha7/32LRqHHSK4ZfnzFkpj6h9XU=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-auth/-/core-auth-1.11.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/core-client@1.11.0': + resolution: {integrity: sha1-5z0JrHl33l17QVaWt+1F0/3rZ7A=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-client/-/core-client-1.11.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/core-rest-pipeline@1.25.0': + resolution: {integrity: sha1-kupJEu27H3OV9IKaMAYxF0qoLwg=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-rest-pipeline/-/core-rest-pipeline-1.25.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/core-tracing@1.4.0': + resolution: {integrity: sha1-1lenAOJNJW0ZXmKKeV22qMxHXqs=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-tracing/-/core-tracing-1.4.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/core-util@1.14.0': + resolution: {integrity: sha1-fOn+V5WPEy3UIlc4VuWkXHIyuwQ=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/core-util/-/core-util-1.14.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/logger@1.4.0': + resolution: {integrity: sha1-PVpif+WaJ27OdIenndkq1cUIwzk=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/logger/-/logger-1.4.0.tgz} + engines: {node: '>=22.0.0'} + + '@azure/monitor-opentelemetry-exporter@1.0.0-beta.32': + resolution: {integrity: sha1-ncv2m4X9D4XAOTPEuxNtZDNSxRw=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/monitor-opentelemetry-exporter/-/monitor-opentelemetry-exporter-1.0.0-beta.32.tgz} + engines: {node: '>=18.0.0'} + '@babel/helper-string-parser@7.29.7': - resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + resolution: {integrity: sha1-fwhx2Zgk0jE31g+G/PYTD9WhtR8=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.29.7': - resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + resolution: {integrity: sha1-vYcITO0MeW7Ea9pJLeboPSnon8I=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz} engines: {node: '>=6.9.0'} '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + resolution: {integrity: sha1-g3uHOHy/XsVTDLY0s8Yi9o7bkzQ=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/parser/-/parser-7.29.7.tgz} engines: {node: '>=6.0.0'} hasBin: true '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + resolution: {integrity: sha1-gAXjHYJxLuetrvbiPGO3GmJ3CpI=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@babel/types/-/types-7.29.7.tgz} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + resolution: {integrity: sha1-u+EtyltO+YOg0K9LB7m8kOoKuro=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz} engines: {node: '>=18'} '@emnapi/core@1.11.1': - resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + resolution: {integrity: sha1-ueEGTzprFjHiQeY460jXNr/TcqY=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@emnapi/core/-/core-1.11.1.tgz} '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + resolution: {integrity: sha1-WPHz1dgamxL3k6tojJY3GQECfCQ=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@emnapi/runtime/-/runtime-1.11.1.tgz} '@emnapi/wasi-threads@1.2.2': - resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + resolution: {integrity: sha1-TJO+z1v6OxPRu9zAau44MhrYE5o=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz} '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + resolution: {integrity: sha1-Uhy9lo3PNiCUA0lH92+hsY0tQDw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz} engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + resolution: {integrity: sha1-YepVCWLYqhKpszGUOU4Adlem31c=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + resolution: {integrity: sha1-VUiHgh4AndbYU/ly/ebFFD8d4UI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/android-arm/-/android-arm-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + resolution: {integrity: sha1-p86dByGCX8V4+SkqdtnlMzRIC6I=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/android-x64/-/android-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + resolution: {integrity: sha1-LLdlm9XRCYA8WTz8QURQ1UMMglY=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + resolution: {integrity: sha1-50H6axq7DNA2QSa6NMoX/V579Qk=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + resolution: {integrity: sha1-K2TnEWhlyhctTOA0EUwh88k+OXw=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + resolution: {integrity: sha1-5SUlUeZvSZ5JNO+2EYEvOCDpkLs=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + resolution: {integrity: sha1-3ErPI1UxzWmE9dbDsT2/t92zA8s=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + resolution: {integrity: sha1-VqkA45JA19XR0nO8BT2qKVyS4yI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + resolution: {integrity: sha1-1KNtRzNg9ocO/NGdUrv/9Zou0cw=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz} engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + resolution: {integrity: sha1-/PCrjD6q9FiR0BldSWHLGLV5cWo=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz} engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + resolution: {integrity: sha1-WYtn00BIu37hkByxLioKQ0w4HBA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz} engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + resolution: {integrity: sha1-OEbF32sgFtq5vJXd4mxA8R5DtMA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz} engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + resolution: {integrity: sha1-Fz1EdbN8jSw+FwfgaMF0uz9T0H0=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz} engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + resolution: {integrity: sha1-96R5AQXtyrilox3yb7+sGqPaz6s=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz} engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + resolution: {integrity: sha1-LswShLGQSutB5Uyd3H/NNJsY9lA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + resolution: {integrity: sha1-4oY8LNFQGEWZXLEa3yb3/kvlJ7A=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + resolution: {integrity: sha1-k/dgniiF0cC1oUF4hfuo0fzEEnI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + resolution: {integrity: sha1-oZhWBKIDzcMl/UdULhBvr9aY8C4=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + resolution: {integrity: sha1-ggnkbELx/75uTvd6MuH0fUBK1Co=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + resolution: {integrity: sha1-j63kRBiT2cxEy9fc83dvUIq2+y8=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + resolution: {integrity: sha1-mA1LlwOhbw8HAWYyQk/G2aeJ38I=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + resolution: {integrity: sha1-HAmjYzyUnq09gIujcnaIPnH2ERo=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz} engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + resolution: {integrity: sha1-Gx46Y61L74IgD+9ONp4P/3AJ7uU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz} engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + resolution: {integrity: sha1-nlhatghr75lMbopbOgSBIZrahis=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz} engines: {node: '>=18'} cpu: [x64] os: [win32] '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + resolution: {integrity: sha1-TpCvZ7xR3e5s3vUoTt9XLsN2tZU=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + resolution: {integrity: sha1-vM32Fbz3tujbgw7AuNIcmiXeWXs=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/regexpp/-/regexpp-4.12.2.tgz} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + resolution: {integrity: sha1-fRsAYP6kB/gwHpMkkrqMGK/ylxM=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/config-array/-/config-array-0.21.1.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + resolution: {integrity: sha1-G9AGzut+LlWyt3OrMY0wDhpmrto=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/config-helpers/-/config-helpers-0.4.2.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + resolution: {integrity: sha1-dyJYIEE9lhdQnak0IZCiAZ54dhw=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/core/-/core-0.17.0.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.3': - resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + resolution: {integrity: sha1-Jjk6CAZQG14rakOqWIpNjfZ4gKw=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/eslintrc/-/eslintrc-3.3.3.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@9.39.2': - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + resolution: {integrity: sha1-LUuOxMPqE8GzdI4Ml+zXZr3YBZk=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/js/-/js-9.39.2.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + resolution: {integrity: sha1-biEmoTR+hqTe34cG7Gf/jhB+u60=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/object-schema/-/object-schema-2.1.7.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + resolution: {integrity: sha1-l3nj/Zt+4zVxpXQ1z0M1oXlKbLI=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@github/copilot-darwin-arm64@1.0.64': - resolution: {integrity: sha512-2+ma5M0kwfSytB1Js8vl16ffZ4oCntgs0hFqeZ/zyV3ZQ4cNmDokxa/VLYGyOIQD0oeTZyZdcDJiGrlsYhoYgw==} + resolution: {integrity: sha1-qxAZItOrLUOx9HuZgIf49l7yg+Q=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.64.tgz} cpu: [arm64] os: [darwin] hasBin: true - '@github/copilot-darwin-arm64@1.0.70': - resolution: {integrity: sha512-NewReqBmTxtAzApZNmUsY4Xqy8N086MiQm7k35i9i+WrGyRiHxdZ/n/lMLCkqWoelr7pZhcZ7gQ7fHbEq1KdoQ==} + '@github/copilot-darwin-arm64@1.0.80': + resolution: {integrity: sha1-O7PeMg8QNrLVmr2oJJ2VVGyswmI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.80.tgz} cpu: [arm64] os: [darwin] hasBin: true '@github/copilot-darwin-x64@1.0.64': - resolution: {integrity: sha512-mwjZ0/HZ7loXnahkqhy7LXvNVzq12eghoawd+M2d7kiHMR5yAHK6XA++6kKFj3vZnDanjau+wyvTx0z++mQ3LA==} + resolution: {integrity: sha1-oK+xUKMFrz5qKtdcnVSI8w1H8LA=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.64.tgz} cpu: [x64] os: [darwin] hasBin: true - '@github/copilot-darwin-x64@1.0.70': - resolution: {integrity: sha512-ydUEYI3udNAjdMsLPFQLH/JG9YFKcxuAUxYIyOK+F/m/Of9nODKdYa2hw2mlLanP4cNyuxGLflu+rtIqIb+cPw==} + '@github/copilot-darwin-x64@1.0.80': + resolution: {integrity: sha1-7p1769kE+APGKTfiFFStYxhq0xg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.80.tgz} cpu: [x64] os: [darwin] hasBin: true '@github/copilot-linux-arm64@1.0.64': - resolution: {integrity: sha512-Krg/3ZWxXB7Dw4VOLZEZrYmqc39Yvz9M1K9SPOfjpEy2SFnF/KVLaFt/6E1uYdjgvJ7BmocfVcFYp0hUmy5Axw==} + resolution: {integrity: sha1-o4aagLq1Bgm114gGvgZFodSnzMU=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.64.tgz} cpu: [arm64] os: [linux] libc: [glibc] hasBin: true - '@github/copilot-linux-arm64@1.0.70': - resolution: {integrity: sha512-EpR3VEEqMy5M9t3cs+6FtjX/AhyfoefzmcMAjBls+RGv1fILjaAby+rhKHzX5YVSxOu9OyQDlQVHK3kxznTU5Q==} + '@github/copilot-linux-arm64@1.0.80': + resolution: {integrity: sha1-Aq/J59Sy7gw5xSPPD201cxauzgs=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.80.tgz} cpu: [arm64] os: [linux] libc: [glibc] hasBin: true '@github/copilot-linux-x64@1.0.64': - resolution: {integrity: sha512-2k9FGppYnxHLwVH+TVCf13JfjSlvS15wsZM5xYxEFlqL/CIBvTK7yn5p7M+P1dWoTUpCmavKG3601BtHPenrRg==} + resolution: {integrity: sha1-rEfleAtKFRW5mHZHB4yDm1VXCD8=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.64.tgz} cpu: [x64] os: [linux] libc: [glibc] hasBin: true - '@github/copilot-linux-x64@1.0.70': - resolution: {integrity: sha512-4pyNKunm7GEzQZ+09Dwr4BwixJVNcQGBeqiZPKWBGxcSipwj90t8tidLYdNjgmXJoLerANhXZcY52wJW/HubEA==} + '@github/copilot-linux-x64@1.0.80': + resolution: {integrity: sha1-hBj2Ns8VJ3vRw0l9Uuv51CSad84=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.80.tgz} cpu: [x64] os: [linux] libc: [glibc] hasBin: true '@github/copilot-linuxmusl-arm64@1.0.64': - resolution: {integrity: sha512-C+EYoMvmlUxR0YYxLkD3nwn940y0zId8z+pPl9rFO6f9heMGXYCwCZL2i2c3GW6CvGgZF6Wbzw1Kk0Gvw46F2w==} + resolution: {integrity: sha1-boqc2l7sF1uONy6tdzb9l42JG90=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.64.tgz} cpu: [arm64] os: [linux] libc: [musl] hasBin: true - '@github/copilot-linuxmusl-arm64@1.0.70': - resolution: {integrity: sha512-Xy3tDjIMmMkZZzJjCrK5aDCLLV5+pyOfIcT1lWLmqVWJG0erpHXL6KU82nGW+0nc0TPqGZFHvOyQeLuXl+s3ZA==} + '@github/copilot-linuxmusl-arm64@1.0.80': + resolution: {integrity: sha1-Cwqw4hKkb4ZD6w5JXIjbPwTN4+8=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.80.tgz} cpu: [arm64] os: [linux] libc: [musl] hasBin: true '@github/copilot-linuxmusl-x64@1.0.64': - resolution: {integrity: sha512-VSTGl7dGQDhH2ACeyYq1hYhAsMUbumpqeVe+CGo/u7fKOMrTNMTR5SB3s+zsHCskKZkJkZ2gsUWROCiDBsThEg==} + resolution: {integrity: sha1-WsPy0yw0twyblXkUM51PNknBkgo=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.64.tgz} cpu: [x64] os: [linux] libc: [musl] hasBin: true - '@github/copilot-linuxmusl-x64@1.0.70': - resolution: {integrity: sha512-AHWayI1lVTzxYkNkKrCBOo3XPG+Fb67zcqFivRjGaXG5tr9Bt870LIjIAWoJqQ1Clc3K2PsxyYZ1d8T6vjpWnA==} + '@github/copilot-linuxmusl-x64@1.0.80': + resolution: {integrity: sha1-xdoO4YxkEVl6+VCxg6L5MoqyKVQ=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.80.tgz} cpu: [x64] os: [linux] libc: [musl] hasBin: true - '@github/copilot-sdk@1.0.3': - resolution: {integrity: sha512-ujnH2QVw3+xvjgo9cbpY0wik4fNxAmdMDSFnxGScDSvRuK2vUCL2xWW4V2ANc9pWwRHPBpEpMuNJMtmydmLCIQ==} + '@github/copilot-sdk@1.0.11': + resolution: {integrity: sha1-ZgXSGhM2QbIIDM5cbqFETwCSVzI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-sdk/-/copilot-sdk-1.0.11.tgz} engines: {node: ^20.19.0 || >=22.12.0} - '@github/copilot-sdk@1.0.6': - resolution: {integrity: sha512-24eI5UNY3dWjGBNTLhNJf8ki3dNIE2o2jlEZv2F79N5MHzVpnDWbpM8vUI8L1furBXqc9dWRhLPJG/4Z7Me8Ow==} + '@github/copilot-sdk@1.0.3': + resolution: {integrity: sha1-YdmkLHihfv2si37/zMfGl9XARI8=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-sdk/-/copilot-sdk-1.0.3.tgz} engines: {node: ^20.19.0 || >=22.12.0} '@github/copilot-win32-arm64@1.0.64': - resolution: {integrity: sha512-16gb2T0rQ3QI/rs7mJa3xSks0/ZFrFKoMro3tvgM/c89J/5PTpykpLIuD2Zhl1cC3FqaFzcSYzdupxu82Aj2tQ==} + resolution: {integrity: sha1-yMc/qiOrKu+LdTbFyEdZ/tzSkk4=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.64.tgz} cpu: [arm64] os: [win32] hasBin: true - '@github/copilot-win32-arm64@1.0.70': - resolution: {integrity: sha512-oWsWCTlUyIv4S3FdYoBNCscndLrUv+C3qgbfJ9mf+5igPqbIYL8alkc8FBHWPB/cornDNj65yd4s8dZrSkFPpg==} + '@github/copilot-win32-arm64@1.0.80': + resolution: {integrity: sha1-2yqFs2UqUisEYq5kix1sxHVykhA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.80.tgz} cpu: [arm64] os: [win32] hasBin: true '@github/copilot-win32-x64@1.0.64': - resolution: {integrity: sha512-Ki+St5eggcATHdPLc58RGrOuCX+igblD3/TmlQ8WTHmZxcyuKJl9RNzui3ioVi7ntLmKWriW5r/VH/DTHVKT8g==} + resolution: {integrity: sha1-Dx4MUrA026eoSX/LwrCYAaMtcjo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.64.tgz} cpu: [x64] os: [win32] hasBin: true - '@github/copilot-win32-x64@1.0.70': - resolution: {integrity: sha512-KFDZ750CwhjKF6uATQ1pv1XrYHI+/qTQta954gYZaa+YJEXRstGd284uJ6NI3YXfshZwhTs64JdjN4xLodYwrA==} + '@github/copilot-win32-x64@1.0.80': + resolution: {integrity: sha1-MS+ioPfBrZNg2EVr9z3CXfR14Ug=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.80.tgz} cpu: [x64] os: [win32] hasBin: true '@github/copilot@1.0.64': - resolution: {integrity: sha512-Dch34NNBWjWlkEUxrC4CkDFunQs5cRmkEEO/PR6Lqj23zzwDwzJUxWA/6K28EokfoPhc9hLyPsCbS9rQ9v2TFA==} + resolution: {integrity: sha1-DhNM2DuDWAog0ztt2NOCcAvFKps=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot/-/copilot-1.0.64.tgz} hasBin: true - '@github/copilot@1.0.70': - resolution: {integrity: sha512-onEwx5tod9t31Lc2rT5ns6s/fY6jtdwVWS3Fzs8hKUjCv7LFIMGf71MLcikl4GBXn6cq44+HVdNzCMWnLjYl3g==} + '@github/copilot@1.0.80': + resolution: {integrity: sha1-Xxj+QlK/5wzoak0Yb2yt/fkg+uE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@github/copilot/-/copilot-1.0.80.tgz} hasBin: true - '@hono/node-server@2.0.11': - resolution: {integrity: sha512-bjD221KPLoJTWUwso1J6fGKiTXEUFedG/s0visavY4zakFPkeGURMRNly+FhBHs7T8Dz4qHaZIMX9ZoJHSJtKA==} + '@hono/node-server@2.1.1': + resolution: {integrity: sha1-nPqGSensvNSO31BbEDACQC6lHnA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@hono/node-server/-/node-server-2.1.1.tgz} engines: {node: '>=20'} peerDependencies: hono: ^4 '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + resolution: {integrity: sha1-F8Vcp9Qmcz/jxWGQa4Fzwza0Cnc=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanfs/core/-/core-0.19.1.tgz} engines: {node: '>=18.18.0'} '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + resolution: {integrity: sha1-giy3s6EsWiQKJPYhtaJBPiekXyY=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanfs/node/-/node-0.16.7.tgz} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + resolution: {integrity: sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} engines: {node: '>=12.22'} '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + resolution: {integrity: sha1-wrnS43TuYsWG062+qHGZsdenpro=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/retry/-/retry-0.4.3.tgz} engines: {node: '>=18.18'} '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + resolution: {integrity: sha1-eg7mAfYPmaIMfHxf8MgDiMEYm9Y=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz} engines: {node: '>=6.0.0'} '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + resolution: {integrity: sha1-aRKwDSxjHA0Vzhp6tXzWV/Ko+Lo=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz} '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + resolution: {integrity: sha1-2xXWeByTHzolGj2sOVAcmKYIL9A=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz} + + '@koromix/koffi-darwin-arm64@3.1.6': + resolution: {integrity: sha1-UMiG7oa1oXi04Jhx3kSECoKdmcc=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-darwin-arm64/-/koffi-darwin-arm64-3.1.6.tgz} + cpu: [arm64] + os: [darwin] + + '@koromix/koffi-darwin-x64@3.1.6': + resolution: {integrity: sha1-t/Dr9d2/AMNajDxpxy8jCChMb3o=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-darwin-x64/-/koffi-darwin-x64-3.1.6.tgz} + cpu: [x64] + os: [darwin] + + '@koromix/koffi-freebsd-arm64@3.1.6': + resolution: {integrity: sha1-cPZgX/tAshlHokDpzkeW3PaQnyA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-freebsd-arm64/-/koffi-freebsd-arm64-3.1.6.tgz} + cpu: [arm64] + os: [freebsd] + + '@koromix/koffi-freebsd-ia32@3.1.6': + resolution: {integrity: sha1-G85tcqXWJCPQaGfux2R62HcEPfI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-freebsd-ia32/-/koffi-freebsd-ia32-3.1.6.tgz} + cpu: [ia32] + os: [freebsd] + + '@koromix/koffi-freebsd-x64@3.1.6': + resolution: {integrity: sha1-q3QcGMMyVzkvP4pLHG3AIz1b8zw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-freebsd-x64/-/koffi-freebsd-x64-3.1.6.tgz} + cpu: [x64] + os: [freebsd] - '@microsoft/vally-cli@0.10.0': - resolution: {integrity: sha512-XOyrYW6VIV5tJAEFxqpKgPqZ4Icr1i4YNWIh872F5dDYJvr4PJiNQkhlZ+hWcHyWRIoljpj8Cpjf/ah/vKVVAw==} + '@koromix/koffi-linux-arm64@3.1.6': + resolution: {integrity: sha1-viXY4wKkqiPiVUe6K7QFDsfVzbo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-linux-arm64/-/koffi-linux-arm64-3.1.6.tgz} + cpu: [arm64] + os: [linux] + + '@koromix/koffi-linux-ia32@3.1.6': + resolution: {integrity: sha1-xusbXfU5cDijCAUksx2wHjpOvUs=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-linux-ia32/-/koffi-linux-ia32-3.1.6.tgz} + cpu: [ia32] + os: [linux] + + '@koromix/koffi-linux-loong64@3.1.6': + resolution: {integrity: sha1-K0ePdLxqnpuQ7H8D17l1BPUycJ0=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-linux-loong64/-/koffi-linux-loong64-3.1.6.tgz} + cpu: [loong64] + os: [linux] + + '@koromix/koffi-linux-riscv64@3.1.6': + resolution: {integrity: sha1-fnm/m4pCWeNEtURSnZf4lOls88s=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-linux-riscv64/-/koffi-linux-riscv64-3.1.6.tgz} + cpu: [riscv64] + os: [linux] + + '@koromix/koffi-linux-x64@3.1.6': + resolution: {integrity: sha1-9AiJQ3mygZLONdWyKg7GkD3jR8U=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-linux-x64/-/koffi-linux-x64-3.1.6.tgz} + cpu: [x64] + os: [linux] + + '@koromix/koffi-openbsd-ia32@3.1.6': + resolution: {integrity: sha1-GuGU40x3a20a1YIROLhJDdBgmpc=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-openbsd-ia32/-/koffi-openbsd-ia32-3.1.6.tgz} + cpu: [ia32] + os: [openbsd] + + '@koromix/koffi-openbsd-x64@3.1.6': + resolution: {integrity: sha1-oCYmp0wYKOlY5o8ZyWoY+XTlU8s=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-openbsd-x64/-/koffi-openbsd-x64-3.1.6.tgz} + cpu: [x64] + os: [openbsd] + + '@koromix/koffi-win32-arm64@3.1.6': + resolution: {integrity: sha1-AU3bMCcCRp7qmtUe3UCRNE8+T8k=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-win32-arm64/-/koffi-win32-arm64-3.1.6.tgz} + cpu: [arm64] + os: [win32] + + '@koromix/koffi-win32-ia32@3.1.6': + resolution: {integrity: sha1-rQVtnYNT4zfkuz7G1Cq4sTYLsDU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-win32-ia32/-/koffi-win32-ia32-3.1.6.tgz} + cpu: [ia32] + os: [win32] + + '@koromix/koffi-win32-x64@3.1.6': + resolution: {integrity: sha1-bSJ5S+lFTNK4fxsSjrx99b46HEA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@koromix/koffi-win32-x64/-/koffi-win32-x64-3.1.6.tgz} + cpu: [x64] + os: [win32] + + '@microsoft/vally-cli@0.14.0': + resolution: {integrity: sha1-kp2aELnDzM1eR1F9oL0WxTN4LIg=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@microsoft/vally-cli/-/vally-cli-0.14.0.tgz} + engines: {node: '>=22.12.0'} hasBin: true - '@microsoft/vally-server@0.10.0': - resolution: {integrity: sha512-2N+/aIfmLMtjWDyjwf5PdWdro9E07FOdlOzT+4vvu+MKceOG5yrMwtFOPIyczRkkv+vnxcfcWYq597koKF2Z/w==} + '@microsoft/vally-server@0.14.0': + resolution: {integrity: sha1-fAB77Koyrmv/v+CdHkJ/GWEp9OM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@microsoft/vally-server/-/vally-server-0.14.0.tgz} + engines: {node: '>=22.12.0'} - '@microsoft/vally@0.10.0': - resolution: {integrity: sha512-2KpsOdsZqrWFScZS9UVZPj4Gpwh3NeUXh6TYWh/60lkTSbO6eNAz39zL3r69+epFlOrPIjq7SI0l6SwD8wJzvA==} + '@microsoft/vally@0.14.0': + resolution: {integrity: sha1-m6h5RBbRXhqHw/UjU1EXLDwAF18=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@microsoft/vally/-/vally-0.14.0.tgz} + engines: {node: '>=22.12.0'} '@napi-rs/wasm-runtime@1.1.5': - resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} + resolution: {integrity: sha1-zM1uvEC5kd6mk2+RJrG4FVtsTJU=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@opentelemetry/api-logs@0.220.0': - resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} + '@opentelemetry/api-logs@0.200.0': + resolution: {integrity: sha1-+QFf2ESSDBOWhxWzzcz1pNT/kH4=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/api-logs/-/api-logs-0.200.0.tgz} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api-logs@0.221.0': + resolution: {integrity: sha1-ZrhAWxIv8cdu50O5vSynOACi4t8=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/api-logs/-/api-logs-0.221.0.tgz} engines: {node: '>=8.0.0'} '@opentelemetry/api@1.9.1': - resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} + resolution: {integrity: sha1-wbA0beM2ulWvLVp5cIggN7rt7AU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/api/-/api-1.9.1.tgz} engines: {node: '>=8.0.0'} '@opentelemetry/context-async-hooks@2.10.0': - resolution: {integrity: sha512-bvyMcgLEkozzSzpEEEo1OMoeQ97bxj6Qs2uN3mPrSdDvObMI1myffD/BPqcLlzZO9//d1SqQA/WPw7Cz2AiqhA==} + resolution: {integrity: sha1-clms/Vk2rnE74/bTYkmt166Kylo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/context-async-hooks/-/context-async-hooks-2.10.0.tgz} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.0': + resolution: {integrity: sha1-N+nw6d3sRHmyZ6ym8y2IdXyUGzo=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/core/-/core-2.0.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@2.10.0': - resolution: {integrity: sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==} + resolution: {integrity: sha1-qnf3E450ulOZ1fO7DereDBaPALI=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/core/-/core-2.10.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@2.9.0': - resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} + resolution: {integrity: sha1-Sd6GEG+GJVtHGy/wNe8QA6hRslI=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/core/-/core-2.9.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-trace-otlp-http@0.220.0': - resolution: {integrity: sha512-/+ExB3lRkf+erv4PnoywyL7RHKITidxtUpUTS55k7OQ0dB42S7gEF1gry7swb9MSm1hYLUhJg4QQh9W8SpwwqA==} + '@opentelemetry/exporter-trace-otlp-http@0.221.0': + resolution: {integrity: sha1-tSimB24D3L4BiiscfleFM79N9/8=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.221.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.220.0': - resolution: {integrity: sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==} + '@opentelemetry/otlp-exporter-base@0.221.0': + resolution: {integrity: sha1-BqsA2SdikoM4SOmsxc0iXyOGhGc=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.221.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.220.0': - resolution: {integrity: sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==} + '@opentelemetry/otlp-transformer@0.221.0': + resolution: {integrity: sha1-6/xaZZWh43zk8gTJcRXI7YaNv7s=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/otlp-transformer/-/otlp-transformer-0.221.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/resources@2.0.0': + resolution: {integrity: sha1-FcBHlMMrfQs8dYkiXs5q6buiWYk=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/resources/-/resources-2.0.0.tgz} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/resources@2.10.0': - resolution: {integrity: sha512-q6MMm2zhggzsHVNbabYwut+a6nbuQQe3URUoxaojM/8K1IBfwwPzvxIjNi2/lI1TFe+fMHMW9MWhrtDLEXEnkA==} + resolution: {integrity: sha1-znbBwbqvzkx3vCmJCWW6H1ZnGsw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/resources/-/resources-2.10.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/resources@2.9.0': - resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} + resolution: {integrity: sha1-geHOlG7sZhhXqdbE+lB7N1CuUA8=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/resources/-/resources-2.9.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.220.0': - resolution: {integrity: sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==} + '@opentelemetry/sdk-logs@0.200.0': + resolution: {integrity: sha1-iT2GzvpvLAKnzQPVy0qVnu02U9E=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-logs/-/sdk-logs-0.200.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' + '@opentelemetry/sdk-logs@0.221.0': + resolution: {integrity: sha1-nsDiy/tXKRe5SBAZg+CIaKaQkV4=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-logs/-/sdk-logs-0.221.0.tgz} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.10.0': + resolution: {integrity: sha1-Go841FFkuj77s1Bb62jK9KPs8tk=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-metrics/-/sdk-metrics-2.10.0.tgz} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + '@opentelemetry/sdk-metrics@2.9.0': - resolution: {integrity: sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==} + resolution: {integrity: sha1-QzmsY3udyZxZe6/e+wumbvc5Gnw=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-metrics/-/sdk-metrics-2.9.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.9.0 <1.10.0' '@opentelemetry/sdk-trace-base@2.10.0': - resolution: {integrity: sha512-GuYQQT7QD2EeO8lcZLRQzcbOyhqAzL+6WWTKTU9mSUBYBazkEDl+VrQcXQhbB08OWM9anD1aHleVadzulpOaUQ==} + resolution: {integrity: sha1-P5v4oUwduoeQYZ4oMm98V/i5528=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.10.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-node@2.10.0': - resolution: {integrity: sha512-GZK/G6oZyBLGlH1pUgeDch7D91KoHd2uotUGIkWCPi9GI5T9X0p4L7nNAMDR1BQjkRYoDqo+ddfVx9t5Uhys+Q==} + resolution: {integrity: sha1-ay7F8Vy5nJqsdHZDCAHR3JM+zxk=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.10.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/sdk-trace@2.10.0': - resolution: {integrity: sha512-MfQGq3GRmTh5fM/y+OjaO0vj6+luCB1XO2gfXCalKCfgKw0eHL++sm75DNweC6ohlp+aFvACqeE0fYayqdRaoQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace@2.9.0': - resolution: {integrity: sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==} + resolution: {integrity: sha1-drAzEJJFKwGosvcESA4ldmQccBE=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/sdk-trace/-/sdk-trace-2.10.0.tgz} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/semantic-conventions@1.43.0': - resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + resolution: {integrity: sha1-8/Rn42wnMy8Oc17IbNzXjdbyeGU=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz} engines: {node: '>=14'} '@oxc-project/types@0.137.0': - resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==} + resolution: {integrity: sha1-Vud/i7Ih+gXxixzTTXP5TwlUp3M=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@oxc-project/types/-/types-0.137.0.tgz} '@rolldown/binding-android-arm64@1.1.2': - resolution: {integrity: sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==} + resolution: {integrity: sha1-iP1rKVpBHmK3kmQzpF614X5ou6Q=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] '@rolldown/binding-darwin-arm64@1.1.2': - resolution: {integrity: sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==} + resolution: {integrity: sha1-L4QPfmUBy1I3BBHC+wCBGfH79AA=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] '@rolldown/binding-darwin-x64@1.1.2': - resolution: {integrity: sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==} + resolution: {integrity: sha1-LtO2bd7VFA0iyirFjU4cHjFD9JA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] '@rolldown/binding-freebsd-x64@1.1.2': - resolution: {integrity: sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==} + resolution: {integrity: sha1-09hgOuSApQXrjBJkPJAbKjdxuHU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] '@rolldown/binding-linux-arm-gnueabihf@1.1.2': - resolution: {integrity: sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==} + resolution: {integrity: sha1-vDbg4zVmvICHf+S8pW/TKyQduss=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] '@rolldown/binding-linux-arm64-gnu@1.1.2': - resolution: {integrity: sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==} + resolution: {integrity: sha1-YmekR+a/xamesDCmqZGU7MkXplI=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.1.2': - resolution: {integrity: sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==} + resolution: {integrity: sha1-aPwGj168HRN+7NtlHZCDDzMKrUg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.1.2': - resolution: {integrity: sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==} + resolution: {integrity: sha1-/gcvC8O3E64ls1dlHO040549geA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] '@rolldown/binding-linux-s390x-gnu@1.1.2': - resolution: {integrity: sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==} + resolution: {integrity: sha1-lJJgk4R3XG7eyb++Wxy7qWYN3cw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.1.2': - resolution: {integrity: sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==} + resolution: {integrity: sha1-dAKdn4bWD6m88mcLFIDiJDggPJg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] '@rolldown/binding-linux-x64-musl@1.1.2': - resolution: {integrity: sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==} + resolution: {integrity: sha1-6zAEAVAnp68S+bCshf+hY0AVyHM=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] '@rolldown/binding-openharmony-arm64@1.1.2': - resolution: {integrity: sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==} + resolution: {integrity: sha1-agLEncD2mGFPl8aMb3whqtx2ALE=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] '@rolldown/binding-wasm32-wasi@1.1.2': - resolution: {integrity: sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==} + resolution: {integrity: sha1-P2fAg+B2K4zWyV6O3+GnQ9f/33g=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] '@rolldown/binding-win32-arm64-msvc@1.1.2': - resolution: {integrity: sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==} + resolution: {integrity: sha1-ppxaA7O6NssLEVRwkpPgzvyd1pw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] '@rolldown/binding-win32-x64-msvc@1.1.2': - resolution: {integrity: sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==} + resolution: {integrity: sha1-4dmmzNKd4AN4+N1uJ1rb3lcx0wo=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] '@rolldown/pluginutils@1.0.1': - resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + resolution: {integrity: sha1-4/zuCT+7XOdl4a0Ij/TeKIn2+b4=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz} '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + resolution: {integrity: sha1-p5tV26+GBIEvUtFAssmrQbwVC7g=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@standard-schema/spec/-/spec-1.1.0.tgz} '@tybys/wasm-util@0.10.3': - resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + resolution: {integrity: sha1-AVy6np3UfOFNA9KoxdVHv7FpZl0=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@tybys/wasm-util/-/wasm-util-0.10.3.tgz} '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + resolution: {integrity: sha1-jpzZ4cNYH6azQaWu1ViOsoW+C0o=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/chai/-/chai-5.2.3.tgz} + + '@types/debug@4.1.13': + resolution: {integrity: sha1-ItHMnVQtNZPK6nZPl0MGqzYobuc=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/debug/-/debug-4.1.13.tgz} '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + resolution: {integrity: sha1-M0MRlx06BxIefrkbaEpgXn7qnL0=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/deep-eql/-/deep-eql-4.0.2.tgz} '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + resolution: {integrity: sha1-lYuRyZGxhnztMYvt6g4hXuBQcm4=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/estree/-/estree-1.0.8.tgz} '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: {integrity: sha1-WWoXRyM2lNUPatinhp/Lb1bPWEE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/json-schema/-/json-schema-7.0.15.tgz} + + '@types/mdast@4.0.4': + resolution: {integrity: sha1-fM9y7dLxqn3TQ34YDGQ3NYWATdY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/mdast/-/mdast-4.0.4.tgz} + + '@types/ms@2.1.0': + resolution: {integrity: sha1-BSqmekjszEMJ1/AZG35BQ0uQu3g=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/ms/-/ms-2.1.0.tgz} '@types/node@20.19.30': - resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==} + resolution: {integrity: sha1-hPqHSYreXNK2uo+O7AHTsTjKYNA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/node/-/node-20.19.30.tgz} + + '@types/unist@3.0.3': + resolution: {integrity: sha1-rKqw+RnOaczmKcLU7S60rcG2wgw=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/unist/-/unist-3.0.3.tgz} + + '@typespec/ts-http-runtime@0.3.8': + resolution: {integrity: sha1-tN7lpeeXGu3HCVO7fS2/V4P0LTg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.8.tgz} + engines: {node: '>=22.0.0'} '@vitest/coverage-v8@4.1.9': - resolution: {integrity: sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==} + resolution: {integrity: sha1-1MJqqfe9jKme1rvR6Xr827d+m4k=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/coverage-v8/-/coverage-v8-4.1.9.tgz} peerDependencies: '@vitest/browser': 4.1.9 vitest: 4.1.9 @@ -674,10 +822,10 @@ packages: optional: true '@vitest/expect@4.1.9': - resolution: {integrity: sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==} + resolution: {integrity: sha1-uhr3OuUyYuPcm1GMt7dvthTg71M=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/expect/-/expect-4.1.9.tgz} '@vitest/mocker@4.1.9': - resolution: {integrity: sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==} + resolution: {integrity: sha1-pIPeebNYq6PdjzGaDYqxfIn1x10=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/mocker/-/mocker-4.1.9.tgz} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -688,115 +836,113 @@ packages: optional: true '@vitest/pretty-format@4.1.9': - resolution: {integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==} + resolution: {integrity: sha1-iFz+n8tv899ECepmGSzB+yPWL64=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/pretty-format/-/pretty-format-4.1.9.tgz} '@vitest/runner@4.1.9': - resolution: {integrity: sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==} + resolution: {integrity: sha1-u3QpR85IQd+y2JhKL5AUhQvhD1E=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/runner/-/runner-4.1.9.tgz} '@vitest/snapshot@4.1.9': - resolution: {integrity: sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==} + resolution: {integrity: sha1-vftnCuVhdhPqh3bpPQZmpm3v7rc=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/snapshot/-/snapshot-4.1.9.tgz} '@vitest/spy@4.1.9': - resolution: {integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==} + resolution: {integrity: sha1-v8QNSPub0aEii/v95/VVXn9rOGc=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/spy/-/spy-4.1.9.tgz} '@vitest/utils@4.1.9': - resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} + resolution: {integrity: sha1-AYTH5usyNHObK2s7mF940e2CPuE=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vitest/utils/-/utils-4.1.9.tgz} + + '@vscode/deviceid@0.1.5': + resolution: {integrity: sha1-ven4iNvP0fzpoBcj+qJ1LUh58pw=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vscode/deviceid/-/deviceid-0.1.5.tgz} acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: {integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + resolution: {integrity: sha1-o2CJi8QV7arEbIJB9jg5dbkwuBY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn/-/acorn-8.15.0.tgz} engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.4: + resolution: {integrity: sha1-48121MVI7oldPD/Y3B9sW5Ay56g=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/agent-base/-/agent-base-7.1.4.tgz} + engines: {node: '>= 14'} + ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: {integrity: sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ajv/-/ajv-6.12.6.tgz} ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz} engines: {node: '>=8'} argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: {integrity: sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/argparse/-/argparse-2.0.1.tgz} assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + resolution: {integrity: sha1-9kGhlrM1aQsQcL8AtudZP+wZC/c=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/assertion-error/-/assertion-error-2.0.1.tgz} engines: {node: '>=12'} ast-v8-to-istanbul@1.0.4: - resolution: {integrity: sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA==} + resolution: {integrity: sha1-mzw4vcrbsX8NqMqyyj2vjN9eCvI=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.4.tgz} balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz} base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: {integrity: sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/base64-js/-/base64-js-1.5.1.tgz} - better-sqlite3@12.11.1: - resolution: {integrity: sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==} - engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x || 26.x} - - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + better-sqlite3@13.0.3: + resolution: {integrity: sha1-tuoNx//34o0E2Qk+gQUdOPe+q+I=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/better-sqlite3/-/better-sqlite3-13.0.3.tgz} + engines: {node: '>=22'} brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: {integrity: sha1-q5tFRGblqMw6GHvqrVgEEqnFuEM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/brace-expansion/-/brace-expansion-1.1.12.tgz} callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + resolution: {integrity: sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/callsites/-/callsites-3.1.0.tgz} engines: {node: '>=6'} chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + resolution: {integrity: sha1-rkG1LJrKh3NFBTYnF/MlX6zaNg4=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/chai/-/chai-6.2.2.tgz} engines: {node: '>=18'} chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + resolution: {integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/chalk/-/chalk-4.1.2.tgz} engines: {node: '>=10'} chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + resolution: {integrity: sha1-sSOLbiPqM3r3HH+KKV21rwwViuo=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/chalk/-/chalk-5.6.2.tgz} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + character-entities@2.0.2: + resolution: {integrity: sha1-LQnC5yzZUjB2zLIRV9/2atQ/zCI=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/character-entities/-/character-entities-2.0.2.tgz} color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + resolution: {integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/color-convert/-/color-convert-2.0.1.tgz} engines: {node: '>=7.0.0'} color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: {integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/color-name/-/color-name-1.1.4.tgz} commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + resolution: {integrity: sha1-AUI7NvUBJZ/arE0OTWDJbJkVhdM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/commander/-/commander-12.1.0.tgz} engines: {node: '>=18'} commander@15.0.0: - resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + resolution: {integrity: sha1-lvOWHxKtrBeZ7z+9i8YdQFctGxE=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/commander/-/commander-15.0.0.tgz} engines: {node: '>=22.12.0'} concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/concat-map/-/concat-map-0.0.1.tgz} convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: {integrity: sha1-S1YPZJ/E6RjdCrdc9JYei8iC2Co=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/convert-source-map/-/convert-source-map-2.0.0.tgz} cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + resolution: {integrity: sha1-ilj+ePANzXDDcEUXWd+/rwPo7p8=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/cross-spawn/-/cross-spawn-7.0.6.tgz} engines: {node: '>= 8'} debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + resolution: {integrity: sha1-xq5DLZvZZiWC/OCHCbA4xY6ePWo=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/debug/-/debug-4.4.3.tgz} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -804,50 +950,49 @@ packages: supports-color: optional: true - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha1-PkBgN2CHTC5YZ2kbWZ1zp9oltT8=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz} deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: {integrity: sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/deep-is/-/deep-is-0.1.4.tgz} + + dequal@2.0.3: + resolution: {integrity: sha1-JkQhTxmX057Q7g7OcjNUkKesZ74=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/dequal/-/dequal-2.0.3.tgz} + engines: {node: '>=6'} detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + resolution: {integrity: sha1-aJxdzcGQDvVYOky59te0c3QgdK0=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/detect-libc/-/detect-libc-2.1.2.tgz} engines: {node: '>=8'} - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + devlop@1.1.0: + resolution: {integrity: sha1-TbfCyk3G4Og0wwvnDJS7yXbccBg=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/devlop/-/devlop-1.1.0.tgz} es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + resolution: {integrity: sha1-Hfy7XqO7+2Pyjh/DZ2w2dtHJYkw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/es-module-lexer/-/es-module-lexer-2.1.0.tgz} esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + resolution: {integrity: sha1-2D7SFU1YE6U2c3a7IpKpKW/INxc=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esbuild/-/esbuild-0.27.2.tgz} engines: {node: '>=18'} hasBin: true escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} engines: {node: '>=10'} eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + resolution: {integrity: sha1-iOZGogf61hQ2/6OetQUUcgBlXII=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-scope/-/eslint-scope-8.4.0.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + resolution: {integrity: sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + resolution: {integrity: sha1-TP6mD+fdCtjoFuHtAmwdUlG1EsE=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@9.39.2: - resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + resolution: {integrity: sha1-y2Dm0WqyNMD4Npo/58yHln+vS2w=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint/-/eslint-9.39.2.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -857,47 +1002,43 @@ packages: optional: true espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + resolution: {integrity: sha1-1U9JSdRikAWh+haNk3w/8ffiqDc=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/espree/-/espree-10.4.0.tgz} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + resolution: {integrity: sha1-CNBI8mHw3e21uulfRoCUY9nJSW0=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esquery/-/esquery-1.7.0.tgz} engines: {node: '>=0.10'} esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + resolution: {integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esrecurse/-/esrecurse-4.3.0.tgz} engines: {node: '>=4.0'} estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + resolution: {integrity: sha1-LupSkHAvJquP5TcDcP+GyWXSESM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/estraverse/-/estraverse-5.3.0.tgz} engines: {node: '>=4.0'} estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: {integrity: sha1-Z8PlSexAKkh7T8GT0ZU6UkdSNA0=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/estree-walker/-/estree-walker-3.0.3.tgz} esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esutils/-/esutils-2.0.3.tgz} engines: {node: '>=0.10.0'} - expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + resolution: {integrity: sha1-DVjtNhh3oxu8TdbPcbv+9/r2vWg=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/expect-type/-/expect-type-1.3.0.tgz} engines: {node: '>=12.0.0'} fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: {integrity: sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: {integrity: sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + resolution: {integrity: sha1-7Sq5Z6MxreYvGNB32uGSaE1Q01A=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fdir/-/fdir-6.5.0.tgz} engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 @@ -906,437 +1047,458 @@ packages: optional: true file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + resolution: {integrity: sha1-d4e93PETG/+5JjbGlFe7wO3W2B8=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/file-entry-cache/-/file-entry-cache-8.0.0.tgz} engines: {node: '>=16.0.0'} - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + resolution: {integrity: sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/find-up/-/find-up-5.0.0.tgz} engines: {node: '>=10'} flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + resolution: {integrity: sha1-Ds45/LFO4BL0sEEL0z3ZwfAREnw=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/flat-cache/-/flat-cache-4.0.1.tgz} engines: {node: '>=16'} flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + resolution: {integrity: sha1-Z8j62VRUp8er6/dLt47nSkQCM1g=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/flatted/-/flatted-3.3.3.tgz} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.4.0: + resolution: {integrity: sha1-+I7W0YCsnhS2GwjmeUaPCxtrRzA=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fs-extra/-/fs-extra-11.4.0.tgz} + engines: {node: '>=14.14'} fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + resolution: {integrity: sha1-ysZAd4XQNnWipeGlMFxpezR9kNY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fsevents/-/fsevents-2.3.3.tgz} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] get-tsconfig@4.13.1: - resolution: {integrity: sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==} - - github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + resolution: {integrity: sha1-/5bA2Yln3yEcHrrUHzdcz1FsQ/o=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/get-tsconfig/-/get-tsconfig-4.13.1.tgz} glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + resolution: {integrity: sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz} engines: {node: '>=10.13.0'} globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + resolution: {integrity: sha1-iY10E8Kbq89rr+Vvyt3thYrack4=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/globals/-/globals-14.0.0.tgz} engines: {node: '>=18'} + graceful-fs@4.2.11: + resolution: {integrity: sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz} + has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + resolution: {integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/has-flag/-/has-flag-4.0.0.tgz} engines: {node: '>=8'} - hono@4.12.31: - resolution: {integrity: sha512-zJIHFrl6bq3RDd2YusFNCDlM8qUprxKswyi/OPzPyzKDdyBXDqWx8bZlZ7R+saTdSTatUmb3O7K4SspGPaEOQg==} + hono@4.13.3: + resolution: {integrity: sha1-lxWjX2NxFfdFUofOb93cqyFlPWs=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/hono/-/hono-4.13.3.tgz} engines: {node: '>=16.9.0'} html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + resolution: {integrity: sha1-39YAJ9o2o238viNiYsAKWCJoFFM=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/html-escaper/-/html-escaper-2.0.2.tgz} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + http-proxy-agent@7.0.2: + resolution: {integrity: sha1-mosfJGhmwChQlIZYX2K48sGMJw4=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha1-2o3+rH2hMLBcK6S1nJts1mYRprk=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz} + engines: {node: '>= 14'} ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + resolution: {integrity: sha1-PNQOcp82Q/2HywTlC/DrcivFlvU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ignore/-/ignore-5.3.2.tgz} engines: {node: '>= 4'} import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + resolution: {integrity: sha1-nOy1ZQPAraHydB271lRuSxO1fM8=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/import-fresh/-/import-fresh-3.3.1.tgz} engines: {node: '>=6'} imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz} engines: {node: '>=0.8.19'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-extglob/-/is-extglob-2.1.1.tgz} engines: {node: '>=0.10.0'} is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + resolution: {integrity: sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-glob/-/is-glob-4.0.3.tgz} engines: {node: '>=0.10.0'} isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/isexe/-/isexe-2.0.0.tgz} istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + resolution: {integrity: sha1-LRZsSwZE1Do58Ev2wu3R5YXzF1Y=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz} engines: {node: '>=8'} istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + resolution: {integrity: sha1-kIMFusmlvRdaxqdEier9D8JEWn0=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz} engines: {node: '>=10'} istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + resolution: {integrity: sha1-y0U1FitXhKpiPO4hpyUs8sgHrJM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/istanbul-reports/-/istanbul-reports-3.2.0.tgz} engines: {node: '>=8'} js-tiktoken@1.0.21: - resolution: {integrity: sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==} + resolution: {integrity: sha1-NoqZV1kaMKYpl90MTPMIZvAPgiE=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-tiktoken/-/js-tiktoken-1.0.21.tgz} js-tokens@10.0.0: - resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + resolution: {integrity: sha1-3/51mbSou3/jCv+NAjUjTf+3mDE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-tokens/-/js-tokens-10.0.0.tgz} js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + resolution: {integrity: sha1-hUwpJGdwW2mUduGi3swMijRYgGs=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-yaml/-/js-yaml-4.1.1.tgz} hasBin: true json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: {integrity: sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-buffer/-/json-buffer-3.0.1.tgz} json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: {integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + + jsonfile@6.2.1: + resolution: {integrity: sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz} keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: {integrity: sha1-qHmpnilFL5QkOfKkBeOvizHU3pM=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/keyv/-/keyv-4.5.4.tgz} + + koffi@3.1.6: + resolution: {integrity: sha1-l/qLxQwq9uGoc/3uNxPMEovyhv8=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/koffi/-/koffi-3.1.6.tgz} levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + resolution: {integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/levn/-/levn-0.4.1.tgz} engines: {node: '>= 0.8.0'} lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + resolution: {integrity: sha1-8DOIURbf79nG9UeHUj41FLYeGWg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [android] lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + resolution: {integrity: sha1-ULcYcbAcgZlYS2SeKSVH+up6+bU=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + resolution: {integrity: sha1-NfPpczLRMLnKGB4RtWje1q68bV4=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + resolution: {integrity: sha1-l3enZHK2Ttb/lDQq1kx7r9eUpXU=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + resolution: {integrity: sha1-E65lLhq3O5E117faFy9mbEEK1T0=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + resolution: {integrity: sha1-QXhYeVqUWS9oASOhsfnaig4e8zU=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [glibc] lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + resolution: {integrity: sha1-a+NmkugQtxgECAL9gJYjz/5zITM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [musl] lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + resolution: {integrity: sha1-C3gDr06yHP043Tn+Kru1PH3QkfY=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [glibc] lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + resolution: {integrity: sha1-iNyLqGXd3bGsXvBLDxYYBEGMFjs=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [musl] lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + resolution: {integrity: sha1-TzC6P6XpJfW3n5RejMDRdsOxqzg=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + resolution: {integrity: sha1-FBqlYFZFBkkokCu0rwRfp9n0Igo=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + resolution: {integrity: sha1-uFqulkhtyxv0mnyFcSISc/Tx5Kk=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lightningcss/-/lightningcss-1.32.0.tgz} engines: {node: '>= 12.0.0'} locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + resolution: {integrity: sha1-VTIeswn+u8WcSAHZMackUqaB0oY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/locate-path/-/locate-path-6.0.0.tgz} engines: {node: '>=10'} lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: {integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz} magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + resolution: {integrity: sha1-VnY+wJoPqAkd8nh5/ZTRkHjADZE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/magic-string/-/magic-string-0.30.21.tgz} magicast@0.5.3: - resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + resolution: {integrity: sha1-GAD2523YsNvnJXQ4osM2rvq72QU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/magicast/-/magicast-0.5.3.tgz} make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + resolution: {integrity: sha1-w8IwencSd82WODBfkVwprnQbYU4=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/make-dir/-/make-dir-4.0.0.tgz} engines: {node: '>=10'} - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha1-yVgiuRqrdfGKTL6LL1G4c+0s8Mc=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + mdast-util-to-string@4.0.0: + resolution: {integrity: sha1-elEhR1VWoE5+3etnsmSq550xKBQ=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha1-xpFjDkhQIaaM8o28Kyyifr9njNQ=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha1-j++OD3CB8EdPvdkt61DJkKAmRjk=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha1-UmfvqX8eUlTvx/ILRZo4yyEFi6E=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha1-NtAhLpYrKzEh+FJfx6PHwCnzNPw=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha1-I35KpdWKlYY/AQMtnumwkPHebpQ=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha1-BrJrKYPE0nv8xlezPiUTTUhosLE=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz} + + micromark-util-character@2.1.1: + resolution: {integrity: sha1-L5h4MaQNTFEKwmHomFLE6XA8zaY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-character/-/micromark-util-character-2.1.1.tgz} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha1-R/vNk0caP8yrhs/wOEf8NVLbEFE=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha1-05n6+cRcoUyLS+mLHqSBvO2Htik=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha1-Kg9JCrCL/1zC/V7sbdDKBPibMKk=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz} - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha1-/PFbZgl5OI5vEYzba/fXnXPSb+U=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha1-bLmVguXScehO/KjmGoB5lNcWHrI=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha1-DVHRwJVVHPqsNoMmljz1XxX1QLg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha1-5AQDCWSBmGtBwQZif5j3LU0QuCU=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha1-ww13sugyrPZSb4vxqke8nJQ4wW0=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha1-4aLWLN0jcjCirhGDkCexk4HjHos=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha1-q4l4m4GKWHUrc9a1UjhiG3+qj9c=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha1-2K3lug8xl6HPaimZ+7/mNXoaGe4=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha1-5dpJTo6ysHGg0I+zT2zv7GwKGbg=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz} + + micromark-util-types@2.0.2: + resolution: {integrity: sha1-8AIl9fWg68MlT5bDa2YFxLOTkI4=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark-util-types/-/micromark-util-types-2.0.2.tgz} + + micromark@4.0.2: + resolution: {integrity: sha1-kTlaPhiEoZjmIRbjPJxWjjmTb9s=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/micromark/-/micromark-4.0.2.tgz} + + minimatch@3.1.2: + resolution: {integrity: sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/minimatch/-/minimatch-3.1.2.tgz} ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: {integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ms/-/ms-2.1.3.tgz} nanoid@3.3.15: - resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + resolution: {integrity: sha1-NsSQ+tjG6GyCTJQN/d6Zm2ntQxY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/nanoid/-/nanoid-3.3.15.tgz} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-build-utils@2.0.0: - resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/natural-compare/-/natural-compare-1.4.0.tgz} - node-abi@3.94.0: - resolution: {integrity: sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==} - engines: {node: '>=10'} + node-addon-api@8.9.2: + resolution: {integrity: sha1-23rJShP/2bVebLBFhL1e+OHXSxg=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/node-addon-api/-/node-addon-api-8.9.2.tgz} + engines: {node: ^18 || ^20 || >= 21} obug@2.1.3: - resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} + resolution: {integrity: sha1-wCxg+Vq9YDQJMw52fbfygjGTMx4=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/obug/-/obug-2.1.3.tgz} engines: {node: '>=12.20.0'} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + resolution: {integrity: sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/optionator/-/optionator-0.9.4.tgz} engines: {node: '>= 0.8.0'} p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + resolution: {integrity: sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-limit/-/p-limit-3.1.0.tgz} engines: {node: '>=10'} p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + resolution: {integrity: sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-locate/-/p-locate-5.0.0.tgz} engines: {node: '>=10'} parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + resolution: {integrity: sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/parent-module/-/parent-module-1.0.1.tgz} engines: {node: '>=6'} path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + resolution: {integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/path-exists/-/path-exists-4.0.0.tgz} engines: {node: '>=8'} path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/path-key/-/path-key-3.1.1.tgz} engines: {node: '>=8'} pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + resolution: {integrity: sha1-PsvsVUIWhbcKnahyss/z4cvtFxY=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/pathe/-/pathe-2.0.3.tgz} picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + resolution: {integrity: sha1-PTIa8+q5ObCDyPkpodEs2oHCa2s=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picocolors/-/picocolors-1.1.1.tgz} picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + resolution: {integrity: sha1-/W9eAKFDCG4HTf/kySS4+yk7BYk=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picomatch/-/picomatch-4.0.4.tgz} engines: {node: '>=12'} picomatch@4.0.5: - resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + resolution: {integrity: sha1-UepXoX2G9gX4EDlZX7xA7QalX6s=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picomatch/-/picomatch-4.0.5.tgz} engines: {node: '>=12'} postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + resolution: {integrity: sha1-0er2d6Mk6ewCGW2i0/7PSguac1w=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/postcss/-/postcss-8.5.15.tgz} engines: {node: ^10 || ^12 || >=14} - prebuild-install@7.1.3: - resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} - engines: {node: '>=10'} - deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. - hasBin: true - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + resolution: {integrity: sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz} engines: {node: '>= 0.8.0'} - pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + resolution: {integrity: sha1-AnQi4vrsCyXhVJw+G9gwm5EztuU=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/punycode/-/punycode-2.3.1.tgz} engines: {node: '>=6'} - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + resolution: {integrity: sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz} engines: {node: '>=4'} resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolution: {integrity: sha1-YWs9wsVwVrVYjDHN9LPWTbEzcg8=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} rolldown@1.1.2: - resolution: {integrity: sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==} + resolution: {integrity: sha1-rMtB4myHKtLFGYo5wSgce2uEQJc=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/rolldown/-/rolldown-1.1.2.tgz} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - semver@7.8.5: - resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + resolution: {integrity: sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/semver/-/semver-7.8.5.tgz} engines: {node: '>=10'} hasBin: true shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz} engines: {node: '>=8'} shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz} engines: {node: '>=8'} siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + resolution: {integrity: sha1-MudscLeXJOO7Vny51UPrhYzPrzA=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/siginfo/-/siginfo-2.0.0.tgz} source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + resolution: {integrity: sha1-HOVlD93YerwJnto33P8CTCZnrkY=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/source-map-js/-/source-map-js-1.2.1.tgz} engines: {node: '>=0.10.0'} stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + resolution: {integrity: sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/stackback/-/stackback-0.0.2.tgz} std-env@4.1.0: - resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} + resolution: {integrity: sha1-RYmavFkNhtaC6H8KzRAzp1CEzT8=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/std-env/-/std-env-4.1.0.tgz} strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + resolution: {integrity: sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz} engines: {node: '>=8'} supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/supports-color/-/supports-color-7.2.0.tgz} engines: {node: '>=8'} - tar-fs@2.1.5: - resolution: {integrity: sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + resolution: {integrity: sha1-EDyfi6bXI3pHq23R3P93JRhjQms=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinybench/-/tinybench-2.9.0.tgz} tinyexec@1.2.4: - resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + resolution: {integrity: sha1-rkW7Lt69qUxw9OqJfg8SQ+Rw23E=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyexec/-/tinyexec-1.2.4.tgz} engines: {node: '>=18'} tinyglobby@0.2.17: - resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + resolution: {integrity: sha1-ViqabJ6ys7Ej05cZ+a9btE/NdjE=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyglobby/-/tinyglobby-0.2.17.tgz} engines: {node: '>=12.0.0'} tinyrainbow@3.1.0: - resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + resolution: {integrity: sha1-HYpiOJP5XPCi3bnl0RFQ4ZFAlCE=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyrainbow/-/tinyrainbow-3.1.0.tgz} engines: {node: '>=14.0.0'} tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + resolution: {integrity: sha1-YS7+TtI11Wfoq6Xypfq3AoCt6D8=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tslib/-/tslib-2.8.1.tgz} tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + resolution: {integrity: sha1-Mqps8XSB4zb3Vhleb+BNrj5jCLE=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tsx/-/tsx-4.21.0.tgz} engines: {node: '>=18.0.0'} hasBin: true - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + resolution: {integrity: sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/type-check/-/type-check-0.4.0.tgz} engines: {node: '>= 0.8.0'} typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + resolution: {integrity: sha1-W09Z4VMQqxeiFvXWz1PuR27eZw8=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript/-/typescript-5.9.3.tgz} engines: {node: '>=14.17'} hasBin: true undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + resolution: {integrity: sha1-aR0ArzkJvpOn+qE75hs6W1DvEss=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/undici-types/-/undici-types-6.21.0.tgz} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha1-RJxuIaiA4IVb9aq63rOnQDFKusI=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz} + + universalify@2.0.1: + resolution: {integrity: sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/universalify/-/universalify-2.0.1.tgz} + engines: {node: '>= 10.0.0'} uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: {integrity: sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/uri-js/-/uri-js-4.4.1.tgz} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@14.0.2: + resolution: {integrity: sha1-1a4D5NsIgchycfiwub1zEtAseZo=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/uuid/-/uuid-14.0.2.tgz} + hasBin: true vite@8.1.0: - resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} + resolution: {integrity: sha1-BzTcGkj66yvV9bFrZty/rkhP7FU=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/vite/-/vite-8.1.0.tgz} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -1379,7 +1541,7 @@ packages: optional: true vitest@4.1.9: - resolution: {integrity: sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==} + resolution: {integrity: sha1-mPIvvXDioYxKkrsgYkvJLl36xfM=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/vitest/-/vitest-4.1.9.tgz} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -1420,48 +1582,117 @@ packages: optional: true vscode-jsonrpc@8.2.1: - resolution: {integrity: sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==} + resolution: {integrity: sha1-oyLMDx2X95T/2cTNKomKC94JfzQ=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz} engines: {node: '>=14.0.0'} which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=, tarball: https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/which/-/which-2.0.2.tgz} engines: {node: '>= 8'} hasBin: true why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + resolution: {integrity: sha1-o/aalxB/SUs83Dvd3Yg6fWXOvwQ=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/why-is-node-running/-/why-is-node-running-2.3.0.tgz} engines: {node: '>=8'} hasBin: true word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + resolution: {integrity: sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/word-wrap/-/word-wrap-1.2.5.tgz} engines: {node: '>=0.10.0'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + resolution: {integrity: sha1-VpTyXsoM6cPnqdngDODdq72eNcU=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/yaml/-/yaml-2.8.2.tgz} engines: {node: '>= 14.6'} hasBin: true yaml@2.9.0: - resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + resolution: {integrity: sha1-eCdK/ZNZih391hMN9qVm3vy/mqQ=, tarball: https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/yaml/-/yaml-2.9.0.tgz} engines: {node: '>= 14.6'} hasBin: true yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + resolution: {integrity: sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=, tarball: https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz} engines: {node: '>=10'} zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + resolution: {integrity: sha1-JoQcP2/SKmonYOfMtxkXl2hHHjQ=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/zod/-/zod-3.25.76.tgz} zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + resolution: {integrity: sha1-toDxcohdGLvr8hqDTqJeVaG781Y=, tarball: https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/zod/-/zod-4.4.3.tgz} snapshots: + '@azure/abort-controller@2.2.0': + dependencies: + tslib: 2.8.1 + + '@azure/core-auth@1.11.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-util': 1.14.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-client@1.11.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-rest-pipeline@1.25.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-tracing@1.4.0': + dependencies: + tslib: 2.8.1 + + '@azure/core-util@1.14.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/logger@1.4.0': + dependencies: + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/monitor-opentelemetry-exporter@1.0.0-beta.32': + dependencies: + '@azure/core-auth': 1.11.0 + '@azure/core-client': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.200.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.200.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-string-parser@7.29.7': {} '@babel/helper-validator-identifier@7.29.7': {} @@ -1620,61 +1851,62 @@ snapshots: '@github/copilot-darwin-arm64@1.0.64': optional: true - '@github/copilot-darwin-arm64@1.0.70': + '@github/copilot-darwin-arm64@1.0.80': optional: true '@github/copilot-darwin-x64@1.0.64': optional: true - '@github/copilot-darwin-x64@1.0.70': + '@github/copilot-darwin-x64@1.0.80': optional: true '@github/copilot-linux-arm64@1.0.64': optional: true - '@github/copilot-linux-arm64@1.0.70': + '@github/copilot-linux-arm64@1.0.80': optional: true '@github/copilot-linux-x64@1.0.64': optional: true - '@github/copilot-linux-x64@1.0.70': + '@github/copilot-linux-x64@1.0.80': optional: true '@github/copilot-linuxmusl-arm64@1.0.64': optional: true - '@github/copilot-linuxmusl-arm64@1.0.70': + '@github/copilot-linuxmusl-arm64@1.0.80': optional: true '@github/copilot-linuxmusl-x64@1.0.64': optional: true - '@github/copilot-linuxmusl-x64@1.0.70': + '@github/copilot-linuxmusl-x64@1.0.80': optional: true - '@github/copilot-sdk@1.0.3': + '@github/copilot-sdk@1.0.11': dependencies: - '@github/copilot': 1.0.64 + '@github/copilot': 1.0.80 + koffi: 3.1.6 vscode-jsonrpc: 8.2.1 zod: 4.4.3 - '@github/copilot-sdk@1.0.6': + '@github/copilot-sdk@1.0.3': dependencies: - '@github/copilot': 1.0.70 + '@github/copilot': 1.0.64 vscode-jsonrpc: 8.2.1 zod: 4.4.3 '@github/copilot-win32-arm64@1.0.64': optional: true - '@github/copilot-win32-arm64@1.0.70': + '@github/copilot-win32-arm64@1.0.80': optional: true '@github/copilot-win32-x64@1.0.64': optional: true - '@github/copilot-win32-x64@1.0.70': + '@github/copilot-win32-x64@1.0.80': optional: true '@github/copilot@1.0.64': @@ -1690,22 +1922,22 @@ snapshots: '@github/copilot-win32-arm64': 1.0.64 '@github/copilot-win32-x64': 1.0.64 - '@github/copilot@1.0.70': + '@github/copilot@1.0.80': dependencies: detect-libc: 2.1.2 optionalDependencies: - '@github/copilot-darwin-arm64': 1.0.70 - '@github/copilot-darwin-x64': 1.0.70 - '@github/copilot-linux-arm64': 1.0.70 - '@github/copilot-linux-x64': 1.0.70 - '@github/copilot-linuxmusl-arm64': 1.0.70 - '@github/copilot-linuxmusl-x64': 1.0.70 - '@github/copilot-win32-arm64': 1.0.70 - '@github/copilot-win32-x64': 1.0.70 + '@github/copilot-darwin-arm64': 1.0.80 + '@github/copilot-darwin-x64': 1.0.80 + '@github/copilot-linux-arm64': 1.0.80 + '@github/copilot-linux-x64': 1.0.80 + '@github/copilot-linuxmusl-arm64': 1.0.80 + '@github/copilot-linuxmusl-x64': 1.0.80 + '@github/copilot-win32-arm64': 1.0.80 + '@github/copilot-win32-x64': 1.0.80 - '@hono/node-server@2.0.11(hono@4.12.31)': + '@hono/node-server@2.1.1(hono@4.13.3)': dependencies: - hono: 4.12.31 + hono: 4.13.3 '@humanfs/core@0.19.1': {} @@ -1727,32 +1959,87 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@microsoft/vally-cli@0.10.0': + '@koromix/koffi-darwin-arm64@3.1.6': + optional: true + + '@koromix/koffi-darwin-x64@3.1.6': + optional: true + + '@koromix/koffi-freebsd-arm64@3.1.6': + optional: true + + '@koromix/koffi-freebsd-ia32@3.1.6': + optional: true + + '@koromix/koffi-freebsd-x64@3.1.6': + optional: true + + '@koromix/koffi-linux-arm64@3.1.6': + optional: true + + '@koromix/koffi-linux-ia32@3.1.6': + optional: true + + '@koromix/koffi-linux-loong64@3.1.6': + optional: true + + '@koromix/koffi-linux-riscv64@3.1.6': + optional: true + + '@koromix/koffi-linux-x64@3.1.6': + optional: true + + '@koromix/koffi-openbsd-ia32@3.1.6': + optional: true + + '@koromix/koffi-openbsd-x64@3.1.6': + optional: true + + '@koromix/koffi-win32-arm64@3.1.6': + optional: true + + '@koromix/koffi-win32-ia32@3.1.6': + optional: true + + '@koromix/koffi-win32-x64@3.1.6': + optional: true + + '@microsoft/vally-cli@0.14.0': dependencies: - '@microsoft/vally': 0.10.0 - '@microsoft/vally-server': 0.10.0 + '@azure/monitor-opentelemetry-exporter': 1.0.0-beta.32 + '@microsoft/vally': 0.14.0 + '@microsoft/vally-server': 0.14.0 '@opentelemetry/api': 1.9.1 - '@opentelemetry/exporter-trace-otlp-http': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-node': 2.10.0(@opentelemetry/api@1.9.1) commander: 15.0.0 + optionalDependencies: + '@vscode/deviceid': 0.1.5 + transitivePeerDependencies: + - supports-color - '@microsoft/vally-server@0.10.0': + '@microsoft/vally-server@0.14.0': dependencies: - '@hono/node-server': 2.0.11(hono@4.12.31) - '@microsoft/vally': 0.10.0 - better-sqlite3: 12.11.1 - hono: 4.12.31 + '@hono/node-server': 2.1.1(hono@4.13.3) + '@microsoft/vally': 0.14.0 + better-sqlite3: 13.0.3 + hono: 4.13.3 + transitivePeerDependencies: + - supports-color - '@microsoft/vally@0.10.0': + '@microsoft/vally@0.14.0': dependencies: - '@github/copilot-sdk': 1.0.6 + '@github/copilot-sdk': 1.0.11 '@opentelemetry/api': 1.9.1 js-tiktoken: 1.0.21 + mdast-util-from-markdown: 2.0.3 picomatch: 4.0.5 yaml: 2.9.0 zod: 4.4.3 + transitivePeerDependencies: + - supports-color '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': dependencies: @@ -1761,7 +2048,11 @@ snapshots: '@tybys/wasm-util': 0.10.3 optional: true - '@opentelemetry/api-logs@0.220.0': + '@opentelemetry/api-logs@0.200.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api-logs@0.221.0': dependencies: '@opentelemetry/api': 1.9.1 @@ -1771,6 +2062,11 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 + '@opentelemetry/core@2.0.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + '@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -1781,30 +2077,34 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/exporter-trace-otlp-http@0.220.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/exporter-trace-otlp-http@0.221.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base@0.220.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-exporter-base@0.221.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer@0.220.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-transformer@0.221.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 '@opentelemetry/resources@2.10.0(@opentelemetry/api@1.9.1)': dependencies: @@ -1818,14 +2118,27 @@ snapshots: '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/sdk-logs@0.220.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-logs@0.200.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/api-logs': 0.200.0 + '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-logs@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.43.0 + '@opentelemetry/sdk-metrics@2.10.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -1854,13 +2167,6 @@ snapshots: '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/semantic-conventions@1.43.0': {} '@oxc-project/types@0.137.0': {} @@ -1928,16 +2234,36 @@ snapshots: '@types/deep-eql': 4.0.2 assertion-error: 2.0.1 + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + '@types/deep-eql@4.0.2': {} '@types/estree@1.0.8': {} '@types/json-schema@7.0.15': {} + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@2.1.0': {} + '@types/node@20.19.30': dependencies: undici-types: 6.21.0 + '@types/unist@3.0.3': {} + + '@typespec/ts-http-runtime@0.3.8': + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + '@vitest/coverage-v8@4.1.9(vitest@4.1.9)': dependencies: '@bcoe/v8-coverage': 1.0.2 @@ -1993,12 +2319,20 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 + '@vscode/deviceid@0.1.5': + dependencies: + fs-extra: 11.4.0 + uuid: 14.0.2 + optional: true + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 acorn@8.15.0: {} + agent-base@7.1.4: {} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -2024,31 +2358,15 @@ snapshots: base64-js@1.5.1: {} - better-sqlite3@12.11.1: - dependencies: - bindings: 1.5.0 - prebuild-install: 7.1.3 - - bindings@1.5.0: + better-sqlite3@13.0.3: dependencies: - file-uri-to-path: 1.0.0 - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 + node-addon-api: 8.9.2 brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - callsites@3.1.0: {} chai@6.2.2: {} @@ -2060,7 +2378,7 @@ snapshots: chalk@5.6.2: {} - chownr@1.1.4: {} + character-entities@2.0.2: {} color-convert@2.0.1: dependencies: @@ -2086,19 +2404,19 @@ snapshots: dependencies: ms: 2.1.3 - decompress-response@6.0.0: + decode-named-character-reference@1.3.0: dependencies: - mimic-response: 3.1.0 - - deep-extend@0.6.0: {} + character-entities: 2.0.2 deep-is@0.1.4: {} + dequal@2.0.3: {} + detect-libc@2.1.2: {} - end-of-stream@1.4.5: + devlop@1.1.0: dependencies: - once: 1.4.0 + dequal: 2.0.3 es-module-lexer@2.1.0: {} @@ -2203,8 +2521,6 @@ snapshots: esutils@2.0.3: {} - expand-template@2.0.3: {} - expect-type@1.3.0: {} fast-deep-equal@3.1.3: {} @@ -2213,16 +2529,14 @@ snapshots: fast-levenshtein@2.0.6: {} - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - file-uri-to-path@1.0.0: {} - find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -2235,7 +2549,12 @@ snapshots: flatted@3.3.3: {} - fs-constants@1.0.0: {} + fs-extra@11.4.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + optional: true fsevents@2.3.3: optional: true @@ -2244,21 +2563,34 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - github-from-package@0.0.0: {} - glob-parent@6.0.2: dependencies: is-glob: 4.0.3 globals@14.0.0: {} + graceful-fs@4.2.11: + optional: true + has-flag@4.0.0: {} - hono@4.12.31: {} + hono@4.13.3: {} html-escaper@2.0.2: {} - ieee754@1.2.1: {} + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color ignore@5.3.2: {} @@ -2269,10 +2601,6 @@ snapshots: imurmurhash@0.1.4: {} - inherits@2.0.4: {} - - ini@1.3.8: {} - is-extglob@2.1.1: {} is-glob@4.0.3: @@ -2310,10 +2638,35 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + optional: true + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + koffi@3.1.6: + optionalDependencies: + '@koromix/koffi-darwin-arm64': 3.1.6 + '@koromix/koffi-darwin-x64': 3.1.6 + '@koromix/koffi-freebsd-arm64': 3.1.6 + '@koromix/koffi-freebsd-ia32': 3.1.6 + '@koromix/koffi-freebsd-x64': 3.1.6 + '@koromix/koffi-linux-arm64': 3.1.6 + '@koromix/koffi-linux-ia32': 3.1.6 + '@koromix/koffi-linux-loong64': 3.1.6 + '@koromix/koffi-linux-riscv64': 3.1.6 + '@koromix/koffi-linux-x64': 3.1.6 + '@koromix/koffi-openbsd-ia32': 3.1.6 + '@koromix/koffi-openbsd-x64': 3.1.6 + '@koromix/koffi-win32-arm64': 3.1.6 + '@koromix/koffi-win32-ia32': 3.1.6 + '@koromix/koffi-win32-x64': 3.1.6 + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -2388,33 +2741,173 @@ snapshots: dependencies: semver: 7.8.5 - mimic-response@3.1.0: {} + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color - minimatch@3.1.2: + mdast-util-to-string@4.0.0: dependencies: - brace-expansion: 1.1.12 + '@types/mdast': 4.0.4 - minimist@1.2.8: {} + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - mkdirp-classic@0.5.3: {} + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - ms@2.1.3: {} + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - nanoid@3.3.15: {} + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 - napi-build-utils@2.0.0: {} + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - natural-compare@1.4.0: {} + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - node-abi@3.94.0: + micromark-util-character@2.1.1: dependencies: - semver: 7.8.5 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - obug@2.1.3: {} + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} - once@1.4.0: + micromark-util-types@2.0.2: {} + + micromark@4.0.2: dependencies: - wrappy: 1.0.2 + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + ms@2.1.3: {} + + nanoid@3.3.15: {} + + natural-compare@1.4.0: {} + + node-addon-api@8.9.2: {} + + obug@2.1.3: {} optionator@0.9.4: dependencies: @@ -2455,43 +2948,10 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prebuild-install@7.1.3: - dependencies: - detect-libc: 2.1.2 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 2.0.0 - node-abi: 3.94.0 - pump: 3.0.4 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.5 - tunnel-agent: 0.6.0 - prelude-ls@1.2.1: {} - pump@3.0.4: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - punycode@2.3.1: {} - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -2517,8 +2977,6 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.1.2 '@rolldown/binding-win32-x64-msvc': 1.1.2 - safe-buffer@5.2.1: {} - semver@7.8.5: {} shebang-command@2.0.0: @@ -2529,60 +2987,30 @@ snapshots: siginfo@2.0.0: {} - simple-concat@1.0.1: {} - - simple-get@4.0.1: - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - source-map-js@1.2.1: {} stackback@0.0.2: {} std-env@4.1.0: {} - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} supports-color@7.2.0: dependencies: has-flag: 4.0.0 - tar-fs@2.1.5: - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.4 - tar-stream: 2.2.0 - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.5 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - tinybench@2.9.0: {} tinyexec@1.2.4: {} tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tinyrainbow@3.1.0: {} - tslib@2.8.1: - optional: true + tslib@2.8.1: {} tsx@4.21.0: dependencies: @@ -2591,10 +3019,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -2603,11 +3027,19 @@ snapshots: undici-types@6.21.0: {} + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + universalify@2.0.1: + optional: true + uri-js@4.4.1: dependencies: punycode: 2.3.1 - util-deprecate@1.0.2: {} + uuid@14.0.2: + optional: true vite@8.1.0(@types/node@20.19.30)(esbuild@0.27.2)(tsx@4.21.0)(yaml@2.8.2): dependencies: @@ -2665,8 +3097,6 @@ snapshots: word-wrap@1.2.5: {} - wrappy@1.0.2: {} - yaml@2.8.2: {} yaml@2.9.0: {} diff --git a/tests/pnpm-workspace.yaml b/tests/pnpm-workspace.yaml index de4f32c2..4ef197c0 100644 --- a/tests/pnpm-workspace.yaml +++ b/tests/pnpm-workspace.yaml @@ -2,5 +2,7 @@ packages: - . allowBuilds: + '@vscode/deviceid': true better-sqlite3: true esbuild: true + koffi: true diff --git a/tests/run-skill-experiments.ps1 b/tests/run-skill-experiments.ps1 index a7ebca1d..761e5ded 100644 --- a/tests/run-skill-experiments.ps1 +++ b/tests/run-skill-experiments.ps1 @@ -29,6 +29,12 @@ Examples: -SkillPattern '*-rust', -SkillPattern 'azure-ai-*' .PARAMETER Workers Number of parallel experiment runs. Defaults to 1 (sequential). +.PARAMETER Model +Generator model used for every experiment variant. Defaults to gpt-5.6-terra. + +.PARAMETER GraderModel +Model used by prompt graders. Defaults to claude-sonnet-4.6. + .PARAMETER DryRun If set, shows what experiments would be run without actually running them. @@ -81,6 +87,14 @@ param( [Parameter(Mandatory = $false)] [ValidateRange(1, 128)] [int]$Workers = 1, + + [Parameter(Mandatory = $false)] + [ValidateNotNullOrEmpty()] + [string]$Model = "gpt-5.6-terra", + + [Parameter(Mandatory = $false)] + [ValidateNotNullOrEmpty()] + [string]$GraderModel = "claude-sonnet-4.6", [Parameter(Mandatory = $false)] [switch]$DryRun, @@ -1003,13 +1017,15 @@ if ($skillDirs.Count -eq 0) { if ($DryRun) { Write-Information "" Write-Information "DRY RUN - Would execute the following experiments:" + Write-Information " Generator Model: $Model" + Write-Information " Grader Model: $GraderModel" foreach ($skillDir in $skillDirs) { Write-Information " - $($skillDir.Name): $(Join-Path $skillDir.FullName 'vally' 'skill_effectiveness_experiment.yaml')" } exit 0 } -# Validate vally is available via pnpm after dry-run check +# Validate the package-local Vally executable after the dry-run check. $vallyExeUnix = Join-Path $PSScriptRoot "node_modules/.bin/vally" $vallyExeWindows = Join-Path $PSScriptRoot "node_modules/.bin/vally.cmd" if (Test-Path -LiteralPath $vallyExeWindows) { @@ -1020,90 +1036,12 @@ if (Test-Path -LiteralPath $vallyExeWindows) { $vallyExe = $null } if (-not $vallyExe) { - Write-Error "vally command not found. Please install @microsoft/vally via pnpm." + Write-Error "Vally CLI not found. Install test dependencies with npm or pnpm." exit 1 } -# Use package-local binary via pnpm -$vallyCmd = "pnpm", "--dir", $PSScriptRoot, "exec", "vally" - Write-Information "Vally: $vallyExe" -# Detect and build the shared rust-cargo-build-failure grader plugin if any experiment uses it -$customGraderPluginDir = Join-Path $PSScriptRoot "scenarios/_shared/vally/grader-plugins/rust-cargo-build-failure" -$customGraderSource = Join-Path $customGraderPluginDir "index.ts" -$customGraderPackage = Join-Path $customGraderPluginDir "package.json" -$customGraderTsConfig = Join-Path $customGraderPluginDir "tsconfig.json" -$customGraderDistEntry = Join-Path $customGraderPluginDir "dist/index.js" - -$requiresRustCustomGrader = $false -foreach ($skillDir in $skillDirs) { - $vallyFiles = Get-ChildItem -Path (Join-Path $skillDir.FullName "vally") -Filter "*.yaml" -ErrorAction SilentlyContinue - foreach ($vallyFile in $vallyFiles) { - $match = Select-String -Path $vallyFile.FullName -Pattern 'type:\s*rust-cargo-build-failure-check' -CaseSensitive:$false -ErrorAction SilentlyContinue - if ($match) { - $requiresRustCustomGrader = $true - break - } - } - if ($requiresRustCustomGrader) { break } -} - -if ($requiresRustCustomGrader) { - if (-not (Test-Path $customGraderPluginDir)) { - Write-Error "Custom grader plugin directory not found: $customGraderPluginDir" - exit 1 - } - - $customGraderRebuildReasons = @() - if (-not (Test-Path $customGraderDistEntry)) { - $customGraderRebuildReasons += "dist/index.js is missing" - } - else { - $distTime = (Get-Item $customGraderDistEntry).LastWriteTimeUtc - foreach ($sourcePath in @($customGraderSource, $customGraderTsConfig, $customGraderPackage)) { - if (Test-Path $sourcePath) { - $sourceTime = (Get-Item $sourcePath).LastWriteTimeUtc - if ($sourceTime -gt $distTime) { - $customGraderRebuildReasons += "$(Split-Path -Leaf $sourcePath) is newer than dist/index.js" - } - } - } - } - - if ($customGraderRebuildReasons.Count -gt 0) { - Write-Host "Custom grader plugin rebuild required: $($customGraderRebuildReasons -join '; ')" - - $buildOutput = $null - $buildExitCode = 1 - - $pnpmCmd = Get-Command pnpm -ErrorAction SilentlyContinue - if ($pnpmCmd) { - Write-Host "Rebuilding custom grader plugin via pnpm exec tsc..." - $buildOutput = & pnpm --dir $PSScriptRoot exec tsc --project $customGraderTsConfig 2>&1 - $buildExitCode = $LASTEXITCODE - } - else { - Write-Host "pnpm not found; rebuilding custom grader plugin via npx tsc..." - $buildOutput = & npx tsc --project $customGraderTsConfig 2>&1 - $buildExitCode = $LASTEXITCODE - } - - if ($buildExitCode -ne 0 -or -not (Test-Path $customGraderDistEntry)) { - if ($buildOutput) { - $buildOutput | ForEach-Object { Write-Error $_ } - } - Write-Error "Failed to build custom grader plugin at $customGraderPluginDir" - exit 1 - } - - Write-Host "Custom grader plugin rebuilt successfully." - } - else { - Write-Host "Custom grader plugin is up to date." - } -} - # Create results directory with timestamp $timestamp = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH-mm-ss-fff") + "Z" $experimentResultsDir = Join-Path $ResultsRoot $timestamp @@ -1112,6 +1050,8 @@ New-Item -ItemType Directory -Path $experimentResultsDir -Force | Out-Null Write-Information "" Write-Information "Results Directory: $experimentResultsDir" Write-Information "Parallel Workers: $Workers" +Write-Information "Generator Model: $Model" +Write-Information "Grader Model: $GraderModel" Write-Information "" # Track results and timing @@ -1124,7 +1064,7 @@ $skillTimings = @() # Track timings for ETA calculation # Execute experiments $scriptBlock = { - param($SkillDir, $ExperimentResultsDir, $ResultsRoot, $SkillIndex, $TotalSkills, $TestsRoot, $RequiresRustCustomGrader, $CustomGraderPluginDir) + param($SkillDir, $ExperimentResultsDir, $ResultsRoot, $SkillIndex, $TotalSkills, $VallyExe, $Model, $GraderModel) $skillName = $SkillDir.Name $vallyDir = Join-Path $SkillDir.FullName "vally" @@ -1138,9 +1078,13 @@ $scriptBlock = { # Note: vally experiment run expects to be run from the scenario directory Push-Location $vallyDir try { - $vallyArgs = @("experiment", "run", "skill_effectiveness_experiment.yaml", "--output-dir", $skillOutputRoot) - if ($RequiresRustCustomGrader) { $vallyArgs += @("--grader-plugin", $CustomGraderPluginDir) } - $output = & pnpm --dir $TestsRoot exec vally @vallyArgs 2>&1 + $vallyArgs = @( + "experiment", "run", "skill_effectiveness_experiment.yaml", + "--output-dir", $skillOutputRoot, + "--param", "MODEL=$Model", + "--param", "GRADER_MODEL=$GraderModel" + ) + $output = & $VallyExe @vallyArgs 2>&1 $exitCode = $LASTEXITCODE } finally { @@ -1322,15 +1266,26 @@ $scriptBlock = { } if (($null -ne $baselineScore) -and ($null -ne $skillScore)) { - $delta = [double]$skillScore - [double]$baselineScore + $delta = [math]::Round(([double]$skillScore - [double]$baselineScore), 1) } if ($succeeded) { # Format impact indicator with efficiency metrics $impactStr = "" if ($delta -ne $null) { - $impactDirection = if ($delta -ge 0) { "↑" } else { "↓" } - $impactStr = " [baseline: $($baselineScore.ToString('F1'))% → skill: $($skillScore.ToString('F1'))% $impactDirection $($delta.ToString('+0.0;-0.0'))%]" + if ($delta -gt 0) { + $impactDirection = "↑" + $deltaText = "+$($delta.ToString('F1'))" + } + elseif ($delta -lt 0) { + $impactDirection = "↓" + $deltaText = $delta.ToString('F1') + } + else { + $impactDirection = "=" + $deltaText = "0.0" + } + $impactStr = " [baseline: $($baselineScore.ToString('F1'))% → skill: $($skillScore.ToString('F1'))% $impactDirection $deltaText%]" } elseif ($skillScore) { $impactStr = " [skill: $($skillScore.ToString('F1'))%]" @@ -1417,7 +1372,7 @@ if ($Workers -eq 1) { foreach ($skillDir in $skillDirs) { $skillIndex++ - $result = & $scriptBlock $skillDir $experimentResultsDir $ResultsRoot $skillIndex $totalSkills $PSScriptRoot $requiresRustCustomGrader $customGraderPluginDir + $result = & $scriptBlock $skillDir $experimentResultsDir $ResultsRoot $skillIndex $totalSkills $vallyExe $Model $GraderModel $results += $result $skillTimings += $result.Duration @@ -1468,13 +1423,13 @@ else { [scriptblock]$RunnerScript, [Parameter(Mandatory = $true)] - [string]$TestsRoot, + [string]$VallyExe, - [Parameter(Mandatory = $false)] - [bool]$RequiresRustCustomGrader = $false, + [Parameter(Mandatory = $true)] + [string]$Model, - [Parameter(Mandatory = $false)] - [string]$CustomGraderPluginDir = "" + [Parameter(Mandatory = $true)] + [string]$GraderModel ) if ($Queue.Count -eq 0) { @@ -1482,7 +1437,7 @@ else { } $nextSkillDir = $Queue.Dequeue() - $newJob = Start-Job -ScriptBlock $RunnerScript -ArgumentList $nextSkillDir, $ExpResultsDir, $ResRoot, $NextIndex, $TotalCount, $TestsRoot, $RequiresRustCustomGrader, $CustomGraderPluginDir + $newJob = Start-Job -ScriptBlock $RunnerScript -ArgumentList $nextSkillDir, $ExpResultsDir, $ResRoot, $NextIndex, $TotalCount, $VallyExe, $Model, $GraderModel return @{ Job = $newJob @@ -1494,7 +1449,7 @@ else { # Seed up to worker limit. while ($activeJobs.Count -lt $Workers -and $pendingSkills.Count -gt 0) { $skillIndex++ - $jobInfo = Start-NextExperimentJob -Queue $pendingSkills -NextIndex $skillIndex -ExpResultsDir $experimentResultsDir -ResRoot $ResultsRoot -TotalCount $totalSkills -RunnerScript $scriptBlock -TestsRoot $PSScriptRoot -RequiresRustCustomGrader $requiresRustCustomGrader -CustomGraderPluginDir $customGraderPluginDir + $jobInfo = Start-NextExperimentJob -Queue $pendingSkills -NextIndex $skillIndex -ExpResultsDir $experimentResultsDir -ResRoot $ResultsRoot -TotalCount $totalSkills -RunnerScript $scriptBlock -VallyExe $vallyExe -Model $Model -GraderModel $GraderModel if ($jobInfo) { $activeJobs += $jobInfo Write-Host " queued [$($jobInfo.SkillIndex)/$totalSkills] $($jobInfo.Skill) (active: $($activeJobs.Count)/$Workers)" -ForegroundColor DarkCyan @@ -1530,7 +1485,7 @@ else { if ($pendingSkills.Count -gt 0) { $skillIndex++ - $nextJobInfo = Start-NextExperimentJob -Queue $pendingSkills -NextIndex $skillIndex -ExpResultsDir $experimentResultsDir -ResRoot $ResultsRoot -TotalCount $totalSkills -RunnerScript $scriptBlock -TestsRoot $PSScriptRoot -RequiresRustCustomGrader $requiresRustCustomGrader -CustomGraderPluginDir $customGraderPluginDir + $nextJobInfo = Start-NextExperimentJob -Queue $pendingSkills -NextIndex $skillIndex -ExpResultsDir $experimentResultsDir -ResRoot $ResultsRoot -TotalCount $totalSkills -RunnerScript $scriptBlock -VallyExe $vallyExe -Model $Model -GraderModel $GraderModel if ($nextJobInfo) { $activeJobs += $nextJobInfo Write-Host " queued [$($nextJobInfo.SkillIndex)/$totalSkills] $($nextJobInfo.Skill) (active: $($activeJobs.Count)/$Workers)" -ForegroundColor DarkCyan diff --git a/tests/scenarios/_shared/vally/grader-plugins/rust-cargo-build-failure/package.json b/tests/scenarios/_shared/vally/grader-plugins/rust-cargo-build-failure/package.json index 11d91a2a..278b1707 100644 --- a/tests/scenarios/_shared/vally/grader-plugins/rust-cargo-build-failure/package.json +++ b/tests/scenarios/_shared/vally/grader-plugins/rust-cargo-build-failure/package.json @@ -10,7 +10,7 @@ "typecheck": "tsc --noEmit" }, "devDependencies": { - "@microsoft/vally": "^0.10.0", + "@microsoft/vally": "^0.14.0", "@types/node": "^20.0.0", "typescript": "^5.4.5" }, diff --git a/tests/scenarios/agent-framework-azure-ai-py/vally/eval.yaml b/tests/scenarios/agent-framework-azure-ai-py/vally/eval.yaml index a251f9a7..f4b9896d 100644 --- a/tests/scenarios/agent-framework-azure-ai-py/vally/eval.yaml +++ b/tests/scenarios/agent-framework-azure-ai-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_provider_agent prompt: |- diff --git a/tests/scenarios/agent-framework-azure-ai-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/agent-framework-azure-ai-py/vally/skill_effectiveness_experiment.yaml index 4e21e99f..1b848f1f 100644 --- a/tests/scenarios/agent-framework-azure-ai-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/agent-framework-azure-ai-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: agent-framework-azure-ai-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/agent-framework-azure-ai-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-contentsafety-py/vally/eval.yaml b/tests/scenarios/azure-ai-contentsafety-py/vally/eval.yaml index d0cb57dd..bc726b8f 100644 --- a/tests/scenarios/azure-ai-contentsafety-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-contentsafety-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: text_analysis_api_key prompt: |- diff --git a/tests/scenarios/azure-ai-contentsafety-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-contentsafety-py/vally/skill_effectiveness_experiment.yaml index bdaab6dc..8d890df5 100644 --- a/tests/scenarios/azure-ai-contentsafety-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-contentsafety-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-contentsafety-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-contentsafety-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-contentunderstanding-py/vally/eval.yaml b/tests/scenarios/azure-ai-contentunderstanding-py/vally/eval.yaml index 4f1c1c85..2bb0e101 100644 --- a/tests/scenarios/azure-ai-contentunderstanding-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-contentunderstanding-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_client_authentication prompt: |- diff --git a/tests/scenarios/azure-ai-contentunderstanding-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-contentunderstanding-py/vally/skill_effectiveness_experiment.yaml index a214c1d4..59f71072 100644 --- a/tests/scenarios/azure-ai-contentunderstanding-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-contentunderstanding-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-contentunderstanding-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-contentunderstanding-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-language-conversations-py/vally/eval.yaml b/tests/scenarios/azure-ai-language-conversations-py/vally/eval.yaml index 2a89ad8b..98cbf6b9 100644 --- a/tests/scenarios/azure-ai-language-conversations-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-language-conversations-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: clu_basic_defaultazurecredential prompt: |- diff --git a/tests/scenarios/azure-ai-language-conversations-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-language-conversations-py/vally/skill_effectiveness_experiment.yaml index e3fed463..e652e8b2 100644 --- a/tests/scenarios/azure-ai-language-conversations-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-language-conversations-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-language-conversations-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-language-conversations-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-ml-py/vally/eval.yaml b/tests/scenarios/azure-ai-ml-py/vally/eval.yaml index 27e22253..afa2cda2 100644 --- a/tests/scenarios/azure-ai-ml-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-ml-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: mlclient_creation_with_env_vars prompt: |- diff --git a/tests/scenarios/azure-ai-ml-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-ml-py/vally/skill_effectiveness_experiment.yaml index 6bfdbc08..8476b186 100644 --- a/tests/scenarios/azure-ai-ml-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-ml-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-ml-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-ml-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-projects-py/vally/eval.yaml b/tests/scenarios/azure-ai-projects-py/vally/eval.yaml index 82001956..0d1d1828 100644 --- a/tests/scenarios/azure-ai-projects-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-projects-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: client_creation prompt: |- diff --git a/tests/scenarios/azure-ai-projects-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-projects-py/vally/skill_effectiveness_experiment.yaml index 7c9b72b2..297a4511 100644 --- a/tests/scenarios/azure-ai-projects-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-projects-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-projects-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-projects-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-textanalytics-py/vally/eval.yaml b/tests/scenarios/azure-ai-textanalytics-py/vally/eval.yaml index 32003c25..fd99c5b0 100644 --- a/tests/scenarios/azure-ai-textanalytics-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-textanalytics-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_sentiment_analysis prompt: |- diff --git a/tests/scenarios/azure-ai-textanalytics-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-textanalytics-py/vally/skill_effectiveness_experiment.yaml index fe321b6d..41fa68be 100644 --- a/tests/scenarios/azure-ai-textanalytics-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-textanalytics-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-textanalytics-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-textanalytics-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-transcription-py/vally/eval.yaml b/tests/scenarios/azure-ai-transcription-py/vally/eval.yaml index 7087a39b..23582494 100644 --- a/tests/scenarios/azure-ai-transcription-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-transcription-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: core_workflow prompt: |- diff --git a/tests/scenarios/azure-ai-transcription-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-transcription-py/vally/skill_effectiveness_experiment.yaml index 0ccde5ba..fa8b63e0 100644 --- a/tests/scenarios/azure-ai-transcription-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-transcription-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-transcription-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-transcription-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-translation-document-py/vally/eval.yaml b/tests/scenarios/azure-ai-translation-document-py/vally/eval.yaml index c4ac9368..cda2e9f7 100644 --- a/tests/scenarios/azure-ai-translation-document-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-translation-document-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_batch_translation prompt: |- diff --git a/tests/scenarios/azure-ai-translation-document-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-translation-document-py/vally/skill_effectiveness_experiment.yaml index 5d20f4b4..7292bc4c 100644 --- a/tests/scenarios/azure-ai-translation-document-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-translation-document-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-translation-document-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-translation-document-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-translation-text-py/vally/eval.yaml b/tests/scenarios/azure-ai-translation-text-py/vally/eval.yaml index 6bf67cbf..69296fa4 100644 --- a/tests/scenarios/azure-ai-translation-text-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-translation-text-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_text_translation prompt: |- diff --git a/tests/scenarios/azure-ai-translation-text-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-translation-text-py/vally/skill_effectiveness_experiment.yaml index 82937e96..dbca5827 100644 --- a/tests/scenarios/azure-ai-translation-text-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-translation-text-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-translation-text-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-translation-text-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/eval.yaml b/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/eval.yaml index ecba2c6e..381de0c2 100644 --- a/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: image_captioning_from_url prompt: |- diff --git a/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/skill_effectiveness_experiment.yaml index aa5cbb8d..ecd4a609 100644 --- a/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-vision-imageanalysis-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-vision-imageanalysis-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-vision-imageanalysis-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-ai-voicelive-py/vally/eval.yaml b/tests/scenarios/azure-ai-voicelive-py/vally/eval.yaml index 4dc25606..7a73e69d 100644 --- a/tests/scenarios/azure-ai-voicelive-py/vally/eval.yaml +++ b/tests/scenarios/azure-ai-voicelive-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_session_setup prompt: |- diff --git a/tests/scenarios/azure-ai-voicelive-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-ai-voicelive-py/vally/skill_effectiveness_experiment.yaml index 0b649bb3..3a2e8a99 100644 --- a/tests/scenarios/azure-ai-voicelive-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-ai-voicelive-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-ai-voicelive-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-ai-voicelive-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-appconfiguration-py/vally/eval.yaml b/tests/scenarios/azure-appconfiguration-py/vally/eval.yaml index bf76bce6..50bb483d 100644 --- a/tests/scenarios/azure-appconfiguration-py/vally/eval.yaml +++ b/tests/scenarios/azure-appconfiguration-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: core_workflow prompt: |- diff --git a/tests/scenarios/azure-appconfiguration-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-appconfiguration-py/vally/skill_effectiveness_experiment.yaml index 142f5405..9cc5ada6 100644 --- a/tests/scenarios/azure-appconfiguration-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-appconfiguration-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-appconfiguration-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-appconfiguration-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-containerregistry-py/vally/eval.yaml b/tests/scenarios/azure-containerregistry-py/vally/eval.yaml index ff3709cb..b4b7076f 100644 --- a/tests/scenarios/azure-containerregistry-py/vally/eval.yaml +++ b/tests/scenarios/azure-containerregistry-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_repository_listing prompt: |- diff --git a/tests/scenarios/azure-containerregistry-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-containerregistry-py/vally/skill_effectiveness_experiment.yaml index 6710601c..7b7f5082 100644 --- a/tests/scenarios/azure-containerregistry-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-containerregistry-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-containerregistry-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-containerregistry-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-cosmos-db-py/vally/eval.yaml b/tests/scenarios/azure-cosmos-db-py/vally/eval.yaml index 913d8591..9326f1b9 100644 --- a/tests/scenarios/azure-cosmos-db-py/vally/eval.yaml +++ b/tests/scenarios/azure-cosmos-db-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: dual_auth_client_setup prompt: |- diff --git a/tests/scenarios/azure-cosmos-db-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-cosmos-db-py/vally/skill_effectiveness_experiment.yaml index 9a952329..4881715a 100644 --- a/tests/scenarios/azure-cosmos-db-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-cosmos-db-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-cosmos-db-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-cosmos-db-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-cosmos-py/vally/eval.yaml b/tests/scenarios/azure-cosmos-py/vally/eval.yaml index 65caece2..5c3e288a 100644 --- a/tests/scenarios/azure-cosmos-py/vally/eval.yaml +++ b/tests/scenarios/azure-cosmos-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_aad_client prompt: |- diff --git a/tests/scenarios/azure-cosmos-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-cosmos-py/vally/skill_effectiveness_experiment.yaml index 29714ed4..689abe1b 100644 --- a/tests/scenarios/azure-cosmos-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-cosmos-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-cosmos-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-cosmos-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-cosmos-rust/vally/eval.yaml b/tests/scenarios/azure-cosmos-rust/vally/eval.yaml index 7bb5d964..05acbe2c 100644 --- a/tests/scenarios/azure-cosmos-rust/vally/eval.yaml +++ b/tests/scenarios/azure-cosmos-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-cosmos-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-cosmos-crud-operations prompt: | @@ -72,22 +88,6 @@ stimuli: - "**/target/**" - "**/*.rlib" - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-cosmos-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-cosmos-rust @@ -146,44 +146,28 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: CosmosClient Builder Pattern type: prompt weight: 1.0 - model: gpt-5.5 + model: ${GRADER_MODEL=claude-sonnet-4.6} prompt: > CosmosClient created via CosmosClient::builder() .build(account, RoutingStrategy::ProximityTo(region)).await? @@ -192,7 +176,7 @@ stimuli: - name: CRUD Operations type: prompt weight: 1.0 - model: gpt-5.5 + model: ${GRADER_MODEL=claude-sonnet-4.6} prompt: > Create: container.create_item(partition_key, id, item, None).await? Read: container.read_item(partition_key, id, None).await? @@ -202,7 +186,7 @@ stimuli: - name: Partition Key Management type: prompt weight: 1.0 - model: gpt-5.5 + model: ${GRADER_MODEL=claude-sonnet-4.6} prompt: > Partition key is required parameter in all item operations Partition key value passed as string to operations @@ -211,7 +195,7 @@ stimuli: - name: Patch Operations type: prompt weight: 1.0 - model: gpt-5.5 + model: ${GRADER_MODEL=claude-sonnet-4.6} prompt: > Patch operations use PatchInstructions::from(vec![...]) Operations created with PatchOperation::set(path, value) @@ -220,7 +204,7 @@ stimuli: - name: Response Conversion and Error Handling type: prompt weight: 1.0 - model: gpt-5.5 + model: ${GRADER_MODEL=claude-sonnet-4.6} prompt: > Responses converted with into_model() for deserialization Error handling with match and error extraction diff --git a/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index 9ccbd98f..00000000 --- a/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,229 +0,0 @@ -name: azure-cosmos-rust-eval -description: Evaluation suite for azure-data-cosmos-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-cosmos-crud-operations - prompt: | - Write a Rust program named rust-cosmos-ops that demonstrates complete CRUD operations - and NoSQL document patterns with Azure Cosmos DB: - - Setup operations: - 1. Create a CosmosClient using builder pattern with ProximityTo routing strategy - 2. Get a database client for "myDatabase" - 3. Get a container client for "myContainer" - - CRUD operations: - 1. Create an item with partition key and document fields using create_item() - 2. Read an item by partition key and ID using read_item() - 3. Update an item by replacing it with replace_item() - 4. Delete an item using delete_item() - 5. Handle partition key requirements in all operations - - Advanced operations: - 1. Patch an item using patch_item() with PatchInstructions - 2. Use PatchOperation::set() to update specific fields - 3. Extract model from responses using into_model() - - Data structures: - 1. Define a struct Item with id, partition_key, and value fields - 2. Use serde::Serialize and serde::Deserialize traits - 3. Demonstrate serde_json for JSON operations - - Demonstrate: - - CosmosClient::builder().build(account, routing_strategy).await pattern - - Container hierarchy: client -> database -> container - - Partition key as required parameter in all item operations - - Result-based error handling with ErrorResponse extraction - - TokenCredential authentication (DeveloperToolsCredential/ManagedIdentityCredential) - - Async/await with Tokio runtime - - into_model() for response conversion - - The program should compile and execute successfully, demonstrating the complete - Cosmos DB NoSQL document lifecycle with proper partition key management. - - rubric: - - "Uses official azure_data_cosmos SDK for NoSQL operations." - - "Creates CosmosClient with builder pattern and ProximityTo routing strategy." - - "Navigates client hierarchy: client -> database_client() -> container_client()." - - "Create items with partition key and ID using create_item()." - - "Read items by partition key and ID using read_item()." - - "Update items with replace_item() for full updates." - - "Delete items using delete_item() with partition key." - - "Patch items with PatchInstructions and PatchOperation for partial updates." - - "Extracts partition key and ID from ResourceExt trait methods." - - "Uses TokenCredential for secure authentication." - - "Async/await with Tokio and proper Result-based error propagation." - - "Code compiles without warnings." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/src/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-cosmos-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-cosmos-rust - graders: - - type: prompt - name: "Cosmos DB CRUD completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - CosmosClient creation with builder and ProximityTo routing - - Database and container client navigation - - Create item with partition key and ID - - Read item by partition key - - Replace item for full updates - - Delete item by partition key - - Patch item with PatchInstructions - - PatchOperation::set() for field updates - - Response conversion with into_model() - - Error handling with ErrorResponse - - TokenCredential authentication - - Async/await with Tokio - scoring: scale_1_5 - - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: CosmosClient Builder Pattern - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - CosmosClient created via CosmosClient::builder() - .build(account, RoutingStrategy::ProximityTo(region)).await? - Database accessed via client.database_client(name) - Container accessed via database.container_client(name).await - - name: CRUD Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Create: container.create_item(partition_key, id, item, None).await? - Read: container.read_item(partition_key, id, None).await? - Update: container.replace_item(partition_key, id, item, None).await? - Delete: container.delete_item(partition_key, id, None).await? - All require partition_key as first parameter - - name: Partition Key Management - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Partition key is required parameter in all item operations - Partition key value passed as string to operations - Document fields include partition_key field for consistency - Responses contain partition key information - - name: Patch Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Patch operations use PatchInstructions::from(vec![...]) - Operations created with PatchOperation::set(path, value) - Patched items obtained via container.patch_item(...).await? - Patch returns response with into_model() conversion - - name: Response Conversion and Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Responses converted with into_model() for deserialization - Error handling with match and error extraction - No .unwrap() on fallible operations - Result propagated through main with ? operator diff --git a/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_experiment.yaml index d496a040..df7cde14 100644 --- a/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-cosmos-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-cosmos-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-cosmos-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-data-tables-py/vally/eval.yaml b/tests/scenarios/azure-data-tables-py/vally/eval.yaml index 5ebd3ea8..c2564298 100644 --- a/tests/scenarios/azure-data-tables-py/vally/eval.yaml +++ b/tests/scenarios/azure-data-tables-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_table_service_client prompt: |- diff --git a/tests/scenarios/azure-data-tables-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-data-tables-py/vally/skill_effectiveness_experiment.yaml index c32898ed..fb9ace87 100644 --- a/tests/scenarios/azure-data-tables-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-data-tables-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-data-tables-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-data-tables-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-eventgrid-py/vally/eval.yaml b/tests/scenarios/azure-eventgrid-py/vally/eval.yaml index 7daab541..36c311cf 100644 --- a/tests/scenarios/azure-eventgrid-py/vally/eval.yaml +++ b/tests/scenarios/azure-eventgrid-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_cloudevent_publish prompt: |- diff --git a/tests/scenarios/azure-eventgrid-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-eventgrid-py/vally/skill_effectiveness_experiment.yaml index 2ff6c2ce..812ed6f1 100644 --- a/tests/scenarios/azure-eventgrid-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-eventgrid-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-eventgrid-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-eventgrid-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-eventhub-py/vally/eval.yaml b/tests/scenarios/azure-eventhub-py/vally/eval.yaml index b0917f76..5390adf3 100644 --- a/tests/scenarios/azure-eventhub-py/vally/eval.yaml +++ b/tests/scenarios/azure-eventhub-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: producer_batch_send prompt: |- diff --git a/tests/scenarios/azure-eventhub-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-eventhub-py/vally/skill_effectiveness_experiment.yaml index 89377d60..431e037e 100644 --- a/tests/scenarios/azure-eventhub-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-eventhub-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-eventhub-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-eventhub-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-eventhub-rust/vally/eval.yaml b/tests/scenarios/azure-eventhub-rust/vally/eval.yaml index 5d19ead7..fb4ad512 100644 --- a/tests/scenarios/azure-eventhub-rust/vally/eval.yaml +++ b/tests/scenarios/azure-eventhub-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-eventhub-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-eventhub-producer-consumer prompt: | @@ -66,22 +82,6 @@ stimuli: - "**/*.rlib" - "**/*.rmeta" - "**/*.d" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-eventhub-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-eventhub-rust @@ -138,39 +138,23 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: ProducerClient Pattern type: prompt diff --git a/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index 3176af21..00000000 --- a/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,210 +0,0 @@ -name: azure-eventhub-rust-eval -description: Evaluation suite for azure-eventhub-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-eventhub-producer-consumer - prompt: | - Write a Rust program named rust-eventhub-demo that demonstrates producer and consumer patterns - for Azure Event Hubs: - - Producer operations: - 1. Create a ProducerClient with namespace credentials - 2. Send single events to the hub - 3. Create a batch and add multiple events to it - 4. Send the batch - 5. Handle backpressure and errors during sending - - Consumer operations: - 1. Create a ConsumerClient with the same credentials - 2. Open a receiver on partition "0" - 3. Set the start position to StartLocation::Earliest - 4. Stream events from the receiver - 5. Extract and display event body data - 6. Handle errors per event in the stream - - Program should demonstrate: - - DeveloperToolsCredential or ManagedIdentityCredential usage - - ProducerClient::builder() pattern for producer initialization - - ConsumerClient::builder() pattern for consumer initialization - - Single event sending via producer.send_event(vec![...], None).await - - Batch creation and event addition via create_batch() and try_add_event_data() - - Receiver creation on specific partition with start position configuration - - Stream processing with futures::stream::StreamExt and while let Some(...) pattern - - Proper async/await and error handling with Result types - - The program should compile and execute successfully, demonstrating the complete - event hub producer-consumer workflow with proper credential-based authentication. - - rubric: - - "Implements both ProducerClient and ConsumerClient from official azure_messaging_eventhubs SDK." - - "Uses TokenCredential-based authentication (DeveloperToolsCredential or ManagedIdentityCredential)." - - "ProducerClient sends single events and batch events to Event Hub." - - "ConsumerClient receives events from specific partition with configurable start position." - - "Demonstrates async/await Rust with Tokio runtime." - - "Event stream processing with proper error handling per event." - - "Code compiles with cargo check without warnings." - - "Builder pattern used for both client initialization." - - "StartLocation configuration for consumer start position (Earliest/Latest)." - - "Proper extraction of event body data from stream." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/src/**/*.rs" - - "**/examples/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - - "**/*.d" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-eventhub-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-eventhub-rust - graders: - - type: prompt - name: "EventHub producer-consumer completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - ProducerClient creation with builder pattern - - Single event sending: producer.send_event(vec![...], None).await - - Batch operations: create_batch() and try_add_event_data() - - ConsumerClient creation with builder pattern - - Receiver creation: open_receiver_on_partition() - - StartPosition configuration with StartLocation::Earliest - - Event stream processing with futures::stream::StreamExt - - Error handling for individual events in stream - - TokenCredential authentication - - Async/await patterns throughout - scoring: scale_1_5 - - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: ProducerClient Pattern - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - ProducerClient created via ProducerClient::builder() - .open(namespace, eventhub_name, credential).await? - Sends single events via send_event(data, None).await - Creates batches via create_batch(None).await and adds events via try_add_event_data() - - name: ConsumerClient Pattern - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - ConsumerClient created via ConsumerClient::builder() - .open(namespace, eventhub_name, credential).await? - Opens receiver on partition via open_receiver_on_partition() with partition ID as string - Sets StartPosition with StartLocation::Earliest or Latest - - name: Event Stream Processing - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Event stream obtained via receiver.stream_events() - Stream processing with while let Some(event_result) = stream.next().await - Match on Ok/Err for per-event error handling - Uses futures::stream::StreamExt trait for stream operations - - name: Credential Management - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Uses DeveloperToolsCredential for local dev or ManagedIdentityCredential for production - Credential is cloned when passed to multiple clients - No hardcoded credentials in source code diff --git a/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_experiment.yaml index 5e035863..92f8b354 100644 --- a/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-eventhub-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-eventhub-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-eventhub-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-identity-py/vally/eval.yaml b/tests/scenarios/azure-identity-py/vally/eval.yaml index ab7a3336..68eb923e 100644 --- a/tests/scenarios/azure-identity-py/vally/eval.yaml +++ b/tests/scenarios/azure-identity-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: default_credential_basic prompt: |- diff --git a/tests/scenarios/azure-identity-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-identity-py/vally/skill_effectiveness_experiment.yaml index 1f654531..4b0ae8e2 100644 --- a/tests/scenarios/azure-identity-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-identity-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-identity-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-identity-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-identity-rust/vally/eval.yaml b/tests/scenarios/azure-identity-rust/vally/eval.yaml index 535f4bdb..bc5bf13c 100644 --- a/tests/scenarios/azure-identity-rust/vally/eval.yaml +++ b/tests/scenarios/azure-identity-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-identity-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-identity-credentials prompt: | @@ -73,22 +89,6 @@ stimuli: - "**/target/**" - "**/*.rlib" - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-identity-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-identity-rust @@ -145,38 +145,23 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: DeveloperToolsCredential type: prompt weight: 1.0 diff --git a/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index 2f1993cd..00000000 --- a/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,252 +0,0 @@ -name: azure-identity-rust-eval -description: Evaluation suite for azure-identity-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-identity-credentials - prompt: | - Write a Rust program named rust-identity-demo that demonstrates all major credential - types from the Azure Identity SDK: - - Development credentials: - 1. Create a DeveloperToolsCredential with DeveloperToolsCredential::new(None)? - 2. Use it to authenticate (attempts Azure CLI, then Azure Developer CLI) - 3. Clone and pass to multiple Azure SDK clients - - Production credentials: - 1. Create a ManagedIdentityCredential with ManagedIdentityCredential::new(None)? - 2. Demonstrate system-assigned managed identity - 3. Show how to use with Azure-hosted resources (VMs, App Service, Functions, AKS) - - Service principal credentials: - 1. Create a ClientSecretCredential with tenant_id, client_id, and client_secret - 2. Demonstrate configuration from environment variables - 3. Show error handling for missing credentials - - Credential capabilities: - 1. Pass credentials to SecretClient or KeyClient constructors - 2. Clone credentials for use with multiple clients - 3. Handle credential errors (authentication failures, missing env vars) - - Demonstrate: - - DeveloperToolsCredential for local development - - ManagedIdentityCredential for Azure-hosted workloads - - ClientSecretCredential for CI/CD and service accounts - - Credential cloning for multi-client scenarios - - TokenCredential trait abstraction - - Environment variable usage (AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET) - - Error handling with Result-based patterns - - Proper async/await with Tokio runtime - - No hardcoded secrets - - The program should compile and execute successfully, demonstrating the full - credential landscape and how to choose credentials for different deployment scenarios. - - rubric: - - "Uses official azure_identity SDK for all credential types." - - "Demonstrates DeveloperToolsCredential for local development." - - "Demonstrates ManagedIdentityCredential for Azure-hosted resources." - - "Demonstrates ClientSecretCredential with tenant, client, and secret." - - "Credentials properly cloned when passing to multiple clients." - - "Environment variables used for sensitive configuration (never hardcoded)." - - "Credentials passed as Some(credential) to SDK clients." - - "TokenCredential trait used for credential abstraction." - - "Error handling for credential creation and missing env vars." - - "Documentation or comments explain when each credential type is appropriate." - - "Async/await with Tokio runtime." - - "Code compiles without warnings." - - "Result-based error propagation with ? operator." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/src/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-identity-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-identity-rust - graders: - - type: prompt - name: "Identity credential completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - DeveloperToolsCredential creation and usage - - ManagedIdentityCredential creation and usage - - ClientSecretCredential with tenant_id, client_id, client_secret - - Credential cloning for multiple clients - - TokenCredential trait for abstraction - - Environment variable usage (AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET) - - Error handling for credential creation - - Documentation on credential selection per scenario - - Async/await with Tokio runtime - - No hardcoded secrets in source - scoring: scale_1_5 - - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: DeveloperToolsCredential - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - DeveloperToolsCredential created via DeveloperToolsCredential::new(None)? - Attempts Azure CLI (az login) first, then Azure Developer CLI (azd auth login) - Perfect for local development; never used in production - - name: ManagedIdentityCredential - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - ManagedIdentityCredential created via ManagedIdentityCredential::new(None)? - System-assigned managed identity for Azure-hosted workloads - Used in VMs, App Service, Functions, AKS, Container Instances - No environment variables needed; identity managed by Azure - - name: ClientSecretCredential - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - ClientSecretCredential created with three parameters: - tenant_id (string), client_id (string), client_secret (string) - Typically sourced from environment variables to avoid hardcoding - Used for CI/CD pipelines and service principal authentication - - name: Credential Cloning - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Credentials are Arc-wrapped and support cloning - Pass credential.clone() to multiple client constructors - Single credential instance can authenticate multiple SDK clients - Reduces overhead and maintains consistent auth context - - name: TokenCredential Trait - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - All credential types implement TokenCredential trait - Allows generic code that accepts any credential type - SDK clients accept Some(credential) where credential: impl TokenCredential - - name: Environment Variable Configuration - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - AZURE_TENANT_ID: Tenant ID for service principal auth - AZURE_CLIENT_ID: Client/application ID - AZURE_CLIENT_SECRET: Client secret (never commit to source control) - std::env::var() used to read environment variables - - name: Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Credential creation returns Result - Missing or invalid credentials generate errors - Environment variable errors handled with match or ? - No unwrap() on credential creation - - name: Scenario Documentation - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Code includes comments explaining when each credential is appropriate - DeveloperToolsCredential for local development - ManagedIdentityCredential for production on Azure - ClientSecretCredential for CI/CD and service accounts diff --git a/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_experiment.yaml index 5acccf9d..ff3aa998 100644 --- a/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-identity-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-identity-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-identity-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-keyvault-certificates-rust/vally/eval.yaml b/tests/scenarios/azure-keyvault-certificates-rust/vally/eval.yaml index 38b62223..ca45e4d7 100644 --- a/tests/scenarios/azure-keyvault-certificates-rust/vally/eval.yaml +++ b/tests/scenarios/azure-keyvault-certificates-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-certificates-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-keyvault-certificates-operations prompt: | @@ -66,22 +82,6 @@ stimuli: - "**/target/**" - "**/*.rlib" - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-certificates-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-keyvault-certificates-rust @@ -142,39 +142,23 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: CertificateClient Creation type: prompt diff --git a/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index 6d0dd5d1..00000000 --- a/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,248 +0,0 @@ -name: azure-keyvault-certificates-rust-eval -description: Evaluation suite for azure-security-keyvault-certificates-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-keyvault-certificates-operations - prompt: | - Create a single Rust binary crate named rust-keyvault-certs that demonstrates a compact, - end-to-end Azure Key Vault certificate lifecycle with one happy-path implementation. - - Use these exact building blocks in the code: - - `CertificateClient::new()` with vault URL and TokenCredential - - `DeveloperToolsCredential` for local development - - `CertificatePolicy` with `X509CertificateProperties` - - subject `CN=example.com` - - `IssuerParameters` with name `Self` - - `CreateCertificateParameters` - - `begin_create_certificate()` returning a poller - - direct `.await` on the poller for completion - - `get_certificate()` - - `UpdateCertificatePropertiesParameters` with tags - - `delete_certificate()` - - `list_certificate_properties()` with `TryStreamExt::try_next()` - - `ResourceExt` to extract certificate name and version - - `KeyClient` signing example with `SignParameters` and `SignatureAlgorithm` - - Constraints: - - Keep the solution compact: one crate, minimal helpers, no unnecessary abstractions. - - Do not inspect generated crate internals or perform broad SDK archaeology. - - Use the skill guidance and README-style patterns directly. - - Assume Key Vault provisioning already exists; do not add Azure CLI setup code. - - Use async Tokio plus idiomatic `Result` error propagation. - - Run `cargo build` and `cargo clippy -- -D warnings` near the end before finishing. - - rubric: - - "Uses official azure_security_keyvault_certificates SDK." - - "Creates CertificateClient with vault URL and TokenCredential." - - "Defines CertificatePolicy with X509CertificateProperties and subject." - - "Sets IssuerParameters with 'Self' for self-signed certificates." - - "Creates certificates with begin_create_certificate() returning Poller." - - "Awaits Poller directly for LRO completion." - - "Gets certificates with get_certificate() and converts with into_model()." - - "Updates certificate properties with tags." - - "Deletes certificates with delete_certificate()." - - "Lists certificates with pagination using list_certificate_properties()." - - "Uses ResourceExt trait to extract name and version." - - "Demonstrates certificate key access for signing operations." - - "Handles LRO errors gracefully." - - "Uses TokenCredential for secure authentication." - - "Async/await with Tokio and proper error handling." - - "Code compiles without warnings." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/src/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-certificates-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-keyvault-certificates-rust - graders: - - type: prompt - name: "Key Vault certificates completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - CertificateClient creation with vault URL and credential - - CertificatePolicy with X509CertificateProperties - - Subject set to CN=example.com format - - IssuerParameters with "Self" for self-signed - - CreateCertificateParameters wrapping policy - - begin_create_certificate() returning Poller - - Direct .await on Poller (IntoFuture pattern) - - Get certificate and into_model() conversion - - Update certificate properties with tags - - Delete certificate operation - - List certificates with Pager pagination - - ResourceExt for name/version extraction - - TokenCredential authentication - - Async/await throughout - scoring: scale_1_5 - - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - timeout: 3m - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: CertificateClient Creation - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - CertificateClient created via CertificateClient::new(vault_url, credential, None) - Vault URL formatted as https://vault_name.vault.azure.net/ - Credential is TokenCredential (DeveloperToolsCredential or ManagedIdentityCredential) - - name: Certificate Policy Definition - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - CertificatePolicy includes x509_certificate_properties and issuer_parameters - X509CertificateProperties has subject: Some("CN=example.com".into()) - IssuerParameters has name: Some("Self".into()) for self-signed certificates - - name: Long-Running Operation Pattern - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - begin_create_certificate() returns Poller - Poller implements IntoFuture trait - Direct await on Poller: client.begin_create_certificate(...)?.await? - Awaiting completes the LRO and returns the certificate - - name: Certificate Management Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Get: client.get_certificate(name, None).await?.into_model()? - Update: client.update_certificate_properties(name, params.try_into()?, None).await? - Delete: client.delete_certificate(name, None).await? - List: client.list_certificate_properties(None)? returns Pager - - name: Certificate Properties Update - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - UpdateCertificatePropertiesParameters with tags: Some(HashMap) - Tags stored as Vec of key-value pairs - Uses #[allow(clippy::needless_update)] with ..Default::default() - Properties persist across certificate versions - - name: Pagination and Resource Extraction - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - List returns Pager, iterate with let mut pager = ...; while let Some(cert) = pager.try_next().await? - ResourceExt provides cert.resource_id()? with name and version - Uses TryStreamExt trait from futures crate - - name: Certificate Key Integration - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Certificates contain embedded keys for signing operations - KeyClient can sign with certificate name as key reference - Demonstrates that certificates are more than just X.509 data - - name: Async Runtime and Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Uses #[tokio::main] on main function - All I/O awaited including LRO completion - No .unwrap() on Result types - Proper error propagation with ? operator diff --git a/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_experiment.yaml index 2457d4f2..74f314e1 100644 --- a/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-keyvault-certificates-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-keyvault-certificates-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-certificates-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-keyvault-keys-rust/vally/eval.yaml b/tests/scenarios/azure-keyvault-keys-rust/vally/eval.yaml index 7af37d6f..3ef8951d 100644 --- a/tests/scenarios/azure-keyvault-keys-rust/vally/eval.yaml +++ b/tests/scenarios/azure-keyvault-keys-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-keys-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-keyvault-keys-operations prompt: | @@ -80,22 +96,6 @@ stimuli: - "**/target/**" - "**/*.rlib" - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-keys-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-keyvault-keys-rust @@ -155,39 +155,23 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: KeyClient Creation type: prompt diff --git a/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index d9ab8e9b..00000000 --- a/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,253 +0,0 @@ -name: azure-keyvault-keys-rust-eval -description: Evaluation suite for azure-security-keyvault-keys-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-keyvault-keys-operations - prompt: | - Write a Rust program named rust-keyvault-keys that demonstrates cryptographic key - management and envelope encryption with Azure Key Vault: - - Key management operations: - 1. Create a KeyClient with vault URL and TokenCredential - 2. Create EC and RSA keys with CreateKeyParameters - 3. Get a key with get_key() - 4. Update key properties with UpdateKeyPropertiesParameters and tags - 5. Delete a key with delete_key() - 6. List keys with list_key_properties() and pagination - - Cryptographic operations: - 1. Wrap a data encryption key (DEK) with a key encryption key (KEK) using wrap_key() - 2. Use EncryptionAlgorithm::RsaOaep256 for wrapping - 3. Unwrap encrypted keys with unwrap_key() using the saved key version - 4. Demonstrate envelope encryption pattern - - Key types demonstrated: - 1. EC keys with CurveName::P256 - 2. RSA keys with key_size: 2048 or 4096 - 3. HSM-protected variants (EcHsm, RsaHsm) - - Advanced patterns: - 1. Extract resource ID components using ResourceExt trait - 2. Retain key versions for unwrap operations - 3. Handle KeyOperationParameters for wrap/unwrap operations - 4. Iterate keys with Pager and TryStreamExt - - Demonstrate: - - KeyClient::new() with vault URL and credential - - CreateKeyParameters with KeyType and curve settings - - UpdateKeyPropertiesParameters with tags - - Wrap/unwrap pattern for envelope encryption - - KeyOperationParameters with algorithm and value - - ResourceExt for name/version extraction - - Proper async/await with Tokio runtime - - Result-based error propagation - - The program should compile and execute successfully, demonstrating complete - key lifecycle management and envelope encryption workflows. - - rubric: - - "Uses official azure_security_keyvault_keys SDK." - - "Creates KeyClient with vault URL and TokenCredential." - - "Creates EC keys with CurveName parameter." - - "Creates RSA keys with key_size parameter." - - "Gets keys with get_key() and converts with into_model()." - - "Updates key properties with tags." - - "Deletes keys with delete_key()." - - "Lists keys with pagination using list_key_properties()." - - "Wraps DEK with KEK using wrap_key() and EncryptionAlgorithm." - - "Unwraps encrypted keys with unwrap_key() using key version." - - "Preserves key versions for encryption/decryption pairs." - - "Uses ResourceExt trait to extract name and version." - - "Handles wrap/unwrap errors gracefully." - - "Uses TokenCredential for secure authentication." - - "Async/await with Tokio and proper error handling." - - "Code compiles without warnings." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/src/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-keys-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-keyvault-keys-rust - graders: - - type: prompt - name: "Key Vault keys completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - KeyClient creation with vault URL and credential - - Create EC keys with CurveName::P256 - - Create RSA keys with key_size 2048 or 4096 - - Get key operation and into_model() conversion - - Update key properties with tags - - Delete key operation - - List keys with Pager pagination - - Wrap operation with EncryptionAlgorithm::RsaOaep256 - - Unwrap operation preserving key versions - - Envelope encryption pattern demonstration - - ResourceExt for name/version extraction - - TokenCredential authentication - - Async/await throughout - scoring: scale_1_5 - - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: KeyClient Creation - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - KeyClient created via KeyClient::new(vault_url, credential, None) - Vault URL formatted as https://vault_name.vault.azure.net/ - Credential is TokenCredential (DeveloperToolsCredential or ManagedIdentityCredential) - - name: Key Creation Patterns - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - EC keys: CreateKeyParameters with kty: Some(KeyType::Ec), curve: Some(CurveName::P256) - RSA keys: CreateKeyParameters with kty: Some(KeyType::Rsa), key_size: Some(2048) - Keys created via client.create_key(name, body.try_into()?, None).await? - - name: Key Management Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Get: client.get_key(name, None).await?.into_model()? - Update: client.update_key_properties(name, params.try_into()?, None).await? - Delete: client.delete_key(name, None).await? - List: client.list_key_properties(None)? returns Pager - - name: Envelope Encryption Pattern - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Wrap: client.wrap_key(key_name, params.try_into()?, None).await? - Parameters include algorithm: Some(EncryptionAlgorithm::RsaOaep256) and value: Some(dek) - Extract wrapped result and key version for later unwrap - Unwrap: client.unwrap_key(key_name, version, params.try_into()?, None).await? - Compare unwrapped value with original DEK - - name: Key Version Management - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Extract key version from response via resource_id()? - Version stored from wrap operation for later unwrap - Same version used to unwrap (immutable relationship) - Versions allow key rotation without losing decryption capability - - name: Pagination and Resource Extraction - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - List returns Pager, iterate with let mut pager = ...; while let Some(key) = pager.try_next().await? - ResourceExt provides key.resource_id()? with name and version - Use TryStreamExt trait from futures crate - - name: Async Runtime and Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Uses #[tokio::main] on main function - All I/O awaited (client operations, wrapping, unwrapping) - No .unwrap() on Result types - Proper error propagation with ? operator diff --git a/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_experiment.yaml index 2ef1fbe0..0c7052b6 100644 --- a/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-keyvault-keys-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-keyvault-keys-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-keys-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-keyvault-py/vally/eval.yaml b/tests/scenarios/azure-keyvault-py/vally/eval.yaml index 6e5382ac..73e8d235 100644 --- a/tests/scenarios/azure-keyvault-py/vally/eval.yaml +++ b/tests/scenarios/azure-keyvault-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: secret_crud_basic prompt: |- diff --git a/tests/scenarios/azure-keyvault-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-keyvault-py/vally/skill_effectiveness_experiment.yaml index f00d2b37..1a4e34c2 100644 --- a/tests/scenarios/azure-keyvault-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-keyvault-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-keyvault-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-keyvault-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-keyvault-secrets-rust/vally/eval.yaml b/tests/scenarios/azure-keyvault-secrets-rust/vally/eval.yaml index f81d76fc..2f7db912 100644 --- a/tests/scenarios/azure-keyvault-secrets-rust/vally/eval.yaml +++ b/tests/scenarios/azure-keyvault-secrets-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-secrets-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-keyvault-secrets-operations prompt: | @@ -73,22 +89,6 @@ stimuli: - "**/target/**" - "**/*.rlib" - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-secrets-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-keyvault-secrets-rust @@ -145,39 +145,23 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: SecretClient Creation type: prompt diff --git a/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index ced7212f..00000000 --- a/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,235 +0,0 @@ -name: azure-keyvault-secrets-rust-eval -description: Evaluation suite for azure-security-keyvault-secrets-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-keyvault-secrets-operations - prompt: | - Write a Rust program named rust-keyvault-secrets that demonstrates secure secret - management with Azure Key Vault: - - Setup: - 1. Create a SecretClient with vault URL and TokenCredential - 2. Use DeveloperToolsCredential for local dev - - CRUD operations: - 1. Set a secret with SetSecretParameters including value and content_type - 2. Get a secret with get_secret() - 3. Update secret properties with UpdateSecretPropertiesParameters - 4. Delete a secret with delete_secret() - 5. List secrets with list_secret_properties() returning Pager - - Advanced operations: - 1. Extract resource ID components (name, version) using ResourceExt trait - 2. Set content_type on secrets (e.g., "text/plain") - 3. Add tags to secrets using HashMap - 4. Handle pagination when listing secrets with try_next() from TryStreamExt - - Error handling: - 1. Match on Ok/Err for secret operations - 2. Extract ErrorResponse from errors - 3. Handle 404 errors for missing secrets gracefully - - Demonstrate: - - SecretClient::new() with vault URL and credential - - SetSecretParameters and try_into() for request conversion - - UpdateSecretPropertiesParameters with content_type and tags - - Pager iteration with TryStreamExt::try_next() - - ResourceExt trait for extracting name and version - - Proper async/await with Tokio runtime - - Result-based error propagation - - The program should compile and execute successfully, demonstrating complete - secret lifecycle management with proper credential-based authentication. - - rubric: - - "Uses official azure_security_keyvault_secrets SDK." - - "Creates SecretClient with vault URL and TokenCredential." - - "Sets secrets with SetSecretParameters including value and content_type." - - "Retrieves secrets with get_secret() and converts with into_model()." - - "Updates secret properties with tags and content_type." - - "Deletes secrets with delete_secret()." - - "Lists secrets returning Pager with pagination support." - - "Uses ResourceExt trait to extract name and version fields." - - "Iterates paginated results with TryStreamExt::try_next()." - - "Handles errors with match patterns and ErrorResponse extraction." - - "Uses TokenCredential for secure authentication." - - "Async/await with Tokio and proper error handling." - - "Code compiles without warnings." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/src/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-secrets-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-keyvault-secrets-rust - graders: - - type: prompt - name: "Key Vault secrets completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - SecretClient creation with vault URL and credential - - Set secret with SetSecretParameters including value - - Get secret with into_model() conversion - - Update secret properties with tags and content_type - - Delete secret operation - - List secrets returning Pager - - Pagination with TryStreamExt::try_next() - - ResourceExt for name/version extraction - - Error matching and ErrorResponse handling - - TokenCredential authentication - - Async/await throughout - scoring: scale_1_5 - - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - - name: SecretClient Creation - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - SecretClient created via SecretClient::new(vault_url, credential, None) - Vault URL is vault_name.vault.azure.net in https protocol - Credential is TokenCredential (DeveloperToolsCredential or ManagedIdentityCredential) - - name: Secret CRUD Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Set: client.set_secret(name, params.try_into()?, None).await? - Get: client.get_secret(name, None).await?.into_model()? - Update: client.update_secret_properties(name, params.try_into()?, None).await? - Delete: client.delete_secret(name, None).await? - - name: SetSecretParameters Pattern - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - SetSecretParameters created with value: Some(value.into()) - Content type can be set via content_type: Some("text/plain".into()) - Uses #[allow(clippy::needless_update)] with ..Default::default() - - name: Listing with Pagination - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - List secrets returns Pager via client.list_secret_properties(None)? - Iterate with let mut pager = ...; while let Some(secret) = pager.try_next().await? - Uses futures::TryStreamExt trait for try_next() - Extract name/version via secret.resource_id()?.name - - name: Resource Extraction - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Use ResourceExt trait via secret.resource_id()? - Returns ResourceId with name and version fields - Stored for audit or reconstruction purposes - - name: Async Runtime and Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Uses #[tokio::main] on main function - All I/O operations awaited - No .unwrap() on fallible operations - Result propagated with ? operator - Error extraction with into_inner()? on error types diff --git a/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_experiment.yaml index bb76b6d7..2f92d649 100644 --- a/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-keyvault-secrets-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-keyvault-secrets-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-keyvault-secrets-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-messaging-webpubsubservice-py/vally/eval.yaml b/tests/scenarios/azure-messaging-webpubsubservice-py/vally/eval.yaml index eefacb95..8c1ee265 100644 --- a/tests/scenarios/azure-messaging-webpubsubservice-py/vally/eval.yaml +++ b/tests/scenarios/azure-messaging-webpubsubservice-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: connection_string_broadcast prompt: |- diff --git a/tests/scenarios/azure-messaging-webpubsubservice-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-messaging-webpubsubservice-py/vally/skill_effectiveness_experiment.yaml index ee63c6de..1c4d5eba 100644 --- a/tests/scenarios/azure-messaging-webpubsubservice-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-messaging-webpubsubservice-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-messaging-webpubsubservice-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-messaging-webpubsubservice-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-mgmt-apicenter-py/vally/eval.yaml b/tests/scenarios/azure-mgmt-apicenter-py/vally/eval.yaml index 7a0e039c..45da188c 100644 --- a/tests/scenarios/azure-mgmt-apicenter-py/vally/eval.yaml +++ b/tests/scenarios/azure-mgmt-apicenter-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_api_center_creation prompt: |- diff --git a/tests/scenarios/azure-mgmt-apicenter-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-mgmt-apicenter-py/vally/skill_effectiveness_experiment.yaml index d1544a4d..b755d6cc 100644 --- a/tests/scenarios/azure-mgmt-apicenter-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-mgmt-apicenter-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-mgmt-apicenter-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-mgmt-apicenter-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-mgmt-apimanagement-py/vally/eval.yaml b/tests/scenarios/azure-mgmt-apimanagement-py/vally/eval.yaml index fa4b1981..805f3a65 100644 --- a/tests/scenarios/azure-mgmt-apimanagement-py/vally/eval.yaml +++ b/tests/scenarios/azure-mgmt-apimanagement-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_apim_client_creation prompt: |- diff --git a/tests/scenarios/azure-mgmt-apimanagement-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-mgmt-apimanagement-py/vally/skill_effectiveness_experiment.yaml index 377d09fc..6704e7d9 100644 --- a/tests/scenarios/azure-mgmt-apimanagement-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-mgmt-apimanagement-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-mgmt-apimanagement-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-mgmt-apimanagement-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-mgmt-botservice-py/vally/eval.yaml b/tests/scenarios/azure-mgmt-botservice-py/vally/eval.yaml index ba7374d9..f9439328 100644 --- a/tests/scenarios/azure-mgmt-botservice-py/vally/eval.yaml +++ b/tests/scenarios/azure-mgmt-botservice-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_bot_creation prompt: |- diff --git a/tests/scenarios/azure-mgmt-botservice-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-mgmt-botservice-py/vally/skill_effectiveness_experiment.yaml index 4dd396c1..c4844039 100644 --- a/tests/scenarios/azure-mgmt-botservice-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-mgmt-botservice-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-mgmt-botservice-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-mgmt-botservice-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-mgmt-fabric-py/vally/eval.yaml b/tests/scenarios/azure-mgmt-fabric-py/vally/eval.yaml index 58a77f43..7f97cea8 100644 --- a/tests/scenarios/azure-mgmt-fabric-py/vally/eval.yaml +++ b/tests/scenarios/azure-mgmt-fabric-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_client_creation prompt: |- diff --git a/tests/scenarios/azure-mgmt-fabric-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-mgmt-fabric-py/vally/skill_effectiveness_experiment.yaml index 62958d5d..58a0f132 100644 --- a/tests/scenarios/azure-mgmt-fabric-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-mgmt-fabric-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-mgmt-fabric-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-mgmt-fabric-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-monitor-ingestion-py/vally/eval.yaml b/tests/scenarios/azure-monitor-ingestion-py/vally/eval.yaml index e172e8be..38521194 100644 --- a/tests/scenarios/azure-monitor-ingestion-py/vally/eval.yaml +++ b/tests/scenarios/azure-monitor-ingestion-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: sync_basic_upload prompt: |- diff --git a/tests/scenarios/azure-monitor-ingestion-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-monitor-ingestion-py/vally/skill_effectiveness_experiment.yaml index 95bbf80e..5cd5eb6e 100644 --- a/tests/scenarios/azure-monitor-ingestion-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-monitor-ingestion-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-monitor-ingestion-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-monitor-ingestion-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/eval.yaml b/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/eval.yaml index d71aa70d..c9c645c5 100644 --- a/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/eval.yaml +++ b/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: trace_exporter_basic prompt: |- diff --git a/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/skill_effectiveness_experiment.yaml index 424ae75f..e8285d13 100644 --- a/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-monitor-opentelemetry-exporter-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-monitor-opentelemetry-exporter-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-monitor-opentelemetry-exporter-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-monitor-opentelemetry-py/vally/eval.yaml b/tests/scenarios/azure-monitor-opentelemetry-py/vally/eval.yaml index ee50b168..730feb86 100644 --- a/tests/scenarios/azure-monitor-opentelemetry-py/vally/eval.yaml +++ b/tests/scenarios/azure-monitor-opentelemetry-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: one_line_setup prompt: |- diff --git a/tests/scenarios/azure-monitor-opentelemetry-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-monitor-opentelemetry-py/vally/skill_effectiveness_experiment.yaml index ef7b12a6..acf8b561 100644 --- a/tests/scenarios/azure-monitor-opentelemetry-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-monitor-opentelemetry-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-monitor-opentelemetry-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-monitor-opentelemetry-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-monitor-query-py/vally/eval.yaml b/tests/scenarios/azure-monitor-query-py/vally/eval.yaml index c5814a88..bca5423a 100644 --- a/tests/scenarios/azure-monitor-query-py/vally/eval.yaml +++ b/tests/scenarios/azure-monitor-query-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: logs_basic_query prompt: |- diff --git a/tests/scenarios/azure-monitor-query-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-monitor-query-py/vally/skill_effectiveness_experiment.yaml index bf8ad3b2..d10c0b81 100644 --- a/tests/scenarios/azure-monitor-query-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-monitor-query-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-monitor-query-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-monitor-query-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-search-documents-py/vally/eval.yaml b/tests/scenarios/azure-search-documents-py/vally/eval.yaml index 09ebf8ca..46707841 100644 --- a/tests/scenarios/azure-search-documents-py/vally/eval.yaml +++ b/tests/scenarios/azure-search-documents-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_client_setup prompt: |- diff --git a/tests/scenarios/azure-search-documents-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-search-documents-py/vally/skill_effectiveness_experiment.yaml index e36b0acf..17aacc20 100644 --- a/tests/scenarios/azure-search-documents-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-search-documents-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-search-documents-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-search-documents-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-servicebus-py/vally/eval.yaml b/tests/scenarios/azure-servicebus-py/vally/eval.yaml index 087f4a06..8f72d2d6 100644 --- a/tests/scenarios/azure-servicebus-py/vally/eval.yaml +++ b/tests/scenarios/azure-servicebus-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: sync_queue_send_receive prompt: |- diff --git a/tests/scenarios/azure-servicebus-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-servicebus-py/vally/skill_effectiveness_experiment.yaml index 7915068a..98bd6240 100644 --- a/tests/scenarios/azure-servicebus-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-servicebus-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-servicebus-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-servicebus-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-speech-to-text-rest-py/vally/eval.yaml b/tests/scenarios/azure-speech-to-text-rest-py/vally/eval.yaml index 06fece63..416401df 100644 --- a/tests/scenarios/azure-speech-to-text-rest-py/vally/eval.yaml +++ b/tests/scenarios/azure-speech-to-text-rest-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: core_workflow prompt: |- diff --git a/tests/scenarios/azure-speech-to-text-rest-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-speech-to-text-rest-py/vally/skill_effectiveness_experiment.yaml index c919487d..7663eccd 100644 --- a/tests/scenarios/azure-speech-to-text-rest-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-speech-to-text-rest-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-speech-to-text-rest-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-speech-to-text-rest-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-storage-blob-py/vally/eval.yaml b/tests/scenarios/azure-storage-blob-py/vally/eval.yaml index 2f53879a..9c3ee5dc 100644 --- a/tests/scenarios/azure-storage-blob-py/vally/eval.yaml +++ b/tests/scenarios/azure-storage-blob-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_blob_service_client prompt: |- diff --git a/tests/scenarios/azure-storage-blob-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-storage-blob-py/vally/skill_effectiveness_experiment.yaml index 1ccfbd0b..416b9272 100644 --- a/tests/scenarios/azure-storage-blob-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-storage-blob-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-storage-blob-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-storage-blob-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-storage-blob-rust/vally/eval-keyvault-encryption.yaml b/tests/scenarios/azure-storage-blob-rust/vally/eval-keyvault-encryption.yaml index ad165d60..d59e1737 100644 --- a/tests/scenarios/azure-storage-blob-rust/vally/eval-keyvault-encryption.yaml +++ b/tests/scenarios/azure-storage-blob-rust/vally/eval-keyvault-encryption.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: rust-storage-keyvault-encryption-library prompt: | diff --git a/tests/scenarios/azure-storage-blob-rust/vally/eval.yaml b/tests/scenarios/azure-storage-blob-rust/vally/eval.yaml index 472c553a..e5da261b 100644 --- a/tests/scenarios/azure-storage-blob-rust/vally/eval.yaml +++ b/tests/scenarios/azure-storage-blob-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-blob-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-crud-blobs prompt: | @@ -71,22 +87,6 @@ stimuli: - "**/*.a" - "**/*.lib" - "**/*.wasm" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-blob-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-storage-blob-rust @@ -141,27 +141,20 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings diff --git a/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index 0b79e62d..00000000 --- a/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,246 +0,0 @@ -name: azure-storage-blob-rust-eval -description: Evaluation suite for azure-storage-blob-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-crud-blobs - prompt: | - Create a single Rust binary crate named rust-blob with one focused goal: demonstrate - Azure Blob Storage container and blob CRUD using the official Rust SDK. - - Required workflow: - 1. Create container `my-container` if it does not already exist. - 2. Upload local file `example.txt` as block blob `uploads/example.txt`. - 3. List all blobs in the container and print blob name plus size. - 4. Download that blob to `downloaded-example.txt`. - 5. Delete the blob, then delete the container. - - Inputs: - - Read `AZURE_STORAGE_ACCOUNT` when present. - - Read optional `AZURE_STORAGE_CONTAINER`; default to `my-container`. - - If `example.txt` is missing, create it with sample content before upload. - - Implementation constraints: - - Do not add Azure CLI provisioning or setup code to the Rust project. - - Use TokenCredential-based authentication and fail with clear messages when required - configuration is missing. - - Keep the implementation compact: one crate, minimal helpers, no extra abstractions. - - Prefer the documented skill/README patterns over crate-source exploration. - - Run `cargo build` and `cargo clippy -- -D warnings` near the end before finishing. - rubric: - - "Implements the full blob CRUD workflow end-to-end: create container, upload, list, download, and delete blob/container." - - "Uses official Azure Rust SDK crate patterns and a TokenCredential-based authentication flow." - - "Uses async Rust with Tokio runtime and idiomatic Result-based error propagation." - - "Code compiles and passes cargo check for the rust-blob project." - - "Uses correct Azure client construction, response handling, and pager usage where applicable." - - "Avoids hardcoded secrets in source code or configuration committed to the workspace." - - "rustfmt compliance is bonus quality signal only and should not block a successful evaluation when all substantive correctness and SDK-usage criteria pass." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/build.rs" - - "**/src/**/*.rs" - - "**/examples/**/*.rs" - - "**/tests/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - - "**/*.d" - - "**/*.o" - - "**/*.obj" - - "**/*.pdb" - - "**/*.exe" - - "**/*.dll" - - "**/*.so" - - "**/*.dylib" - - "**/*.a" - - "**/*.lib" - - "**/*.wasm" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-blob-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml - constraints: - expect_skills: - - azure-storage-blob-rust - graders: - - type: prompt - name: "Prompt correctness and completeness of blob storage operations" - config: - model: claude-sonnet-4.6 - prompt: | - - The code should demonstrate an azure blob storage client with a storage account url and credential - - Creating a container for container creation - - Uploading from a file path - - Enumerate blobs in a container - - Download from a blob to a local file - - Deleting blob files and containers for cleanup - - Error handling - scoring: scale_1_5 - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - timeout: 2m - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: Idiomatic Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Error handling uses Result and the ? operator. Calls to - .unwrap() are avoided or used only where failure - is impossible. Calls to expect() with a reasonable error message are allowed - only if termination of the application is acceptable. Azure service errors are - matched via azure_core::Error with ErrorKind (e.g., - ErrorKind::HttpResponse { status, error_code, .. } with - StatusCode comparison). The main function returns - Result<(), Box> or azure_core::Result<()>. - - name: Correct Client Construction - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Service clients are constructed using the ::new() constructor - with an endpoint string, credential, and Option parameter. - If a ClientOptions parameter is specified, structs use ..Default::default() - for forward compatibility. If all the fields in the ClientOptions struct are provided, the - #[allow(clippy::needless_update)] annotation is used. - - name: Pager and Stream Usage - type: prompt - model: claude-sonnet-4.6 - weight: 1.0 - prompt: > - List operations return and consume azure_core::Pager using - futures::TryStreamExt (try_next/try_collect). Pagination is - handled correctly by iterating all items. In most if not all - cases, individual items should be iterated over directly rather - than page-by-page, demonstrating the SDK's ability to handle - pagination internally. Page-by-page iteration via into_pages() - is only necessary when there is an explicit requirement for page-level - access. - - name: Response Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Calls to service clients correctly handle Response. When service - methods return a model type, code calls into_model() to deserialize - the response body into the expected model type (not manually parsing - JSON). When raw HTTP details are needed, deconstruct() is used to - access status, headers, and body separately. - - name: Long-Running Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Long-running operations use azure_core::Poller correctly. - If a client calls into an API returning a Poller, code awaits - the Poller directly (via IntoFuture) for the final result. - The only time that a client should iterate over status updates via - futures::TryStreamExt is when there is an explicit requirement for - status-level access. - - name: Struct Initialization with Default - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - If a client initializes a structure for SDK types (client options, method - options, model types) the code uses ..Default::default() to protect - against future field additions. - - name: Ownership and Borrowing - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Code uses references (&str, &T) for borrowed data and avoids - unnecessary .clone() calls. Credentials are shared via Arc or - clone(). No unnecessary Box or Rc where Arc is appropriate. - Parameters that are only used for URL construction borrow - rather than own the data. - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" diff --git a/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_experiment.yaml index 42bebb73..79b1362b 100644 --- a/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-storage-blob-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-storage-blob-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-blob-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-storage-file-datalake-py/vally/eval.yaml b/tests/scenarios/azure-storage-file-datalake-py/vally/eval.yaml index ee81814d..7e075520 100644 --- a/tests/scenarios/azure-storage-file-datalake-py/vally/eval.yaml +++ b/tests/scenarios/azure-storage-file-datalake-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_service_client_and_filesystem prompt: |- diff --git a/tests/scenarios/azure-storage-file-datalake-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-storage-file-datalake-py/vally/skill_effectiveness_experiment.yaml index 1c7236be..7c4ec2cb 100644 --- a/tests/scenarios/azure-storage-file-datalake-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-storage-file-datalake-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-storage-file-datalake-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-storage-file-datalake-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-storage-file-share-py/vally/eval.yaml b/tests/scenarios/azure-storage-file-share-py/vally/eval.yaml index 5e040c85..97f1c3af 100644 --- a/tests/scenarios/azure-storage-file-share-py/vally/eval.yaml +++ b/tests/scenarios/azure-storage-file-share-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: service_client_connection_string prompt: |- diff --git a/tests/scenarios/azure-storage-file-share-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-storage-file-share-py/vally/skill_effectiveness_experiment.yaml index 0635a2dc..12789516 100644 --- a/tests/scenarios/azure-storage-file-share-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-storage-file-share-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-storage-file-share-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-storage-file-share-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-storage-queue-py/vally/eval.yaml b/tests/scenarios/azure-storage-queue-py/vally/eval.yaml index 87a989d3..2e22d8c2 100644 --- a/tests/scenarios/azure-storage-queue-py/vally/eval.yaml +++ b/tests/scenarios/azure-storage-queue-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_queue_service_client prompt: |- diff --git a/tests/scenarios/azure-storage-queue-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-storage-queue-py/vally/skill_effectiveness_experiment.yaml index 08493931..1c8c1e41 100644 --- a/tests/scenarios/azure-storage-queue-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-storage-queue-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: azure-storage-queue-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/azure-storage-queue-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/azure-storage-queue-rust/vally/eval.yaml b/tests/scenarios/azure-storage-queue-rust/vally/eval.yaml index d24a60a1..2baac00f 100644 --- a/tests/scenarios/azure-storage-queue-rust/vally/eval.yaml +++ b/tests/scenarios/azure-storage-queue-rust/vally/eval.yaml @@ -8,8 +8,24 @@ scoring: defaults: runs: 1 timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} +environment: + skills: + - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-queue-rust + files: + - src: ../../_shared/vally/tools/find-cargo-root.js + dest: .vally/tools/find-cargo-root.js + - src: ../../_shared/vally/tools/check-azure-crates.rs + dest: .vally/tools/check-azure-crates.rs + - src: ../../_shared/vally/tools/check-token-credential.rs + dest: .vally/tools/check-token-credential.rs + - src: ../../_shared/vally/tools/check-async-runtime.rs + dest: .vally/tools/check-async-runtime.rs + - src: ../../_shared/vally/tools/check-no-secrets.rs + dest: .vally/tools/check-no-secrets.rs + - src: workspace/cargo.toml + dest: Cargo.toml stimuli: - name: rust-queue-operations prompt: | @@ -65,22 +81,6 @@ stimuli: - "**/*.a" - "**/*.lib" - "**/*.wasm" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-queue-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - - src: workspace/cargo.toml - dest: Cargo.toml constraints: expect_skills: - azure-storage-queue-rust @@ -134,38 +134,23 @@ stimuli: - "+nightly" - "-Zscript" - ".vally/tools/check-no-secrets.rs" - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check + - name: Rust Cargo Build + type: program weight: 1.0 config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check + program: cargo + args: + - build + - name: Rust Cargo Clippy + type: program weight: 1.0 config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail + program: cargo + args: + - clippy + - "--" + - "-D" + - warnings - name: QueueServiceClient Construction type: prompt diff --git a/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_eval.yaml b/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_eval.yaml deleted file mode 100644 index 2eeceb4c..00000000 --- a/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_eval.yaml +++ /dev/null @@ -1,195 +0,0 @@ -name: azure-storage-queue-rust-eval -description: Evaluation suite for azure-storage-queue-rust -version: "1.0" -type: capability -scoring: - weights: {} - threshold: 0.75 -defaults: - runs: 1 - timeout: 60m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 -stimuli: - - name: rust-queue-operations - prompt: | - Write a Rust program named rust-queue-ops that performs the following queue storage operations: - 1. Create a QueueServiceClient from an endpoint URL with TokenCredential authentication - 2. Create or get a queue client for a queue named "work-queue" - 3. Send 3 messages to the queue with different message text - 4. Receive messages from the queue (up to 5 messages) - 5. Peek at messages in the queue without removing them - 6. For each received message, extract the message ID, pop receipt, and message text - 7. Delete messages from the queue using message ID and pop receipt - 8. Demonstrate proper error handling for queue operations - - The program should compile and run successfully with the official Azure Storage Queue SDK, - demonstrating full CRUD operations on queue messages with proper TokenCredential-based authentication. - - Ensure the following SDK patterns are demonstrated: - - QueueServiceClient initialization with endpoint and credential - - QueueClient derivation from QueueServiceClient - - Message send/receive/peek/delete workflows - - Proper use of try_into() for message models - - Error handling with Result-based patterns - rubric: - - "Implements complete queue message lifecycle: send, receive, peek, and delete operations end-to-end." - - "Uses official azure_storage_queue SDK with TokenCredential-based authentication." - - "Uses async Rust with Tokio runtime and idiomatic Result-based error propagation." - - "Code compiles and passes cargo check." - - "Correctly derives QueueClient from QueueServiceClient and uses queue_client() method." - - "Message receive operations properly extract message_id, pop_receipt, and message_text fields." - - "Message delete operations use both message_id and pop_receipt from received messages." - - "Peek operations demonstrate reading messages without consuming them from the queue." - - "Avoids hardcoded credentials in source code." - artifacts: - include: - - "**/Cargo.toml" - - "**/Cargo.lock" - - "**/build.rs" - - "**/src/**/*.rs" - - "**/examples/**/*.rs" - - "**/tests/**/*.rs" - exclude: - - "**/target/**" - - "**/*.rlib" - - "**/*.rmeta" - - "**/*.d" - - "**/*.o" - - "**/*.obj" - - "**/*.pdb" - - "**/*.exe" - - "**/*.dll" - - "**/*.so" - - "**/*.dylib" - - "**/*.a" - - "**/*.lib" - - "**/*.wasm" - environment: - skills: - - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-queue-rust - files: - - src: ../../_shared/vally/tools/find-cargo-root.js - dest: .vally/tools/find-cargo-root.js - - src: workspace/cargo.toml - dest: Cargo.toml - - src: ../../_shared/vally/tools/check-azure-crates.rs - dest: .vally/tools/check-azure-crates.rs - - src: ../../_shared/vally/tools/check-token-credential.rs - dest: .vally/tools/check-token-credential.rs - - src: ../../_shared/vally/tools/check-async-runtime.rs - dest: .vally/tools/check-async-runtime.rs - - src: ../../_shared/vally/tools/check-no-secrets.rs - dest: .vally/tools/check-no-secrets.rs - constraints: - expect_skills: - - azure-storage-queue-rust - graders: - - type: prompt - name: "Queue operations completeness" - config: - model: claude-sonnet-4.6 - prompt: | - - QueueServiceClient initialization with endpoint URL and credential - - QueueClient derived from service client - - Send message operations with message_text - - Receive messages with proper message_id, pop_receipt extraction - - Peek messages without removal - - Delete messages using message_id and pop_receipt pair - - Error handling for queue operations - scoring: scale_1_5 - - - name: Rust Cargo Trajectory Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - collect_trajectory_compiler_errors: true - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Build Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo build - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Post prompt Rust Cargo Clippy Failure - type: rust-cargo-build-failure-check - weight: 1.0 - config: - commands: - - command: cargo clippy -- -D warnings - emit_in_metadata: true - error_exceptions: - - error_code: E0277 - message_pattern: "Option" - action: ignore_for_fail - - name: Official Azure SDK Crate Selection - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-azure-crates.rs" - - name: TokenCredential Authentication - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-token-credential.rs" - - name: Async-First with Tokio Runtime - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-async-runtime.rs" - - name: No Hardcoded Secrets - type: program - weight: 1.0 - config: - program: cargo - args: - - "+nightly" - - "-Zscript" - - ".vally/tools/check-no-secrets.rs" - - name: QueueServiceClient Construction - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - QueueServiceClient is created via QueueServiceClient::new() with three parameters: - service_url (Url type), Some(credential), and None for options. - QueueClient is derived via service_client.queue_client("")? - - name: Queue Message Operations - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Send messages via queue_client.send_message(message.try_into()?, None).await?. - Receive messages via queue_client.receive_messages(None).await? returning a response - that converts to model with items containing message_id, pop_receipt, and message_text fields. - Delete messages via queue_client.delete_message(id, pop_receipt, None).await?. - Peek via queue_client.peek_messages(None).await?. - - name: Error Handling - type: prompt - weight: 1.0 - model: claude-sonnet-4.6 - prompt: > - Queue operations are wrapped in Result-based error handling using ? operator. - No .unwrap() calls except where failure is impossible. - Main function returns Result for proper error propagation. diff --git a/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_experiment.yaml index 7a1aed84..0212da7e 100644 --- a/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/azure-storage-queue-rust/vally/skill_effectiveness_experiment.yaml @@ -1,23 +1,18 @@ # Purpose: Measure skill effectiveness by comparing the same stimulus with and without the corresponding skill. name: azure-storage-queue-rust-skill-experiment evals: - - skill_effectiveness_eval.yaml + - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-rust/skills/azure-storage-queue-rust - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/fastapi-router-py/vally/eval.yaml b/tests/scenarios/fastapi-router-py/vally/eval.yaml index 288ba69d..8f6d2487 100644 --- a/tests/scenarios/fastapi-router-py/vally/eval.yaml +++ b/tests/scenarios/fastapi-router-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: basic_crud_router prompt: |- diff --git a/tests/scenarios/fastapi-router-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/fastapi-router-py/vally/skill_effectiveness_experiment.yaml index ead32c56..0c66d72f 100644 --- a/tests/scenarios/fastapi-router-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/fastapi-router-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: fastapi-router-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/fastapi-router-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/m365-agents-py/vally/eval.yaml b/tests/scenarios/m365-agents-py/vally/eval.yaml index 27fddb97..15aa81a8 100644 --- a/tests/scenarios/m365-agents-py/vally/eval.yaml +++ b/tests/scenarios/m365-agents-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: aiohttp_agent_hosting prompt: |- diff --git a/tests/scenarios/m365-agents-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/m365-agents-py/vally/skill_effectiveness_experiment.yaml index 5ec1d7e6..9b5a289c 100644 --- a/tests/scenarios/m365-agents-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/m365-agents-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: m365-agents-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/m365-agents-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: [] diff --git a/tests/scenarios/pydantic-models-py/vally/eval.yaml b/tests/scenarios/pydantic-models-py/vally/eval.yaml index 124be027..35f64297 100644 --- a/tests/scenarios/pydantic-models-py/vally/eval.yaml +++ b/tests/scenarios/pydantic-models-py/vally/eval.yaml @@ -8,8 +8,8 @@ scoring: defaults: runs: 1 timeout: 30m - model: claude-sonnet-4.6 - judge_model: gpt-5.5 + model: ${MODEL=gpt-5.6-terra} + judge_model: ${GRADER_MODEL=claude-sonnet-4.6} stimuli: - name: base_create_response_indb prompt: |- diff --git a/tests/scenarios/pydantic-models-py/vally/skill_effectiveness_experiment.yaml b/tests/scenarios/pydantic-models-py/vally/skill_effectiveness_experiment.yaml index ebf7a148..c3394480 100644 --- a/tests/scenarios/pydantic-models-py/vally/skill_effectiveness_experiment.yaml +++ b/tests/scenarios/pydantic-models-py/vally/skill_effectiveness_experiment.yaml @@ -3,18 +3,13 @@ name: pydantic-models-py-skill-experiment evals: - eval.yaml vary: - - /defaults/model - /environment/skills -baseline: sonnet_baseline +baseline: baseline variants: - sonnet_skill: - overrides: - model: claude-sonnet-4.6 + skill: environment: skills: - ../../../../.github/plugins/azure-sdk-python/skills/pydantic-models-py - sonnet_baseline: - overrides: - model: claude-sonnet-4.6 + baseline: environment: skills: []