{
  "$schema": "./node_modules/knip/schema.json",
  // Required in the event that git submodules are present. Do not remove this, despite knip warnings.
  "ignore": [".repos/**"],
  // These come from mise.
  "ignoreBinaries": ["go", "jactionlint"],
  // Spawned through a node_modules/.bin path in tools/release/local-registry.ts and
  // bunx in apps/cli/tests/helpers/npm-registry.ts, which knip cannot trace.
  "ignoreDependencies": ["verdaccio"],
  "ignoreWorkspaces": ["apps/cli-go"],
  "workspaces": {
    "apps/cli": {
      "entry": [
        // Bundled by `bun build` in the build:shim script; knip's bun resolver derives no
        // entry from `bun build`.
        "src/shared/cli/bin.ts",
        // Run from workflow steps. Declared because publish-docs-spec.ts is pipe-invoked and
        // because a root plugin with a `**/` pattern makes knip drop cross-workspace workflow
        // entries.
        "scripts/*.ts",
        // Referenced from package.json#release.plugins; knip's Semantic Release plugin only
        // reads the root manifest.
        "scripts/analyze-commits-title.js",
        // tests/smoke-test.ts picks the platform file from a string map and spawns it.
        "tests/smoke-test-*.ts",
      ],
      "ignore": [
        // Generated by the gen:feedback-types script.
        "src/shared/feedback/database.types.ts",
        // Starter templates read as text by compute-stacks.macro.ts, never imported.
        "src/shared/compute/stacks/**",
      ],
      // Binaries the machine provides rather than npm.
      "ignoreBinaries": [
        // apps/cli/tests/smoke-test-macos.ts
        "brew",
        // apps/cli/tests/smoke-test-windows.ts
        "cygpath",
        // apps/cli/scripts/build.ts
        "nfpm",
        // apps/cli/scripts/build.ts
        "rcodesign",
        // apps/cli/tests/smoke-test-windows.ts
        "scoop",
        // The CLI under test in apps/cli/tests/smoke-test-{macos,windows}.ts.
        "supabase",
      ],
      // TODO(CLI-2424): spawned through a node_modules/.bin path in scripts/publish-docs-spec.ts.
      "ignoreDependencies": ["prettier"],
    },
    "apps/docs": {
      // Next.js convention file that knip's Next.js plugin does not list.
      "entry": ["mdx-components.tsx"],
    },
    "packages/config": {
      // Run from workflow steps; declared for the same cross-workspace reason as apps/cli.
      "entry": ["scripts/*.ts"],
    },
    "packages/stack": {
      "entry": [
        // Source-mode NativeProcess resolves this standalone launcher by URL.
        "src/runtime/native-launcher.ts",
        // scripts/generate-functions-bootstrap.ts bundles the Functions main service by path.
        "src/functions/serve.main.ts",
      ],
      // Used by the raw WebSocket integration fixture; Knip excludes that test-only import.
      "ignoreDependencies": ["@types/ws", "ws"],
    },
  },
}