[{"data":1,"prerenderedAt":2023},["ShallowReactive",2],{"navigation":3,"/concepts/runners":879,"/concepts/runners-surround":2018},[4,22,45,115,156,187,214,235,264,295,318,361,389,418,436,470,491,534,548,571,632,670,693,757,850],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Introduction","/introduction","01.introduction/1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"What is Orkestia?","i-lucide-sparkles",{"title":13,"path":14,"stem":15,"icon":16},"Core Philosophy","/introduction/core-philosophy","01.introduction/2.core-philosophy","i-lucide-shield-check",{"title":18,"path":19,"stem":20,"icon":21},"Key Benefits","/introduction/key-benefits","01.introduction/3.key-benefits","i-lucide-trophy",{"title":23,"path":24,"stem":25,"children":26,"icon":29},"Getting Started","/getting-started","02.getting-started/1.index",[27,30,35,40],{"title":28,"path":24,"stem":25,"icon":29},"Quick Start","i-lucide-rocket",{"title":31,"path":32,"stem":33,"icon":34},"Architecture Overview","/getting-started/architecture-overview","02.getting-started/2.architecture-overview","i-lucide-layout-dashboard",{"title":36,"path":37,"stem":38,"icon":39},"Concepts at a Glance","/getting-started/concepts","02.getting-started/3.concepts","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Connect an AI Assistant","/getting-started/connect-an-ai-assistant","02.getting-started/4.connect-an-ai-assistant","i-lucide-bot",{"title":46,"path":47,"stem":48,"children":49,"icon":51},"Core Concepts","/concepts","03.concepts/01.index",[50,52,57,62,67,71,76,81,86,91,96,100,105,110],{"title":46,"path":47,"stem":48,"icon":51},"i-lucide-book-open",{"title":53,"path":54,"stem":55,"icon":56},"Workflows","/concepts/workflows","03.concepts/02.workflows","i-lucide-workflow",{"title":58,"path":59,"stem":60,"icon":61},"DGI — Dialog Generative Interface","/concepts/dgi","03.concepts/03.dgi","i-lucide-brain",{"title":63,"path":64,"stem":65,"icon":66},"Staff & AI Workforce Governance","/concepts/staff-governance","03.concepts/04.staff-governance","i-lucide-users-round",{"title":68,"path":69,"stem":70,"icon":44},"Agents — the execution substrate","/concepts/agents-platform","03.concepts/05.agents-platform",{"title":72,"path":73,"stem":74,"icon":75},"Runners & Execution Environments","/concepts/runners","03.concepts/06.runners","i-lucide-server-cog",{"title":77,"path":78,"stem":79,"icon":80},"Lumen Observability","/concepts/lumen","03.concepts/07.lumen","i-lucide-activity",{"title":82,"path":83,"stem":84,"icon":85},"Identity & Multi-Tenancy","/concepts/identity-multi-tenancy","03.concepts/08.identity-multi-tenancy","i-lucide-users",{"title":87,"path":88,"stem":89,"icon":90},"Billing, Pricing & Seats","/concepts/billing-and-seats","03.concepts/09.billing-and-seats","i-lucide-credit-card",{"title":92,"path":93,"stem":94,"icon":95},"App Data","/concepts/appdata","03.concepts/10.appdata","i-lucide-database",{"title":97,"path":98,"stem":99,"icon":61},"Engram","/concepts/engram","03.concepts/11.engram",{"title":101,"path":102,"stem":103,"icon":104},"DevKit","/concepts/devkit","03.concepts/12.devkit","i-lucide-terminal",{"title":106,"path":107,"stem":108,"icon":109},"App Host","/concepts/app-host","03.concepts/13.app-host","i-lucide-globe",{"title":111,"path":112,"stem":113,"icon":114},"Agent Exchange","/concepts/agent-exchange","03.concepts/14.agent-exchange","i-lucide-landmark",{"title":116,"path":117,"stem":118,"children":119,"icon":121},"Guides","/guides","04.guides/1.index",[120,122,127,132,137,142,147,151],{"title":116,"path":117,"stem":118,"icon":121},"i-lucide-compass",{"title":123,"path":124,"stem":125,"icon":126},"Building with DGI","/guides/building-with-dgi","04.guides/2.building-with-dgi","i-lucide-brain-circuit",{"title":128,"path":129,"stem":130,"icon":131},"Creating & Exposing Virtual Workflows","/guides/virtual-workflows","04.guides/4.virtual-workflows","i-lucide-blocks",{"title":133,"path":134,"stem":135,"icon":136},"Runner Management & Provisioning","/guides/runner-management","04.guides/5.runner-management","i-lucide-server",{"title":138,"path":139,"stem":140,"icon":141},"Security & Compliance","/guides/security-and-compliance","04.guides/7.security-and-compliance","i-lucide-shield",{"title":143,"path":144,"stem":145,"icon":146},"Tickets & Software Delivery","/guides/tickets-and-software-delivery","04.guides/8.tickets-and-software-delivery","i-lucide-ticket",{"title":148,"path":149,"stem":150},"Orkestia for AI-driven cloud infrastructure automation","/guides/cloud-automation-alternatives","04.guides/9.cloud-automation-alternatives",{"title":152,"path":153,"stem":154,"icon":155},"Typed decisions with TypeSafe","/guides/typed-decisions-with-typesafe","04.guides/9.typed-decisions-with-typesafe","i-lucide-git-branch",{"title":157,"path":158,"stem":159,"children":160,"icon":162},"Reference","/reference","05.reference/1.index",[161,163,168,173,177,182],{"title":157,"path":158,"stem":159,"icon":162},"i-lucide-library",{"title":164,"path":165,"stem":166,"icon":167},"Workflow Types & Registry","/reference/workflow-types-registry","05.reference/2.workflow-types-registry","i-lucide-list-tree",{"title":169,"path":170,"stem":171,"icon":172},"MCP Integration","/reference/mcp-integration","05.reference/3.mcp-integration","i-lucide-plug-zap",{"title":174,"path":175,"stem":176,"icon":104},"API & Tooling","/reference/api-tooling","05.reference/4.api-tooling",{"title":178,"path":179,"stem":180,"icon":181},"Integrations Catalog","/reference/integrations-catalog","05.reference/6.integrations-catalog","i-lucide-plug",{"title":183,"path":184,"stem":185,"icon":186},"Platform Services","/reference/platform-services","05.reference/7.platform-services","i-lucide-boxes",{"title":188,"path":189,"stem":190,"children":191,"icon":193},"Advanced Topics","/advanced","06.advanced/1.index",[192,194,199,204,209],{"title":188,"path":189,"stem":190,"icon":193},"i-lucide-flask-conical",{"title":195,"path":196,"stem":197,"icon":198},"Hybrid AI + Deterministic Execution","/advanced/hybrid-execution-model","06.advanced/2.hybrid-execution-model","i-lucide-git-merge",{"title":200,"path":201,"stem":202,"icon":203},"Drift Detection & Self-Healing","/advanced/drift-detection-self-healing","06.advanced/3.drift-detection-self-healing","i-lucide-heart-pulse",{"title":205,"path":206,"stem":207,"icon":208},"Governance & Approvals","/advanced/governance-and-approvals","06.advanced/4.governance-and-approvals","i-lucide-scale",{"title":210,"path":211,"stem":212,"icon":213},"Cost & Performance Optimization","/advanced/cost-and-performance","06.advanced/5.cost-and-performance","i-lucide-zap",{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Operations","/operations","07.operations/1.index",[219,221,225,230],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-settings-2",{"title":222,"path":223,"stem":224,"icon":186},"Deployment Models","/operations/deployment-models","07.operations/2.deployment-models",{"title":226,"path":227,"stem":228,"icon":229},"Monitoring & Debugging","/operations/monitoring-and-debugging","07.operations/3.monitoring-and-debugging","i-lucide-bug",{"title":231,"path":232,"stem":233,"icon":234},"Best Practices","/operations/best-practices","07.operations/4.best-practices","i-lucide-check-check",{"title":236,"path":237,"stem":238,"children":239,"icon":241},"AWS Connections","/aws-connections","08.aws-connections/1.index",[240,242,245,250,255,260],{"title":236,"path":237,"stem":238,"icon":241},"i-simple-icons-amazonaws",{"title":23,"path":243,"stem":244,"icon":29},"/aws-connections/getting-started","08.aws-connections/2.getting-started",{"title":246,"path":247,"stem":248,"icon":249},"Setup Methods","/aws-connections/setup-methods","08.aws-connections/3.setup-methods","i-lucide-wrench",{"title":251,"path":252,"stem":253,"icon":254},"Managing Connections","/aws-connections/managing-connections","08.aws-connections/4.managing-connections","i-lucide-settings",{"title":256,"path":257,"stem":258,"icon":259},"Security Best Practices","/aws-connections/security-best-practices","08.aws-connections/5.security-best-practices","i-lucide-lock",{"title":261,"path":262,"stem":263,"icon":229},"Troubleshooting","/aws-connections/troubleshooting","08.aws-connections/6.troubleshooting",{"title":265,"path":266,"stem":267,"children":268,"icon":270},"Cloud Connections","/cloud-connections","09.cloud-connections/1.index",[269,271,276,281,286,291],{"title":265,"path":266,"stem":267,"icon":270},"i-lucide-cable",{"title":272,"path":273,"stem":274,"icon":275},"Google Cloud (GCP)","/cloud-connections/gcp","09.cloud-connections/2.gcp","i-simple-icons-googlecloud",{"title":277,"path":278,"stem":279,"icon":280},"Microsoft Azure","/cloud-connections/azure","09.cloud-connections/3.azure","i-simple-icons-microsoftazure",{"title":282,"path":283,"stem":284,"icon":285},"Magalu Cloud","/cloud-connections/magalu","09.cloud-connections/4.magalu","i-lucide-cloud",{"title":287,"path":288,"stem":289,"icon":290},"Kubernetes","/cloud-connections/kubernetes","09.cloud-connections/5.kubernetes","i-simple-icons-kubernetes",{"title":292,"path":293,"stem":294,"icon":208},"TypeSafe","/cloud-connections/typesafe","09.cloud-connections/6.typesafe",{"title":296,"path":297,"stem":298,"children":299,"icon":136},"DNS Providers","/dns-providers","10.dns-providers/1.index",[300,302,305,308,311,315],{"title":301,"path":297,"stem":298,"icon":136},"DNS Provider Connections",{"title":23,"path":303,"stem":304,"icon":29},"/dns-providers/getting-started","10.dns-providers/2.getting-started",{"title":246,"path":306,"stem":307,"icon":249},"/dns-providers/setup-methods","10.dns-providers/3.setup-methods",{"title":251,"path":309,"stem":310,"icon":254},"/dns-providers/managing-connections","10.dns-providers/4.managing-connections",{"title":312,"path":313,"stem":314,"icon":39},"Zones and Records","/dns-providers/zones-and-records","10.dns-providers/5.zones-and-records",{"title":261,"path":316,"stem":317,"icon":229},"/dns-providers/troubleshooting","10.dns-providers/6.troubleshooting",{"title":319,"path":320,"stem":321,"children":322,"icon":29},"Cloud Deploy","/cloud-deploy","11.cloud-deploy/01.index",[323,324,327,332,336,341,345,349,354,358],{"title":319,"path":320,"stem":321,"icon":29},{"title":23,"path":325,"stem":326,"icon":29},"/cloud-deploy/getting-started","11.cloud-deploy/02.getting-started",{"title":328,"path":329,"stem":330,"icon":331},"Creating a Site","/cloud-deploy/creating-a-site","11.cloud-deploy/03.creating-a-site","i-lucide-plus-circle",{"title":333,"path":334,"stem":335,"icon":34},"Site Overview and Deployments","/cloud-deploy/site-overview","11.cloud-deploy/04.site-overview",{"title":337,"path":338,"stem":339,"icon":340},"Deployment Progress and Success","/cloud-deploy/deployment-progress","11.cloud-deploy/05.deployment-progress","i-lucide-loader",{"title":342,"path":343,"stem":344,"icon":254},"Settings","/cloud-deploy/settings","11.cloud-deploy/06.settings",{"title":346,"path":347,"stem":348,"icon":109},"Custom Domains","/cloud-deploy/custom-domains","11.cloud-deploy/07.custom-domains",{"title":350,"path":351,"stem":352,"icon":353},"Resources, Releases, and Danger Zone","/cloud-deploy/resources-releases","11.cloud-deploy/08.resources-releases","i-lucide-package",{"title":355,"path":356,"stem":357,"icon":141},"Admin Dashboard","/cloud-deploy/admin-dashboard","11.cloud-deploy/09.admin-dashboard",{"title":261,"path":359,"stem":360,"icon":229},"/cloud-deploy/troubleshooting","11.cloud-deploy/10.troubleshooting",{"title":362,"path":363,"stem":364,"children":365,"icon":368},"User Onboarding","/user-onboarding","12.user-onboarding/1.index",[366,369,372,377,382,386],{"title":367,"path":363,"stem":364,"icon":368},"User Creation and Onboarding","i-lucide-user-plus",{"title":23,"path":370,"stem":371,"icon":29},"/user-onboarding/getting-started","12.user-onboarding/2.getting-started",{"title":373,"path":374,"stem":375,"icon":376},"Creating Your Organization","/user-onboarding/onboarding","12.user-onboarding/3.onboarding","i-lucide-building-2",{"title":378,"path":379,"stem":380,"icon":381},"Invitations","/user-onboarding/invitations","12.user-onboarding/4.invitations","i-lucide-mail",{"title":383,"path":384,"stem":385,"icon":254},"Managing Your Account","/user-onboarding/managing-account","12.user-onboarding/5.managing-account",{"title":261,"path":387,"stem":388,"icon":229},"/user-onboarding/troubleshooting","12.user-onboarding/6.troubleshooting",{"title":342,"path":390,"stem":391,"children":392,"icon":394},"/settings","13.settings/1.index",[393,395,400,404,409,413],{"title":342,"path":390,"stem":391,"icon":394},"i-lucide-sliders-horizontal",{"title":396,"path":397,"stem":398,"icon":399},"General Settings","/settings/general","13.settings/2.general","i-lucide-user",{"title":401,"path":402,"stem":403,"icon":85},"Members Settings","/settings/members","13.settings/3.members",{"title":405,"path":406,"stem":407,"icon":408},"Notifications Settings","/settings/notifications","13.settings/4.notifications","i-lucide-bell",{"title":410,"path":411,"stem":412,"icon":141},"Security Settings","/settings/security","13.settings/5.security",{"title":414,"path":415,"stem":416,"icon":417},"Signing Keys","/settings/keys","13.settings/6.keys","i-lucide-key-round",{"title":419,"path":420,"stem":421,"children":422,"icon":29},"App Enablement","/app-enablement","14.app-enablement/1.index",[423,424,428,432],{"title":419,"path":420,"stem":421,"icon":29},{"title":425,"path":426,"stem":427,"icon":417},"Sign in with Orkestia","/app-enablement/sign-in-with-orkestia","14.app-enablement/2.sign-in-with-orkestia",{"title":429,"path":430,"stem":431,"icon":95},"End-user data","/app-enablement/end-user-data","14.app-enablement/3.end-user-data",{"title":433,"path":434,"stem":435,"icon":131},"Compositions — use, invoke, share","/app-enablement/compositions","14.app-enablement/4.compositions",{"title":437,"path":438,"stem":439,"children":440,"icon":80},"Lumen","/lumen","15.lumen/1.index",[441,442,447,452,457,461,465],{"title":437,"path":438,"stem":439,"icon":80},{"title":443,"path":444,"stem":445,"icon":446},"Enable Lumen","/lumen/enable","15.lumen/2.enable","i-lucide-power",{"title":448,"path":449,"stem":450,"icon":451},"Send data","/lumen/send-data","15.lumen/3.send-data","i-lucide-upload",{"title":453,"path":454,"stem":455,"icon":456},"Collector","/lumen/collector","15.lumen/4.collector","i-lucide-container",{"title":458,"path":459,"stem":460,"icon":34},"Use Lumen","/lumen/observe","15.lumen/5.observe",{"title":462,"path":463,"stem":464,"icon":44},"Lumen MCP","/lumen/mcp","15.lumen/6.mcp",{"title":466,"path":467,"stem":468,"icon":469},"Query API","/lumen/query-api","15.lumen/7.query-api","i-lucide-search",{"title":471,"path":472,"stem":473,"children":474,"icon":476},"SDKs","/sdks","16.sdks/1.index",[475,477,482,487],{"title":471,"path":472,"stem":473,"icon":476},"i-lucide-code",{"title":478,"path":479,"stem":480,"icon":481},"Workflows SDK — Node / TypeScript","/sdks/workflows-nodejs","16.sdks/2.workflows-nodejs","i-lucide-file-ts",{"title":483,"path":484,"stem":485,"icon":486},"Workflows SDK — Python","/sdks/workflows-python","16.sdks/3.workflows-python","i-simple-icons-python",{"title":488,"path":489,"stem":490,"icon":417},"Auth SDK — Sign in with Orkestia","/sdks/auth","16.sdks/4.auth",{"title":92,"path":492,"stem":493,"children":494,"icon":95},"/appdata","17.appdata/1.index",[495,496,501,506,510,515,520,525,530],{"title":92,"path":492,"stem":493,"icon":95},{"title":497,"path":498,"stem":499,"icon":500},"Declare structures","/appdata/declare","17.appdata/2.declare","i-lucide-table",{"title":502,"path":503,"stem":504,"icon":505},"Records & Data API","/appdata/data-api","17.appdata/3.data-api","i-lucide-rows-3",{"title":507,"path":508,"stem":509,"icon":376},"Ownership & workspaces","/appdata/ownership","17.appdata/4.ownership",{"title":511,"path":512,"stem":513,"icon":514},"Expose App Data to end-users","/appdata/expose","17.appdata/5.expose","i-lucide-app-window",{"title":516,"path":517,"stem":518,"icon":519},"PostgREST HTTP","/appdata/postgrest","17.appdata/6.postgrest","i-lucide-unplug",{"title":521,"path":522,"stem":523,"icon":524},"Ordered append","/appdata/append","17.appdata/7.append","i-lucide-list-ordered",{"title":526,"path":527,"stem":528,"icon":529},"Databases and instances","/appdata/instances","17.appdata/8.instances","i-lucide-hard-drive",{"title":531,"path":532,"stem":533,"icon":104},"Query console and SQL","/appdata/query","17.appdata/9.query",{"title":97,"path":535,"stem":536,"children":537,"icon":61},"/engram","18.engram/1.index",[538,539,543],{"title":97,"path":535,"stem":536,"icon":61},{"title":540,"path":541,"stem":542,"icon":155},"Write & recall","/engram/write-recall","18.engram/2.write-recall",{"title":544,"path":545,"stem":546,"icon":547},"Field & feed","/engram/agent-memory","18.engram/3.agent-memory","i-lucide-radio",{"title":101,"path":549,"stem":550,"children":551,"icon":104},"/devkit","19.devkit/1.index",[552,553,558,562,567],{"title":101,"path":549,"stem":550,"icon":104},{"title":554,"path":555,"stem":556,"icon":557},"Install DevKit","/devkit/install","19.devkit/2.install","i-lucide-download",{"title":559,"path":560,"stem":561,"icon":519},"Hook redirect","/devkit/hooks","19.devkit/3.hooks",{"title":563,"path":564,"stem":565,"icon":566},"Local coding runner","/devkit/local-runner","19.devkit/4.local-runner","i-lucide-cpu",{"title":568,"path":569,"stem":570,"icon":131},"Compositions from DevKit","/devkit/compositions","19.devkit/5.compositions",{"title":572,"path":573,"stem":574,"children":575,"icon":44},"Staff & Agents","/staff-and-agents","20.staff-and-agents/01.index",[576,577,582,586,590,594,598,602,606,611,615,620,625,629],{"title":572,"path":573,"stem":574,"icon":44},{"title":578,"path":579,"stem":580,"icon":581},"Prerequisites","/staff-and-agents/prerequisites","20.staff-and-agents/02.prerequisites","i-lucide-list-checks",{"title":583,"path":584,"stem":585,"icon":368},"Hire an actor","/staff-and-agents/hire-an-actor","20.staff-and-agents/03.hire-an-actor",{"title":587,"path":588,"stem":589,"icon":34},"Console","/staff-and-agents/console","20.staff-and-agents/04.console",{"title":591,"path":592,"stem":593,"icon":11},"Configs, skills, and MCP","/staff-and-agents/configs-skills-mcp","20.staff-and-agents/05.configs-skills-mcp",{"title":595,"path":596,"stem":597,"icon":136},"Agent runner groups","/staff-and-agents/runner-groups","20.staff-and-agents/06.runner-groups",{"title":599,"path":600,"stem":601,"icon":16},"Governance","/staff-and-agents/governance","20.staff-and-agents/07.governance",{"title":603,"path":604,"stem":605,"icon":417},"Identity and tokens","/staff-and-agents/identity","20.staff-and-agents/08.identity",{"title":607,"path":608,"stem":609,"icon":610},"Memory and cost","/staff-and-agents/memory-and-cost","20.staff-and-agents/09.memory-and-cost","i-lucide-wallet",{"title":612,"path":613,"stem":614,"icon":155},"Coding agents","/staff-and-agents/coding-agents","20.staff-and-agents/10.coding-agents",{"title":616,"path":617,"stem":618,"icon":619},"Wire a repository for coding agents","/staff-and-agents/wire-a-repository","20.staff-and-agents/11.wire-a-repository","i-lucide-link",{"title":621,"path":622,"stem":623,"icon":624},"Run a ticket end to end","/staff-and-agents/run-a-ticket","20.staff-and-agents/12.run-a-ticket","i-lucide-play",{"title":626,"path":627,"stem":628,"icon":66},"Build a product team of actors","/staff-and-agents/build-a-product-team","20.staff-and-agents/13.build-a-product-team",{"title":261,"path":630,"stem":631,"icon":249},"/staff-and-agents/troubleshooting","20.staff-and-agents/14.troubleshooting",{"title":106,"path":633,"stem":634,"children":635,"icon":109},"/app-host","21.app-host/1.index",[636,637,641,644,649,653,658,662,666],{"title":106,"path":633,"stem":634,"icon":109},{"title":638,"path":639,"stem":640,"icon":514},"Your app and site","/app-host/your-app","21.app-host/2.your-app",{"title":92,"path":642,"stem":643,"icon":95},"/app-host/app-data","21.app-host/3.app-data",{"title":645,"path":646,"stem":647,"icon":648},"Website and process","/app-host/hosting","21.app-host/4.hosting","i-lucide-cloud-upload",{"title":650,"path":651,"stem":652,"icon":547},"Buzz","/app-host/buzz","21.app-host/5.buzz",{"title":654,"path":655,"stem":656,"icon":657},"Files","/app-host/files","21.app-host/6.files","i-lucide-folder",{"title":659,"path":660,"stem":661,"icon":109},"Your own domain","/app-host/your-domain","21.app-host/7.your-domain",{"title":663,"path":664,"stem":665,"icon":229},"Troubleshooting App Host","/app-host/troubleshooting","21.app-host/8.troubleshooting",{"title":667,"path":668,"stem":669,"icon":417},"Signing keys","/app-host/signing-keys","21.app-host/9.signing-keys",{"title":111,"path":671,"stem":672,"children":673,"icon":114},"/agent-exchange","22.agent-exchange/01.index",[674,675,678,682,686,690],{"title":111,"path":671,"stem":672,"icon":114},{"title":583,"path":676,"stem":677,"icon":368},"/agent-exchange/hire","22.agent-exchange/02.hire",{"title":679,"path":680,"stem":681,"icon":208},"List an actor","/agent-exchange/list","22.agent-exchange/03.list",{"title":683,"path":684,"stem":685,"icon":104},"Invoke & leases","/agent-exchange/invoke","22.agent-exchange/04.invoke",{"title":687,"path":688,"stem":689,"icon":141},"Settlement & trust","/agent-exchange/settlement","22.agent-exchange/05.settlement",{"title":53,"path":691,"stem":692,"icon":56},"/agent-exchange/workflows","22.agent-exchange/06.workflows",{"title":694,"path":695,"stem":696,"children":697,"icon":75},"Runners","/runners","23.runners/1.index",[698,700,704,709,713,717,721,726,730,734,738,741,745,749,753],{"title":699,"path":695,"stem":696,"icon":75},"Runner groups",{"title":701,"path":702,"stem":703,"icon":275},"Cloud Run","/runners/cloud-run","23.runners/10.cloud-run",{"title":705,"path":706,"stem":707,"icon":708},"DigitalOcean App Job","/runners/do-app-job","23.runners/11.do-app-job","i-simple-icons-digitalocean",{"title":710,"path":711,"stem":712,"icon":708},"DigitalOcean Droplet","/runners/do-droplet","23.runners/12.do-droplet",{"title":714,"path":715,"stem":716,"icon":285},"Magalu Cloud VM","/runners/magalu-vm","23.runners/13.magalu-vm",{"title":101,"path":718,"stem":719,"icon":720},"/runners/devkit","23.runners/14.devkit","i-lucide-laptop",{"title":722,"path":723,"stem":724,"icon":725},"Purposes & integrations","/runners/purposes","23.runners/16.purposes","i-lucide-layers",{"title":727,"path":728,"stem":729,"icon":241},"Fargate","/runners/fargate","23.runners/2.fargate",{"title":731,"path":732,"stem":733,"icon":241},"EC2 Auto Scaling","/runners/ec2-auto-scaling","23.runners/3.ec2-auto-scaling",{"title":735,"path":736,"stem":737,"icon":241},"EC2 VM","/runners/ec2-vm","23.runners/4.ec2-vm",{"title":287,"path":739,"stem":740,"icon":290},"/runners/kubernetes","23.runners/5.kubernetes",{"title":742,"path":743,"stem":744,"icon":280},"Azure Container Apps","/runners/azure-container-apps","23.runners/6.azure-container-apps",{"title":746,"path":747,"stem":748,"icon":280},"Azure VMSS","/runners/azure-vmss","23.runners/7.azure-vmss",{"title":750,"path":751,"stem":752,"icon":280},"Azure VM","/runners/azure-vm","23.runners/8.azure-vm",{"title":754,"path":755,"stem":756,"icon":275},"GCE","/runners/gce","23.runners/9.gce",{"title":758,"path":759,"stem":760,"children":761,"icon":763},"Chat","/chat","24.chat/01.index",[762,764,768,773,777,782,787,791,796,800,805,810,814,819,824,828,832,836,840,845],{"title":758,"path":759,"stem":760,"icon":763},"i-lucide-messages-square",{"title":765,"path":766,"stem":767,"icon":446},"Enable and publish","/chat/enable-and-publish","24.chat/02.enable-and-publish",{"title":769,"path":770,"stem":771,"icon":772},"Theme and customization","/chat/theme-and-customization","24.chat/03.theme-and-customization","i-lucide-palette",{"title":774,"path":775,"stem":776,"icon":85},"Members and moderation","/chat/members-and-moderation","24.chat/04.members-and-moderation",{"title":778,"path":779,"stem":780,"icon":781},"Channels","/chat/channels","24.chat/05.channels","i-lucide-hash",{"title":783,"path":784,"stem":785,"icon":786},"Using the chat","/chat/using-the-chat","24.chat/06.using-the-chat","i-lucide-message-circle",{"title":788,"path":789,"stem":790,"icon":44},"Actors in chat","/chat/actors-in-chat","24.chat/07.actors-in-chat",{"title":792,"path":793,"stem":794,"icon":795},"Internal support actor","/chat/internal-support-actor","24.chat/08.internal-support-actor","i-lucide-life-buoy",{"title":797,"path":798,"stem":799,"icon":104},"API and console","/chat/api-and-console","24.chat/09.api-and-console",{"title":801,"path":802,"stem":803,"icon":804},"Limits","/chat/limits","24.chat/10.limits","i-lucide-triangle-alert",{"title":806,"path":807,"stem":808,"icon":809},"Structured chat with DGI","/chat/structured-chat","24.chat/11.structured-chat","i-lucide-layout-list",{"title":811,"path":812,"stem":813,"icon":109},"Option A: hosted chat with DGI","/chat/option-a-hosted-chat","24.chat/12.option-a-hosted-chat",{"title":815,"path":816,"stem":817,"icon":818},"Option B: embed the chat component","/chat/option-b-embed-component","24.chat/13.option-b-embed-component","i-lucide-component",{"title":820,"path":821,"stem":822,"icon":823},"Option C: custom client (wire contract)","/chat/option-c-custom-client","24.chat/14.option-c-custom-client","i-lucide-braces",{"title":825,"path":826,"stem":827,"icon":394},"Responder configuration reference","/chat/responder-reference","24.chat/15.responder-reference",{"title":829,"path":830,"stem":831,"icon":547},"Cards, live updates and proactive posts","/chat/cards-live-and-proactive","24.chat/16.cards-live-and-proactive",{"title":833,"path":834,"stem":835,"icon":16},"Structured chat security model","/chat/structured-chat-security","24.chat/17.structured-chat-security",{"title":837,"path":838,"stem":839,"icon":181},"Option D: any app or API (dgi.chat)","/chat/option-d-chat-api","24.chat/18.option-d-chat-api",{"title":841,"path":842,"stem":843,"icon":844},"Card catalog","/chat/card-catalog","24.chat/19.card-catalog","i-lucide-layout-grid",{"title":846,"path":847,"stem":848,"icon":849},"Living Surfaces","/chat/living-surfaces","24.chat/20.living-surfaces","i-lucide-sprout",{"title":851,"path":852,"stem":853,"children":854,"icon":61},"DGI","/dgi","25.dgi/1.index",[855,857,862,866,870,874],{"title":856,"path":852,"stem":853,"icon":61},"What is DGI",{"title":858,"path":859,"stem":860,"icon":861},"How DGI works","/dgi/how-it-works","25.dgi/2.how-it-works","i-lucide-cog",{"title":863,"path":864,"stem":865,"icon":844},"Interfaces","/dgi/interfaces","25.dgi/3.interfaces",{"title":867,"path":868,"stem":869,"icon":29},"Quickstart","/dgi/quickstart","25.dgi/4.quickstart",{"title":871,"path":872,"stem":873,"icon":16},"Trust and safety","/dgi/trust-and-safety","25.dgi/5.trust-and-safety",{"title":875,"path":876,"stem":877,"icon":878},"FAQ","/dgi/faq","25.dgi/6.faq","i-lucide-circle-help",{"id":880,"title":72,"body":881,"description":2011,"extension":2012,"links":2013,"meta":2014,"navigation":2015,"path":73,"seo":2016,"stem":74,"__hash__":2017},"docs/03.concepts/06.runners.md",{"type":882,"value":883,"toc":1996},"minimark",[884,889,945,961,965,971,1029,1039,1043,1059,1065,1069,1072,1169,1180,1341,1361,1374,1378,1385,1517,1544,1556,1560,1577,1646,1653,1662,1666,1730,1734,1745,1748,1771,1775,1780,1831,1835,1865,1869,1878,1882,1942,1945,1962,1992],[885,886,888],"h2",{"id":887},"tldr","TL;DR",[890,891,892,900,914,929,935],"ul",{},[893,894,895,899],"li",{},[896,897,898],"strong",{},"A runner is where work physically runs, and it is always in your cloud."," Orkestia provisions, registers, scales, and heals it. Compute, data, and egress stay with you.",[893,901,902,905,906,909,910,913],{},[896,903,904],{},"Two entities:"," a ",[896,907,908],{},"runner group"," (the long-lived, configured pool) and ",[896,911,912],{},"runner executions"," (launched runners that come and go with demand).",[893,915,916,919,920,924,925,928],{},[896,917,918],{},"Scaling is a reconcile loop",", bounded by ",[921,922,923],"code",{},"min"," and ",[921,926,927],{},"max",". Webhooks nudge it; they are never the source of truth.",[893,930,931,934],{},[896,932,933],{},"AWS, Azure, and Kubernetes run production fleets today."," GCP, DigitalOcean, and Magalu Cloud are beta.",[893,936,937,944],{},[896,938,939,940,943],{},"Everything is a ",[921,941,942],{},"runner.*"," workflow",", so an assistant over MCP can provision, inspect, and scale groups like any other capability.",[946,947,948],"callout",{"icon":16},[949,950,951,952,955,956,960],"p",{},"Compute lives in the customer cloud. The runner binary talks to its job source (GitHub), ",[896,953,954],{},"not"," to Orkestia. Orkestia observes state and emits signals. See ",[957,958,959],"a",{"href":139},"Security & compliance",".",[885,962,964],{"id":963},"control-plane-vs-execution-plane","Control plane vs execution plane",[966,967],"dag-diagram",{":edges":968,":nodes":969,"direction":970},"[{\"from\":\"CP\",\"to\":\"RG\",\"label\":\"short-lived token + DAG\"},{\"from\":\"RG\",\"to\":\"R1\"},{\"from\":\"RG\",\"to\":\"R2\"},{\"from\":\"RG\",\"to\":\"R3\"},{\"from\":\"R1\",\"to\":\"GH\",\"label\":\"register + poll jobs\"},{\"from\":\"R1\",\"to\":\"ST\",\"label\":\"transition signals\",\"dashed\":true}]","[{\"id\":\"CP\",\"label\":\"Runner control plane\",\"sub\":\"provision · register · scale · heal\",\"kind\":\"engine\"},{\"id\":\"ST\",\"label\":\"Workflow state + Lumen\",\"sub\":\"state and observability only\",\"kind\":\"data\"},{\"id\":\"RG\",\"label\":\"Runner group\",\"sub\":\"ECS / AKS / K8s / GCE / Droplet / MGC VM\",\"kind\":\"cloud\"},{\"id\":\"R1\",\"label\":\"runner exec\",\"kind\":\"cloud\"},{\"id\":\"R2\",\"label\":\"runner exec\",\"kind\":\"cloud\"},{\"id\":\"R3\",\"label\":\"warm pool\",\"kind\":\"cloud\"},{\"id\":\"GH\",\"label\":\"Job source (GitHub Actions)\"}]","LR",[972,973,974,993],"table",{},[975,976,977],"thead",{},[978,979,980,984,987,990],"tr",{},[981,982,983],"th",{},"Plane",[981,985,986],{},"Owns",[981,988,989],{},"Lives in",[981,991,992],{},"Holds your code or data?",[994,995,996,1013],"tbody",{},[978,997,998,1004,1007,1010],{},[999,1000,1001],"td",{},[896,1002,1003],{},"Control plane",[999,1005,1006],{},"Provisioning DAGs, scaling decisions, registration, drift repair, run state",[999,1008,1009],{},"Orkestia",[999,1011,1012],{},"No. Only workflow state and observability",[978,1014,1015,1020,1023,1026],{},[999,1016,1017],{},[896,1018,1019],{},"Execution plane",[999,1021,1022],{},"The compute, the runner binary, the job workload",[999,1024,1025],{},"Your cloud account",[999,1027,1028],{},"Yes, and it never leaves",[949,1030,1031,1032,1034,1035,1038],{},"The control plane drives runners through ",[921,1033,942],{}," workflows on the ",[957,1036,1037],{"href":54},"engine",". Because those are ordinary workflows, provisioning a fleet is just another DAG with full history, per-group locking, and async transitions.",[885,1040,1042],{"id":1041},"the-two-core-entities","The two core entities",[1044,1045,1046,1053],"card-group",{},[1047,1048,1050],"card",{"icon":186,"title":1049},"Runner group",[949,1051,1052],{},"The provisioned compute substrate: a binding of job-source org, target cloud environment, scaling policy, and network placement. The long-lived thing you configure.",[1047,1054,1056],{"icon":624,"title":1055},"Runner execution",[949,1057,1058],{},"A single launched runner serving jobs on a group. Executions come and go with demand; the group persists.",[1060,1061,1062],"note",{},[949,1063,1064],{},"A group binds to exactly one job-source org. Multi-org users create multiple groups. Cross-org runner sharing is not modeled.",[885,1066,1068],{"id":1067},"kinds-backend-purpose-integration","Kinds (backend × purpose × integration)",[949,1070,1071],{},"A group is not “an AWS runner.” It stores three enums:",[972,1073,1074,1087],{},[975,1075,1076],{},[978,1077,1078,1081,1084],{},[981,1079,1080],{},"Axis",[981,1082,1083],{},"Field",[981,1085,1086],{},"Examples",[994,1088,1089,1120,1146],{},[978,1090,1091,1096,1101],{},[999,1092,1093],{},[896,1094,1095],{},"Backend kind",[999,1097,1098],{},[921,1099,1100],{},"backend_type",[999,1102,1103,1106,1107,1106,1110,1106,1113,1106,1116,1119],{},[921,1104,1105],{},"fargate",", ",[921,1108,1109],{},"ec2_vm",[921,1111,1112],{},"kubernetes",[921,1114,1115],{},"azure_container_apps_job",[921,1117,1118],{},"devkit",", …",[978,1121,1122,1127,1132],{},[999,1123,1124],{},[896,1125,1126],{},"Purpose",[999,1128,1129],{},[921,1130,1131],{},"purpose",[999,1133,1134,1106,1137,1106,1140,1106,1143],{},[921,1135,1136],{},"github_actions",[921,1138,1139],{},"gitlab_runner",[921,1141,1142],{},"agent",[921,1144,1145],{},"generic",[978,1147,1148,1153,1158],{},[999,1149,1150],{},[896,1151,1152],{},"Integration",[999,1154,1155],{},[921,1156,1157],{},"integration_type",[999,1159,1160,1106,1163,1106,1166],{},[921,1161,1162],{},"github",[921,1164,1165],{},"gitlab",[921,1167,1168],{},"none",[949,1170,1171,1172,1175,1176,960],{},"The create wizard’s ",[896,1173,1174],{},"Runner type"," step is the backend-kind list, filtered by the cloud connection you picked. Full catalog, required config keys, and per-kind pages: ",[896,1177,1178],{},[957,1179,699],{"href":695},[972,1181,1182,1195],{},[975,1183,1184],{},[978,1185,1186,1189,1192],{},[981,1187,1188],{},"Provider",[981,1190,1191],{},"Kinds",[981,1193,1194],{},"Status",[994,1196,1197,1222,1242,1267,1289,1310,1325],{},[978,1198,1199,1204,1219],{},[999,1200,1201],{},[896,1202,1203],{},"AWS",[999,1205,1206,1106,1210,1106,1215],{},[957,1207,1208],{"href":728},[921,1209,1105],{},[957,1211,1212],{"href":732},[921,1213,1214],{},"ec2_auto_scaling",[957,1216,1217],{"href":736},[921,1218,1109],{},[999,1220,1221],{},"Production",[978,1223,1224,1228,1239],{},[999,1225,1226],{},[896,1227,287],{},[999,1229,1230,1234,1235,1238],{},[957,1231,1232],{"href":739},[921,1233,1112],{}," (use this even on EKS; ",[921,1236,1237],{},"eks"," is a legacy alias)",[999,1240,1241],{},"Production, carries live fleets today",[978,1243,1244,1249,1265],{},[999,1245,1246],{},[896,1247,1248],{},"Azure",[999,1250,1251,1106,1255,1106,1260],{},[957,1252,1253],{"href":743},[921,1254,1115],{},[957,1256,1257],{"href":747},[921,1258,1259],{},"azure_vmss",[957,1261,1262],{"href":751},[921,1263,1264],{},"azure_vm",[999,1266,1241],{},[978,1268,1269,1274,1286],{},[999,1270,1271],{},[896,1272,1273],{},"GCP",[999,1275,1276,1106,1281],{},[957,1277,1278],{"href":702},[921,1279,1280],{},"cloud_run",[957,1282,1283],{"href":755},[921,1284,1285],{},"gce",[999,1287,1288],{},"Beta, partial coverage",[978,1290,1291,1296,1308],{},[999,1292,1293],{},[896,1294,1295],{},"DigitalOcean",[999,1297,1298,1106,1303],{},[957,1299,1300],{"href":706},[921,1301,1302],{},"do_app_job",[957,1304,1305],{"href":711},[921,1306,1307],{},"do_droplet",[999,1309,1288],{},[978,1311,1312,1316,1323],{},[999,1313,1314],{},[896,1315,282],{},[999,1317,1318],{},[957,1319,1320],{"href":715},[921,1321,1322],{},"mgc_vm",[999,1324,1288],{},[978,1326,1327,1332,1338],{},[999,1328,1329],{},[896,1330,1331],{},"None (laptop / hosted broker)",[999,1333,1334],{},[957,1335,1336],{"href":718},[921,1337,1118],{},[999,1339,1340],{},"Production for coding agents",[1342,1343,1344],"warning",{},[949,1345,1346,1347,1353,1354,1357,1358,960],{},"AWS, Azure, and Kubernetes are production paths. Azure and Kubernetes groups carry Orkestia's own agent fleet. Treat GCP, DigitalOcean, and Magalu as beta and check ",[957,1348,1352],{"href":1349,"rel":1350},"https://reference.orkestia.dev",[1351],"nofollow","reference.orkestia.dev"," for the current per-kind capability. ",[921,1355,1356],{},"purpose=agent"," is a separate gate — see ",[957,1359,1360],{"href":723},"Purposes",[949,1362,1363,1364,1106,1367,1370,1371,960],{},"Connect a cloud first (",[957,1365,1366],{"href":237},"AWS connections",[957,1368,1369],{"href":266},"Cloud connections",") and pick placement through network profiles. A broken cloud connection means a broken group. There is deliberately ",[896,1372,1373],{},"no Orkestia compute fallback",[885,1375,1377],{"id":1376},"warm-pools-and-capacity","Warm pools and capacity",[949,1379,1380,1381,1384],{},"A cold runner has to provision compute, pull an image, and register before it picks up a job. ",[896,1382,1383],{},"Warm pools"," keep a floor of ready runners so jobs start immediately. Capacity is governed per group:",[1386,1387,1392],"pre",{"className":1388,"code":1389,"language":1390,"meta":1391,"style":1391},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"scale\": { \"min\": 0, \"max\": 10, \"idle_timeout_s\": 300 },\n  \"labels\": [\"self-hosted\", \"orkestia\", \"prod-builds\"]\n}\n","json","",[921,1393,1394,1403,1467,1511],{"__ignoreMap":1391},[1395,1396,1399],"span",{"class":1397,"line":1398},"line",1,[1395,1400,1402],{"class":1401},"sMK4o","{\n",[1395,1404,1406,1409,1413,1416,1419,1422,1425,1428,1430,1432,1436,1439,1441,1443,1445,1447,1450,1452,1454,1457,1459,1461,1464],{"class":1397,"line":1405},2,[1395,1407,1408],{"class":1401},"  \"",[1395,1410,1412],{"class":1411},"spNyl","scale",[1395,1414,1415],{"class":1401},"\"",[1395,1417,1418],{"class":1401},":",[1395,1420,1421],{"class":1401}," {",[1395,1423,1424],{"class":1401}," \"",[1395,1426,923],{"class":1427},"sBMFI",[1395,1429,1415],{"class":1401},[1395,1431,1418],{"class":1401},[1395,1433,1435],{"class":1434},"sbssI"," 0",[1395,1437,1438],{"class":1401},",",[1395,1440,1424],{"class":1401},[1395,1442,927],{"class":1427},[1395,1444,1415],{"class":1401},[1395,1446,1418],{"class":1401},[1395,1448,1449],{"class":1434}," 10",[1395,1451,1438],{"class":1401},[1395,1453,1424],{"class":1401},[1395,1455,1456],{"class":1427},"idle_timeout_s",[1395,1458,1415],{"class":1401},[1395,1460,1418],{"class":1401},[1395,1462,1463],{"class":1434}," 300",[1395,1465,1466],{"class":1401}," },\n",[1395,1468,1470,1472,1475,1477,1479,1482,1484,1488,1490,1492,1494,1497,1499,1501,1503,1506,1508],{"class":1397,"line":1469},3,[1395,1471,1408],{"class":1401},[1395,1473,1474],{"class":1411},"labels",[1395,1476,1415],{"class":1401},[1395,1478,1418],{"class":1401},[1395,1480,1481],{"class":1401}," [",[1395,1483,1415],{"class":1401},[1395,1485,1487],{"class":1486},"sfazB","self-hosted",[1395,1489,1415],{"class":1401},[1395,1491,1438],{"class":1401},[1395,1493,1424],{"class":1401},[1395,1495,1496],{"class":1486},"orkestia",[1395,1498,1415],{"class":1401},[1395,1500,1438],{"class":1401},[1395,1502,1424],{"class":1401},[1395,1504,1505],{"class":1486},"prod-builds",[1395,1507,1415],{"class":1401},[1395,1509,1510],{"class":1401},"]\n",[1395,1512,1514],{"class":1397,"line":1513},4,[1395,1515,1516],{"class":1401},"}\n",[890,1518,1519,1530,1537],{},[893,1520,1521,1525,1526,1529],{},[896,1522,1523],{},[921,1524,923],{},": the warm floor. ",[921,1527,1528],{},"0"," means scale to zero when idle.",[893,1531,1532,1536],{},[896,1533,1534],{},[921,1535,927],{},": the hard ceiling. Orkestia never exceeds it, even if the queue grows.",[893,1538,1539,1543],{},[896,1540,1541],{},[921,1542,1456],{},": how long a runner sits idle before it is reaped.",[1545,1546,1547],"tip",{},[949,1548,1549,1550,1552,1553,1555],{},"Tune ",[921,1551,923],{}," against your pickup-latency target and ",[921,1554,927],{}," against your cost ceiling. Scale to zero suits bursty, cost-sensitive work. A warm floor suits latency-sensitive pipelines.",[885,1557,1559],{"id":1558},"reconcile-loop-scaling","Reconcile-loop scaling",[949,1561,1562,1563,924,1565,1567,1568,1571,1572,1576],{},"A per-group controller continuously compares the live pool against your policy and converges it toward ",[921,1564,923],{},[921,1566,927],{},". Job-source ",[921,1569,1570],{},"workflow_job"," events are a best-effort ",[1573,1574,1575],"em",{},"nudge"," that makes the loop react immediately. They are never the source of truth.",[1386,1578,1582],{"className":1579,"code":1580,"language":1581,"meta":1391,"style":1391},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sequenceDiagram\n  participant GH as Job source\n  participant CP as Runner control plane\n  participant Cloud as Your cloud\n  Note over CP: reconcile loop converges pool → min/max (continuous)\n  GH->>CP: workflow_job.queued (webhook nudge)\n  CP->>CP: reconcile (queued vs busy, bounded by max)\n  CP->>Cloud: launch runner execution (async transition)\n  Cloud->>GH: register + poll for job\n  GH->>CP: workflow_job.completed (nudge)\n  CP->>CP: reconcile: maybe scale down after idle_timeout\n","mermaid",[921,1583,1584,1589,1594,1599,1604,1610,1616,1622,1628,1634,1640],{"__ignoreMap":1391},[1395,1585,1586],{"class":1397,"line":1398},[1395,1587,1588],{},"sequenceDiagram\n",[1395,1590,1591],{"class":1397,"line":1405},[1395,1592,1593],{},"  participant GH as Job source\n",[1395,1595,1596],{"class":1397,"line":1469},[1395,1597,1598],{},"  participant CP as Runner control plane\n",[1395,1600,1601],{"class":1397,"line":1513},[1395,1602,1603],{},"  participant Cloud as Your cloud\n",[1395,1605,1607],{"class":1397,"line":1606},5,[1395,1608,1609],{},"  Note over CP: reconcile loop converges pool → min/max (continuous)\n",[1395,1611,1613],{"class":1397,"line":1612},6,[1395,1614,1615],{},"  GH->>CP: workflow_job.queued (webhook nudge)\n",[1395,1617,1619],{"class":1397,"line":1618},7,[1395,1620,1621],{},"  CP->>CP: reconcile (queued vs busy, bounded by max)\n",[1395,1623,1625],{"class":1397,"line":1624},8,[1395,1626,1627],{},"  CP->>Cloud: launch runner execution (async transition)\n",[1395,1629,1631],{"class":1397,"line":1630},9,[1395,1632,1633],{},"  Cloud->>GH: register + poll for job\n",[1395,1635,1637],{"class":1397,"line":1636},10,[1395,1638,1639],{},"  GH->>CP: workflow_job.completed (nudge)\n",[1395,1641,1643],{"class":1397,"line":1642},11,[1395,1644,1645],{},"  CP->>CP: reconcile: maybe scale down after idle_timeout\n",[949,1647,1648,1649,1652],{},"Registration is ",[896,1650,1651],{},"pull, not push",": Orkestia hands the runner a short-lived registration token and the runner registers itself with the job source. No long-lived secrets sit on disk.",[1060,1654,1655],{},[949,1656,1657,1658,1661],{},"If a webhook is lost, the loop still converges on its next pass. Provisioning, scaling, and teardown of the ",[1573,1659,1660],{},"same"," group are serialized on a per-group lock. Different groups scale in parallel.",[885,1663,1665],{"id":1664},"group-lifecycle","Group lifecycle",[972,1667,1668,1678],{},[975,1669,1670],{},[978,1671,1672,1675],{},[981,1673,1674],{},"State",[981,1676,1677],{},"What it means",[994,1679,1680,1690,1700,1710,1720],{},[978,1681,1682,1687],{},[999,1683,1684],{},[896,1685,1686],{},"draft",[999,1688,1689],{},"Config exists; no cloud resources yet",[978,1691,1692,1697],{},[999,1693,1694],{},[896,1695,1696],{},"provisioning",[999,1698,1699],{},"The provision DAG is running",[978,1701,1702,1707],{},[999,1703,1704],{},[896,1705,1706],{},"active",[999,1708,1709],{},"Runners registered; executions picking up jobs",[978,1711,1712,1717],{},[999,1713,1714],{},[896,1715,1716],{},"scaling",[999,1718,1719],{},"A scale DAG is in flight; the group still serves jobs",[978,1721,1722,1727],{},[999,1723,1724],{},[896,1725,1726],{},"archived",[999,1728,1729],{},"Drain and teardown complete; registrations revoked, resources reaped",[885,1731,1733],{"id":1732},"drift-detection-and-self-healing","Drift detection and self-healing",[949,1735,1736,1737,1740,1741,1744],{},"Runners are long-lived infrastructure in an account you also touch directly. Reality drifts from intent: a runner dies, a token expires, a teardown half-completes. Periodic ",[896,1738,1739],{},"health checks"," detect drift and ",[896,1742,1743],{},"self-heal",": unhealthy runners are deregistered and reaped, orphaned registrations are swept, failed scale-ups are retried.",[949,1746,1747],{},"Common cases the healer handles: expired registration tokens (new runners cannot join; existing ones keep working), provider quota at scale-up (queue backs up; existing runners unaffected), orphaned runners after a partial teardown, unreachable runner images.",[1044,1749,1750,1759,1765],{},[1047,1751,1753],{"icon":186,"title":1752,"to":695},"Runner group kinds",[949,1754,1755,1756,1758],{},"Every ",[921,1757,1100],{},", required config, and purpose/integration pairing.",[1047,1760,1762],{"icon":80,"title":1761,"to":201},"Drift detection & self-healing",[949,1763,1764],{},"The reconciler sweep and the failure-mode taxonomy.",[1047,1766,1768],{"icon":220,"title":1767,"to":134},"Runner management guide",[949,1769,1770],{},"Create a group, set capacity, operate a fleet.",[885,1772,1774],{"id":1773},"observability","Observability",[949,1776,1777,1778,960],{},"Every runner action emits structured signals on the same transition bus the rest of the platform uses. Group provisioned, scaled up, scaled down, unhealthy, archived, and per-job pickup and completion all flow into ",[957,1779,437],{"href":78},[972,1781,1782,1792],{},[975,1783,1784],{},[978,1785,1786,1789],{},[981,1787,1788],{},"Signal",[981,1790,1791],{},"Feeds",[994,1793,1794,1808,1818],{},[978,1795,1796,1805],{},[999,1797,1798,1801,1802],{},[921,1799,1800],{},"runner.group.scaled_up"," / ",[921,1803,1804],{},"scaled_down",[999,1806,1807],{},"Cost and SLO dashboards",[978,1809,1810,1815],{},[999,1811,1812],{},[921,1813,1814],{},"runner.group.unhealthy",[999,1816,1817],{},"Alerting",[978,1819,1820,1828],{},[999,1821,1822,1801,1825],{},[921,1823,1824],{},"runner.job.picked_up",[921,1826,1827],{},"completed",[999,1829,1830],{},"Pickup latency and utilization",[885,1832,1834],{"id":1833},"runners-vs-agent-runner-groups","Runners vs agent runner groups",[1342,1836,1837],{},[949,1838,1839,1842,1843,1846,1847,1850,1851,1854,1855,1859,1860,1862,1863,960],{},[957,1840,1841],{"href":64},"Staff"," also has \"runner groups\": cloud pools that host ",[896,1844,1845],{},"AI agent sessions"," (the ",[957,1848,1849],{"href":69},"Agents substrate","). Same ",[921,1852,1853],{},"RunnerGroup"," row, different ",[896,1856,1857],{},[921,1858,1356],{},". Related infrastructure, different job. CI kinds are this page; agent eligibility is ",[957,1861,572],{"href":596},"; every kind is listed under ",[957,1864,699],{"href":695},[885,1866,1868],{"id":1867},"ask-your-ai-assistant","Ask your AI assistant",[1386,1870,1876],{"className":1871,"code":1873,"filename":1874,"language":1875,"meta":1391},[1872],"language-text","List my runner groups with provider, state, and scaling policy.\n\nShow me the schema for provisioning a Kubernetes runner group. If it has prerequisites, fetch them.\n\nWhich of my runner groups are unhealthy, and what does the last health check say?\n\nScale group \u003Cgroup_id> to min 2, max 8. Show me the plan and wait for my confirmation.\n","prompts","text",[921,1877,1873],{"__ignoreMap":1391},[885,1879,1881],{"id":1880},"for-ai-agents","For AI agents",[972,1883,1884,1894],{},[975,1885,1886],{},[978,1887,1888,1891],{},[981,1889,1890],{},"Rule",[981,1892,1893],{},"Detail",[994,1895,1896,1910,1921,1932],{},[978,1897,1898,1903],{},[999,1899,1900,1901],{},"Everything is ",[921,1902,942],{},[999,1904,1905,1906,1909],{},"Discover with ",[921,1907,1908],{},"list_workflow_types(prefix=\"runner.\")",". Provision, scale, and teardown are mutations: confirm first.",[978,1911,1912,1915],{},[999,1913,1914],{},"Connections first",[999,1916,1917,1918,960],{},"Runner provisioning needs a cloud connection. Honor ",[921,1919,1920],{},"has_prerequisites",[978,1922,1923,1926],{},[999,1924,1925],{},"Stalled provisioning",[999,1927,1928,1931],{},[921,1929,1930],{},"list_stuck_workflows(workflow_type=\"runner.…\")"," surfaces stalled DAGs. Read history before retrying.",[978,1933,1934,1939],{},[999,1935,1936,1937],{},"Never exceed ",[921,1938,927],{},[999,1940,1941],{},"The platform will not, and neither should a plan you propose.",[885,1943,1194],{"id":1944},"status",[949,1946,1947,1948,1951,1952,1955,1956,1959,1960,960],{},"AWS, Azure, and Kubernetes run production fleets; GCP, DigitalOcean, and Magalu Cloud are beta. Job sources: ",[896,1949,1950],{},"GitHub Actions"," (GA) and ",[896,1953,1954],{},"GitLab"," (",[921,1957,1958],{},"purpose=gitlab_runner","). Kind catalog: ",[957,1961,699],{"href":695},[1044,1963,1964,1969,1975,1982],{},[1047,1965,1966],{"icon":186,"title":1752,"to":695},[949,1967,1968],{},"Fargate, EC2, Kubernetes, Azure, GCP, DigitalOcean, Magalu, DevKit.",[1047,1970,1972],{"icon":75,"title":1971,"to":134},"Runner management",[949,1973,1974],{},"Provision and operate runner fleets step by step.",[1047,1976,1979],{"icon":1977,"title":1978,"to":196},"i-lucide-split","Hybrid execution model",[949,1980,1981],{},"How AI-designed workflows compile to deterministic steps that run on your runners.",[1047,1983,1986],{"icon":1984,"title":1985,"to":1349},"i-lucide-book-marked","Full workflow catalog",[949,1987,1988,1989,1991],{},"Per-workflow inputs, flags, and limits for every ",[921,1990,942],{}," capability.",[1993,1994,1995],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":1391,"searchDepth":1398,"depth":1405,"links":1997},[1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010],{"id":887,"depth":1405,"text":888},{"id":963,"depth":1405,"text":964},{"id":1041,"depth":1405,"text":1042},{"id":1067,"depth":1405,"text":1068},{"id":1376,"depth":1405,"text":1377},{"id":1558,"depth":1405,"text":1559},{"id":1664,"depth":1405,"text":1665},{"id":1732,"depth":1405,"text":1733},{"id":1773,"depth":1405,"text":1774},{"id":1833,"depth":1405,"text":1834},{"id":1867,"depth":1405,"text":1868},{"id":1880,"depth":1405,"text":1881},{"id":1944,"depth":1405,"text":1194},"Managed execution environments provisioned inside your own cloud where workflow steps, CI jobs, and agent sessions run, runner groups, warm pools, reconcile-loop scaling, and the control-plane / execution split","md",null,{},{"icon":75},{"title":72,"description":2011},"8GWamdqrGsQL21vCys58Nwxar50C_F6Rm2MEQBSWKDY",[2019,2021],{"title":68,"path":69,"stem":70,"description":2020,"icon":44,"children":-1},"The primitives behind every AI worker on Orkestia, agent configs, workflow-backed skills, per-agent MCP servers, sessions on your runners, memory, budgets, and end-user agents",{"title":77,"path":78,"stem":79,"description":2022,"icon":80,"children":-1},"Orkestia's telemetry store and triage engine, JSON HTTP ingest, SHA-256 error groups, traces, metrics, the query API, and the Lumen MCP server for assistant-driven triage",1790354043854]