{
  "version": 1,
  "edition": "beacon",
  "acceptance": {
    "document": "ACCEPTANCE.md",
    "meaning": "Passing verify covers executed gates only; first-release acceptance and external evidence are recorded in ACCEPTANCE.md."
  },
  "commands": {
    "setup": {
      "argv": [
        "pnpm",
        "run",
        "setup"
      ],
      "effects": "Provision or reuse the preview D1, R2, Queue, and dead-letter Queue resources and write the ignored deployment cache and Wrangler configuration. The environment can be changed with --environment or BEACON_DEPLOY_ENV."
    },
    "deploy": {
      "argv": [
        "pnpm",
        "run",
        "deploy"
      ],
      "effects": "Build the deployable Worker, apply remote D1 migrations, upload the emitted Worker with declared private secrets, and wait for the selected cached public origin /health response. Setup must have produced that environment cache first."
    },
    "verify": {
      "argv": [
        "pnpm",
        "run",
        "verify"
      ],
      "effects": "Check edition source identity, then run composition, seed, registry, baseline, typecheck, test, build, emitted-artifact, and browser checks; baseline reports TODO coverage and strict completeness is a separate command."
    }
  },
  "requiredEnvironment": [
    "CLOUDFLARE_ACCOUNT_ID",
    "BEACON_PUBLIC_ORIGIN"
  ],
  "authentication": "Remote setup and deployment require an authenticated Wrangler identity with the selected Cloudflare account, normally via CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID or an equivalent configured Wrangler login. Provider secrets are supplied through the environment and temporary private secret file.",
  "configuration": [
    {
      "path": "seed.json",
      "description": "Declares Beacon environment inputs, conditional production/provider requirements, bindings, and health route."
    },
    {
      "path": "wrangler.jsonc",
      "description": "Tracked local Worker configuration used for local development; remote setup emits an ignored environment-specific configuration."
    },
    {
      "path": "src/ext/config.ts",
      "description": "Buyer-owned public workspace identity, operator-facing copy, and theme."
    },
    {
      "path": ".seed/deployment/preview.json",
      "description": "Ignored setup cache for the default preview namespace, including provisioned resource IDs and public origin."
    }
  ],
  "health": {
    "path": "/health",
    "meaning": "Runs bounded reachability probes for D1, R2-backed storage, and Queue. It returns 200 only when all three are available and exposes diagnostic timing without provider secrets."
  },
  "notes": [
    "The default remote environment is preview; select production with -- --environment production or BEACON_DEPLOY_ENV=production.",
    "BEACON_PUBLIC_ORIGIN is required for preview and production. Production additionally requires the manifest's conditional sender, receipt, rate-limit, and selected-provider values; Resend ingress and OpenAI values remain conditional.",
    "Operations-provider support is intentionally unavailable in the current edition; configured operations are not executable or accepted.",
    "verify covers only executed local gates and does not certify full first-release acceptance, external provider delivery, or hosted readiness; see ACCEPTANCE.md.",
    "The operations check is read-only static local input validation. It does not inspect Cloudflare, setup caches, built artifacts, migration state, or hosted health."
  ]
}
