{
  "project": "GatePath",
  "schemaVersion": 1,
  "version": "default.20260617.143626",
  "profile": "default",
  "generatedAt": "2026-06-17T14:38:32.161Z",
  "sourceGeneratedAt": "2026-06-17T14:36:26.927Z",
  "revision": {
    "source": "local-git",
    "commit": "d435e54697cead10002fa3cebb75cd5959bed6b3",
    "shortCommit": "d435e54697ce",
    "branch": "HEAD"
  },
  "generatedBy": {
    "tool": "tools/release/prepare.ts",
    "command": "pnpm release-cloudflare",
    "packageManager": "pnpm"
  },
  "deployment": {
    "mode": "single-origin",
    "siteBaseUrl": "https://proxy.du.dev",
    "resourceBaseUrl": "https://proxy.du.dev",
    "uploadDirectory": "dist",
    "cloudflarePages": {
      "buildCommand": "SITE_BASE_URL=https://proxy.du.dev PUBLIC_BASE_URL=https://proxy.du.dev pnpm release-cloudflare",
      "outputDirectory": "dist",
      "nodeVersion": "24"
    }
  },
  "resourcePolicy": {
    "externalHotlinksAllowed": false,
    "generatedResourcesBaseUrl": "https://proxy.du.dev",
    "siteBaseUrl": "https://proxy.du.dev",
    "resourceMirror": false,
    "note": "Client-facing configs, rules, scripts, icons, modules, rewrites, overrides, and assets must resolve under GatePath-controlled origins."
  },
  "clientConfigs": [
    {
      "client": "loon",
      "url": "https://proxy.du.dev/loon/config/main.conf"
    },
    {
      "client": "surge",
      "url": "https://proxy.du.dev/surge/config/main.conf"
    },
    {
      "client": "quantumultx",
      "url": "https://proxy.du.dev/quantumultx/config/main.conf"
    },
    {
      "client": "shadowrocket",
      "url": "https://proxy.du.dev/shadowrocket/config/main.conf"
    },
    {
      "client": "stash",
      "url": "https://proxy.du.dev/stash/config/main.yaml"
    }
  ],
  "evidence": {
    "manifest": "https://proxy.du.dev/manifest.json",
    "checksums": "https://proxy.du.dev/checksums.txt",
    "health": "https://proxy.du.dev/health.json",
    "status": "https://proxy.du.dev/status.json",
    "diagnostics": "https://proxy.du.dev/diagnostics.json",
    "actionSummary": "https://proxy.du.dev/action-summary.json",
    "storeAudit": "https://proxy.du.dev/store-audit.json",
    "resourceIntegrity": "https://proxy.du.dev/resource-integrity-report.json",
    "importLinks": "https://proxy.du.dev/import-link-report.json",
    "secrets": "https://proxy.du.dev/secrets-report.json",
    "onlineAcceptance": "https://proxy.du.dev/online-acceptance.json",
    "ruleQualityPlan": "https://proxy.du.dev/rule-quality-plan.json",
    "ruleConflictReview": "https://proxy.du.dev/rule-conflict-review.json",
    "ruleReviewPack": "https://proxy.du.dev/rule-review-pack.json",
    "ruleReviewPackMarkdown": "https://proxy.du.dev/rule-review-pack.md",
    "ruleDuplicatePack": "https://proxy.du.dev/rule-duplicate-pack.json",
    "ruleDuplicatePackMarkdown": "https://proxy.du.dev/rule-duplicate-pack.md",
    "ruleDecisionDraft": "https://proxy.du.dev/rule-conflict-decisions.draft.yaml",
    "sharedRuleCandidates": "https://proxy.du.dev/shared-rule-candidates.json"
  },
  "verification": {
    "local": [
      "pnpm release-check",
      "SITE_BASE_URL=https://proxy.du.dev pnpm cloudflare-check -- --dist",
      "pnpm cloudflare-package-check"
    ],
    "postDeploy": [
      "ONLINE_BASE_URL=https://proxy.du.dev pnpm online-cloudflare-check",
      "ONLINE_BASE_URL=https://proxy.du.dev pnpm online-check",
      "ONLINE_BASE_URL=https://proxy.du.dev pnpm online-headers-check"
    ]
  }
}
