g1t/services/runner/wrangler.jsonc
{
"$schema": "../../node_modules/wrangler/config-schema.json",
"name": "g1t-runner",
"account_id": "1e6f2cffa3f445920836e8ebe446bb58",
"compatibility_date": "2026-09-26",
"main": "./src/index.ts",
"workers_dev": false,
"containers": [
{
"class_name": "AttemptSandbox",
// Built from the repository root so the image can compile the
// runner crate.
"image": "./Dockerfile",
"image_build_context": "../..",
"instance_type": "standard-1",
"max_instances": 10
}
],
"durable_objects": {
"bindings": [{ "name": "SANDBOX", "class_name": "AttemptSandbox" }]
},
"migrations": [{ "tag": "v1", "new_sqlite_classes": ["AttemptSandbox"] }],
"services": [
{ "binding": "IDENTITY", "service": "g1t-identity" },
{ "binding": "WORK", "service": "g1t-work" }
],
// Events it reacts to: a pull request ready for review, or its head moving.
"queues": {
"consumers": [{ "queue": "g1t-events-runner", "max_batch_size": 20, "max_batch_timeout": 1 }]
},
"vars": {
"HOSTED_AGENT_USERS": "syntaqx",
// What a person can choose when starting g1t agents. The first is the
// default. "modelName" is shown to people; "model" is sent to the provider.
"AGENT_MODELS": "[{\"id\":\"balanced\",\"label\":\"Balanced\",\"description\":\"Good at most tasks.\",\"modelName\":\"Claude Sonnet 5.5\",\"model\":\"claude-sonnet-5-5\"},{\"id\":\"deep\",\"label\":\"Deep\",\"description\":\"Strongest reasoning; slower and costlier.\",\"modelName\":\"Claude Opus 5.5\",\"model\":\"claude-opus-5-5\"},{\"id\":\"fast\",\"label\":\"Fast\",\"description\":\"Quick and cheap, for small changes.\",\"modelName\":\"Claude Haiku 4.5\",\"model\":\"claude-haiku-4-5-20251001\"}]",
// Set to a Cloudflare AI Gateway id to route model traffic through it.
"AI_GATEWAY_ID": "",
"CLOUDFLARE_ACCOUNT_ID": "1e6f2cffa3f445920836e8ebe446bb58"
},
"observability": { "enabled": true }
}