{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true,
    "inlineSources": true,
    "outDir": "dist",
    "rootDir": "src",
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "skipLibCheck": true,
    "isolatedModules": true,
    "jsx": "react-jsx",
    "lib": ["ES2022", "DOM", "DOM.Iterable"],
    "types": ["node", "vite/client", "react-dom"],
    "incremental": true,
    "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo/core.tsbuildinfo"
  },
  "include": ["src/**/*"],
  "exclude": [
    "node_modules",
    "dist",
    "src/templates",
    "src/**/*.spec.ts",
    "src/**/*.spec.tsx",
    "src/**/*.e2e-host.tsx",
    // TODO: fenced concurrent-agent work — flip strict after in-flight PRs land
    // recap.ts, skills.ts, workspace-dev.ts have strict errors but are fenced.
    // Excluding all of src/cli prevents dynamic imports from re-pulling them in.
    "src/cli/**",
    // testing.ts re-exports src/cli/** symbols (design-connect, plan-local) for
    // the "./testing" export subpath; it compiles via tsconfig.cli.json instead
    // so those fenced strict errors don't leak back into the main build.
    "src/testing.ts"
  ]
}
