{
  "schema": "ai-site-control/v1",
  "site": {
    "name": "Lim Cheng Yang Portfolio",
    "productionOrigin": "https://lim-cheng-yang-portfolio.chengyang1017.workers.dev",
    "adminPath": "/admin"
  },
  "source": {
    "provider": "github",
    "repository": "chengyang1017/portfolio",
    "defaultBranch": "main"
  },
  "deployment": {
    "provider": "cloudflare-workers",
    "workflow": ".github/workflows/deploy-cloudflare.yml",
    "trigger": "push-to-main"
  },
  "liveContent": {
    "apiVersion": 1,
    "provider": "cloudflare-durable-object",
    "readEndpoint": "/api/agent/content",
    "writeEndpoint": "/api/agent/content",
    "openapi": "/.well-known/portfolio-agent-openapi.json",
    "writesRequireGitHub": false,
    "writesRequireDeployment": false,
    "optimisticConcurrency": "expectedUpdatedAt",
    "writableTopLevelFields": [
      "projects",
      "technologyCatalog",
      "projectTranslationCatalog"
    ]
  },
  "editableAreas": {
    "projects": "src/data/projects.ts",
    "projectTranslations": "src/data/projectTranslationCatalog.ts",
    "technologyCatalog": "src/data/technologyCatalog.ts",
    "admin": "src/pages/AdminPage.tsx",
    "adminStyles": "src/styles/admin.css",
    "workerBuild": "scripts/prepare-site-build.mjs"
  },
  "assistantWorkflow": {
    "contentChanges": "Use the authenticated liveContent API when available so content changes are immediate and do not touch GitHub.",
    "codeChanges": "Use the connected GitHub repository for React, CSS, Worker, build, and deployment changes.",
    "inspectProductionFirst": true,
    "readBeforeWrite": true,
    "validateBuildBeforeCompletionForCodeChanges": true,
    "verifyDeploymentAfterPushForCodeChanges": true,
    "neverStoreSecretsInRepository": true
  },
  "authorization": {
    "manifestGrantsWriteAccess": false,
    "requireAuthenticatedOwnerInstruction": true,
    "contentApi": {
      "scheme": "bearer",
      "preferredSecret": "PORTFOLIO_AGENT_TOKEN",
      "fallbackSecret": "ADMIN_PASSWORD",
      "secretIsNeverPublished": true
    },
    "repositoryWrites": {
      "requireConnectedRepositoryWriteAccess": true
    }
  }
}
