Files
wehub-resource-sync 0d3cb498a3
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Waiting to run
Test and Publish Multi-arch Docker Image / test (push) Waiting to run
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Blocked by required conditions
CI / Shell Format Check (push) Waiting to run
CI / Check Ruby (3.4) (push) Waiting to run
CI / CI Config (push) Waiting to run
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Blocked by required conditions
CI / Build on Node ${{ matrix.node }} (push) Blocked by required conditions
CI / Style Check (push) Waiting to run
CI / Generate Assets (push) Waiting to run
CI / Check Python (3.14) (push) Waiting to run
CI / Check Python (3.9) (push) Waiting to run
CI / Build Docs (push) Waiting to run
CI / Code Scan Action (push) Waiting to run
CI / Site tests (push) Waiting to run
CI / webui tests (push) Waiting to run
CI / Run Integration Tests (push) Waiting to run
CI / Run Smoke Tests (push) Waiting to run
CI / Go Tests (push) Waiting to run
CI / Share Test (push) Waiting to run
CI / Redteam (Production API) (push) Waiting to run
CI / Redteam (Staging API) (push) Waiting to run
CI / GitHub Actions Lint (push) Waiting to run
CI / Check Ruby (3.0) (push) Waiting to run
release-please / release-please (push) Waiting to run
release-please / build (push) Blocked by required conditions
release-please / publish-npm (push) Blocked by required conditions
release-please / publish-npm-backfill (push) Waiting to run
release-please / docker (push) Blocked by required conditions
release-please / publish-code-scan-action (push) Blocked by required conditions
release-please / attest-code-scan-action (push) Blocked by required conditions
Validate Renovate Config / Validate Renovate Configuration (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:24:08 +08:00

429 lines
15 KiB
JSON

{
"name": "promptfoo",
"description": "LLM eval & testing toolkit",
"author": "Ian Webster",
"version": "0.121.18",
"license": "MIT",
"type": "module",
"repository": {
"type": "git",
"url": "git+https://github.com/promptfoo/promptfoo.git"
},
"main": "./dist/src/index.js",
"exports": {
".": {
"import": "./dist/src/index.js",
"require": "./dist/src/index.cjs"
},
"./contracts": {
"import": {
"types": "./dist/src/contracts.d.ts",
"default": "./dist/src/contracts.js"
},
"require": {
"types": "./dist/src/contracts.d.cts",
"default": "./dist/src/contracts.cjs"
}
}
},
"workspaces": [
"src/app",
"site"
],
"types": "dist/src/index.d.ts",
"typings": "dist/src/index.d.ts",
"typesVersions": {
"*": {
"contracts": [
"dist/src/contracts.d.ts"
]
}
},
"files": [
"dist",
"!dist/test",
"!dist/src/__mocks__",
"!dist/**/*.map"
],
"engines": {
"node": "^20.20.0 || >=22.22.0"
},
"bin": {
"promptfoo": "dist/src/entrypoint.js",
"pf": "dist/src/entrypoint.js"
},
"scripts": {
"audit:fix": "npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site",
"architecture:baseline": "tsx scripts/regenerateEdgeBaseline.ts",
"architecture:check": "tsx scripts/checkArchitectureBoundaries.ts",
"bin": "dist/src/entrypoint.js",
"build:app": "npm run build --prefix src/app",
"build:clean": "shx rm -rf dist",
"build:watch": "NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch",
"build": "concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"",
"postbuild": "tsx scripts/postbuild.ts",
"citation:generate": "tsx scripts/generateCitation.ts",
"db:generate": "npx drizzle-kit generate",
"db:migrate": "tsx src/migrate.ts",
"db:studio": "npx drizzle-kit studio",
"openapi:generate": "tsx scripts/generateOpenApi.ts",
"openapi:check": "tsx scripts/generateOpenApi.ts --check",
"modelAuditSchema:generate": "python3 scripts/generate_modelaudit_schema.py && npx @biomejs/biome format --write site/static/schemas/modelaudit site/static/examples/modelaudit",
"dev:app": "npm run dev --prefix src/app",
"storybook": "npm run storybook --prefix src/app",
"dev:server": "tsx watch src/server/index.ts",
"dev": "concurrently \"npm run dev:server\" \"npm run dev:app\"",
"f": "git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write",
"format:check": "npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'",
"format:check:prettier": "prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'",
"format": "npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'",
"jsonSchema:generate": "npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json",
"knip": "knip",
"l": "git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write",
"lint:ci": "npx @biomejs/biome ci .",
"lint:site": "npx @biomejs/biome lint site",
"lint:src": "npx @biomejs/biome lint src",
"lint:tests": "npx @biomejs/biome lint test",
"lint": "npm run lint:src",
"local:web": "npm run dev --prefix src/app",
"local": "tsx src/localEntrypoint.ts",
"preversion": "command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"",
"changelog:release": "node scripts/update-changelog-version.cjs",
"postversion": "npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"",
"prepublishOnly": "node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build",
"test:app": "npm --prefix src/app run test --",
"test:app:browser": "npm --prefix src/app run test:browser --",
"test:package-artifact": "tsx scripts/testPackageArtifact.ts",
"test:site": "npm run test --prefix site",
"test:integration": "vitest run --config vitest.integration.config.ts",
"test:vitest": "vitest run",
"test:vitest:watch": "vitest",
"test:watch": "vitest",
"test:redteam:integration": "npm run build && ./test/redteam/integration/test.sh",
"test:smoke": "vitest run --config vitest.smoke.config.ts",
"test": "vitest run",
"test:coverage": "vitest run --coverage && npm run test:coverage --prefix src/app",
"test:coverage:ratchet": "node --import tsx ./scripts/checkCoverageRatchets.ts",
"check:typescript-coverage": "tsx scripts/checkTypeScriptCoverage.ts",
"tsc": "tsc --noEmit",
"mcp": "node dist/src/entrypoint.js mcp",
"depcheck": "depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium,block-no-verify\" --ignore-dirs=\"dist,site,examples\"",
"deps:ownership": "tsx scripts/reportDependencyOwnership.ts",
"prepare": "husky || exit 0"
},
"overrides": {
"uri-js": "npm:uri-js-replace",
"chokidar": "5.0.0",
"whatwg-url": "16.0.1",
"esbuild": "0.28.1",
"jsdom": {
"@asamuzakjp/css-color": "5.1.11"
},
"storybook": {
"esbuild": "0.28.1"
},
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-is": "^19.2.4",
"*": {
"whatwg-url": "16.0.1",
"chokidar": "5.0.0",
"esbuild": "0.28.1",
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"@opentelemetry/exporter-trace-otlp-http": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/otlp-exporter-base": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/otlp-transformer": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/resources": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/sdk-logs": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/sdk-metrics": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/sdk-trace-base": {
"@opentelemetry/core": "2.8.0"
},
"@opentelemetry/sdk-trace-node": {
"@opentelemetry/core": "2.8.0"
},
"serialize-javascript": ">=7.0.5",
"gaxios": "^7.1.4",
"https-proxy-agent": "^9.0.0",
"ip-address": "10.2.0",
"mongoose": {
"gcp-metadata": "^8.1.2"
},
"webpack-dev-server": {
"express": "^4.22.2"
},
"launch-editor": "2.14.1",
"engine.io": {
".": "6.6.9",
"ws": "$ws"
},
"engine.io-client": {
".": "6.6.6",
"ws": "$ws"
},
"socket.io-adapter": {
".": "2.5.8",
"ws": "$ws"
},
"qs": ">=6.15.2 <7.0.0",
"@isaacs/brace-expansion": ">=5.0.1",
"brace-expansion@5": "^5.0.6",
"fast-xml-parser": "$fast-xml-parser",
"minimatch@<=3.1.3": "3.1.5",
"vite": "^8.0.16",
"lodash-es": "^4.18.1",
"langium": {
".": "4.3.0",
"@chevrotain/regexp-to-ast": "11.2.0",
"chevrotain": "11.2.0",
"chevrotain-allstar": "0.4.1"
},
"chevrotain": {
".": "11.2.0",
"@chevrotain/cst-dts-gen": "12.0.0",
"@chevrotain/gast": "11.2.0",
"@chevrotain/regexp-to-ast": "11.2.0",
"@chevrotain/types": "11.2.0",
"@chevrotain/utils": "11.2.0"
},
"@chevrotain/cst-dts-gen": {
".": "12.0.0",
"@chevrotain/gast": "12.0.0",
"@chevrotain/types": "12.0.0"
},
"chevrotain-allstar": {
".": "0.4.1",
"chevrotain": "11.2.0"
},
"webpack": "5.108.3",
"dompurify": "3.4.11",
"monaco-editor": {
".": "0.55.1",
"dompurify": "3.4.11"
}
},
"devDependencies": {
"@anthropic-ai/claude-agent-sdk": "0.3.197",
"@asteasolutions/zod-to-openapi": "^8.5.0",
"@aws-sdk/client-bedrock-agent-runtime": "^3.1045.0",
"@aws-sdk/client-bedrock-runtime": "^3.1045.0",
"@aws-sdk/client-s3": "^3.1003.0",
"@aws-sdk/client-sagemaker-runtime": "^3.1045.0",
"@aws-sdk/credential-provider-sso": "^3.972.16",
"@aws-sdk/types": "^3.973.5",
"@azure/identity": "^4.13.0",
"@azure/openai-assistants": "^1.0.0-beta.6",
"@biomejs/biome": "2.5.1",
"@fal-ai/client": "~1.10.1",
"@ibm-cloud/watsonx-ai": "^1.7.14",
"@ibm-generative-ai/node-sdk": "^3.2.4",
"@smithy/types": "^4.13.0",
"@types/async": "^3.2.25",
"@types/cli-progress": "^3.11.6",
"@types/compression": "^1.8.1",
"@types/cors": "^2.8.19",
"@types/express": "^5.0.6",
"@types/js-yaml": "^4.0.9",
"@types/jsdom": "^28.0.0",
"@types/node": "^24.12.0",
"@types/nunjucks": "^3.2.6",
"@types/opener": "^1.4.3",
"@types/pdf-parse": "^1.1.5",
"@types/pem": "^1.14.4",
"@types/proxy-from-env": "^1.0.4",
"@types/semver": "^7.7.1",
"@types/source-map-support": "^0.5.10",
"@types/supertest": "^7.0.0",
"@vitest/coverage-v8": "^4.1.0",
"block-no-verify": "^1.2.0",
"concurrently": "^9.2.3",
"depcheck": "^1.4.7",
"drizzle-kit": "^0.31.10",
"husky": "^9.1.7",
"ibm-cloud-sdk-core": "^5.4.22",
"knip": "^6.0.0",
"langfuse": "^3.38.20",
"langium": "4.3.0",
"nock": "^14.0.11",
"node-sql-parser": "^5.4.0",
"pdf-parse": "^2.4.5",
"playwright": "^1.60.0",
"playwright-extra": "^4.3.6",
"prettier": "^3.8.1",
"puppeteer-extra-plugin-stealth": "^2.11.2",
"read-excel-file": "^9.0.0",
"shx": "^0.4.0",
"source-map-support": "^0.5.21",
"supertest": "^7.2.2",
"ts-dedent": "^2.2.0",
"tsdown": "0.21.9",
"typescript": "^6.0.2",
"vitest": "^4.1.0",
"winston-transport": "^4.9.0"
},
"optionalDependencies": {
"@anthropic-ai/claude-agent-sdk": "0.3.197",
"@aws-sdk/client-bedrock-agent-runtime": "^3.1045.0",
"@aws-sdk/client-bedrock-runtime": "^3.1045.0",
"@aws-sdk/client-s3": "^3.1003.0",
"@aws-sdk/client-sagemaker-runtime": "^3.1045.0",
"@aws-sdk/credential-provider-sso": "^3.972.16",
"@azure/ai-projects": "^2.1.1",
"@azure/identity": "^4.13.0",
"@azure/msal-node": "^5.2.0",
"@azure/openai-assistants": "^1.0.0-beta.6",
"@azure/storage-blob": "^12.31.0",
"@fal-ai/client": "~1.10.1",
"@googleapis/sheets": "^13.0.1",
"@huggingface/transformers": "^4.0.0",
"@ibm-cloud/watsonx-ai": "^1.7.14",
"@ibm-generative-ai/node-sdk": "^3.2.4",
"@modelcontextprotocol/sdk": "^1.29.0",
"@openai/agents": "^0.11.3",
"@openai/codex-sdk": "^0.144.0",
"@opencode-ai/sdk": "^1.14.33",
"@playwright/browser-chromium": "^1.60.0",
"@rollup/rollup-linux-x64-gnu": "^4.62.0",
"@slack/web-api": "^7.15.2",
"@smithy/node-http-handler": "^4.4.14",
"@swc/core": "^1.15.41",
"@swc/core-darwin-arm64": "^1.15.41",
"@swc/core-darwin-x64": "^1.15.41",
"@swc/core-linux-x64-gnu": "^1.15.41",
"@swc/core-linux-x64-musl": "^1.15.41",
"@swc/core-win32-x64-msvc": "^1.15.41",
"google-auth-library": "^10.9.0",
"hono": "^4.12.25",
"ibm-cloud-sdk-core": "^5.4.22",
"jks-js": "^1.1.5",
"langfuse": "^3.38.20",
"natural": "^8.1.1",
"node-sql-parser": "^5.4.0",
"pdf-parse": "^2.4.5",
"pem": "~1.14.8",
"playwright": "^1.60.0",
"playwright-extra": "^4.3.6",
"read-excel-file": "^9.0.0",
"sharp": "^0.35.1"
},
"dependencies": {
"@anthropic-ai/sdk": "0.109.0",
"@apidevtools/json-schema-ref-parser": "^15.3.1",
"@inquirer/checkbox": "^5.1.0",
"@inquirer/confirm": "^6.0.8",
"@inquirer/core": "^11.1.5",
"@inquirer/editor": "^5.0.8",
"@inquirer/input": "^5.0.8",
"@inquirer/search": "^4.1.8",
"@inquirer/select": "^5.1.0",
"@libsql/client": "^0.17.3",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/core": "2.8.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.219.0",
"@opentelemetry/resources": "^2.6.0",
"@opentelemetry/sdk-trace-base": "^2.6.0",
"@opentelemetry/sdk-trace-node": "^2.6.0",
"@opentelemetry/semantic-conventions": "^1.40.0",
"@types/ws": "^8.18.1",
"ai": "^6.0.190",
"ajv": "^8.18.0",
"ajv-formats": "^3.0.1",
"async": "^3.2.6",
"binary-extensions": "^3.1.0",
"cache-manager": "^7.2.8",
"chalk": "^5.6.2",
"chokidar": "5.0.0",
"cli-progress": "^3.12.0",
"cli-table3": "^0.6.5",
"commander": "^14.0.3",
"compression": "^1.8.1",
"cors": "^2.8.6",
"csv-parse": "^7.0.0",
"csv-stringify": "^6.7.0",
"debounce": "^3.0.0",
"dedent": "^1.7.2",
"dotenv": "^17.3.1",
"drizzle-orm": "^0.45.1",
"execa": "^9.6.1",
"express": "^5.2.1",
"exsolve": "^1.0.8",
"fast-deep-equal": "^3.1.3",
"fast-safe-stringify": "^2.1.1",
"fast-xml-parser": "^5.7.1",
"fastest-levenshtein": "^1.0.16",
"gcp-metadata": "^8.1.2",
"glob": "^13.0.6",
"http-z": "^8.1.1",
"istextorbinary": "^9.5.0",
"js-rouge": "^3.2.0",
"js-yaml": "5.2.0",
"json5": "^2.2.3",
"keyv": "^5.6.0",
"keyv-file": "^5.3.3",
"lru-cache": "^11.3.0",
"mathjs": "^15.1.1",
"minimatch": "^10.2.4",
"nunjucks": "^3.2.4",
"openai": "^6.37.0",
"opener": "^1.5.2",
"ora": "^9.3.0",
"parse5": "^8.0.0",
"posthog-node": "~5.24.10",
"protobufjs": "^8.0.0",
"proxy-agent": "^8.0.0",
"proxy-from-env": "^2.1.0",
"python-shell": "^5.0.0",
"rfdc": "^1.4.1",
"rxjs": "^7.8.2",
"saxes": "^6.0.0",
"semver": "^7.7.4",
"simple-git": "^3.33.0",
"socket.io": "^4.8.3",
"socket.io-client": "^4.8.3",
"text-extensions": "^3.1.0",
"tsx": "^4.21.0",
"undici": ">=7.28.0 <8",
"winston": "^3.19.0",
"ws": "^8.19.0",
"zod": "^4.3.6"
},
"madge": {
"detectiveOptions": {
"ts": {
"skipAsyncImports": true
},
"tsx": {
"skipAsyncImports": true
}
}
},
"pnpm": {
"onlyBuiltDependencies": [
"@huggingface/transformers",
"@playwright/browser-chromium",
"@swc/core",
"core-js",
"core-js-pure",
"esbuild",
"protobufjs",
"sharp"
],
"ignoredBuiltDependencies": []
},
"homepage": "https://promptfoo.dev"
}