{
  "name": "llm-relay",
  "version": "0.37.0",
  "description": "Loopback bidirectional Anthropic/OpenAI API proxy with tool-call validation and multi-provider routing.",
  "type": "module",
  "engines": {
    "node": ">=22"
  },
  "bin": {
    "llm-relay": "dist/cli.js"
  },
  "license": "MIT",
  "publishConfig": {
    "access": "public"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/OhOkThisIsFine/llm-relay.git"
  },
  "files": [
    "dist",
    "docs/tier-data.json",
    "docs/dashboard-bundle-inventory.json",
    "skills",
    "scripts/install-skill.mjs",
    "scripts/sync-tiers.mjs",
    "scripts/tier-scoring.mjs",
    "scripts/tier-scoring.d.mts",
    "README.md",
    "LICENSE",
    "THIRD_PARTY_NOTICES.md",
    "config.example.json"
  ],
  "scripts": {
    "build": "npm run build:server && npm run build:dashboard",
    "dev": "tsx src/cli.ts",
    "start": "node dist/cli.js",
    "sync:tiers": "node scripts/sync-tiers.mjs",
    "test": "vitest run",
    "typecheck": "tsc -p tsconfig.json --noEmit",
    "typecheck:test": "tsc -p tsconfig.test.json",
    "check": "npm run typecheck && npm run typecheck:test && npm test && npm run check:dashboard && npm run check:package",
    "postinstall": "node scripts/install-skill.mjs || node -e \"process.stderr.write('llm-relay: the postinstall hook crashed, so the bundled host skills and Codex setup were NOT fully installed. The package itself is fine. Retry with: node scripts/install-skill.mjs --force\\n')\"",
    "analysis:run": "node scripts/analysis-run.mjs",
    "prepack": "npm run build",
    "prepublishOnly": "npm run build && npm run check",
    "build:server": "node scripts/clean-dist.mjs && tsc -p tsconfig.json",
    "build:dashboard": "vite build --config dashboard/vite.config.ts",
    "check:dashboard": "tsc -p dashboard/tsconfig.json --noEmit && vitest run --config dashboard/vitest.config.ts",
    "check:package": "node scripts/dashboard-package-check.mjs && node scripts/packed-dashboard-smoke.mjs"
  },
  "dependencies": {
    "ajv": "^8.17.1",
    "llm-bridge": "^2.0.1"
  },
  "devDependencies": {
    "@eslint/js": "^10.0.1",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.2",
    "@testing-library/user-event": "^14.6.5",
    "@types/node": "^22.10.0",
    "@types/react": "^19.2.18",
    "@types/react-dom": "^19.2.4",
    "@typescript-eslint/eslint-plugin": "^8.66.0",
    "@typescript-eslint/parser": "^8.66.0",
    "@vitejs/plugin-react": "^4.4.1",
    "autoprefixer": "^10.5.4",
    "axe-core": "^4.13.0",
    "dependency-cruiser": "^18.1.1",
    "eslint": "^10.8.1",
    "eslint-plugin-sonarjs": "^4.2.0",
    "hyparquet": "^1.26.2",
    "jscpd": "^5.0.14",
    "jsdom": "^26.1.0",
    "knip": "^6.32.0",
    "lucide-react": "^0.468.0",
    "madge": "^8.0.0",
    "react": "^19.2.8",
    "react-dom": "^19.2.8",
    "tailwindcss": "^3.4.19",
    "ts-prune": "^0.10.3",
    "tsx": "^4.19.2",
    "typescript": "^5.7.2",
    "vite": "^6.4.3",
    "vitest": "^4.1.11",
    "vitest-axe": "^0.1.0"
  }
}
