{ "$schema": "node_modules/wrangler/config-schema.json", "name": "infiplot", "main": ".open-next/worker.js", "compatibility_date": "2025-03-25", "compatibility_flags": ["nodejs_compat"], "assets": { "binding": "ASSETS", "directory": ".open-next/assets" }, "observability": { "enabled": true }, // Placement Hint: uncomment to pin Worker execution to a specific region. // Example: "azure:eastasia" for lowest latency to mainland China. // Static assets always serve from the edge nearest the user regardless. // "placement": { // "region": "azure:eastasia" // }, // CPU time limit: Workers Paid plan default is 30s, which is sufficient. // InfiPlot scene pipeline is I/O-bound (5-6 LLM API calls with 3-15s each), // actual CPU work (JSON parse, string ops) ~200ms. No cpu_ms override needed. // "limits": { // "cpu_ms": 30000 // }, // ── Runtime variables ─────────────────────────────────────────────── // Empty strings are placeholders — set real values via Cloudflare Dashboard // (Settings → Variables) or .dev.vars for local development. // The app reports the missing variable name on first request if left empty. "vars": { "NEXT_PRIVATE_MINIMAL_MODE": "1", "MOCK_IMAGE": "false", "TEXT_BASE_URL": "", "TEXT_MODEL": "", "IMAGE_BASE_URL": "", "IMAGE_MODEL": "", "VISION_BASE_URL": "", "VISION_MODEL": "", "TTS_BASE_URL": "", "TTS_SPEECH_MODEL": "" }, // ── Secrets (set via Dashboard or `wrangler secret put`) ───────────── // Required (3): TEXT_API_KEY, IMAGE_API_KEY, VISION_API_KEY // Optional (2): TTS_API_KEY (voice synthesis), GALLERY_SECRET (story share encryption) // // ── Optional non-secret tuning (set via Dashboard if needed) ───────── // IMAGE_TIMEOUT_MS — per-attempt image generation timeout (default: off) // IMAGE_HEDGE_MS — hedge a second image request after this delay (default: off) // // ── Build-time variables (NOT runtime — set during `pnpm build:cf`) ── // NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, // NEXT_PUBLIC_IMAGE_PROXY_URL, NEXT_PUBLIC_UMAMI_SRC, // NEXT_PUBLIC_UMAMI_WEBSITE_ID, NEXT_PUBLIC_UMAMI_DOMAINS // // See .dev.vars.example for a full reference of all variables. // ──────────────────────────────────────────────────────────────────── // ── Cloudflare D1 database (story persistence — optional) ─────────── // Not required for core gameplay. Uncomment and fill in your ID if needed: // wrangler d1 create infiplot-db // "d1_databases": [ // { // "binding": "DB", // "database_name": "infiplot-db", // "database_id": "" // } // ], // ── Cloudflare R2 bucket (asset storage — optional) ───────────────── // Not required for core gameplay. Uncomment if needed: // wrangler r2 bucket create infiplot-assets // "r2_buckets": [ // { // "binding": "R2_BUCKET", // "bucket_name": "infiplot-assets" // } // ], // ── Cloudflare KV namespace (reserved for future use) ─────────────── // Uncomment if needed: wrangler kv namespace create KV // "kv_namespaces": [ // { // "binding": "KV", // "id": "" // } // ] }