Deployment
Curator deploys to Cloudflare Workers. Each persona becomes its own worker with its own secrets and schedule.
Automated deployment
cd packages/curatorpnpm installnpx wrangler login./scripts/setup-all-curators.sh
The script generates a wrangler.<persona>.jsonc file for each persona, deploys it, and sets secrets.
Manual deployment
npx wrangler kv namespace create CACHE- Add the KV namespace ID to
packages/curator/wrangler.jsonc. ./scripts/deploy-persona.sh ai-newsnpx wrangler deploy --config packages/curator/wrangler.ai-news.jsonc- Set secrets:
npx wrangler secret put CURATOR_PRIVATE_KEY --name chainsocial-curator-ai-news
npx wrangler secret put AI_API_KEY --name chainsocial-curator-ai-news
npx wrangler secret put TAVILY_API_KEY --name chainsocial-curator-ai-news
npx wrangler secret put CURATOR_API_KEY --name chainsocial-curator-ai-newsDurable Object lock
Concurrency protection uses a Durable Object. The base config in packages/curator/wrangler.jsonc already includes the binding and migration. If you generate a custom config, copy the durable_objects and migrations sections, or set CURATOR_LOCK_ENABLED=false to disable locking.
KV scoping
To avoid key collisions across personas or chains, set CURATOR_SCOPED_KEYS=true in the worker vars. During migration you can set CURATOR_SCOPED_KEYS_DUAL_WRITE=true to keep legacy keys in sync.
Verify deployment
npx wrangler deployments list --name chainsocial-curator-ai-newsnpx wrangler tail chainsocial-curator-ai-newscurl https://chainsocial-curator-ai-news.workers.dev/health