/**
 * package-surface.ts — Framework-level package-surface manifest for the
 * W0198 symbol-resolution preflight.
 *
 * The manifest pins each in-scope package to a single semver-major range.
 * The preflight resolver answers "does symbol X export from package Y" by
 * reading the installed package's `.d.ts` against this pin. Tasks
 * reference packages by name; they do not carry per-package version
 * metadata (per-task overrides remain a future extension point).
 *
 * Bumping a major is an editorial event — one PR that updates the pin,
 * regenerates cached surfaces, and re-runs the historical comparison set.
 * Patch and minor releases within a pinned major flow silently because
 * semver disallows the export removals that would change a deduction
 * outcome.
 *
 * @see docs/design-docs/two-stage-grader-symbol-preflight.md
 */

import { definePackageSurface } from "../_vendor/ailf-core/index.js"

export default definePackageSurface({
  packages: [
    // Sanity App SDK — drives App SDK literacy tasks (e.g. DOC-2117).
    { pkg: "@sanity/sdk-react", semverPin: "^2.0.0" },

    // Sanity Studio runtime — drives Studio-side literacy tasks.
    // Pinned to the installed major in this repo (^5.x). The earlier
    // major (v3) is an explicit per-task override candidate when a task
    // exercises legacy Studio behavior.
    { pkg: "sanity", semverPin: "^5.0.0" },

    // @sanity/client — drives direct-client literacy tasks. Pinned to
    // the installed major in this repo (^7.x).
    { pkg: "@sanity/client", semverPin: "^7.0.0" },
  ],
})
