{
  "compilerOptions": {
    "declaration": true,
    "declarationDir": "./dist/types",
    "module": "esnext",
    "noImplicitAny": true,
    "outDir": "./types",
    "target": "es2015",
    "moduleResolution": "bundler",
    "allowSyntheticDefaultImports": true,
    "lib": ["es2017", "dom", "ES2021.String", "ES2021.WeakRef", "ES2022.Error"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "sourceMap": true,
    // A few specs import client modules to assert both sides agree on a shared contract.
    "rootDir": "../..",
    "types": ["node", "jest", "multer", "passport", "bun"],
    "paths": {
      "~/api/*": ["../../api/*"],
      "~/*": ["./src/*"],
      // @librechat/agents ships declaration files that import its internal "@/" alias, which
      // package exports cannot map; resolve them into its published types until the SDK
      // rewrites the aliases at build time.
      "@/*": ["../../node_modules/@librechat/agents/dist/types/*"]
    }
  },
  "ts-node": {
    "experimentalSpecifierResolution": "node",
    "transpileOnly": true,
    "esm": true
  },
  "exclude": ["node_modules", "dist", "types"],
  "include": ["src/**/*", "types/index.d.ts", "types/react-query/index.d.ts"]
}
