[{"data":1,"prerenderedAt":1531},["ShallowReactive",2],{"navigation":3,"/chat/enable-and-publish":879,"/chat/enable-and-publish-surround":1526},[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":765,"body":881,"description":1519,"extension":1520,"links":1521,"meta":1522,"navigation":1523,"path":766,"seo":1524,"stem":767,"__hash__":1525},"docs/24.chat/02.enable-and-publish.md",{"type":882,"value":883,"toc":1507},"minimark",[884,897,902,946,967,971,977,987,1096,1101,1129,1132,1138,1142,1145,1151,1168,1175,1200,1206,1209,1266,1270,1273,1298,1317,1329,1333,1391,1395,1401,1407,1411,1418,1422],[885,886,887,888,892,893,896],"p",{},"This page takes an identity app from \"no chat\" to a chat page your end users can open. Two workflows do the work: ",[889,890,891],"code",{},"buzz.space.enable"," and ",[889,894,895],{},"buzz.space.publish-chat",". Both are callable from the console, the API and an assistant over MCP, and both must be started by a person in your organization, not by an agent.",[898,899,901],"h2",{"id":900},"before-you-start","Before you start",[903,904,905,921,931,940],"ul",{},[906,907,908,912,913,916,917,920],"li",{},[909,910,911],"strong",{},"A live identity app."," Chat sign-in uses the app's hosted login, so the app must be in live mode with its OIDC client (see ",[914,915,425],"a",{"href":426},"). A ",[889,918,919],{},"dev"," mode app is refused when the chat page is published.",[906,922,923,926,927,930],{},[909,924,925],{},"An App Host site claimed for that app."," The relay runs next to the site. See ",[914,928,929],{"href":639},"Your app",".",[906,932,933,936,937,930],{},[909,934,935],{},"Postgres attached to the site."," The relay keeps its messages in the app's own App Data instance. If the site has none yet, attach it from the site's Postgres tab first. See ",[914,938,939],{"href":642},"App Data on App Host",[906,941,942,945],{},[909,943,944],{},"An active platform subscription."," Publishing a release on the site needs one.",[947,948,949],"note",{},[885,950,951,952,955,956,959,960,962,963,966],{},"Turning the chat on makes the site's machine ",[909,953,954],{},"always-on",", the same as the ",[914,957,958],{"href":651},"Buzz addon",". The relay, its Redis and its media storage run whether or not anyone is chatting. Chat media is not the Identity app ",[914,961,654],{"href":655}," tab (",[889,964,965],{},"apphost.file.*",").",[898,968,970],{"id":969},"_1-enable-the-chat","1. Enable the chat",[885,972,973,974,976],{},"From the console: open the identity app, go to the ",[909,975,758],{}," tab and turn the chat on. From the API or an assistant:",[978,979,985],"pre",{"className":980,"code":982,"language":983,"meta":984},[981],"language-text","start_workflow(\"buzz.space.enable\", {\n  \"identity_app_uuid\": \"\u003Cyour identity app uuid>\",\n  \"sku\": \"small\",\n  \"channel_scope\": \"app\",\n  \"publish_chat\": false\n})\n","text","",[889,986,982],{"__ignoreMap":984},[988,989,990,1006],"table",{},[991,992,993],"thead",{},[994,995,996,1000,1003],"tr",{},[997,998,999],"th",{},"Input",[997,1001,1002],{},"Required",[997,1004,1005],{},"Meaning",[1007,1008,1009,1023,1036,1058,1077],"tbody",{},[994,1010,1011,1017,1020],{},[1012,1013,1014],"td",{},[889,1015,1016],{},"identity_app_uuid",[1012,1018,1019],{},"yes",[1012,1021,1022],{},"The app whose end users will chat",[994,1024,1025,1030,1033],{},[1012,1026,1027],{},[889,1028,1029],{},"site_uuid",[1012,1031,1032],{},"no",[1012,1034,1035],{},"Only when the app has more than one claimed site",[994,1037,1038,1043,1045],{},[1012,1039,1040],{},[889,1041,1042],{},"sku",[1012,1044,1032],{},[1012,1046,1047,1050,1051,1054,1055],{},[889,1048,1049],{},"small"," (default), ",[889,1052,1053],{},"medium"," or ",[889,1056,1057],{},"large",[994,1059,1060,1065,1067],{},[1012,1061,1062],{},[889,1063,1064],{},"channel_scope",[1012,1066,1032],{},[1012,1068,1069,1072,1073,1076],{},[889,1070,1071],{},"app"," (default): channels span the whole app. ",[889,1074,1075],{},"workspace",": channels bind to the app's workspaces",[994,1078,1079,1084,1086],{},[1012,1080,1081],{},[889,1082,1083],{},"publish_chat",[1012,1085,1032],{},[1012,1087,1088,1091,1092,1095],{},[889,1089,1090],{},"true"," also publishes the hosted chat page at the end. Default ",[889,1093,1094],{},"false",", because publishing replaces the site's active release",[885,1097,1098,1100],{},[889,1099,891],{}," is a DAG. In order, it:",[1102,1103,1104,1107,1114,1117,1120,1123],"ol",{},[906,1105,1106],{},"checks that the caller is a person in the organization that owns the app, and resolves the app's site;",[906,1108,1109,1110,1113],{},"creates a platform-held owner key for the relay (you never see or paste an ",[889,1111,1112],{},"nsec",");",[906,1115,1116],{},"applies the relay on the site and proves it is ready and owned by that key;",[906,1118,1119],{},"publishes the default Orkestia theme;",[906,1121,1122],{},"exposes the chat's end-user entry points on the identity app (open the chat, sign out, theme, channels, members, your display name, and the channel and notification actions);",[906,1124,1125,1126,1128],{},"with ",[889,1127,1083],{},", publishes the chat page.",[885,1130,1131],{},"Re-running it is safe. It converges: a disabled space comes back active, and a space that already has entry points gets only the ones it is missing.",[1133,1134,1135],"tip",{},[885,1136,1137],{},"If the site already ran a relay that you set up by hand with a pasted owner key, enabling the chat adopts it. The platform key becomes the owner and the old owner key is removed from the relay, so it cannot keep adding members the platform does not know about.",[898,1139,1141],{"id":1140},"_2-publish-the-chat-page","2. Publish the chat page",[885,1143,1144],{},"The console Chat tab has a publish button. The workflow is:",[978,1146,1149],{"className":1147,"code":1148,"language":983,"meta":984},[981],"start_workflow(\"buzz.space.publish-chat\", {\"space_uuid\": \"\u003Cspace uuid>\"})\n",[889,1150,1148],{"__ignoreMap":984},[885,1152,1153,1154,1157,1158,1161,1162,1164,1165,930],{},"Get the ",[889,1155,1156],{},"space_uuid"," from ",[889,1159,1160],{},"data.buzz.space.get"," with your ",[889,1163,1016],{},", or from ",[889,1166,1167],{},"data.buzz.space.list",[885,1169,1170,1171,1174],{},"It builds the Orkestia chat page with your app's public settings (the public client key, the app name, the sign-in and API addresses), uploads it as a new release on the site and publishes it. The output carries ",[889,1172,1173],{},"url",", the address of the chat page, and the space records it. Re-running publishes a new release, which is how a space picks up a newer chat page.",[885,1176,1177,1178,1181,1182,1184,1185,1188,1189,1192,1193,1196,1197,1199],{},"The page is published on the chat's own address under ",[889,1179,1180],{},"app.orkestia.dev",", returned as ",[889,1183,1173],{},". To serve it on your site's own ",[889,1186,1187],{},"https://\u003Cslug>.app.orkestia.dev"," as well, pass ",[889,1190,1191],{},"also_site_slug: true",": the same page replaces what that address served, and its address comes back as ",[889,1194,1195],{},"slug_url",". If your people open the chat on the slug address, pass ",[889,1198,1191],{}," every time you republish.",[978,1201,1204],{"className":1202,"code":1203,"language":983,"meta":984},[981],"start_workflow(\"buzz.space.publish-chat\", {\"space_uuid\": \"\u003Cspace uuid>\", \"also_site_slug\": true})\n",[889,1205,1203],{"__ignoreMap":984},[885,1207,1208],{},"Common refusals:",[988,1210,1211,1221],{},[991,1212,1213],{},[994,1214,1215,1218],{},[997,1216,1217],{},"Code",[997,1219,1220],{},"Fix",[1007,1222,1223,1233,1243,1253],{},[994,1224,1225,1230],{},[1012,1226,1227],{},[889,1228,1229],{},"space_not_active",[1012,1231,1232],{},"Enable (or re-enable) the space first",[994,1234,1235,1240],{},[1012,1236,1237],{},[889,1238,1239],{},"space_has_no_site",[1012,1241,1242],{},"Claim an App Host site for the identity app",[994,1244,1245,1250],{},[1012,1246,1247],{},[889,1248,1249],{},"identity_app_client_missing",[1012,1251,1252],{},"The identity app has no OIDC client. Provision or configure it",[994,1254,1255,1260],{},[1012,1256,1257],{},[889,1258,1259],{},"apphost_release_publish_refused: ...",[1012,1261,1262,1263,1265],{},"Usually no active subscription or a ",[889,1264,919],{}," mode identity app",[898,1267,1269],{"id":1268},"_3-your-end-users-sign-in","3. Your end users sign in",[885,1271,1272],{},"A person opens the chat page and signs in with the account they already have in your app. On the first open the platform:",[903,1274,1275,1282,1285,1288],{},[906,1276,1277,1278,1281],{},"checks that they are an ",[909,1279,1280],{},"active, seated"," end user of the app (the normal login seat cap applies);",[906,1283,1284],{},"admits them to the relay with one stable chat key that the platform holds for them;",[906,1286,1287],{},"hands that key to this browser session only. The page keeps it in memory, never in local storage or a cookie. A reload opens a new session;",[906,1289,1290,1291,1294,1295,930],{},"gives them a display name that is ",[909,1292,1293],{},"never taken from their email",". They can change it on the page. See ",[914,1296,774],{"href":1297},"/chat/members-and-moderation#display-names",[885,1299,1300,1301,1304,1305,1308,1309,1312,1313,1316],{},"Under the hood that is the ",[889,1302,1303],{},"open"," entry point, which wraps ",[889,1306,1307],{},"buzz.session.issue",". Sign-out is ",[889,1310,1311],{},"buzz.session.revoke",". People never call ",[889,1314,1315],{},"buzz.*"," types directly: end users can only start the compositions your app exposes.",[1318,1319,1320],"warning",{},[885,1321,1322,1325,1326,930],{},[909,1323,1324],{},"Signing out does not cut a key off the relay."," It revokes the session records. To stop a person from chatting, remove or suspend them, and after a suspected key leak rotate their key. See ",[914,1327,774],{"href":1328},"/chat/members-and-moderation#removing-someone",[898,1330,1332],{"id":1331},"pause-or-delete-the-chat","Pause or delete the chat",[988,1334,1335,1348],{},[991,1336,1337],{},[994,1338,1339,1342,1345],{},[997,1340,1341],{},"Want",[997,1343,1344],{},"Workflow",[997,1346,1347],{},"Effect",[1007,1349,1350,1369],{},[994,1351,1352,1355,1363],{},[1012,1353,1354],{},"Pause",[1012,1356,1357,1360,1361],{},[889,1358,1359],{},"buzz.space.disable"," with ",[889,1362,1156],{},[1012,1364,1365,1366,1368],{},"Stops issuing chat sessions and pauses every attached actor. The relay, history and memberships stay. ",[889,1367,891],{}," brings it back",[994,1370,1371,1374,1384],{},[1012,1372,1373],{},"Delete",[1012,1375,1376,1360,1379,892,1381],{},[889,1377,1378],{},"buzz.space.delete",[889,1380,1156],{},[889,1382,1383],{},"confirm_identity_app_uuid",[1012,1385,1386,1387,1390],{},"Removes the relay, its Redis and its media storage with their volumes, and releases members and actors. ",[909,1388,1389],{},"Irreversible."," You must type the identity app uuid to confirm",[898,1392,1394],{"id":1393},"check-it-worked","Check it worked",[978,1396,1399],{"className":1397,"code":1398,"language":983,"meta":984},[981],"start_workflow(\"buzz.space.status\", {\"identity_app_uuid\": \"\u003Cyour identity app uuid>\"})\n",[889,1400,1398],{"__ignoreMap":984},[885,1402,1403,1406],{},[889,1404,1405],{},"buzz.space.status"," is read-only. It returns the space, relay readiness, member convergence counts and the actors. A healthy space shows the relay ready and members in sync.",[898,1408,1410],{"id":1409},"ask-your-ai-assistant","Ask your AI assistant",[978,1412,1416],{"className":1413,"code":1414,"filename":1415,"language":983,"meta":984},[981],"Enable the chat for my identity app \"\u003Capp name>\". Show me the buzz.space.enable inputs first and wait for my confirmation before starting it.\n\nPublish the hosted chat page for my chat space with buzz.space.publish-chat and give me the URL when it finishes.\n\nRun buzz.space.status for my identity app and explain anything that is not ready.\n\nMy buzz.space.enable run failed. Read its history and tell me which step failed and why.\n","prompts",[889,1417,1414],{"__ignoreMap":984},[898,1419,1421],{"id":1420},"for-ai-agents","For AI agents",[988,1423,1424,1434],{},[991,1425,1426],{},[994,1427,1428,1431],{},[997,1429,1430],{},"Rule",[997,1432,1433],{},"Detail",[1007,1435,1436,1453,1461,1478,1496],{},[994,1437,1438,1441],{},[1012,1439,1440],{},"Human callers only",[1012,1442,1443,1445,1446,1445,1448,892,1450,1452],{},[889,1444,891],{},", ",[889,1447,895],{},[889,1449,1359],{},[889,1451,1378],{}," refuse agents. Prepare the call and let a person start it",[994,1454,1455,1458],{},[1012,1456,1457],{},"Confirm first",[1012,1459,1460],{},"Enabling makes the site always-on. Publishing replaces the site's active release",[994,1462,1463,1466],{},[1012,1464,1465],{},"Resolve ids",[1012,1467,1468,1471,1472,1474,1475],{},[889,1469,1470],{},"identity.app.query"," for the app, ",[889,1473,1160],{}," for the space. Never ask the user for an ",[889,1476,1477],{},"organization_uuid",[994,1479,1480,1483],{},[1012,1481,1482],{},"Watch",[1012,1484,1485,1487,1488,1491,1492,1495],{},[889,1486,891],{}," is a DAG. Use ",[889,1489,1490],{},"watch_workflow",", then ",[889,1493,1494],{},"get_workflow_history"," on failure",[994,1497,1498,1501],{},[1012,1499,1500],{},"Never",[1012,1502,1503,1504,1506],{},"Start ",[889,1505,1378],{}," without the user typing the identity app uuid themselves",{"title":984,"searchDepth":1508,"depth":1509,"links":1510},1,2,[1511,1512,1513,1514,1515,1516,1517,1518],{"id":900,"depth":1509,"text":901},{"id":969,"depth":1509,"text":970},{"id":1140,"depth":1509,"text":1141},{"id":1268,"depth":1509,"text":1269},{"id":1331,"depth":1509,"text":1332},{"id":1393,"depth":1509,"text":1394},{"id":1409,"depth":1509,"text":1410},{"id":1420,"depth":1509,"text":1421},"Turn on a chat space for an identity app with buzz.space.enable, publish the hosted chat page with buzz.space.publish-chat, and let your end users sign in with their app identity","md",null,{},{"icon":446},{"title":765,"description":1519},"A-RC9XFUijiXM229ehJlhvH21hPGW-0sszPi7v1ta9U",[1527,1529],{"title":758,"path":759,"stem":760,"description":1528,"icon":763,"children":-1},"Chat spaces for identity apps. Your end users sign in with their app identity, talk in channels, threads and DMs, and your Staff actors answer inside the same conversation. Every control-plane operation is a workflow",{"title":769,"path":770,"stem":771,"description":1530,"icon":772,"children":-1},"Customize a chat space live. The theme document carries brand, colors, layout, feature flags, attachment limits and copy, and moves through validate, draft, publish and rollback",1790354061472]