[{"data":1,"prerenderedAt":3920},["ShallowReactive",2],{"navigation_docs":3,"docs-page:\u002Fgovern\u002Freviewed-changes":1849,"docs-surround:\u002Fgovern\u002Freviewed-changes":3915},[4,72,214,304,947,1040,1230,1504,1590,1701,1830],{"title":5,"path":6,"stem":7,"children":8,"icon":71},"Get started","\u002Fgetting-started","01.getting-started\u002F00.index",[9,10,15,20,25,36],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","01.getting-started\u002F01.introduction","i-ph-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","01.getting-started\u002F02.quickstart","i-ph-rocket-launch",{"title":21,"path":22,"stem":23,"icon":24},"Concepts","\u002Fgetting-started\u002Fconcepts","01.getting-started\u002F03.concepts","i-ph-book-open",{"title":26,"path":27,"stem":28,"children":29,"icon":31},"Install","\u002Fgetting-started\u002Finstall","01.getting-started\u002F04.install\u002F00.index",[30,32],{"title":26,"path":27,"stem":28,"icon":31},"i-ph-download-simple",{"title":33,"path":34,"stem":35},"Prepare the Linux sandbox","\u002Fgetting-started\u002Finstall\u002Flinux-sandbox","01.getting-started\u002F04.install\u002F01.linux-sandbox",{"title":37,"path":38,"stem":39,"children":40,"icon":42},"Web UI","\u002Fgetting-started\u002Fweb-ui","01.getting-started\u002F05.web-ui\u002F00.index",[41,43,47,51,55,59,63,67],{"title":37,"path":38,"stem":39,"icon":42},"i-ph-monitor",{"title":44,"path":45,"stem":46},"Choose a tenant","\u002Fgetting-started\u002Fweb-ui\u002Ftenants","01.getting-started\u002F05.web-ui\u002F01.tenants",{"title":48,"path":49,"stem":50},"Find a page","\u002Fgetting-started\u002Fweb-ui\u002Fnavigation","01.getting-started\u002F05.web-ui\u002F02.navigation",{"title":52,"path":53,"stem":54},"Use the chat drawer","\u002Fgetting-started\u002Fweb-ui\u002Fchats","01.getting-started\u002F05.web-ui\u002F03.chats",{"title":56,"path":57,"stem":58},"Create and edit records","\u002Fgetting-started\u002Fweb-ui\u002Fforms","01.getting-started\u002F05.web-ui\u002F04.forms",{"title":60,"path":61,"stem":62},"Keyboard and accessibility","\u002Fgetting-started\u002Fweb-ui\u002Faccessibility","01.getting-started\u002F05.web-ui\u002F05.accessibility",{"title":64,"path":65,"stem":66},"Accounts and permissions","\u002Fgetting-started\u002Fweb-ui\u002Faccounts","01.getting-started\u002F05.web-ui\u002F06.accounts",{"title":68,"path":69,"stem":70},"Console page directory","\u002Fgetting-started\u002Fweb-ui\u002Fpage-directory","01.getting-started\u002F05.web-ui\u002F07.page-directory",false,{"title":21,"path":73,"stem":74,"children":75,"icon":71},"\u002Fconcepts","02.concepts\u002F00.index",[76,77,82,87,92,123,128,143,166,185,204,209],{"title":21,"path":73,"stem":74},{"title":78,"path":79,"stem":80,"icon":81},"Architecture","\u002Fconcepts\u002Farchitecture","02.concepts\u002F01.architecture","i-ph-planet",{"title":83,"path":84,"stem":85,"icon":86},"Jobs and durability","\u002Fconcepts\u002Fjobs","02.concepts\u002F02.jobs","i-ph-infinity",{"title":88,"path":89,"stem":90,"icon":91},"Routing","\u002Fconcepts\u002Frouting","02.concepts\u002F03.routing","i-ph-path",{"title":93,"path":94,"stem":95,"children":96,"icon":98},"Security model","\u002Fconcepts\u002Fsecurity","02.concepts\u002F04.security\u002F00.index",[97,99,103,107,111,115,119],{"title":93,"path":94,"stem":95,"icon":98},"i-ph-shield-check",{"title":100,"path":101,"stem":102},"Node identity and tenant secrets","\u002Fconcepts\u002Fsecurity\u002Fidentity-and-secrets","02.concepts\u002F04.security\u002F01.identity-and-secrets",{"title":104,"path":105,"stem":106},"Plugin processes and operator exemptions","\u002Fconcepts\u002Fsecurity\u002Fplugins","02.concepts\u002F04.security\u002F02.plugins",{"title":108,"path":109,"stem":110},"Sandbox tiers and routing","\u002Fconcepts\u002Fsecurity\u002Fsandbox-tiers","02.concepts\u002F04.security\u002F03.sandbox-tiers",{"title":112,"path":113,"stem":114},"Sandbox egress rules","\u002Fconcepts\u002Fsecurity\u002Fegress","02.concepts\u002F04.security\u002F04.egress",{"title":116,"path":117,"stem":118},"Protected files and sandbox limits","\u002Fconcepts\u002Fsecurity\u002Fprotected-files","02.concepts\u002F04.security\u002F05.protected-files",{"title":120,"path":121,"stem":122},"Security assurance","\u002Fconcepts\u002Fsecurity\u002Fassurance","02.concepts\u002F04.security\u002F06.assurance",{"title":124,"path":125,"stem":126,"icon":127},"Temporal","\u002Fconcepts\u002Ftemporal","02.concepts\u002F05.temporal","i-ph-clock",{"title":129,"path":130,"stem":131,"children":132,"icon":134},"Limits and scaling","\u002Fconcepts\u002Flimits-and-scaling","02.concepts\u002F06.limits-and-scaling\u002F00.index",[133,135,139],{"title":129,"path":130,"stem":131,"icon":134},"i-ph-gauge",{"title":136,"path":137,"stem":138},"Tenant and queue limits","\u002Fconcepts\u002Flimits-and-scaling\u002Flimits","02.concepts\u002F06.limits-and-scaling\u002F01.limits",{"title":140,"path":141,"stem":142},"Capacity measurements","\u002Fconcepts\u002Flimits-and-scaling\u002Fmeasurements","02.concepts\u002F06.limits-and-scaling\u002F02.measurements",{"title":144,"path":145,"stem":146,"children":147,"icon":149},"Threat model","\u002Fconcepts\u002Fthreat-model","02.concepts\u002F07.threat-model\u002F00.index",[148,150,154,158,162],{"title":144,"path":145,"stem":146,"icon":149},"i-ph-crosshair",{"title":151,"path":152,"stem":153},"Trust boundaries and compromise","\u002Fconcepts\u002Fthreat-model\u002Ftrust-boundaries","02.concepts\u002F07.threat-model\u002F01.trust-boundaries",{"title":155,"path":156,"stem":157},"Harness and tool boundaries","\u002Fconcepts\u002Fthreat-model\u002Fharness-tools","02.concepts\u002F07.threat-model\u002F02.harness-tools",{"title":159,"path":160,"stem":161},"Known security gaps","\u002Fconcepts\u002Fthreat-model\u002Fknown-gaps","02.concepts\u002F07.threat-model\u002F03.known-gaps",{"title":163,"path":164,"stem":165},"Origins, sequences and tool results","\u002Fconcepts\u002Fthreat-model\u002Forigins-and-results","02.concepts\u002F07.threat-model\u002F04.origins-and-results",{"title":167,"path":168,"stem":169,"children":170,"icon":172},"Outbound connections","\u002Fconcepts\u002Foutbound-connections","02.concepts\u002F08.outbound-connections\u002F00.index",[171,173,177,181],{"title":167,"path":168,"stem":169,"icon":172},"i-ph-arrow-square-out",{"title":174,"path":175,"stem":176},"Server outbound connections","\u002Fconcepts\u002Foutbound-connections\u002Fserver","02.concepts\u002F08.outbound-connections\u002F01.server",{"title":178,"path":179,"stem":180},"Node and plugin outbound connections","\u002Fconcepts\u002Foutbound-connections\u002Fnodes-and-plugins","02.concepts\u002F08.outbound-connections\u002F02.nodes-and-plugins",{"title":182,"path":183,"stem":184},"Addresses a model provider fetches","\u002Fconcepts\u002Foutbound-connections\u002Fprovider-fetches","02.concepts\u002F08.outbound-connections\u002F03.provider-fetches",{"title":186,"path":187,"stem":188,"children":189,"icon":191},"Run receipts","\u002Fconcepts\u002Frun-receipts","02.concepts\u002F09.run-receipts\u002F00.index",[190,192,196,200],{"title":186,"path":187,"stem":188,"icon":191},"i-ph-receipt",{"title":193,"path":194,"stem":195},"Authority envelopes and delegation","\u002Fconcepts\u002Frun-receipts\u002Fauthority","02.concepts\u002F09.run-receipts\u002F01.authority",{"title":197,"path":198,"stem":199},"Call bindings and budget charges","\u002Fconcepts\u002Frun-receipts\u002Fcalls-and-charges","02.concepts\u002F09.run-receipts\u002F02.calls-and-charges",{"title":201,"path":202,"stem":203},"Verify run receipts offline","\u002Fconcepts\u002Frun-receipts\u002Fverify","02.concepts\u002F09.run-receipts\u002F03.verify",{"title":205,"path":206,"stem":207,"icon":208},"Delegation and identity","\u002Fconcepts\u002Fdelegation-and-identity","02.concepts\u002F10.delegation-and-identity","i-ph-identification-badge",{"title":210,"path":211,"stem":212,"icon":213},"How a tool call is decided","\u002Fconcepts\u002Fhow-a-tool-call-is-decided","02.concepts\u002F11.how-a-tool-call-is-decided","i-ph-list-checks",{"title":215,"path":216,"stem":217,"children":218,"icon":71},"Run","\u002Fagents","03.agents\u002F00.index",[219,221,226,231,236,240,245,250,268,299],{"title":220,"path":216,"stem":217},"Run agents",{"title":222,"path":223,"stem":224,"icon":225},"Run jobs","\u002Fagents\u002Frun-jobs","03.agents\u002F01.run-jobs","i-ph-play",{"title":227,"path":228,"stem":229,"icon":230},"Job history","\u002Fagents\u002Fhistory","03.agents\u002F02.history","i-ph-clock-counter-clockwise",{"title":232,"path":233,"stem":234,"icon":235},"Long jobs","\u002Fagents\u002Flong-jobs","03.agents\u002F03.long-jobs","i-ph-hourglass-medium",{"title":237,"path":238,"stem":239,"icon":235},"Waiting for events","\u002Fagents\u002Fwaiting-for-events","03.agents\u002F04.waiting-for-events",{"title":241,"path":242,"stem":243,"icon":244},"Delegation","\u002Fagents\u002Fdelegation","03.agents\u002F05.delegation","i-ph-git-fork",{"title":246,"path":247,"stem":248,"icon":249},"Colleagues and the board","\u002Fagents\u002Fcolleagues","03.agents\u002F06.colleagues","i-ph-chats-circle",{"title":251,"path":252,"stem":253,"children":254,"icon":249},"Conversations","\u002Fagents\u002Fconversations","03.agents\u002F07.conversations\u002F00.index",[255,256,260,264],{"title":251,"path":252,"stem":253,"icon":249},{"title":257,"path":258,"stem":259},"Conversation access and history","\u002Fagents\u002Fconversations\u002Faccess-and-history","03.agents\u002F07.conversations\u002F02.access-and-history",{"title":261,"path":262,"stem":263},"Use conversations from an app","\u002Fagents\u002Fconversations\u002Fapps","03.agents\u002F07.conversations\u002F03.apps",{"title":265,"path":266,"stem":267},"Hand off a conversation and use Ask","\u002Fagents\u002Fconversations\u002Fhandoffs-and-ask","03.agents\u002F07.conversations\u002F04.handoffs-and-ask",{"title":269,"path":270,"stem":271,"children":272,"icon":274},"Decide an approval","\u002Fagents\u002Fapprovals","03.agents\u002F08.approvals\u002F00.index",[273,275,279,283,287,291,295],{"title":269,"path":270,"stem":271,"icon":274},"i-ph-hand-palm",{"title":276,"path":277,"stem":278},"Configure approval ownership and deadlines","\u002Fagents\u002Fapprovals\u002Fconfigure","03.agents\u002F08.approvals\u002F02.configure",{"title":280,"path":281,"stem":282},"How approval decisions bind a call","\u002Fagents\u002Fapprovals\u002Fsecurity","03.agents\u002F08.approvals\u002F03.security",{"title":284,"path":285,"stem":286},"Edit an approval or allow repeated calls","\u002Fagents\u002Fapprovals\u002Fedits-and-repeat-calls","03.agents\u002F08.approvals\u002F04.edits-and-repeat-calls",{"title":288,"path":289,"stem":290},"Resolve loop, budget and recovery waits","\u002Fagents\u002Fapprovals\u002Frecovery","03.agents\u002F08.approvals\u002F05.recovery",{"title":292,"path":293,"stem":294},"Review approval statistics and test cards","\u002Fagents\u002Fapprovals\u002Fstatistics","03.agents\u002F08.approvals\u002F06.statistics",{"title":296,"path":297,"stem":298},"Decide approvals from an app","\u002Fagents\u002Fapprovals\u002Fapps","03.agents\u002F08.approvals\u002F07.apps",{"title":300,"path":301,"stem":302,"icon":303},"Asking people","\u002Fagents\u002Fasking-people","03.agents\u002F09.asking-people","i-ph-chat-circle-dots",{"title":305,"path":306,"stem":307,"children":308,"icon":71},"Build","\u002Fbuild","04.build\u002F00.index",[309,310,655,844],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313,"children":314,"icon":71},"Plugins","\u002Fbuild\u002Fplugins","04.build\u002F01.plugins\u002F00.index",[315,316,321,352,357,362,367,378,397,412,417,422,427,442,447,452,457,472,476,481,492,497,502,640],{"title":311,"path":312,"stem":313},{"title":317,"path":318,"stem":319,"icon":320},"What a plugin is","\u002Fbuild\u002Fplugins\u002Foverview","04.build\u002F01.plugins\u002F01.overview","i-ph-puzzle-piece",{"title":322,"path":323,"stem":324,"children":325,"icon":327},"Install a plugin","\u002Fbuild\u002Fplugins\u002Finstall","04.build\u002F01.plugins\u002F02.install\u002F00.index",[326,328,332,336,340,344,348],{"title":322,"path":323,"stem":324,"icon":327},"i-ph-package",{"title":329,"path":330,"stem":331,"icon":327},"Review an install","\u002Fbuild\u002Fplugins\u002Finstall\u002Freview","04.build\u002F01.plugins\u002F02.install\u002F01.review",{"title":333,"path":334,"stem":335,"icon":327},"Install from a source","\u002Fbuild\u002Fplugins\u002Finstall\u002Fsources","04.build\u002F01.plugins\u002F02.install\u002F02.sources",{"title":337,"path":338,"stem":339,"icon":327},"Update a plugin","\u002Fbuild\u002Fplugins\u002Finstall\u002Fupdate","04.build\u002F01.plugins\u002F02.install\u002F03.update",{"title":341,"path":342,"stem":343,"icon":327},"Roll out a plugin","\u002Fbuild\u002Fplugins\u002Finstall\u002Frollouts","04.build\u002F01.plugins\u002F02.install\u002F04.rollouts",{"title":345,"path":346,"stem":347,"icon":327},"Grant access between plugins","\u002Fbuild\u002Fplugins\u002Finstall\u002Fgrants","04.build\u002F01.plugins\u002F02.install\u002F05.grants",{"title":349,"path":350,"stem":351,"icon":327},"Retire or remove a plugin","\u002Fbuild\u002Fplugins\u002Finstall\u002Fretire-and-remove","04.build\u002F01.plugins\u002F02.install\u002F06.retire-and-remove",{"title":353,"path":354,"stem":355,"icon":356},"Configure an installed plugin","\u002Fbuild\u002Fplugins\u002Fconfigure","04.build\u002F01.plugins\u002F03.configure","i-ph-sliders-horizontal",{"title":358,"path":359,"stem":360,"icon":361},"Sets","\u002Fbuild\u002Fplugins\u002Fsets","04.build\u002F01.plugins\u002F04.sets","i-ph-stack",{"title":363,"path":364,"stem":365,"icon":366},"Your first plugin","\u002Fbuild\u002Fplugins\u002Ffirst-plugin","04.build\u002F01.plugins\u002F05.first-plugin","i-ph-hammer",{"title":368,"path":369,"stem":370,"children":371,"icon":373},"Structure a plugin","\u002Fbuild\u002Fplugins\u002Fstructure","04.build\u002F01.plugins\u002F06.structure\u002F00.index",[372,374],{"title":368,"path":369,"stem":370,"icon":373},"i-ph-tree-structure",{"title":375,"path":376,"stem":377,"icon":373},"Plugin structure rules","\u002Fbuild\u002Fplugins\u002Fstructure\u002Flint-rules","04.build\u002F01.plugins\u002F06.structure\u002F01.lint-rules",{"title":379,"path":380,"stem":381,"children":382,"icon":384},"Develop a plugin","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test","04.build\u002F01.plugins\u002F07.develop-and-test\u002F00.index",[383,385,389,393],{"title":379,"path":380,"stem":381,"icon":384},"i-ph-flask",{"title":386,"path":387,"stem":388,"icon":384},"Check a plugin candidate","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Fcandidate-checks","04.build\u002F01.plugins\u002F07.develop-and-test\u002F01.candidate-checks",{"title":390,"path":391,"stem":392,"icon":384},"Lint and test a plugin","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Flint-and-tests","04.build\u002F01.plugins\u002F07.develop-and-test\u002F02.lint-and-tests",{"title":394,"path":395,"stem":396,"icon":384},"Run failure drills","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Ftests-and-drills","04.build\u002F01.plugins\u002F07.develop-and-test\u002F03.tests-and-drills",{"title":398,"path":399,"stem":400,"children":401,"icon":403},"Build in Studio","\u002Fbuild\u002Fplugins\u002Fstudio","04.build\u002F01.plugins\u002F08.studio\u002F00.index",[402,404,408],{"title":398,"path":399,"stem":400,"icon":403},"i-ph-code",{"title":405,"path":406,"stem":407,"icon":403},"Test and explain a draft","\u002Fbuild\u002Fplugins\u002Fstudio\u002Ftest-and-explain","04.build\u002F01.plugins\u002F08.studio\u002F01.test-and-explain",{"title":409,"path":410,"stem":411,"icon":403},"Release a workspace plugin","\u002Fbuild\u002Fplugins\u002Fstudio\u002Frelease","04.build\u002F01.plugins\u002F08.studio\u002F02.release",{"title":413,"path":414,"stem":415,"icon":416},"The build kit","\u002Fbuild\u002Fplugins\u002Fclaude-code","04.build\u002F01.plugins\u002F09.claude-code","i-ph-sparkle",{"title":418,"path":419,"stem":420,"icon":421},"Example: support triage","\u002Fbuild\u002Fplugins\u002Fexample-support-triage","04.build\u002F01.plugins\u002F10.example-support-triage","i-ph-lifebuoy",{"title":423,"path":424,"stem":425,"icon":426},"Publish and version","\u002Fbuild\u002Fplugins\u002Fpublish","04.build\u002F01.plugins\u002F11.publish","i-ph-tag",{"title":428,"path":429,"stem":430,"children":431,"icon":433},"List a plugin","\u002Fbuild\u002Fplugins\u002Flist-a-plugin","04.build\u002F01.plugins\u002F12.list-a-plugin\u002F00.index",[432,434,438],{"title":428,"path":429,"stem":430,"icon":433},"i-ph-storefront",{"title":435,"path":436,"stem":437,"icon":433},"Hub review checks","\u002Fbuild\u002Fplugins\u002Flist-a-plugin\u002Freview","04.build\u002F01.plugins\u002F12.list-a-plugin\u002F01.review",{"title":439,"path":440,"stem":441,"icon":433},"Maintain a listing","\u002Fbuild\u002Fplugins\u002Flist-a-plugin\u002Fmaintain","04.build\u002F01.plugins\u002F12.list-a-plugin\u002F02.maintain",{"title":443,"path":444,"stem":445,"icon":446},"The catalog","\u002Fbuild\u002Fplugins\u002Fcatalog","04.build\u002F01.plugins\u002F13.catalog","i-ph-books",{"title":448,"path":449,"stem":450,"icon":451},"Folders, bundles and OCI","\u002Fbuild\u002Fplugins\u002Fsources","04.build\u002F01.plugins\u002F14.sources","i-ph-archive",{"title":453,"path":454,"stem":455,"icon":456},"The workspace","\u002Fbuild\u002Fplugins\u002Fworkspace","04.build\u002F01.plugins\u002F15.workspace","i-ph-folder-notch-open",{"title":458,"path":459,"stem":460,"children":461,"icon":463},"Use a plugin index","\u002Fbuild\u002Fplugins\u002Findexes","04.build\u002F01.plugins\u002F16.indexes\u002F00.index",[462,464,468],{"title":458,"path":459,"stem":460,"icon":463},"i-ph-seal-check",{"title":465,"path":466,"stem":467,"icon":463},"Read index version records","\u002Fbuild\u002Fplugins\u002Findexes\u002Fversion-records","04.build\u002F01.plugins\u002F16.indexes\u002F01.version-records",{"title":469,"path":470,"stem":471,"icon":463},"Manage plugin indexes","\u002Fbuild\u002Fplugins\u002Findexes\u002Fmanage","04.build\u002F01.plugins\u002F16.indexes\u002F02.manage",{"title":473,"path":474,"stem":475,"icon":327},"Existing MCP packages","\u002Fbuild\u002Fplugins\u002Fpackages","04.build\u002F01.plugins\u002F17.packages",{"title":477,"path":478,"stem":479,"icon":480},"MCP servers from container images","\u002Fbuild\u002Fplugins\u002Fcontainer-images","04.build\u002F01.plugins\u002F18.container-images","i-ph-cube",{"title":482,"path":483,"stem":484,"children":485,"icon":487},"Import agent plugins","\u002Fbuild\u002Fplugins\u002Fclaude-code-and-agent-plugins","04.build\u002F01.plugins\u002F19.claude-code-and-agent-plugins\u002F00.index",[486,488],{"title":482,"path":483,"stem":484,"icon":487},"i-ph-arrow-square-in",{"title":489,"path":490,"stem":491,"icon":487},"Import from registries","\u002Fbuild\u002Fplugins\u002Fclaude-code-and-agent-plugins\u002Fmarketplaces","04.build\u002F01.plugins\u002F19.claude-code-and-agent-plugins\u002F01.marketplaces",{"title":493,"path":494,"stem":495,"icon":496},"GitHub","\u002Fbuild\u002Fplugins\u002Fgithub","04.build\u002F01.plugins\u002F20.github","i-ph-github-logo",{"title":498,"path":499,"stem":500,"icon":501},"Known vulnerabilities","\u002Fbuild\u002Fplugins\u002Fvulnerabilities","04.build\u002F01.plugins\u002F21.vulnerabilities","i-ph-shield-warning",{"title":503,"path":504,"stem":505,"children":506,"icon":71},"Verified plugins","\u002Fbuild\u002Fplugins\u002Fverified","04.build\u002F01.plugins\u002F22.verified\u002F01.index",[507,508,513,518,523,528,533,538,543,548,553,558,580,585,589,594,599,604,608,612,617,622,626],{"title":503,"path":504,"stem":505,"icon":463},{"title":509,"path":510,"stem":511,"icon":512},"ai.oz0\u002Fweb","\u002Fbuild\u002Fplugins\u002Fverified\u002Fweb","04.build\u002F01.plugins\u002F22.verified\u002F02.web","i-ph-globe",{"title":514,"path":515,"stem":516,"icon":517},"ai.oz0\u002Fnet-diag","\u002Fbuild\u002Fplugins\u002Fverified\u002Fnet-diag","04.build\u002F01.plugins\u002F22.verified\u002F03.net-diag","i-ph-network",{"title":519,"path":520,"stem":521,"icon":522},"ai.oz0\u002Fcve-triage","\u002Fbuild\u002Fplugins\u002Fverified\u002Fcve-triage","04.build\u002F01.plugins\u002F22.verified\u002F04.cve-triage","i-ph-bug",{"title":524,"path":525,"stem":526,"icon":527},"ai.oz0\u002Fhost-health","\u002Fbuild\u002Fplugins\u002Fverified\u002Fhost-health","04.build\u002F01.plugins\u002F22.verified\u002F05.host-health","i-ph-heartbeat",{"title":529,"path":530,"stem":531,"icon":532},"ai.oz0\u002Fpr-reviewer","\u002Fbuild\u002Fplugins\u002Fverified\u002Fpr-reviewer","04.build\u002F01.plugins\u002F22.verified\u002F06.pr-reviewer","i-ph-git-pull-request",{"title":534,"path":535,"stem":536,"icon":537},"Slack","\u002Fbuild\u002Fplugins\u002Fverified\u002Fslack","04.build\u002F01.plugins\u002F22.verified\u002F07.slack","i-ph-slack-logo",{"title":539,"path":540,"stem":541,"icon":542},"Discord","\u002Fbuild\u002Fplugins\u002Fverified\u002Fdiscord","04.build\u002F01.plugins\u002F22.verified\u002F08.discord","i-ph-discord-logo",{"title":544,"path":545,"stem":546,"icon":547},"Microsoft Teams","\u002Fbuild\u002Fplugins\u002Fverified\u002Fteams","04.build\u002F01.plugins\u002F22.verified\u002F09.teams","i-ph-microsoft-teams-logo",{"title":549,"path":550,"stem":551,"icon":552},"ai.oz0\u002Fai-spend","\u002Fbuild\u002Fplugins\u002Fverified\u002Fai-spend","04.build\u002F01.plugins\u002F22.verified\u002F10.ai-spend","i-ph-coins",{"title":554,"path":555,"stem":556,"icon":557},"ai.oz0\u002Fa2a-remote","\u002Fbuild\u002Fplugins\u002Fverified\u002Fa2a-remote","04.build\u002F01.plugins\u002F22.verified\u002F11.a2a-remote","i-ph-arrows-left-right",{"title":559,"path":560,"stem":561,"children":562,"icon":98},"Guardrails","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F00.index",[563,564,568,572,576],{"title":559,"path":560,"stem":561,"icon":98},{"title":565,"path":566,"stem":567,"icon":98},"Configure guardrails","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fsettings","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F01.settings",{"title":569,"path":570,"stem":571,"icon":98},"Check classified text","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fclassified-text","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F02.classified-text",{"title":573,"path":574,"stem":575,"icon":98},"Check shell commands","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fcommands","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F03.commands",{"title":577,"path":578,"stem":579,"icon":98},"Guardrail coverage and limits","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fintent-and-limits","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F04.intent-and-limits",{"title":581,"path":582,"stem":583,"icon":584},"ai.oz0\u002Fmemory","\u002Fbuild\u002Fplugins\u002Fverified\u002Fmemory","04.build\u002F01.plugins\u002F22.verified\u002F13.memory","i-ph-brain",{"title":586,"path":587,"stem":588,"icon":416},"ai.oz0\u002Fsetup-assistant","\u002Fbuild\u002Fplugins\u002Fverified\u002Fsetup-assistant","04.build\u002F01.plugins\u002F22.verified\u002F14.setup-assistant",{"title":590,"path":591,"stem":592,"icon":593},"ai.oz0\u002Fpublic-access","\u002Fbuild\u002Fplugins\u002Fverified\u002Fpublic-access","04.build\u002F01.plugins\u002F22.verified\u002F15.public-access","i-ph-files",{"title":595,"path":596,"stem":597,"icon":598},"ai.oz0\u002Femail","\u002Fbuild\u002Fplugins\u002Fverified\u002Femail","04.build\u002F01.plugins\u002F22.verified\u002F16.email","i-ph-envelope-simple",{"title":600,"path":601,"stem":602,"icon":603},"Atlassian Cloud","\u002Fbuild\u002Fplugins\u002Fverified\u002Fatlassian","04.build\u002F01.plugins\u002F22.verified\u002F17.atlassian","i-ph-kanban",{"title":605,"path":606,"stem":607,"icon":603},"Atlassian Data Center","\u002Fbuild\u002Fplugins\u002Fverified\u002Fatlassian-dc","04.build\u002F01.plugins\u002F22.verified\u002F18.atlassian-dc",{"title":609,"path":610,"stem":611,"icon":421},"ServiceNow","\u002Fbuild\u002Fplugins\u002Fverified\u002Fservicenow","04.build\u002F01.plugins\u002F22.verified\u002F19.servicenow",{"title":613,"path":614,"stem":615,"icon":616},"GitLab","\u002Fbuild\u002Fplugins\u002Fverified\u002Fgitlab","04.build\u002F01.plugins\u002F22.verified\u002F20.gitlab","i-ph-git-merge",{"title":618,"path":619,"stem":620,"icon":621},"Support triage","\u002Fbuild\u002Fplugins\u002Fverified\u002Fsupport-triage","04.build\u002F01.plugins\u002F22.verified\u002F21.support-triage","i-ph-ticket",{"title":623,"path":624,"stem":625,"icon":361},"Essentials","\u002Fbuild\u002Fplugins\u002Fverified\u002Fessentials","04.build\u002F01.plugins\u002F22.verified\u002F22.essentials",{"title":627,"path":628,"stem":629,"children":630,"icon":532},"Plugin improver","\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver","04.build\u002F01.plugins\u002F22.verified\u002F23.plugin-improver\u002F00.index",[631,632,636],{"title":627,"path":628,"stem":629,"icon":532},{"title":633,"path":634,"stem":635,"icon":532},"How an improvement runs","\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver\u002Fjob-lifecycle","04.build\u002F01.plugins\u002F22.verified\u002F23.plugin-improver\u002F01.job-lifecycle",{"title":637,"path":638,"stem":639,"icon":532},"Improver limits and records","\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver\u002Flimits-and-records","04.build\u002F01.plugins\u002F22.verified\u002F23.plugin-improver\u002F02.limits-and-records",{"title":641,"path":642,"stem":643,"children":644,"icon":646},"Plugin size limits","\u002Fbuild\u002Fplugins\u002Flimits","04.build\u002F01.plugins\u002F23.limits\u002F00.index",[645,647,651],{"title":641,"path":642,"stem":643,"icon":646},"i-ph-ruler",{"title":648,"path":649,"stem":650,"icon":646},"Documentation limits","\u002Fbuild\u002Fplugins\u002Flimits\u002Fdocumentation","04.build\u002F01.plugins\u002F23.limits\u002F01.documentation",{"title":652,"path":653,"stem":654,"icon":646},"Artifact and index limits","\u002Fbuild\u002Fplugins\u002Flimits\u002Fartifacts","04.build\u002F01.plugins\u002F23.limits\u002F02.artifacts",{"title":656,"path":657,"stem":658,"children":659,"icon":71},"Parts","\u002Fbuild\u002Fparts","04.build\u002F02.parts\u002F00.index",[660,662,667,672,690,721,726,730,741,756,761,776,791,814,818,823,828,839],{"title":661,"path":657,"stem":658},"Plugin parts",{"title":663,"path":664,"stem":665,"icon":666},"Agents","\u002Fbuild\u002Fparts\u002Fagents","04.build\u002F02.parts\u002F01.agents","i-ph-robot",{"title":668,"path":669,"stem":670,"icon":671},"What an agent combines","\u002Fbuild\u002Fparts\u002Fwhat-an-agent-combines","04.build\u002F02.parts\u002F02.what-an-agent-combines","i-ph-intersect-three",{"title":673,"path":674,"stem":675,"children":676,"icon":646},"Agent contracts","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F00.index",[677,678,682,686],{"title":673,"path":674,"stem":675,"icon":646},{"title":679,"path":680,"stem":681,"icon":646},"Agent failure kinds","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits\u002Ffailures","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F01.failures",{"title":683,"path":684,"stem":685,"icon":646},"Agent limits","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits\u002Flimits","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F02.limits",{"title":687,"path":688,"stem":689,"icon":646},"Agent budgets","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits\u002Fbudgets","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F03.budgets",{"title":691,"path":692,"stem":693,"children":694,"icon":696},"Write a tool","\u002Fbuild\u002Fparts\u002Ftools","04.build\u002F02.parts\u002F04.tools\u002F00.index",[695,697,701,705,709,713,717],{"title":691,"path":692,"stem":693,"icon":696},"i-ph-wrench",{"title":698,"path":699,"stem":700,"icon":696},"Describe tool functions","\u002Fbuild\u002Fparts\u002Ftools\u002Fdefinitions","04.build\u002F02.parts\u002F04.tools\u002F01.definitions",{"title":702,"path":703,"stem":704,"icon":696},"Return results and files","\u002Fbuild\u002Fparts\u002Ftools\u002Fresults-and-files","04.build\u002F02.parts\u002F04.tools\u002F02.results-and-files",{"title":706,"path":707,"stem":708,"icon":696},"Handle tool call lifecycle","\u002Fbuild\u002Fparts\u002Ftools\u002Fcall-lifecycle","04.build\u002F02.parts\u002F04.tools\u002F03.call-lifecycle",{"title":710,"path":711,"stem":712,"icon":696},"Pin tool definitions","\u002Fbuild\u002Fparts\u002Ftools\u002Fsnapshots","04.build\u002F02.parts\u002F04.tools\u002F04.snapshots",{"title":714,"path":715,"stem":716,"icon":696},"Call a model from a tool","\u002Fbuild\u002Fparts\u002Ftools\u002Fmodel-calls","04.build\u002F02.parts\u002F04.tools\u002F05.model-calls",{"title":718,"path":719,"stem":720,"icon":696},"Tool labels and approvals","\u002Fbuild\u002Fparts\u002Ftools\u002Fpolicy","04.build\u002F02.parts\u002F04.tools\u002F06.policy",{"title":722,"path":723,"stem":724,"icon":725},"TypeScript tools","\u002Fbuild\u002Fparts\u002Ftypescript-tools","04.build\u002F02.parts\u002F05.typescript-tools","i-ph-file-code",{"title":727,"path":728,"stem":729,"icon":725},"Import an OpenAPI document","\u002Fbuild\u002Fparts\u002Fopenapi-import","04.build\u002F02.parts\u002F06.openapi-import",{"title":731,"path":732,"stem":733,"children":734,"icon":736},"Write and load skills","\u002Fbuild\u002Fparts\u002Fskills","04.build\u002F02.parts\u002F07.skills\u002F00.index",[735,737],{"title":731,"path":732,"stem":733,"icon":736},"i-ph-graduation-cap",{"title":738,"path":739,"stem":740,"icon":736},"Review skill use and proposals","\u002Fbuild\u002Fparts\u002Fskills\u002Fusage-and-proposals","04.build\u002F02.parts\u002F07.skills\u002F01.usage-and-proposals",{"title":742,"path":743,"stem":744,"children":745,"icon":747},"Write a flow","\u002Fbuild\u002Fparts\u002Fflows","04.build\u002F02.parts\u002F08.flows\u002F00.index",[746,748,752],{"title":742,"path":743,"stem":744,"icon":747},"i-ph-flow-arrow",{"title":749,"path":750,"stem":751,"icon":747},"Flow steps and expressions","\u002Fbuild\u002Fparts\u002Fflows\u002Fsteps-and-expressions","04.build\u002F02.parts\u002F08.flows\u002F01.steps-and-expressions",{"title":753,"path":754,"stem":755,"icon":747},"Expose and explain flows","\u002Fbuild\u002Fparts\u002Fflows\u002Fflow-tools","04.build\u002F02.parts\u002F08.flows\u002F02.flow-tools",{"title":757,"path":758,"stem":759,"icon":760},"Hooks","\u002Fbuild\u002Fparts\u002Fhooks","04.build\u002F02.parts\u002F09.hooks","i-ph-anchor",{"title":762,"path":763,"stem":764,"children":765,"icon":767},"Declare an event source","\u002Fbuild\u002Fparts\u002Fevent-sources","04.build\u002F02.parts\u002F10.event-sources\u002F00.index",[766,768,772],{"title":762,"path":763,"stem":764,"icon":767},"i-ph-broadcast",{"title":769,"path":770,"stem":771,"icon":767},"Bind and answer deliveries","\u002Fbuild\u002Fparts\u002Fevent-sources\u002Fdelivery-binding","04.build\u002F02.parts\u002F10.event-sources\u002F01.delivery-binding",{"title":773,"path":774,"stem":775,"icon":767},"Use platform events","\u002Fbuild\u002Fparts\u002Fevent-sources\u002Fplatform-events","04.build\u002F02.parts\u002F10.event-sources\u002F02.platform-events",{"title":777,"path":778,"stem":779,"children":780,"icon":782},"Declare a connection","\u002Fbuild\u002Fparts\u002Fconnections","04.build\u002F02.parts\u002F11.connections\u002F00.index",[781,783,787],{"title":777,"path":778,"stem":779,"icon":782},"i-ph-plugs-connected",{"title":784,"path":785,"stem":786,"icon":782},"Connection token lifecycle","\u002Fbuild\u002Fparts\u002Fconnections\u002Ftoken-lifecycle","04.build\u002F02.parts\u002F11.connections\u002F01.token-lifecycle",{"title":788,"path":789,"stem":790,"icon":782},"Connection setup and security","\u002Fbuild\u002Fparts\u002Fconnections\u002Fsetup-and-security","04.build\u002F02.parts\u002F11.connections\u002F02.setup-and-security",{"title":792,"path":793,"stem":794,"children":795,"icon":797},"Choose a harness","\u002Fbuild\u002Fparts\u002Fharnesses","04.build\u002F02.parts\u002F12.harnesses\u002F00.index",[796,798,802,806,810],{"title":792,"path":793,"stem":794,"icon":797},"i-ph-cpu",{"title":799,"path":800,"stem":801,"icon":797},"Harness tool controls","\u002Fbuild\u002Fparts\u002Fharnesses\u002Ftool-controls","04.build\u002F02.parts\u002F12.harnesses\u002F01.tool-controls",{"title":803,"path":804,"stem":805,"icon":797},"Recover a harness session","\u002Fbuild\u002Fparts\u002Fharnesses\u002Frecovery","04.build\u002F02.parts\u002F12.harnesses\u002F02.recovery",{"title":807,"path":808,"stem":809,"icon":797},"Write a harness","\u002Fbuild\u002Fparts\u002Fharnesses\u002Fcustom-harnesses","04.build\u002F02.parts\u002F12.harnesses\u002F03.custom-harnesses",{"title":811,"path":812,"stem":813,"icon":797},"Use an ACP agent","\u002Fbuild\u002Fparts\u002Fharnesses\u002Facp","04.build\u002F02.parts\u002F12.harnesses\u002F04.acp",{"title":815,"path":816,"stem":817,"icon":782},"Bring your own agent","\u002Fbuild\u002Fparts\u002Fbring-your-own-agent","04.build\u002F02.parts\u002F13.bring-your-own-agent",{"title":819,"path":820,"stem":821,"icon":822},"Records and start-up text","\u002Fbuild\u002Fparts\u002Frecords-and-startup","04.build\u002F02.parts\u002F14.records-and-startup","i-ph-database",{"title":824,"path":825,"stem":826,"icon":827},"Addresses","\u002Fbuild\u002Fparts\u002Faddresses","04.build\u002F02.parts\u002F15.addresses","i-ph-signpost",{"title":829,"path":830,"stem":831,"children":832,"icon":834},"Define a routine","\u002Fbuild\u002Fparts\u002Froutines","04.build\u002F02.parts\u002F16.routines\u002F00.index",[833,835],{"title":829,"path":830,"stem":831,"icon":834},"i-ph-clock-clockwise",{"title":836,"path":837,"stem":838,"icon":834},"Routine permissions and outputs","\u002Fbuild\u002Fparts\u002Froutines\u002Foutputs-and-permissions","04.build\u002F02.parts\u002F16.routines\u002F01.outputs-and-permissions",{"title":840,"path":841,"stem":842,"icon":843},"When to split an agent","\u002Fbuild\u002Fparts\u002Fwhen-to-split-an-agent","04.build\u002F02.parts\u002F17.when-to-split-an-agent","i-ph-arrows-split",{"title":845,"path":846,"stem":847,"children":848,"icon":71},"Apps on OZ","\u002Fbuild\u002Fapps","04.build\u002F03.apps\u002F00.index",[849,851,862,867,872,876,880,884,894,908,913,928,942],{"title":850,"path":846,"stem":847},"Applications and clients",{"title":852,"path":853,"stem":854,"children":855,"icon":857},"Use the runtime API","\u002Fbuild\u002Fapps\u002Fruntime-api","04.build\u002F03.apps\u002F01.runtime-api\u002F00.index",[856,858],{"title":852,"path":853,"stem":854,"icon":857},"i-ph-plug",{"title":859,"path":860,"stem":861,"icon":857},"Runtime API authentication","\u002Fbuild\u002Fapps\u002Fruntime-api\u002Fauthentication","04.build\u002F03.apps\u002F01.runtime-api\u002F01.authentication",{"title":863,"path":864,"stem":865,"icon":866},"Python SDK","\u002Fbuild\u002Fapps\u002Fsdk-python","04.build\u002F03.apps\u002F02.sdk-python","i-ph-file-py",{"title":868,"path":869,"stem":870,"icon":871},"TypeScript SDK","\u002Fbuild\u002Fapps\u002Fsdk-typescript","04.build\u002F03.apps\u002F03.sdk-typescript","i-ph-file-ts",{"title":873,"path":874,"stem":875,"icon":725},"Go SDK","\u002Fbuild\u002Fapps\u002Fsdk-go","04.build\u002F03.apps\u002F04.sdk-go",{"title":877,"path":878,"stem":879,"icon":782},"AG-UI for your apps","\u002Fbuild\u002Fapps\u002Fag-ui","04.build\u002F03.apps\u002F05.ag-ui",{"title":881,"path":882,"stem":883,"icon":249},"A chat in your own app","\u002Fbuild\u002Fapps\u002Fchat-app","04.build\u002F03.apps\u002F06.chat-app",{"title":885,"path":886,"stem":887,"children":888,"icon":767},"Follow live jobs","\u002Fbuild\u002Fapps\u002Flive-feeds","04.build\u002F03.apps\u002F07.live-feeds\u002F00.index",[889,890],{"title":885,"path":886,"stem":887,"icon":767},{"title":891,"path":892,"stem":893,"icon":767},"Feed access and browser streams","\u002Fbuild\u002Fapps\u002Flive-feeds\u002Fbrowser-and-access","04.build\u002F03.apps\u002F07.live-feeds\u002F01.browser-and-access",{"title":895,"path":896,"stem":897,"children":898,"icon":782},"Call agents over MCP","\u002Fbuild\u002Fapps\u002Fmcp-server","04.build\u002F03.apps\u002F08.mcp-server\u002F00.index",[899,900,904],{"title":895,"path":896,"stem":897,"icon":782},{"title":901,"path":902,"stem":903,"icon":782},"MCP client OAuth","\u002Fbuild\u002Fapps\u002Fmcp-server\u002Foauth","04.build\u002F03.apps\u002F08.mcp-server\u002F01.oauth",{"title":905,"path":906,"stem":907,"icon":782},"MCP security and limits","\u002Fbuild\u002Fapps\u002Fmcp-server\u002Fsecurity-and-limits","04.build\u002F03.apps\u002F08.mcp-server\u002F02.security-and-limits",{"title":909,"path":910,"stem":911,"icon":912},"A2A agents","\u002Fbuild\u002Fapps\u002Fa2a","04.build\u002F03.apps\u002F09.a2a","i-ph-share-network",{"title":914,"path":915,"stem":916,"children":917,"icon":919},"Run a remote agent","\u002Fbuild\u002Fapps\u002Fremote-agents","04.build\u002F03.apps\u002F10.remote-agents\u002F00.index",[918,920,924],{"title":914,"path":915,"stem":916,"icon":919},"i-ph-cloud-arrow-down",{"title":921,"path":922,"stem":923,"icon":919},"Remote sessions and limits","\u002Fbuild\u002Fapps\u002Fremote-agents\u002Fsessions-and-limits","04.build\u002F03.apps\u002F10.remote-agents\u002F01.sessions-and-limits",{"title":925,"path":926,"stem":927,"icon":919},"Connect an outside A2A agent","\u002Fbuild\u002Fapps\u002Fremote-agents\u002Fa2a","04.build\u002F03.apps\u002F10.remote-agents\u002F02.a2a",{"title":929,"path":930,"stem":931,"children":932,"icon":249},"Connect a chat channel","\u002Fbuild\u002Fapps\u002Fchat-channels","04.build\u002F03.apps\u002F11.chat-channels\u002F00.index",[933,934,938],{"title":929,"path":930,"stem":931,"icon":249},{"title":935,"path":936,"stem":937,"icon":249},"Chat channel conversations","\u002Fbuild\u002Fapps\u002Fchat-channels\u002Fconversations","04.build\u002F03.apps\u002F11.chat-channels\u002F01.conversations",{"title":939,"path":940,"stem":941,"icon":249},"Build a chat channel","\u002Fbuild\u002Fapps\u002Fchat-channels\u002Fbuild","04.build\u002F03.apps\u002F11.chat-channels\u002F02.build",{"title":943,"path":944,"stem":945,"icon":946},"Interop matrix","\u002Fbuild\u002Fapps\u002Finterop","04.build\u002F03.apps\u002F12.interop","i-ph-check-square-offset",{"title":948,"path":949,"stem":950,"children":951,"icon":71},"Improve","\u002Fimprove","05.improve\u002F00.index",[952,953,958,963,968,994,1021,1026,1031,1036],{"title":948,"path":949,"stem":950},{"title":954,"path":955,"stem":956,"icon":957},"Search, compare and fix","\u002Fimprove\u002Fsearch-and-compare","05.improve\u002F01.search-and-compare","i-ph-magnifying-glass",{"title":959,"path":960,"stem":961,"icon":962},"Errors and insights","\u002Fimprove\u002Ferrors-and-insights","05.improve\u002F02.errors-and-insights","i-ph-chart-line",{"title":964,"path":965,"stem":966,"icon":967},"Measured savings","\u002Fimprove\u002Fmeasured-savings","05.improve\u002F03.measured-savings","i-ph-scales",{"title":969,"path":970,"stem":971,"children":972,"icon":463},"Evals and quality gates","\u002Fimprove\u002Fevals","05.improve\u002F04.evals\u002F00.index",[973,974,978,982,986,990],{"title":969,"path":970,"stem":971,"icon":463},{"title":975,"path":976,"stem":977},"Case expectations","\u002Fimprove\u002Fevals\u002Fcases","05.improve\u002F04.evals\u002F01.cases",{"title":979,"path":980,"stem":981},"Record and replay answers","\u002Fimprove\u002Fevals\u002Frecordings","05.improve\u002F04.evals\u002F02.recordings",{"title":983,"path":984,"stem":985},"Check policy paths","\u002Fimprove\u002Fevals\u002Fcoverage","05.improve\u002F04.evals\u002F03.coverage",{"title":987,"path":988,"stem":989},"Gate a plugin update","\u002Fimprove\u002Fevals\u002Fquality-gates","05.improve\u002F04.evals\u002F04.quality-gates",{"title":991,"path":992,"stem":993},"Track quality and regressions","\u002Fimprove\u002Fevals\u002Fregressions","05.improve\u002F04.evals\u002F05.regressions",{"title":995,"path":996,"stem":997,"children":998,"icon":1000},"Outcome checks and patterns","\u002Fimprove\u002Foutcome-checks","05.improve\u002F05.outcome-checks\u002F00.index",[999,1001,1005,1009,1013,1017],{"title":995,"path":996,"stem":997,"icon":1000},"i-ph-gavel",{"title":1002,"path":1003,"stem":1004},"Choose a judge and rubric","\u002Fimprove\u002Foutcome-checks\u002Fjudges","05.improve\u002F05.outcome-checks\u002F01.judges",{"title":1006,"path":1007,"stem":1008},"Measure a judge over time","\u002Fimprove\u002Foutcome-checks\u002Fsampling","05.improve\u002F05.outcome-checks\u002F02.sampling",{"title":1010,"path":1011,"stem":1012},"Use a reviewer agent","\u002Fimprove\u002Foutcome-checks\u002Freviewer","05.improve\u002F05.outcome-checks\u002F03.reviewer",{"title":1014,"path":1015,"stem":1016},"Choose among candidate answers","\u002Fimprove\u002Foutcome-checks\u002Fselection","05.improve\u002F05.outcome-checks\u002F04.selection",{"title":1018,"path":1019,"stem":1020},"Test and roll out judged agents","\u002Fimprove\u002Foutcome-checks\u002Frollouts","05.improve\u002F05.outcome-checks\u002F05.rollouts",{"title":1022,"path":1023,"stem":1024,"icon":1025},"Measured results","\u002Fimprove\u002Fmeasured-results","05.improve\u002F06.measured-results","i-ph-chart-bar",{"title":1027,"path":1028,"stem":1029,"icon":1030},"Comparisons of a changed agent","\u002Fimprove\u002Fcomparisons-of-a-changed-agent","05.improve\u002F07.comparisons-of-a-changed-agent","i-ph-git-diff",{"title":1032,"path":1033,"stem":1034,"icon":1035},"Where a fix belongs","\u002Fimprove\u002Fwhere-a-fix-belongs","05.improve\u002F08.where-a-fix-belongs","i-ph-ladder",{"title":1037,"path":1038,"stem":1039,"icon":957},"Evidence for agents","\u002Fimprove\u002Fevidence-for-agents","05.improve\u002F09.evidence-for-agents",{"title":1041,"path":1042,"stem":1043,"children":1044,"icon":71},"Govern","\u002Fgovern","06.govern\u002F00.index",[1045,1047,1085,1089,1111,1115,1120,1151,1170,1175,1180,1184,1207],{"title":1046,"path":1042,"stem":1043},"Govern agents",{"title":1048,"path":1049,"stem":1050,"children":1051,"icon":98},"Tool policy","\u002Fgovern\u002Ftool-policy","06.govern\u002F01.tool-policy\u002F00.index",[1052,1053,1057,1061,1065,1069,1073,1077,1081],{"title":1048,"path":1049,"stem":1050,"icon":98},{"title":1054,"path":1055,"stem":1056},"Export and apply a tool policy","\u002Fgovern\u002Ftool-policy\u002Ffiles","06.govern\u002F01.tool-policy\u002F02.files",{"title":1058,"path":1059,"stem":1060},"Rules for plugin and remote functions","\u002Fgovern\u002Ftool-policy\u002Fplugin-functions","06.govern\u002F01.tool-policy\u002F03.plugin-functions",{"title":1062,"path":1063,"stem":1064},"Function conditions and action classes","\u002Fgovern\u002Ftool-policy\u002Fconditions","06.govern\u002F01.tool-policy\u002F04.conditions",{"title":1066,"path":1067,"stem":1068},"Rules for taint, origins and sequences","\u002Fgovern\u002Ftool-policy\u002Forigins-and-sequences","06.govern\u002F01.tool-policy\u002F05.origins-and-sequences",{"title":1070,"path":1071,"stem":1072},"How the runtime enforces tool policy","\u002Fgovern\u002Ftool-policy\u002Fruntime","06.govern\u002F01.tool-policy\u002F06.runtime",{"title":1074,"path":1075,"stem":1076},"Preview, review and lint tool policy changes","\u002Fgovern\u002Ftool-policy\u002Freview-changes","06.govern\u002F01.tool-policy\u002F07.review-changes",{"title":1078,"path":1079,"stem":1080},"Assign duties to tool calls","\u002Fgovern\u002Ftool-policy\u002Fduties","06.govern\u002F01.tool-policy\u002F08.duties",{"title":1082,"path":1083,"stem":1084},"Command rules in a tool policy","\u002Fgovern\u002Ftool-policy\u002Fcommand-rules","06.govern\u002F01.tool-policy\u002F09.command-rules",{"title":1086,"path":1087,"stem":1088,"icon":230},"Governance replay","\u002Fgovern\u002Fgovernance-replay","06.govern\u002F02.governance-replay",{"title":1090,"path":1091,"stem":1092,"children":1093,"icon":532},"Reviewed changes","\u002Fgovern\u002Freviewed-changes","06.govern\u002F03.reviewed-changes\u002F00.index",[1094,1095,1099,1103,1107],{"title":1090,"path":1091,"stem":1092,"icon":532},{"title":1096,"path":1097,"stem":1098},"Review assistant and job proposals","\u002Fgovern\u002Freviewed-changes\u002Fproposals","06.govern\u002F03.reviewed-changes\u002F02.proposals",{"title":1100,"path":1101,"stem":1102},"Review plugin configurations","\u002Fgovern\u002Freviewed-changes\u002Fplugin-configurations","06.govern\u002F03.reviewed-changes\u002F03.plugin-configurations",{"title":1104,"path":1105,"stem":1106},"Review and roll back changesets","\u002Fgovern\u002Freviewed-changes\u002Fchangesets","06.govern\u002F03.reviewed-changes\u002F04.changesets",{"title":1108,"path":1109,"stem":1110},"Review changes to protected paths","\u002Fgovern\u002Freviewed-changes\u002Fprotected-paths","06.govern\u002F03.reviewed-changes\u002F05.protected-paths",{"title":1112,"path":1113,"stem":1114,"icon":666},"AI labels","\u002Fgovern\u002Fai-labels","06.govern\u002F04.ai-labels",{"title":1116,"path":1117,"stem":1118,"icon":1119},"Kill switches","\u002Fgovern\u002Fkill-switches","06.govern\u002F05.kill-switches","i-ph-power",{"title":1121,"path":1122,"stem":1123,"children":1124,"icon":1126},"Personal data","\u002Fgovern\u002Fpersonal-data","06.govern\u002F06.personal-data\u002F00.index",[1125,1127,1131,1135,1139,1143,1147],{"title":1121,"path":1122,"stem":1123,"icon":1126},"i-ph-user-minus",{"title":1128,"path":1129,"stem":1130},"Associate people and purposes with jobs","\u002Fgovern\u002Fpersonal-data\u002Fassociate-people","06.govern\u002F06.personal-data\u002F01.associate-people",{"title":1132,"path":1133,"stem":1134},"Find and export personal data","\u002Fgovern\u002Fpersonal-data\u002Fexport","06.govern\u002F06.personal-data\u002F02.export",{"title":1136,"path":1137,"stem":1138},"Restrict processing and record contests","\u002Fgovern\u002Fpersonal-data\u002Frestrictions-and-contests","06.govern\u002F06.personal-data\u002F03.restrictions-and-contests",{"title":1140,"path":1141,"stem":1142},"Erase personal data","\u002Fgovern\u002Fpersonal-data\u002Ferase","06.govern\u002F06.personal-data\u002F04.erase",{"title":1144,"path":1145,"stem":1146},"Retain records and restore backups","\u002Fgovern\u002Fpersonal-data\u002Fretention","06.govern\u002F06.personal-data\u002F05.retention",{"title":1148,"path":1149,"stem":1150},"Personal data held by plugins","\u002Fgovern\u002Fpersonal-data\u002Fplugin-records","06.govern\u002F06.personal-data\u002F06.plugin-records",{"title":1152,"path":1153,"stem":1154,"children":1155,"icon":1157},"Taint and labels","\u002Fgovern\u002Ftaint-and-labels","06.govern\u002F07.taint-and-labels\u002F00.index",[1156,1158,1162,1166],{"title":1152,"path":1153,"stem":1154,"icon":1157},"i-ph-drop-half-bottom",{"title":1159,"path":1160,"stem":1161},"Set rules on taint and labels","\u002Fgovern\u002Ftaint-and-labels\u002Frules","06.govern\u002F07.taint-and-labels\u002F02.rules",{"title":1163,"path":1164,"stem":1165},"Set clearance, egress and content walls","\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies","06.govern\u002F07.taint-and-labels\u002F03.label-policies",{"title":1167,"path":1168,"stem":1169},"Read outside text in a quarantine child","\u002Fgovern\u002Ftaint-and-labels\u002Fquarantine","06.govern\u002F07.taint-and-labels\u002F04.quarantine",{"title":1171,"path":1172,"stem":1173,"icon":1174},"Works-council mode","\u002Fgovern\u002Fworks-council-mode","06.govern\u002F08.works-council-mode","i-ph-users-three",{"title":1176,"path":1177,"stem":1178,"icon":1179},"Incidents","\u002Fgovern\u002Fincidents","06.govern\u002F09.incidents","i-ph-siren",{"title":1181,"path":1182,"stem":1183,"icon":213},"Inventory","\u002Fgovern\u002Finventory","06.govern\u002F10.inventory",{"title":1185,"path":1186,"stem":1187,"children":1188,"icon":1190},"Audit trail","\u002Fgovern\u002Faudit-trail","06.govern\u002F11.audit-trail\u002F00.index",[1189,1191,1195,1199,1203],{"title":1185,"path":1186,"stem":1187,"icon":1190},"i-ph-scroll",{"title":1192,"path":1193,"stem":1194},"Audit records and run identity","\u002Fgovern\u002Faudit-trail\u002Frecords","06.govern\u002F11.audit-trail\u002F02.records",{"title":1196,"path":1197,"stem":1198},"Verify the audit chain","\u002Fgovern\u002Faudit-trail\u002Fverification","06.govern\u002F11.audit-trail\u002F03.verification",{"title":1200,"path":1201,"stem":1202},"Export and verify evidence bundles","\u002Fgovern\u002Faudit-trail\u002Fevidence-bundles","06.govern\u002F11.audit-trail\u002F04.evidence-bundles",{"title":1204,"path":1205,"stem":1206},"Audit retention, erasure and legal holds","\u002Fgovern\u002Faudit-trail\u002Fretention","06.govern\u002F11.audit-trail\u002F05.retention",{"title":1208,"path":1209,"stem":1210,"children":1211,"icon":1213},"Command rules","\u002Fgovern\u002Fcommand-rules","06.govern\u002F12.command-rules\u002F00.index",[1212,1214,1218,1222,1226],{"title":1208,"path":1209,"stem":1210,"icon":1213},"i-ph-terminal",{"title":1215,"path":1216,"stem":1217},"Command rule patterns","\u002Fgovern\u002Fcommand-rules\u002Fpatterns","06.govern\u002F12.command-rules\u002F02.patterns",{"title":1219,"path":1220,"stem":1221},"What the command reader understands","\u002Fgovern\u002Fcommand-rules\u002Fcommand-reader","06.govern\u002F12.command-rules\u002F03.command-reader",{"title":1223,"path":1224,"stem":1225},"Create a command rule from an approval","\u002Fgovern\u002Fcommand-rules\u002Fallow-from-card","06.govern\u002F12.command-rules\u002F04.allow-from-card",{"title":1227,"path":1228,"stem":1229},"Command rule evaluation and limits","\u002Fgovern\u002Fcommand-rules\u002Fevaluation-and-limits","06.govern\u002F12.command-rules\u002F05.evaluation-and-limits",{"title":1231,"path":1232,"stem":1233,"children":1234,"icon":71},"Fleet","\u002Ffleet","07.fleet\u002F00.index",[1235,1237,1242,1247,1251,1256,1260,1265,1270,1274,1278,1297,1302,1307,1325,1329,1333,1352,1357,1380,1385,1390,1395,1399,1458,1462,1467,1481,1486,1490,1494],{"title":1236,"path":1232,"stem":1233},"Operate a fleet",{"title":1238,"path":1239,"stem":1240,"icon":1241},"Dev mode","\u002Ffleet\u002Fdev-mode","07.fleet\u002F01.dev-mode","i-ph-laptop",{"title":1243,"path":1244,"stem":1245,"icon":1246},"Run a cluster","\u002Ffleet\u002Fcluster","07.fleet\u002F02.cluster","i-ph-hard-drives",{"title":1248,"path":1249,"stem":1250,"icon":782},"Join nodes","\u002Ffleet\u002Fjoin-nodes","07.fleet\u002F03.join-nodes",{"title":1252,"path":1253,"stem":1254,"icon":1255},"Manage nodes","\u002Ffleet\u002Fmanage-nodes","07.fleet\u002F04.manage-nodes","i-ph-list-bullets",{"title":1257,"path":1258,"stem":1259,"icon":527},"Node health","\u002Ffleet\u002Fnodes","07.fleet\u002F05.nodes",{"title":1261,"path":1262,"stem":1263,"icon":1264},"Nodes as services","\u002Ffleet\u002Fservices","07.fleet\u002F06.services","i-ph-gear-six",{"title":1266,"path":1267,"stem":1268,"icon":1269},"Doctor","\u002Ffleet\u002Fdoctor","07.fleet\u002F07.doctor","i-ph-stethoscope",{"title":1271,"path":1272,"stem":1273,"icon":421},"Troubleshooting","\u002Ffleet\u002Ftroubleshooting","07.fleet\u002F08.troubleshooting",{"title":1275,"path":1276,"stem":1277,"icon":962},"Tracing and metrics","\u002Ffleet\u002Fobservability","07.fleet\u002F09.observability",{"title":1279,"path":1280,"stem":1281,"children":1282,"icon":1284},"Choose sandbox tier 2","\u002Ffleet\u002Fsandbox-tier-2","07.fleet\u002F10.sandbox-tier-2\u002F00.index",[1283,1285,1289,1293],{"title":1279,"path":1280,"stem":1281,"icon":1284},"i-ph-shield-chevron",{"title":1286,"path":1287,"stem":1288,"icon":1284},"Set up gVisor","\u002Ffleet\u002Fsandbox-tier-2\u002Fgvisor","07.fleet\u002F10.sandbox-tier-2\u002F01.gvisor",{"title":1290,"path":1291,"stem":1292,"icon":1284},"Set up microVM isolation","\u002Ffleet\u002Fsandbox-tier-2\u002Fmicrovms","07.fleet\u002F10.sandbox-tier-2\u002F02.microvms",{"title":1294,"path":1295,"stem":1296,"icon":1284},"Configure remote sandboxes","\u002Ffleet\u002Fsandbox-tier-2\u002Fremote","07.fleet\u002F10.sandbox-tier-2\u002F03.remote",{"title":1298,"path":1299,"stem":1300,"icon":1301},"Sandbox on macOS","\u002Ffleet\u002Fsandbox-on-macos","07.fleet\u002F11.sandbox-on-macos","i-ph-apple-logo",{"title":1303,"path":1304,"stem":1305,"icon":1306},"Sandbox on Windows","\u002Ffleet\u002Fsandbox-on-windows","07.fleet\u002F12.sandbox-on-windows","i-ph-windows-logo",{"title":1308,"path":1309,"stem":1310,"children":1311,"icon":797},"Configure local models","\u002Ffleet\u002Flocal-models","07.fleet\u002F13.local-models\u002F00.index",[1312,1313,1317,1321],{"title":1308,"path":1309,"stem":1310,"icon":797},{"title":1314,"path":1315,"stem":1316,"icon":797},"Share a local model with the fleet","\u002Ffleet\u002Flocal-models\u002Ffleet","07.fleet\u002F13.local-models\u002F01.fleet",{"title":1318,"path":1319,"stem":1320,"icon":797},"Review local-model safety checks","\u002Ffleet\u002Flocal-models\u002Ftrust","07.fleet\u002F13.local-models\u002F02.trust",{"title":1322,"path":1323,"stem":1324,"icon":797},"Size and price local models","\u002Ffleet\u002Flocal-models\u002Fsizing-and-cost","07.fleet\u002F13.local-models\u002F03.sizing-and-cost",{"title":1326,"path":1327,"stem":1328,"icon":1241},"Agents on a Mac with MLX","\u002Ffleet\u002Flocal-models-on-a-mac","07.fleet\u002F14.local-models-on-a-mac",{"title":1330,"path":1331,"stem":1332,"icon":127},"Queues","\u002Ffleet\u002Fqueues","07.fleet\u002F15.queues",{"title":1334,"path":1335,"stem":1336,"children":1337,"icon":1339},"Choose a Temporal backend","\u002Ffleet\u002Ftemporal-backends","07.fleet\u002F16.temporal-backends\u002F00.index",[1338,1340,1344,1348],{"title":1334,"path":1335,"stem":1336,"icon":1339},"i-ph-cloud",{"title":1341,"path":1342,"stem":1343},"Set retention and move tenants","\u002Ffleet\u002Ftemporal-backends\u002Fretention-and-migration","07.fleet\u002F16.temporal-backends\u002F01.retention-and-migration",{"title":1345,"path":1346,"stem":1347},"Encrypt Temporal payloads","\u002Ffleet\u002Ftemporal-backends\u002Fencryption","07.fleet\u002F16.temporal-backends\u002F02.encryption",{"title":1349,"path":1350,"stem":1351},"Read payloads in Temporal UI","\u002Ffleet\u002Ftemporal-backends\u002Fcodec","07.fleet\u002F16.temporal-backends\u002F03.codec",{"title":1353,"path":1354,"stem":1355,"icon":1356},"Regions","\u002Ffleet\u002Fregions","07.fleet\u002F17.regions","i-ph-globe-hemisphere-east",{"title":1358,"path":1359,"stem":1360,"children":1361,"icon":1363},"Run the roles separately","\u002Ffleet\u002Fseparate-roles","07.fleet\u002F18.separate-roles\u002F00.index",[1362,1364,1368,1372,1376],{"title":1358,"path":1359,"stem":1360,"icon":1363},"i-ph-squares-four",{"title":1365,"path":1366,"stem":1367},"Prepare database rights","\u002Ffleet\u002Fseparate-roles\u002Fdatabase-rights","07.fleet\u002F18.separate-roles\u002F01.database-rights",{"title":1369,"path":1370,"stem":1371},"Keep plaintext secrets on edges","\u002Ffleet\u002Fseparate-roles\u002Fsecrets","07.fleet\u002F18.separate-roles\u002F02.secrets",{"title":1373,"path":1374,"stem":1375},"Operate through role outages","\u002Ffleet\u002Fseparate-roles\u002Foutages","07.fleet\u002F18.separate-roles\u002F03.outages",{"title":1377,"path":1378,"stem":1379},"Use Temporal UI with separate roles","\u002Ffleet\u002Fseparate-roles\u002Ftemporal-ui","07.fleet\u002F18.separate-roles\u002F04.temporal-ui",{"title":1381,"path":1382,"stem":1383,"icon":1384},"High availability","\u002Ffleet\u002Fhigh-availability","07.fleet\u002F19.high-availability","i-ph-copy",{"title":1386,"path":1387,"stem":1388,"icon":1389},"Management over a WAN","\u002Ffleet\u002Fmanagement-over-a-wan","07.fleet\u002F20.management-over-a-wan","i-ph-globe-hemisphere-west",{"title":1391,"path":1392,"stem":1393,"icon":1394},"Cloud federation","\u002Ffleet\u002Fcloud-federation","07.fleet\u002F21.cloud-federation","i-ph-cloud-check",{"title":1396,"path":1397,"stem":1398,"icon":451},"Payload storage","\u002Ffleet\u002Fpayload-storage","07.fleet\u002F22.payload-storage",{"title":1400,"path":1401,"stem":1402,"children":1403,"icon":1405},"Upgrade a cluster","\u002Ffleet\u002Fupgrades","07.fleet\u002F23.upgrades\u002F00.index",[1404,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1454],{"title":1400,"path":1401,"stem":1402,"icon":1405},"i-ph-arrows-clockwise",{"title":1407,"path":1408,"stem":1409},"Prepare for sandbox changes","\u002Ffleet\u002Fupgrades\u002Fsandbox-changes","07.fleet\u002F23.upgrades\u002F01.sandbox-changes",{"title":1411,"path":1412,"stem":1413},"Review policy changes","\u002Ffleet\u002Fupgrades\u002Fpolicy-changes","07.fleet\u002F23.upgrades\u002F02.policy-changes",{"title":1415,"path":1416,"stem":1417},"Review data and privacy migrations","\u002Ffleet\u002Fupgrades\u002Fdata-migrations","07.fleet\u002F23.upgrades\u002F03.data-migrations",{"title":1419,"path":1420,"stem":1421},"Prepare storage and identity migrations","\u002Ffleet\u002Fupgrades\u002Fstorage-and-identity","07.fleet\u002F23.upgrades\u002F04.storage-and-identity",{"title":1423,"path":1424,"stem":1425},"Prepare plugins for an upgrade","\u002Ffleet\u002Fupgrades\u002Fplugin-changes","07.fleet\u002F23.upgrades\u002F05.plugin-changes",{"title":1427,"path":1428,"stem":1429},"Keep calls compatible during upgrades","\u002Ffleet\u002Fupgrades\u002Fcall-compatibility","07.fleet\u002F23.upgrades\u002F06.call-compatibility",{"title":1431,"path":1432,"stem":1433},"Review model and budget migrations","\u002Ffleet\u002Fupgrades\u002Fmodel-and-budget-changes","07.fleet\u002F23.upgrades\u002F07.model-and-budget-changes",{"title":1435,"path":1436,"stem":1437},"Migrate to shared worker pools","\u002Ffleet\u002Fupgrades\u002Fshared-pools","07.fleet\u002F23.upgrades\u002F08.shared-pools",{"title":1439,"path":1440,"stem":1441},"Upgrade node binaries and runtimes","\u002Ffleet\u002Fupgrades\u002Fnodes","07.fleet\u002F23.upgrades\u002F09.nodes",{"title":1443,"path":1444,"stem":1445},"Understand runtime shutdown","\u002Ffleet\u002Fupgrades\u002Fruntime-shutdown","07.fleet\u002F23.upgrades\u002F10.runtime-shutdown",{"title":1447,"path":1448,"stem":1449},"Review runtime behaviour changes","\u002Ffleet\u002Fupgrades\u002Fruntime-changes","07.fleet\u002F23.upgrades\u002F11.runtime-changes",{"title":1451,"path":1452,"stem":1453},"Verify releases and switch channels","\u002Ffleet\u002Fupgrades\u002Frelease-verification","07.fleet\u002F23.upgrades\u002F12.release-verification",{"title":1455,"path":1456,"stem":1457},"Roll a runtime out in steps","\u002Ffleet\u002Fupgrades\u002Fruntime-rollouts","07.fleet\u002F23.upgrades\u002F13.runtime-rollouts",{"title":1459,"path":1460,"stem":1461,"icon":463},"Releases","\u002Ffleet\u002Freleases","07.fleet\u002F24.releases",{"title":1463,"path":1464,"stem":1465,"icon":1466},"Docker","\u002Ffleet\u002Fdocker","07.fleet\u002F25.docker","i-ph-shipping-container",{"title":1468,"path":1469,"stem":1470,"children":1471,"icon":480},"Deploy with Kubernetes","\u002Ffleet\u002Fkubernetes","07.fleet\u002F26.kubernetes\u002F00.index",[1472,1473,1477],{"title":1468,"path":1469,"stem":1470,"icon":480},{"title":1474,"path":1475,"stem":1476,"icon":480},"Helm objects and values","\u002Ffleet\u002Fkubernetes\u002Fvalues","07.fleet\u002F26.kubernetes\u002F01.values",{"title":1478,"path":1479,"stem":1480,"icon":480},"Maintain a Kubernetes deployment","\u002Ffleet\u002Fkubernetes\u002Fmaintenance","07.fleet\u002F26.kubernetes\u002F02.maintenance",{"title":1482,"path":1483,"stem":1484,"icon":1485},"Offline install","\u002Ffleet\u002Foffline-install","07.fleet\u002F27.offline-install","i-ph-airplane-tilt",{"title":1487,"path":1488,"stem":1489,"icon":98},"FIPS builds","\u002Ffleet\u002Ffips","07.fleet\u002F28.fips",{"title":1491,"path":1492,"stem":1493,"icon":249},"Run Orchestrator Zero from an MCP client","\u002Ffleet\u002Fmcp-client","07.fleet\u002F29.mcp-client",{"title":1495,"path":1496,"stem":1497,"children":1498,"icon":451},"Back up a cluster","\u002Ffleet\u002Fbackups","07.fleet\u002F30.backups\u002F00.index",[1499,1500],{"title":1495,"path":1496,"stem":1497,"icon":451},{"title":1501,"path":1502,"stem":1503},"Restore a cluster","\u002Ffleet\u002Fbackups\u002Frestore","07.fleet\u002F30.backups\u002F01.restore",{"title":1505,"path":1506,"stem":1507,"children":1508,"icon":71},"Spend","\u002Fspend","08.spend\u002F00.index",[1509,1511,1533,1547,1585],{"title":1510,"path":1506,"stem":1507},"Manage model access and spending",{"title":1512,"path":1513,"stem":1514,"children":1515,"icon":552},"Read cost and usage","\u002Fspend\u002Fcost-and-usage","08.spend\u002F01.cost-and-usage\u002F00.index",[1516,1517,1521,1525,1529],{"title":1512,"path":1513,"stem":1514,"icon":552},{"title":1518,"path":1519,"stem":1520},"Understand recorded charges","\u002Fspend\u002Fcost-and-usage\u002Faccounting","08.spend\u002F01.cost-and-usage\u002F01.accounting",{"title":1522,"path":1523,"stem":1524},"Read model call timings","\u002Fspend\u002Fcost-and-usage\u002Ftimings","08.spend\u002F01.cost-and-usage\u002F02.timings",{"title":1526,"path":1527,"stem":1528},"Export usage","\u002Fspend\u002Fcost-and-usage\u002Fexports","08.spend\u002F01.cost-and-usage\u002F03.exports",{"title":1530,"path":1531,"stem":1532},"Explain prices and cache costs","\u002Fspend\u002Fcost-and-usage\u002Fprices-and-cache","08.spend\u002F01.cost-and-usage\u002F04.prices-and-cache",{"title":1534,"path":1535,"stem":1536,"children":1537,"icon":134},"Set budgets and quotas","\u002Fspend\u002Fbudgets-and-quotas","08.spend\u002F02.budgets-and-quotas\u002F00.index",[1538,1539,1543],{"title":1534,"path":1535,"stem":1536,"icon":134},{"title":1540,"path":1541,"stem":1542,"icon":134},"Understand quota charging and refusals","\u002Fspend\u002Fbudgets-and-quotas\u002Fcharging","08.spend\u002F02.budgets-and-quotas\u002F01.charging",{"title":1544,"path":1545,"stem":1546,"icon":134},"Request and review budget","\u002Fspend\u002Fbudgets-and-quotas\u002Frequests","08.spend\u002F02.budgets-and-quotas\u002F02.requests",{"title":1548,"path":1549,"stem":1550,"children":1551,"icon":416},"Connect a model provider","\u002Fspend\u002Fmodels-and-keys","08.spend\u002F03.models-and-keys\u002F00.index",[1552,1553,1557,1561,1565,1569,1573,1577,1581],{"title":1548,"path":1549,"stem":1550,"icon":416},{"title":1554,"path":1555,"stem":1556},"Choose model aliases","\u002Fspend\u002Fmodels-and-keys\u002Faliases","08.spend\u002F03.models-and-keys\u002F01.aliases",{"title":1558,"path":1559,"stem":1560},"Map a plugin's models","\u002Fspend\u002Fmodels-and-keys\u002Fmapping","08.spend\u002F03.models-and-keys\u002F02.mapping",{"title":1562,"path":1563,"stem":1564},"Set reasoning effort and cascades","\u002Fspend\u002Fmodels-and-keys\u002Feffort-and-cascades","08.spend\u002F03.models-and-keys\u002F03.effort-and-cascades",{"title":1566,"path":1567,"stem":1568},"Authenticate model calls","\u002Fspend\u002Fmodels-and-keys\u002Fauthentication","08.spend\u002F03.models-and-keys\u002F04.authentication",{"title":1570,"path":1571,"stem":1572},"Control what model calls can reach","\u002Fspend\u002Fmodels-and-keys\u002Fdata-rules","08.spend\u002F03.models-and-keys\u002F05.data-rules",{"title":1574,"path":1575,"stem":1576},"Pool model deployments","\u002Fspend\u002Fmodels-and-keys\u002Fdeployment-pools","08.spend\u002F03.models-and-keys\u002F06.deployment-pools",{"title":1578,"path":1579,"stem":1580},"Configure caches and server tools","\u002Fspend\u002Fmodels-and-keys\u002Fcache-and-tools","08.spend\u002F03.models-and-keys\u002F07.cache-and-tools",{"title":1582,"path":1583,"stem":1584},"Check model changes and retirement","\u002Fspend\u002Fmodels-and-keys\u002Fcanaries-and-retirement","08.spend\u002F03.models-and-keys\u002F08.canaries-and-retirement",{"title":1586,"path":1587,"stem":1588,"icon":1589},"Translating providers","\u002Fspend\u002Ftranslating-providers","08.spend\u002F04.translating-providers","i-ph-translate",{"title":1591,"path":1592,"stem":1593,"children":1594,"icon":71},"Admin","\u002Fadmin","09.admin\u002F00.index",[1595,1597,1623,1650,1654,1658,1680,1685,1696],{"title":1596,"path":1592,"stem":1593},"Administer access and credentials",{"title":1598,"path":1599,"stem":1600,"children":1601,"icon":98},"Configure sign-in","\u002Fadmin\u002Fsign-in","09.admin\u002F01.sign-in\u002F00.index",[1602,1603,1607,1611,1615,1619],{"title":1598,"path":1599,"stem":1600,"icon":98},{"title":1604,"path":1605,"stem":1606},"Configure an identity provider","\u002Fadmin\u002Fsign-in\u002Fidentity-providers","09.admin\u002F01.sign-in\u002F01.identity-providers",{"title":1608,"path":1609,"stem":1610},"Provision accounts from a directory","\u002Fadmin\u002Fsign-in\u002Fprovisioning","09.admin\u002F01.sign-in\u002F02.provisioning",{"title":1612,"path":1613,"stem":1614},"Manage passwords and second factors","\u002Fadmin\u002Fsign-in\u002Fpasswords","09.admin\u002F01.sign-in\u002F03.passwords",{"title":1616,"path":1617,"stem":1618},"Sign in from the CLI and MCP clients","\u002Fadmin\u002Fsign-in\u002Fclients","09.admin\u002F01.sign-in\u002F04.clients",{"title":1620,"path":1621,"stem":1622},"End sessions and inspect sign-in events","\u002Fadmin\u002Fsign-in\u002Fsessions","09.admin\u002F01.sign-in\u002F05.sessions",{"title":1624,"path":1625,"stem":1626,"children":1627,"icon":1629},"Manage tenant secrets","\u002Fadmin\u002Fsecrets","09.admin\u002F02.secrets\u002F00.index",[1628,1630,1634,1638,1642,1646],{"title":1624,"path":1625,"stem":1626,"icon":1629},"i-ph-key",{"title":1631,"path":1632,"stem":1633},"Bind secrets to destination hosts","\u002Fadmin\u002Fsecrets\u002Fhost-bindings","09.admin\u002F02.secrets\u002F01.host-bindings",{"title":1635,"path":1636,"stem":1637},"Test and rotate secrets","\u002Fadmin\u002Fsecrets\u002Frotation","09.admin\u002F02.secrets\u002F02.rotation",{"title":1639,"path":1640,"stem":1641},"Use an external secret store","\u002Fadmin\u002Fsecrets\u002Fexternal-stores","09.admin\u002F02.secrets\u002F03.external-stores",{"title":1643,"path":1644,"stem":1645},"Deliver and scan plugin secrets","\u002Fadmin\u002Fsecrets\u002Fplugin-secrets","09.admin\u002F02.secrets\u002F04.plugin-secrets",{"title":1647,"path":1648,"stem":1649},"Configure plugin settings","\u002Fadmin\u002Fsecrets\u002Fsettings","09.admin\u002F02.secrets\u002F05.settings",{"title":1651,"path":1652,"stem":1653,"icon":1629},"Credential injection","\u002Fadmin\u002Fcredential-injection","09.admin\u002F03.credential-injection",{"title":1655,"path":1656,"stem":1657,"icon":1629},"Key commands","\u002Fadmin\u002Fkey-commands","09.admin\u002F04.key-commands",{"title":1659,"path":1660,"stem":1661,"children":1662,"icon":782},"Connect a plugin to another system","\u002Fadmin\u002Fconnections","09.admin\u002F05.connections\u002F00.index",[1663,1664,1668,1672,1676],{"title":1659,"path":1660,"stem":1661,"icon":782},{"title":1665,"path":1666,"stem":1667,"icon":782},"Renew and reconnect credentials","\u002Fadmin\u002Fconnections\u002Frenewal","09.admin\u002F05.connections\u002F01.renewal",{"title":1669,"path":1670,"stem":1671,"icon":782},"Restrict connection destinations","\u002Fadmin\u002Fconnections\u002Fdestinations","09.admin\u002F05.connections\u002F02.destinations",{"title":1673,"path":1674,"stem":1675,"icon":782},"Diagnose connection failures","\u002Fadmin\u002Fconnections\u002Ftroubleshooting","09.admin\u002F05.connections\u002F03.troubleshooting",{"title":1677,"path":1678,"stem":1679,"icon":782},"Understand connection security","\u002Fadmin\u002Fconnections\u002Fsecurity","09.admin\u002F05.connections\u002F04.security",{"title":1681,"path":1682,"stem":1683,"icon":1684},"Tenants","\u002Fadmin\u002Ftenants","09.admin\u002F06.tenants","i-ph-buildings",{"title":1686,"path":1687,"stem":1688,"children":1689,"icon":1691},"Export and verify a tenant","\u002Fadmin\u002Ftenant-export","09.admin\u002F07.tenant-export\u002F00.index",[1690,1692],{"title":1686,"path":1687,"stem":1688,"icon":1691},"i-ph-export",{"title":1693,"path":1694,"stem":1695,"icon":1691},"Tenant export format","\u002Fadmin\u002Ftenant-export\u002Fformat","09.admin\u002F07.tenant-export\u002F01.format",{"title":1697,"path":1698,"stem":1699,"icon":1700},"Notifications","\u002Fadmin\u002Fnotifications","09.admin\u002F08.notifications","i-ph-bell-ringing",{"title":1702,"path":1703,"stem":1704,"children":1705,"icon":71},"Reference","\u002Freference","10.reference\u002F00.index",[1706,1707,1726,1760,1794,1798,1803,1807,1812,1817,1822,1826],{"title":1702,"path":1703,"stem":1704},{"title":1708,"path":1709,"stem":1710,"children":1711,"icon":1725},"CLI","\u002Freference\u002Fcli","10.reference\u002F01.cli\u002F00.index",[1712,1713,1719],{"title":1708,"path":1709,"stem":1710},{"title":1714,"path":1715,"stem":1716,"children":1717},"oz0","\u002Freference\u002Fcli\u002Foz0","10.reference\u002F01.cli\u002F01.oz0\u002F00.index",[1718],{"title":1714,"path":1715,"stem":1716},{"title":1720,"path":1721,"stem":1722,"children":1723},"oz0-node","\u002Freference\u002Fcli\u002Foz0-node","10.reference\u002F01.cli\u002F02.oz0-node\u002F00.index",[1724],{"title":1720,"path":1721,"stem":1722},"i-ph-terminal-window",{"title":1727,"path":1728,"stem":1729,"children":1730,"icon":725},"oz0-plugin.yaml","\u002Freference\u002Fplugin-manifest","10.reference\u002F02.plugin-manifest\u002F00.index",[1731,1732,1736,1740,1744,1748,1752,1756],{"title":1727,"path":1728,"stem":1729,"icon":725},{"title":1733,"path":1734,"stem":1735},"Dependencies and cross-plugin access","\u002Freference\u002Fplugin-manifest\u002Fdependencies","10.reference\u002F02.plugin-manifest\u002F01.dependencies",{"title":1737,"path":1738,"stem":1739},"Tool declarations","\u002Freference\u002Fplugin-manifest\u002Ftools","10.reference\u002F02.plugin-manifest\u002F02.tools",{"title":1741,"path":1742,"stem":1743},"Harnesses, events and channels","\u002Freference\u002Fplugin-manifest\u002Fruntimes","10.reference\u002F02.plugin-manifest\u002F03.runtimes",{"title":1745,"path":1746,"stem":1747},"Connections and hooks","\u002Freference\u002Fplugin-manifest\u002Fconnections","10.reference\u002F02.plugin-manifest\u002F04.connections",{"title":1749,"path":1750,"stem":1751},"Plugin sets and policies","\u002Freference\u002Fplugin-manifest\u002Fsets-policy","10.reference\u002F02.plugin-manifest\u002F05.sets-policy",{"title":1753,"path":1754,"stem":1755},"Data, evidence and mail","\u002Freference\u002Fplugin-manifest\u002Fdata","10.reference\u002F02.plugin-manifest\u002F06.data",{"title":1757,"path":1758,"stem":1759},"Generated OpenAPI manifests","\u002Freference\u002Fplugin-manifest\u002Fopenapi","10.reference\u002F02.plugin-manifest\u002F07.openapi",{"title":1761,"path":1762,"stem":1763,"children":1764,"icon":666},"Agent definition","\u002Freference\u002Fagent-definition","10.reference\u002F03.agent-definition\u002F00.index",[1765,1766,1770,1774,1778,1782,1786,1790],{"title":1761,"path":1762,"stem":1763,"icon":666},{"title":1767,"path":1768,"stem":1769},"Identity, instructions and tools","\u002Freference\u002Fagent-definition\u002Fidentity","10.reference\u002F03.agent-definition\u002F01.identity",{"title":1771,"path":1772,"stem":1773},"Models and placement","\u002Freference\u002Fagent-definition\u002Fmodels","10.reference\u002F03.agent-definition\u002F02.models",{"title":1775,"path":1776,"stem":1777},"Limits and spend","\u002Freference\u002Fagent-definition\u002Flimits","10.reference\u002F03.agent-definition\u002F03.limits",{"title":1779,"path":1780,"stem":1781},"Judges and candidate selection","\u002Freference\u002Fagent-definition\u002Fquality","10.reference\u002F03.agent-definition\u002F04.quality",{"title":1783,"path":1784,"stem":1785},"Delegation and human decisions","\u002Freference\u002Fagent-definition\u002Fcoordination","10.reference\u002F03.agent-definition\u002F05.coordination",{"title":1787,"path":1788,"stem":1789},"History and recovery","\u002Freference\u002Fagent-definition\u002Fhistory","10.reference\u002F03.agent-definition\u002F06.history",{"title":1791,"path":1792,"stem":1793},"Sandbox, data and retention","\u002Freference\u002Fagent-definition\u002Fsecurity","10.reference\u002F03.agent-definition\u002F07.security",{"title":1795,"path":1796,"stem":1797,"icon":517},"Ports","\u002Freference\u002Fports","10.reference\u002F04.ports",{"title":1799,"path":1800,"stem":1801,"icon":1802},"Environment variables","\u002Freference\u002Fenvironment","10.reference\u002F05.environment","i-ph-brackets-curly",{"title":1804,"path":1805,"stem":1806,"icon":373},"Files and directories","\u002Freference\u002Ffiles","10.reference\u002F06.files",{"title":1808,"path":1809,"stem":1810,"icon":1811},"Lists and pages","\u002Freference\u002Flist-pages","10.reference\u002F07.list-pages","i-ph-list-numbers",{"title":1813,"path":1814,"stem":1815,"icon":1816},"Spend refusals","\u002Freference\u002Fspend-refusals","10.reference\u002F08.spend-refusals","i-ph-hand-coins",{"title":1818,"path":1819,"stem":1820,"icon":1821},"Admin API","\u002Freference\u002Fadmin-api","10.reference\u002F09.admin-api","i-ph-repeat",{"title":1823,"path":1824,"stem":1825},"Compatibility","\u002Freference\u002Fcompatibility","10.reference\u002F10.compatibility",{"title":1827,"path":1828,"stem":1829},"Known issues","\u002Freference\u002Fknown-issues","10.reference\u002F11.known-issues",{"title":1831,"path":1832,"stem":1833,"children":1834,"icon":71},"About","\u002Fabout","11.about\u002F00.index",[1835,1836,1840,1845],{"title":1831,"path":1832,"stem":1833},{"title":1837,"path":1838,"stem":1839,"icon":967},"Licensing","\u002Fabout\u002Flicensing","11.about\u002F01.licensing",{"title":1841,"path":1842,"stem":1843,"icon":1844},"About these docs","\u002Fabout\u002Fcontributing-docs","11.about\u002F02.contributing-docs","i-ph-pencil-simple",{"title":1846,"path":1847,"stem":1848,"icon":42},"A local environment","\u002Fabout\u002Flocal-environment","11.about\u002F03.local-environment",{"id":1850,"title":1090,"body":1851,"description":3906,"extension":3907,"links":3908,"meta":3909,"navigation":3912,"path":1091,"seo":3913,"stem":1092,"__hash__":3914},"docs\u002F06.govern\u002F03.reviewed-changes\u002F00.index.md",{"type":1852,"value":1853,"toc":3895},"minimark",[1854,1858,1861,1864,1940,1947,1952,1955,2060,2075,2085,2088,2091,2106,2113,2116,2496,2507,2517,2523,2542,2569,2574,2581,2617,2649,2661,2664,2670,2687,2706,2710,2733,3319,3323,3327,3330,3377,3380,3383,3388,3398,3669,3672,3675,3685,3702,3706,3709,3712,3719,3722,3725,3728,3731,3734,3737,3741,3751,3755,3773,3891],[1855,1856,1857],"p",{},"For: tenant admins and governance reviewers.",[1855,1859,1860],{},"Review the proposed change, its reason and what access it widens before approving it. Governance changes, plugin configurations and code changesets have different reviewers and checks; follow the page for the kind of change in front of you.",[1855,1862,1863],{},"These kinds of change go past a person before they take effect:",[1865,1866,1867,1876,1885,1898,1910,1922,1933],"ul",{},[1868,1869,1870,1871,1875],"li",{},"A widening of what the tenant's sandboxes may reach. A new entry in the tenant's egress list, or a plugin whose egress the tenant does not permit yet, waits as a ",[1872,1873,1874],"strong",{},"change request"," until a tenant admin approves the delta they saw.",[1868,1877,1878,1879,1884],{},"A loosening of a governance setting, with four eyes on. A shorter retention, a lifted legal hold, a released kill switch, the AI label off and the rest ",[1880,1881,1883],"a",{"href":1882},"\u002Fgovern\u002Freviewed-changes#four-eyes-for-governance-changes","below"," wait for another admin.",[1868,1886,1887,1888,1892,1893,1897],{},"A credential binding, under ",[1889,1890,1891],"code",{},"second_admin",". ",[1880,1894,1896],{"href":1895},"\u002Fgovern\u002Freviewed-changes\u002Fplugin-configurations#credential-bindings","Below",".",[1868,1899,1900,1901,1904,1905,1909],{},"A plugin update from new hands. An update whose version comes from another publisher, repository owner or custody epoch, or that follows a moved listing, waits as a change request of kind ",[1889,1902,1903],{},"plugin_custody"," that shows who the plugin came from and who it would come from (",[1880,1906,1908],{"href":1907},"\u002Fbuild\u002Fplugins\u002Finstall\u002Fupdate#updates-from-new-hands","updates from new hands",").",[1868,1911,1912,1913,1916,1917,1921],{},"A command rule from an approval card. An allow of a command written from its approval card, where four eyes is on, and either rule proposed by someone who decides approvals but may not change the tool policy, wait as a change request of kind ",[1889,1914,1915],{},"command_rule"," until a tenant admin approves it (",[1880,1918,1920],{"href":1919},"\u002Fgovern\u002Fcommand-rules\u002Fallow-from-card#allowlist-a-command-from-its-card","allowlist a command from its card","). Each proposal waits on its own, by its rule's ID; the approval applies it to the policy as it is then, as the approver, keeping who proposed it and why.",[1868,1923,1924,1925,1928,1929,1932],{},"A file-writing agent's changes. An agent that declares ",[1889,1926,1927],{},"changes:"," works on a copy and ends with a ",[1872,1930,1931],{},"changeset",": the diff of its work directory, which a person, or the agent's own policy, approves before the function the agent names applies it, for example as a draft pull request.",[1868,1934,1935,1936,1939],{},"An agent's change to a plugin's tests or rules. A changeset, a skill proposal or a push of changes that touches a plugin's evals, its agents' outcome checks, its policy files, CODEOWNERS or CI workflows needs a second approval by another person with the governance permission, ",[1880,1937,1883],{"href":1938},"\u002Fgovern\u002Freviewed-changes\u002Fprotected-paths#protected-paths",": no agent, key or policy gives it.",[1855,1941,1942,1943,1946],{},"Both are in the audit trail, both are bound to exactly what was shown, and both are on the ",[1872,1944,1945],{},"Approvals"," page.",[1948,1949,1951],"h2",{"id":1950},"change-requests","Change requests",[1855,1953,1954],{},"The platform compares the list as it would be with the list as it is, entry by entry. The comparison is exact: it either says what the new list allows that the old one refused, or says that it cannot decide, which counts as a widening. It never guesses. It cannot decide when only DNS could (a deny entry for an address), or when the lists are too large to compare within its bounds; a plugin or an agent may name at most 200 egress entries, as a tenant's own list may. What it finds, per entry:",[1956,1957,1958,1971],"table",{},[1959,1960,1961],"thead",{},[1962,1963,1964,1968],"tr",{},[1965,1966,1967],"th",{},"Finding",[1965,1969,1970],{},"What it means",[1972,1973,1974,1985,2003,2016,2026,2040,2050],"tbody",{},[1962,1975,1976,1982],{},[1977,1978,1979],"td",{},[1889,1980,1981],{},"host",[1977,1983,1984],{},"A host, or a port of a host, the list did not allow",[1962,1986,1987,1992],{},[1977,1988,1989],{},[1889,1990,1991],{},"wildcard",[1977,1993,1994,1995,1998,1999,2002],{},"A new wildcard, or one that matches more names than before (",[1889,1996,1997],{},"*.example.com"," after ",[1889,2000,2001],{},"*.api.example.com",")",[1962,2004,2005,2010],{},[1977,2006,2007],{},[1889,2008,2009],{},"internal",[1977,2011,2012,2013],{},"An address of the node, its network or a cloud metadata service, such as ",[1889,2014,2015],{},"169.254.169.254",[1962,2017,2018,2023],{},[1977,2019,2020],{},[1889,2021,2022],{},"ip_literal",[1977,2024,2025],{},"An IP address, reached without a name the proxy can check",[1962,2027,2028,2033],{},[1977,2029,2030],{},[1889,2031,2032],{},"raw_tcp",[1977,2034,2035,2036,2039],{},"Raw TCP (an entry ending in ",[1889,2037,2038],{},"\u002Ftcp",") where only TLS was allowed",[1962,2041,2042,2047],{},[1977,2043,2044],{},[1889,2045,2046],{},"deny_removed",[1977,2048,2049],{},"A deny entry is gone, and something it refused is allowed again",[1962,2051,2052,2057],{},[1977,2053,2054],{},[1889,2055,2056],{},"credentialed_host",[1977,2058,2059],{},"The entry reaches a host with a credential bound to it",[1855,2061,2062,2063,2066,2067,2070,2071,2074],{},"Hosts that serve files anyone can publish. When an entry that widens reaches a content host (a code host's raw files, archives or gists such as ",[1889,2064,2065],{},"raw.githubusercontent.com",", a package registry such as ",[1889,2068,2069],{},"registry.npmjs.org"," or ",[1889,2072,2073],{},"pypi.org",", a container registry, a model hub, an object store, a paste site, a tunnel or a file share), its finding says so, with the reason: whatever anyone publishes there, a session that may reach the host may download and run.",[1855,2076,2077,2078,2081,2082,1909],{},"A pattern that overlaps one counts too (",[1889,2079,2080],{},"*.githubusercontent.com",", ",[1889,2083,2084],{},"*.amazonaws.com",[1855,2086,2087],{},"The note is a reason to look, not a verdict. It is never a finding of its own: a content host the tenant permits already is no widening, nothing is refused for being one, who must approve does not change, and approving the change applies it as any other.",[1855,2089,2090],{},"A package registry or a plugin's own download host is often exactly what a tenant needs.",[1855,2092,2093,2094,2097,2098,2101,2102,1909],{},"The same note shows on a plugin configuration's egress line, in ",[1889,2095,2096],{},"oz0 egress learn",", on the install screen and, before you save, under ",[1872,2099,2100],{},"Govern › Policy › Egress","; plugin lint warns about a plugin's own (",[1880,2103,2105],{"href":2104},"\u002Fbuild\u002Fplugins\u002Fstructure\u002Flint-rules#oz-s022","OZ-S022",[1855,2107,2108,2109,2112],{},"The tool policy's lint (",[1889,2110,2111],{},"oz0 policy lint",") checks tool rules and never sees an egress list, so it does not say it.",[1855,2114,2115],{},"A change with no finding (a narrowing, or something the tenant permits already) applies at once. One with findings waits:",[2117,2118,2124],"pre",{"className":2119,"code":2120,"filename":2121,"language":2122,"meta":2123,"style":2123},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$ oz0 tenant egress acme api.github.com pypi.org\nChange request cr-3f2a91c0-7b1d: egress_tenant of acme, pending\n  requested by user:ann just now\n  + pypi.org\nWhat it widens:\n  host  pypi.org  pypi.org:80  a host or port the list did not allow; content host pypi.org: this host serves files anyone can publish: allowing it lets an agent download and run them\nA content-host note is a reason to look, not a verdict: nothing is refused for it, and approving the change still applies it.\nDelta sha256:9c1f... (review-widening confirm)\nApprove it with: oz0 change approve cr-3f2a91c0-7b1d --tenant acme --delta sha256:9c1f...\nNothing changed yet: the change waits for a tenant admin's approval.\n\n$ oz0 change list --tenant acme\n$ oz0 change show cr-3f2a91c0-7b1d --tenant acme\n$ oz0 change approve cr-3f2a91c0-7b1d --tenant acme       # shows it, then approves that delta\n$ oz0 change reject cr-3f2a91c0-7b1d --tenant acme --note \"use the mirror\"\n","Terminal","bash","",[1889,2125,2126,2154,2178,2196,2204,2216,2313,2380,2399,2431,2465,2472,2478,2484,2490],{"__ignoreMap":2123},[2127,2128,2131,2135,2139,2142,2145,2148,2151],"span",{"class":2129,"line":2130},"line",1,[2127,2132,2134],{"class":2133},"sBMFI","$",[2127,2136,2138],{"class":2137},"sfazB"," oz0",[2127,2140,2141],{"class":2137}," tenant",[2127,2143,2144],{"class":2137}," egress",[2127,2146,2147],{"class":2137}," acme",[2127,2149,2150],{"class":2137}," api.github.com",[2127,2152,2153],{"class":2137}," pypi.org\n",[2127,2155,2157,2160,2163,2166,2169,2172,2175],{"class":2129,"line":2156},2,[2127,2158,2159],{"class":2133},"Change",[2127,2161,2162],{"class":2137}," request",[2127,2164,2165],{"class":2137}," cr-3f2a91c0-7b1d:",[2127,2167,2168],{"class":2137}," egress_tenant",[2127,2170,2171],{"class":2137}," of",[2127,2173,2174],{"class":2137}," acme,",[2127,2176,2177],{"class":2137}," pending\n",[2127,2179,2181,2184,2187,2190,2193],{"class":2129,"line":2180},3,[2127,2182,2183],{"class":2133},"  requested",[2127,2185,2186],{"class":2137}," by",[2127,2188,2189],{"class":2137}," user:ann",[2127,2191,2192],{"class":2137}," just",[2127,2194,2195],{"class":2137}," now\n",[2127,2197,2199,2202],{"class":2129,"line":2198},4,[2127,2200,2201],{"class":2133},"  +",[2127,2203,2153],{"class":2137},[2127,2205,2207,2210,2213],{"class":2129,"line":2206},5,[2127,2208,2209],{"class":2133},"What",[2127,2211,2212],{"class":2137}," it",[2127,2214,2215],{"class":2137}," widens:\n",[2127,2217,2219,2222,2225,2228,2231,2234,2237,2240,2243,2246,2249,2252,2255,2259,2262,2264,2267,2270,2272,2275,2278,2281,2284,2287,2290,2292,2295,2298,2301,2304,2307,2310],{"class":2129,"line":2218},6,[2127,2220,2221],{"class":2133},"  host",[2127,2223,2224],{"class":2137},"  pypi.org",[2127,2226,2227],{"class":2137},"  pypi.org:80",[2127,2229,2230],{"class":2137},"  a",[2127,2232,2233],{"class":2137}," host",[2127,2235,2236],{"class":2137}," or",[2127,2238,2239],{"class":2137}," port",[2127,2241,2242],{"class":2137}," the",[2127,2244,2245],{"class":2137}," list",[2127,2247,2248],{"class":2137}," did",[2127,2250,2251],{"class":2137}," not",[2127,2253,2254],{"class":2137}," allow",[2127,2256,2258],{"class":2257},"sMK4o",";",[2127,2260,2261],{"class":2133}," content",[2127,2263,2233],{"class":2137},[2127,2265,2266],{"class":2137}," pypi.org:",[2127,2268,2269],{"class":2137}," this",[2127,2271,2233],{"class":2137},[2127,2273,2274],{"class":2137}," serves",[2127,2276,2277],{"class":2137}," files",[2127,2279,2280],{"class":2137}," anyone",[2127,2282,2283],{"class":2137}," can",[2127,2285,2286],{"class":2137}," publish:",[2127,2288,2289],{"class":2137}," allowing",[2127,2291,2212],{"class":2137},[2127,2293,2294],{"class":2137}," lets",[2127,2296,2297],{"class":2137}," an",[2127,2299,2300],{"class":2137}," agent",[2127,2302,2303],{"class":2137}," download",[2127,2305,2306],{"class":2137}," and",[2127,2308,2309],{"class":2137}," run",[2127,2311,2312],{"class":2137}," them\n",[2127,2314,2316,2319,2322,2325,2328,2331,2334,2337,2340,2342,2344,2347,2350,2352,2355,2358,2361,2363,2366,2368,2371,2374,2377],{"class":2129,"line":2315},7,[2127,2317,2318],{"class":2133},"A",[2127,2320,2321],{"class":2137}," content-host",[2127,2323,2324],{"class":2137}," note",[2127,2326,2327],{"class":2137}," is",[2127,2329,2330],{"class":2137}," a",[2127,2332,2333],{"class":2137}," reason",[2127,2335,2336],{"class":2137}," to",[2127,2338,2339],{"class":2137}," look,",[2127,2341,2251],{"class":2137},[2127,2343,2330],{"class":2137},[2127,2345,2346],{"class":2137}," verdict:",[2127,2348,2349],{"class":2137}," nothing",[2127,2351,2327],{"class":2137},[2127,2353,2354],{"class":2137}," refused",[2127,2356,2357],{"class":2137}," for",[2127,2359,2360],{"class":2137}," it,",[2127,2362,2306],{"class":2137},[2127,2364,2365],{"class":2137}," approving",[2127,2367,2242],{"class":2137},[2127,2369,2370],{"class":2137}," change",[2127,2372,2373],{"class":2137}," still",[2127,2375,2376],{"class":2137}," applies",[2127,2378,2379],{"class":2137}," it.\n",[2127,2381,2383,2386,2389,2393,2396],{"class":2129,"line":2382},8,[2127,2384,2385],{"class":2133},"Delta",[2127,2387,2388],{"class":2137}," sha256:9c1f...",[2127,2390,2392],{"class":2391},"sTEyZ"," (review-widening ",[2127,2394,2395],{"class":2137},"confirm",[2127,2397,2398],{"class":2391},")\n",[2127,2400,2402,2405,2407,2410,2412,2414,2417,2420,2423,2425,2428],{"class":2129,"line":2401},9,[2127,2403,2404],{"class":2133},"Approve",[2127,2406,2212],{"class":2137},[2127,2408,2409],{"class":2137}," with:",[2127,2411,2138],{"class":2137},[2127,2413,2370],{"class":2137},[2127,2415,2416],{"class":2137}," approve",[2127,2418,2419],{"class":2137}," cr-3f2a91c0-7b1d",[2127,2421,2422],{"class":2137}," --tenant",[2127,2424,2147],{"class":2137},[2127,2426,2427],{"class":2137}," --delta",[2127,2429,2430],{"class":2137}," sha256:9c1f...\n",[2127,2432,2434,2437,2440,2443,2445,2447,2450,2452,2454,2456,2459,2462],{"class":2129,"line":2433},10,[2127,2435,2436],{"class":2133},"Nothing",[2127,2438,2439],{"class":2137}," changed",[2127,2441,2442],{"class":2137}," yet:",[2127,2444,2242],{"class":2137},[2127,2446,2370],{"class":2137},[2127,2448,2449],{"class":2137}," waits",[2127,2451,2357],{"class":2137},[2127,2453,2330],{"class":2137},[2127,2455,2141],{"class":2137},[2127,2457,2458],{"class":2137}," admin",[2127,2460,2461],{"class":2257},"'",[2127,2463,2464],{"class":2137},"s approval.\n",[2127,2466,2468],{"class":2129,"line":2467},11,[2127,2469,2471],{"emptyLinePlaceholder":2470},true,"\n",[2127,2473,2475],{"class":2129,"line":2474},12,[2127,2476,2477],{"class":2137},"$ oz0 change list --tenant acme\n",[2127,2479,2481],{"class":2129,"line":2480},13,[2127,2482,2483],{"class":2137},"$ oz0 change show cr-3f2a91c0-7b1d --tenant acme\n",[2127,2485,2487],{"class":2129,"line":2486},14,[2127,2488,2489],{"class":2137},"$ oz0 change approve cr-3f2a91c0-7b1d --tenant acme       # shows it, then approves that delta\n",[2127,2491,2493],{"class":2129,"line":2492},15,[2127,2494,2495],{"class":2137},"$ oz0 change reject cr-3f2a91c0-7b1d --tenant acme --note \"use the mirror\"\n",[1855,2497,2498,2499,2502,2503,2506],{},"An approval names the delta's digest (",[1889,2500,2501],{},"--delta",", which ",[1889,2504,2505],{},"change approve"," fills in from what it just showed): one whose delta is another is refused, so a yes counts only for what was shown. A request whose list changed meanwhile (another change applied first) fails when it is approved instead of overwriting the newer list; ask again. A new request for the same list or plugin supersedes the one that waited.",[1855,2508,2509,2512,2513,2516],{},[1872,2510,2511],{},"A plugin install or update"," whose plugin or agents list hosts the tenant does not permit yet waits the same way: ",[1889,2514,2515],{},"plugin install"," says so and installs nothing, and the approval installs it, with the request as it was made. What the tenant permits is its own list and every installed plugin's and agent's egress, so an update with the same egress, or a plugin that asks for a host another plugin has, installs at once.",[1855,2518,2519,2522],{},[1889,2520,2521],{},"oz0 egress learn \u003Cjob> --apply"," asks for the tenant's list with the entries a job's denials suggest (never an internal address), as a change request.",[1855,2524,2525,2526,2529,2530,2532,2533,2535,2536,2538,2539,2541],{},"A ",[1880,2527,2528],{"href":1652},"credential binding"," widens no egress; it applies at once in a ",[1889,2531,2395],{}," tenant and waits for another admin under ",[1889,2534,1891],{}," (",[1880,2537,1883],{"href":1895},"); a widening that would reach a host a credential is bound to shows it as a ",[1889,2540,2056],{}," finding.",[1855,2543,2544,2547,2548,2551,2552,2555,2556,2547,2559,2551,2561,2564,2565,2568],{},[1889,2545,2546],{},"--approve"," on ",[1889,2549,2550],{},"tenant egress"," and ",[1889,2553,2554],{},"egress learn --apply",", and ",[1889,2557,2558],{},"--approve-egress",[1889,2560,2515],{},[1889,2562,2563],{},"plugin update",", approve the request at once after printing its delta, when you may. In ",[1889,2566,2567],{},"oz0 dev",", the dev tenant approves the working copy's egress itself and says so.",[2570,2571,2573],"h3",{"id":2572},"who-approves","Who approves",[1855,2575,2576,2577,2580],{},"A tenant admin, never an API key. The tenant's ",[1889,2578,2579],{},"review-widening"," setting says whether the admin who asked may:",[2117,2582,2584],{"className":2119,"code":2583,"filename":2121,"language":2122,"meta":2123,"style":2123},"oz0 tenant review-widening acme              # show it\noz0 tenant review-widening acme second_admin # another admin than the requester approves\n",[1889,2585,2586,2601],{"__ignoreMap":2123},[2127,2587,2588,2590,2592,2595,2597],{"class":2129,"line":2130},[2127,2589,1714],{"class":2133},[2127,2591,2141],{"class":2137},[2127,2593,2594],{"class":2137}," review-widening",[2127,2596,2147],{"class":2137},[2127,2598,2600],{"class":2599},"sHwdD","              # show it\n",[2127,2602,2603,2605,2607,2609,2611,2614],{"class":2129,"line":2156},[2127,2604,1714],{"class":2133},[2127,2606,2141],{"class":2137},[2127,2608,2594],{"class":2137},[2127,2610,2147],{"class":2137},[2127,2612,2613],{"class":2137}," second_admin",[2127,2615,2616],{"class":2599}," # another admin than the requester approves\n",[1956,2618,2619,2628],{},[1959,2620,2621],{},[1962,2622,2623,2626],{},[1965,2624,2625],{},"Setting",[1965,2627,2573],{},[1972,2629,2630,2640],{},[1962,2631,2632,2637],{},[1977,2633,2634,2636],{},[1889,2635,2395],{}," (the default)",[1977,2638,2639],{},"Any admin of the tenant, the requester too, after seeing the delta",[1962,2641,2642,2646],{},[1977,2643,2644],{},[1889,2645,1891],{},[1977,2647,2648],{},"An admin other than the requester",[1855,2650,2651,2652,2654,2655,2657,2658,2660],{},"Regulated tenants should use ",[1889,2653,1891],{},". Turning it on takes an admin; relaxing it back to ",[1889,2656,2395],{}," takes an owner, so one admin cannot turn the second pair of eyes off and approve alone. With ",[1889,2659,1891],{},", a tenant with a single admin cannot widen until a second admin (or a cluster admin) approves.",[1855,2662,2663],{},"A plugin install's request names the commit (or the bundle's or image's digest) its source resolved to, and that is part of the delta's digest. If the source moved before the approval (a branch got a new commit) or the egress changed, the approval fails and installs nothing; the admin who asked installs again, which files a new request in their own name.",[1855,2665,2666,2667,2669],{},"Applying an approval never files a request in the approver's name, so under ",[1889,2668,1891],{}," the person who asked can never approve what only they have seen. A plugin the install brings in that widens egress of its own waits for its own request, filed in the requester's name.",[1855,2671,2672,2673,2676,2677,2681,2682,2070,2684,1897],{},"In the console, ",[1872,2674,2675],{},"Approvals → Changes"," lists the requests for admins, those asked for in the ",[1880,2678,2680],{"href":2679},"\u002Fgetting-started\u002Fweb-ui\u002Fnavigation#periods-filters-and-pages","period"," you pick (the last 30 days unless you pick another) and filtered by state (waiting, applied, rejected or failed; every state when none is chosen), with the entries added and removed, each finding and what to weigh, and ",[1872,2683,2404],{},[1872,2685,2686],{},"Reject",[1855,2688,2689,2690,2081,2693,2081,2696,2551,2699,2702,2703,1897],{},"The audit trail has ",[1889,2691,2692],{},"egress.change_requested",[1889,2694,2695],{},"egress.change_approved",[1889,2697,2698],{},"egress.change_rejected",[1889,2700,2701],{},"egress.change_applied",", each with the lists before and after, and ",[1889,2704,2705],{},"tenant.review_widening",[1948,2707,2709],{"id":2708},"four-eyes-for-governance-changes","Four eyes for governance changes",[1855,2711,2712,2713,2716,2717,2720,2721,2724,2725,2728,2729,2732],{},"Every change of a governance setting says why: ",[1889,2714,2715],{},"--reason"," on the command (at most 500 characters; a script may set ",[1889,2718,2719],{},"OZ0_REASON"," once), a ",[1872,2722,2723],{},"Why"," field in the console, and the ",[1889,2726,2727],{},"reason"," field in the admin API. ",[1889,2730,2731],{},"--decision-ref"," (at most 200 characters) names the decision or case it follows, such as a case number under your archive rules. The audit entry keeps both with the setting's name. The governance settings:",[1956,2734,2735,2747],{},[1959,2736,2737],{},[1962,2738,2739,2741,2744],{},[1965,2740,2625],{},[1965,2742,2743],{},"What loosens it",[1965,2745,2746],{},"Where",[1972,2748,2749,2764,2779,2794,2809,2824,2839,2856,2875,2890,2905,2920,2935,2950,2965,2980,3007,3022,3037,3052,3078,3098,3117,3136,3159,3188,3207,3225,3244,3266,3284,3299],{},[1962,2750,2751,2756,2759],{},[1977,2752,2753],{},[1889,2754,2755],{},"retention",[1977,2757,2758],{},"a shorter retention, or one where everything was kept",[1977,2760,2761],{},[1889,2762,2763],{},"oz0 retention set",[1962,2765,2766,2771,2774],{},[1977,2767,2768],{},[1889,2769,2770],{},"legal_hold",[1977,2772,2773],{},"lifting the hold",[1977,2775,2776],{},[1889,2777,2778],{},"oz0 retention release",[1962,2780,2781,2786,2789],{},[1977,2782,2783],{},[1889,2784,2785],{},"kill_switch",[1977,2787,2788],{},"releasing a switch (a cancel switch never goes back to park)",[1977,2790,2791],{},[1889,2792,2793],{},"oz0 kill release",[1962,2795,2796,2801,2804],{},[1977,2797,2798],{},[1889,2799,2800],{},"risk_class",[1977,2802,2803],{},"a lower risk class in the inventory",[1977,2805,2806],{},[1889,2807,2808],{},"oz0 inventory set --risk",[1962,2810,2811,2816,2819],{},[1977,2812,2813],{},[1889,2814,2815],{},"data_rules",[1977,2817,2818],{},"a region added, every region allowed, providers that keep data allowed; a rule by level removed or widened",[1977,2820,2821],{},[1889,2822,2823],{},"oz0 model rules",[1962,2825,2826,2831,2834],{},[1977,2827,2828],{},[1889,2829,2830],{},"ai_label",[1977,2832,2833],{},"turning the AI label off",[1977,2835,2836],{},[1889,2837,2838],{},"oz0 tenant ai-label set --off",[1962,2840,2841,2846,2852],{},[1977,2842,2843],{},[1889,2844,2845],{},"tool_policy",[1977,2847,2848],{},[1880,2849,2851],{"href":2850},"#tool-policy-loosenings","Details",[1977,2853,2854],{},[1880,2855,2851],{"href":2850},[1962,2857,2858,2863,2870],{},[1977,2859,2860],{},[1889,2861,2862],{},"review_widening",[1977,2864,2865,2867,2868],{},[1889,2866,1891],{}," back to ",[1889,2869,2395],{},[1977,2871,2872],{},[1889,2873,2874],{},"oz0 tenant review-widening",[1962,2876,2877,2882,2885],{},[1977,2878,2879],{},[1889,2880,2881],{},"egress",[1977,2883,2884],{},"a widening, which its own change request reviews (above)",[1977,2886,2887],{},[1889,2888,2889],{},"oz0 tenant egress",[1962,2891,2892,2897,2900],{},[1977,2893,2894],{},[1889,2895,2896],{},"sandbox_isolation",[1977,2898,2899],{},"a requirement dropped",[1977,2901,2902],{},[1889,2903,2904],{},"oz0 tenant sandbox-isolation",[1962,2906,2907,2912,2915],{},[1977,2908,2909],{},[1889,2910,2911],{},"remote_sandbox",[1977,2913,2914],{},"remote sandboxes allowed",[1977,2916,2917],{},[1889,2918,2919],{},"oz0 tenant remote-sandbox",[1962,2921,2922,2927,2930],{},[1977,2923,2924],{},[1889,2925,2926],{},"works_council",[1977,2928,2929],{},"the mode off, or a lower threshold",[1977,2931,2932],{},[1889,2933,2934],{},"oz0 tenant works-council",[1962,2936,2937,2942,2945],{},[1977,2938,2939],{},[1889,2940,2941],{},"notify_content",[1977,2943,2944],{},"notifications that carry the call's arguments",[1977,2946,2947],{},[1889,2948,2949],{},"oz0 tenant notify-content",[1962,2951,2952,2957,2960],{},[1977,2953,2954],{},[1889,2955,2956],{},"cors_origins",[1977,2958,2959],{},"an origin added",[1977,2961,2962],{},[1889,2963,2964],{},"oz0 tenant cors",[1962,2966,2967,2972,2975],{},[1977,2968,2969],{},[1889,2970,2971],{},"four_eyes",[1977,2973,2974],{},"four eyes off",[1977,2976,2977],{},[1889,2978,2979],{},"oz0 tenant four-eyes",[1962,2981,2982,2987,3002],{},[1977,2983,2984],{},[1889,2985,2986],{},"erasure_policy",[1977,2988,2989,2990,2993,2994,2997,2998,2002],{},"every change but ",[1889,2991,2992],{},"allowed"," to ",[1889,2995,2996],{},"second-person",": one admin erasing alone again, or erasure turned off or on (",[1880,2999,3001],{"href":3000},"\u002Fgovern\u002Fpersonal-data\u002Ferase#the-erasure-policy","the erasure policy",[1977,3003,3004],{},[1889,3005,3006],{},"oz0 tenant erasure-policy",[1962,3008,3009,3014,3017],{},[1977,3010,3011],{},[1889,3012,3013],{},"keep_for",[1977,3015,3016],{},"an agent's keep-for period shortened or cleared",[1977,3018,3019],{},[1889,3020,3021],{},"oz0 retention keep-for",[1962,3023,3024,3029,3032],{},[1977,3025,3026],{},[1889,3027,3028],{},"legal_basis",[1977,3030,3031],{},"an agent's own legal basis changed or removed (setting one tightens)",[1977,3033,3034],{},[1889,3035,3036],{},"oz0 inventory legal-basis",[1962,3038,3039,3044,3047],{},[1977,3040,3041],{},[1889,3042,3043],{},"purpose_bases",[1977,3045,3046],{},"a purpose's legal basis changed or removed, or a new description of a basis a purpose or an agent names (setting one tightens)",[1977,3048,3049],{},[1889,3050,3051],{},"oz0 inventory purposes set",[1962,3053,3054,3059,3073],{},[1977,3055,3056],{},[1889,3057,3058],{},"vulnerable_installs",[1977,3060,3061,3062,3066,3067,1998,3070],{},"refusing fewer installs with ",[1880,3063,3065],{"href":3064},"\u002Fbuild\u002Fplugins\u002Fvulnerabilities#installs","known vulnerabilities",": off, or ",[1889,3068,3069],{},"critical",[1889,3071,3072],{},"high",[1977,3074,3075],{},[1889,3076,3077],{},"oz0 tenant vulnerable-installs",[1962,3079,3080,3085,3093],{},[1977,3081,3082],{},[1889,3083,3084],{},"delegated_tokens_off_cluster",[1977,3086,3087,3088,3092],{},"letting ",[1880,3089,3091],{"href":3090},"\u002Fconcepts\u002Fdelegation-and-identity#workload-or-delegated","delegated identity tokens",", which name the person a job runs for, go to services outside the cluster",[1977,3094,3095],{},[1889,3096,3097],{},"oz0 tenant oidc delegated-off-cluster",[1962,3099,3100,3105,3112],{},[1977,3101,3102],{},[1889,3103,3104],{},"mcp_clients",[1977,3106,3107,3111],{},[1880,3108,3110],{"href":3109},"\u002Fbuild\u002Fapps\u002Fmcp-server\u002Foauth#who-may-connect","MCP clients"," on loopback addresses let in, or a client host, client ID or redirect scheme allowed",[1977,3113,3114],{},[1889,3115,3116],{},"oz0 mcp clients policy",[1962,3118,3119,3124,3131],{},[1977,3120,3121],{},[1889,3122,3123],{},"label_policies",[1977,3125,3126,3127,2002],{},"an agent's clearance raised, widened, removed or newly set by the tenant (it replaces the definition's), a wall removed, a person listed for fewer compartments or removed, a host added to the egress list in force at any level or a list removed (",[1880,3128,3130],{"href":3129},"\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies#label-policies","label policies",[1977,3132,3133],{},[1889,3134,3135],{},"oz0 tenant labels clearance|walls|people|egress",[1962,3137,3138,3143,3154],{},[1977,3139,3140],{},[1889,3141,3142],{},"notify_decide_keys",[1977,3144,3145,3146,3149,3150,2002],{},"a notification rule's webhook that names the API key its receiver decides with (",[1889,3147,3148],{},"--decide-key","): a key named, the key sent other approvals (a changed event or filter), its webhook moved, or such a rule turned on (",[1880,3151,3153],{"href":3152},"\u002Fagents\u002Fapprovals\u002Fconfigure#keys-that-decide","keys that decide",[1977,3155,3156],{},[1889,3157,3158],{},"oz0 notify rule put",[1962,3160,3161,3166,3177],{},[1977,3162,3163],{},[1889,3164,3165],{},"guardrails_classified_local",[1977,3167,3168,3171,3172,3176],{},[1889,3169,3170],{},"GUARDRAILS_CLASSIFIED_LOCAL"," allows a classification marking anew for agents whose data stays on the node (",[1880,3173,3175],{"href":3174},"\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fclassified-text#classified-text","classified text","); taking one back, or deleting the setting, applies at once",[1977,3178,3179,2551,3182,3185,3186],{},[1889,3180,3181],{},"oz0 setting set",[1889,3183,3184],{},"oz0 setting delete"," with ",[1889,3187,2715],{},[1962,3189,3190,3195,3202],{},[1977,3191,3192],{},[1889,3193,3194],{},"orphan_pause",[1977,3196,3197,3201],{},[1880,3198,3200],{"href":3199},"\u002Fspend\u002Fbudgets-and-quotas#teams-that-nobody-answers-for","orphaned teams' routines"," no longer pause, or pause later",[1977,3203,3204],{},[1889,3205,3206],{},"oz0 tenant orphan-pause",[1962,3208,3209,3214,3220],{},[1977,3210,3211],{},[1889,3212,3213],{},"memory",[1977,3215,3216,3217,2002],{},"a later default or longest end for plugins' records, a higher cap per scope, or a new compatible pair of purposes (",[1880,3218,3213],{"href":3219},"\u002Fbuild\u002Fplugins\u002Fverified\u002Fmemory#safe-by-default",[1977,3221,3222],{},[1889,3223,3224],{},"oz0 memory settings set",[1962,3226,3227,3232,3239],{},[1977,3228,3229],{},[1889,3230,3231],{},"memory_person",[1977,3233,3234,3235,2002],{},"memory about people turned on for an agent and a purpose, or shared with another agent or scope; in works-council mode it always waits for another admin (",[1880,3236,3238],{"href":3237},"\u002Fgovern\u002Fpersonal-data\u002Fplugin-records#memory-about-people","memory about people",[1977,3240,3241],{},[1889,3242,3243],{},"oz0 memory person",[1962,3245,3246,3251,3258],{},[1977,3247,3248],{},[1889,3249,3250],{},"model_vetting",[1977,3252,3253,3254,2002],{},"a model vetted, a local model or one behind an endpoint of the tenant's own, so its jobs no longer start tainted or need sandbox tier 1; or vetted again for other weights, by name or for another endpoint. An approval applies it to the digest and the endpoint the request named, and fails when the provider record calls another since. Removing a vetting applies at once (",[1880,3255,3257],{"href":3256},"\u002Fspend\u002Fmodels-and-keys\u002Fdata-rules#provenance-and-vetting","provenance and vetting",[1977,3259,3260,2081,3263],{},[1889,3261,3262],{},"oz0 model vet",[1889,3264,3265],{},"oz0 model unvet",[1962,3267,3268,3273,3279],{},[1977,3269,3270],{},[1889,3271,3272],{},"mail_domains",[1977,3274,3275,3276,2002],{},"a mail domain added: agents' mail may go to more addresses (",[1880,3277,595],{"href":3278},"\u002Fbuild\u002Fplugins\u002Fverified\u002Femail#the-tenants-mail-domains",[1977,3280,3281],{},[1889,3282,3283],{},"oz0 tenant mail-domains add",[1962,3285,3286,3291,3294],{},[1977,3287,3288],{},[1889,3289,3290],{},"mail_outside",[1977,3292,3293],{},"agents' mail allowed to any domain, not only the tenant's mail domains",[1977,3295,3296],{},[1889,3297,3298],{},"oz0 tenant mail-outside",[1962,3300,3301,3306,3314],{},[1977,3302,3303],{},[1889,3304,3305],{},"sandbox_optout",[1977,3307,3308,3309,3313],{},"one named node allowed to run shell and write harness sessions without the tier-1 sandbox (",[1880,3310,3312],{"href":3311},"\u002Ffleet\u002Fnodes#the-sandbox-opt-out","the sandbox opt-out","); ending it tightens",[1977,3315,3316],{},[1889,3317,3318],{},"oz0 node sandbox-optout",[2570,3320,3322],{"id":3321},"tool-policy-loosenings","Tool policy loosenings",[3324,3325,2743],"h4",{"id":3326},"what-loosens-it",[1855,3328,3329],{},"A tool-policy change loosens the policy when it does any of the following:",[1865,3331,3332,3335,3338,3341,3352,3355,3364,3367,3374],{},[1868,3333,3334],{},"Removes or relaxes a rule, makes it shadow-only, or ends it sooner.",[1868,3336,3337],{},"Changes a match or condition.",[1868,3339,3340],{},"Changes a preset so a rule becomes, or stops being, a floor or the origin-default rule.",[1868,3342,3343,3344,3347,3348,3351],{},"Adds an Allow rule, or an Ask or Allow rule where a class refuses. Rules precede classes, so ",[1889,3345,3346],{},"*=approve"," over ",[1889,3349,3350],{},"destructive: refuse"," loosens.",[1868,3353,3354],{},"Turns off the escalation ladder.",[1868,3356,3357,3358,3361,3362,1909],{},"Newly names an API key, team or person in an approve rule's deciders, including floors and origin or sequence rules (",[1889,3359,3360],{},"decided-by=key:\u003Cid>","; see ",[1880,3363,3153],{"href":3152},[1868,3365,3366],{},"Lengthens the tenant's or a rule's approval deadline, letting approvals wait longer before denial.",[1868,3368,3369,3370,3373],{},"Removes four eyes (",[1889,3371,3372],{},"not-starter",") from a rule.",[1868,3375,3376],{},"Adds an approve rule that waits longer than the tenant's previous deadline, or puts one before an existing approve rule that waits longer, lets the starter approve or names different deciders. The first matching rule decides, so the new rule takes those calls from it.",[1855,3378,3379],{},"A shorter deadline and added four eyes tighten the policy.",[3324,3381,2746],{"id":3382},"where",[1855,3384,3385],{},[1889,3386,3387],{},"oz0 tenant tool-policy set",[1855,3389,3390,3391,3394,3395,3397],{},"Four eyes is off by default. Turned on, a change that loosens one of these waits as a change request of kind ",[1889,3392,3393],{},"governance"," with the setting's value before and after, what loosens, and the reason; nothing changes until another admin approves it. The admin who proposed it never approves it, whatever ",[1889,3396,2579],{}," says, and an API key never does. A tightening applies at once. While four eyes is on, egress widenings and credential bindings need another admin too.",[2117,3399,3401],{"className":2119,"code":3400,"filename":2121,"language":2122,"meta":2123,"style":2123},"$ oz0 tenant four-eyes acme loosening --reason \"audit finding 2026-07\" --decision-ref \"Dnr 2026\u002F114\"\n$ oz0 retention set 90 --tenant acme --reason \"storage costs\"\nChange request cr-8d0c41aa-2f19: governance of acme, pending\n  requested by user:ann just now\n  setting retention: {\"days\":365} -> {\"days\":90}\n  loosens: retention shortened to 90 days (was 365 days)\n  reason: storage costs\nDelta sha256:41e0... (review-widening second_admin)\nYou may not approve it: a governance change is approved by another admin than user:ann, who proposed it\nNothing changed yet: the change waits for a tenant admin's approval.\n$ oz0 change approve cr-8d0c41aa-2f19 --tenant acme     # as another admin\n",[1889,3402,3403,3442,3471,3489,3501,3539,3566,3577,3590,3638,3664],{"__ignoreMap":2123},[2127,3404,3405,3407,3409,3411,3414,3416,3419,3422,3425,3428,3431,3434,3436,3439],{"class":2129,"line":2130},[2127,3406,2134],{"class":2133},[2127,3408,2138],{"class":2137},[2127,3410,2141],{"class":2137},[2127,3412,3413],{"class":2137}," four-eyes",[2127,3415,2147],{"class":2137},[2127,3417,3418],{"class":2137}," loosening",[2127,3420,3421],{"class":2137}," --reason",[2127,3423,3424],{"class":2257}," \"",[2127,3426,3427],{"class":2137},"audit finding 2026-07",[2127,3429,3430],{"class":2257},"\"",[2127,3432,3433],{"class":2137}," --decision-ref",[2127,3435,3424],{"class":2257},[2127,3437,3438],{"class":2137},"Dnr 2026\u002F114",[2127,3440,3441],{"class":2257},"\"\n",[2127,3443,3444,3446,3448,3451,3454,3458,3460,3462,3464,3466,3469],{"class":2129,"line":2156},[2127,3445,2134],{"class":2133},[2127,3447,2138],{"class":2137},[2127,3449,3450],{"class":2137}," retention",[2127,3452,3453],{"class":2137}," set",[2127,3455,3457],{"class":3456},"sbssI"," 90",[2127,3459,2422],{"class":2137},[2127,3461,2147],{"class":2137},[2127,3463,3421],{"class":2137},[2127,3465,3424],{"class":2257},[2127,3467,3468],{"class":2137},"storage costs",[2127,3470,3441],{"class":2257},[2127,3472,3473,3475,3477,3480,3483,3485,3487],{"class":2129,"line":2180},[2127,3474,2159],{"class":2133},[2127,3476,2162],{"class":2137},[2127,3478,3479],{"class":2137}," cr-8d0c41aa-2f19:",[2127,3481,3482],{"class":2137}," governance",[2127,3484,2171],{"class":2137},[2127,3486,2174],{"class":2137},[2127,3488,2177],{"class":2137},[2127,3490,3491,3493,3495,3497,3499],{"class":2129,"line":2198},[2127,3492,2183],{"class":2133},[2127,3494,2186],{"class":2137},[2127,3496,2189],{"class":2137},[2127,3498,2192],{"class":2137},[2127,3500,2195],{"class":2137},[2127,3502,3503,3506,3509,3512,3514,3517,3519,3522,3525,3528,3530,3532,3534,3536],{"class":2129,"line":2206},[2127,3504,3505],{"class":2133},"  setting",[2127,3507,3508],{"class":2137}," retention:",[2127,3510,3511],{"class":2137}," {",[2127,3513,3430],{"class":2257},[2127,3515,3516],{"class":2137},"days",[2127,3518,3430],{"class":2257},[2127,3520,3521],{"class":2137},":365}",[2127,3523,3524],{"class":2391}," -",[2127,3526,3527],{"class":2257},">",[2127,3529,3511],{"class":2137},[2127,3531,3430],{"class":2257},[2127,3533,3516],{"class":2137},[2127,3535,3430],{"class":2257},[2127,3537,3538],{"class":2137},":90}\n",[2127,3540,3541,3544,3546,3549,3551,3553,3556,3559,3562,3564],{"class":2129,"line":2218},[2127,3542,3543],{"class":2133},"  loosens:",[2127,3545,3450],{"class":2137},[2127,3547,3548],{"class":2137}," shortened",[2127,3550,2336],{"class":2137},[2127,3552,3457],{"class":3456},[2127,3554,3555],{"class":2137}," days",[2127,3557,3558],{"class":2391}," (was ",[2127,3560,3561],{"class":3456},"365",[2127,3563,3555],{"class":2137},[2127,3565,2398],{"class":2391},[2127,3567,3568,3571,3574],{"class":2129,"line":2315},[2127,3569,3570],{"class":2133},"  reason:",[2127,3572,3573],{"class":2137}," storage",[2127,3575,3576],{"class":2137}," costs\n",[2127,3578,3579,3581,3584,3586,3588],{"class":2129,"line":2382},[2127,3580,2385],{"class":2133},[2127,3582,3583],{"class":2137}," sha256:41e0...",[2127,3585,2392],{"class":2391},[2127,3587,1891],{"class":2137},[2127,3589,2398],{"class":2391},[2127,3591,3592,3595,3598,3600,3602,3605,3607,3609,3611,3613,3616,3618,3621,3623,3626,3629,3632,3635],{"class":2129,"line":2401},[2127,3593,3594],{"class":2133},"You",[2127,3596,3597],{"class":2137}," may",[2127,3599,2251],{"class":2137},[2127,3601,2416],{"class":2137},[2127,3603,3604],{"class":2137}," it:",[2127,3606,2330],{"class":2137},[2127,3608,3482],{"class":2137},[2127,3610,2370],{"class":2137},[2127,3612,2327],{"class":2137},[2127,3614,3615],{"class":2137}," approved",[2127,3617,2186],{"class":2137},[2127,3619,3620],{"class":2137}," another",[2127,3622,2458],{"class":2137},[2127,3624,3625],{"class":2137}," than",[2127,3627,3628],{"class":2137}," user:ann,",[2127,3630,3631],{"class":2137}," who",[2127,3633,3634],{"class":2137}," proposed",[2127,3636,3637],{"class":2137}," it\n",[2127,3639,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662],{"class":2129,"line":2433},[2127,3641,2436],{"class":2133},[2127,3643,2439],{"class":2137},[2127,3645,2442],{"class":2137},[2127,3647,2242],{"class":2137},[2127,3649,2370],{"class":2137},[2127,3651,2449],{"class":2137},[2127,3653,2357],{"class":2137},[2127,3655,2330],{"class":2137},[2127,3657,2141],{"class":2137},[2127,3659,2458],{"class":2137},[2127,3661,2461],{"class":2257},[2127,3663,2464],{"class":2137},[2127,3665,3666],{"class":2129,"line":2467},[2127,3667,3668],{"class":2137},"$ oz0 change approve cr-8d0c41aa-2f19 --tenant acme     # as another admin\n",[1855,3670,3671],{},"Turning four eyes on is refused while the tenant has a single admin who could approve (its admins and owners, the cluster's admins and operator certificates), and turning it off is a loosening itself.",[1855,3673,3674],{},"An approved change applies as its approver, after checking that the setting is still what the request saw; if someone changed it meanwhile, the approval fails and the requester asks again.",[1855,3676,3677,3680,3681,3684],{},[1872,3678,3679],{},"Govern › Policy"," has four eyes, under ",[1872,3682,3683],{},"More","; every form that changes a governance setting asks why, and a change that waits says so.",[1855,3686,2689,3687,2081,3690,2081,3693,2551,3696,2555,3699,1897],{},[1889,3688,3689],{},"governance.change_requested",[1889,3691,3692],{},"governance.change_approved",[1889,3694,3695],{},"governance.change_rejected",[1889,3697,3698],{},"governance.change_applied",[1889,3700,3701],{},"tenant.four_eyes",[2570,3703,3705],{"id":3704},"concurrent-governance-changes","Concurrent governance changes",[1855,3707,3708],{},"Changes made at once. A change of a governance setting is classed, and written, against the value it replaces, on whichever management server it runs.",[1855,3710,3711],{},"A tenant's governance settings carry a version that every change moves on in the transaction that writes it, and a change is written only if no other change of the tenant's governance settings landed after it read the value.",[1855,3713,3714,3715,3718],{},"A change that another overtook is refused with nothing written (",[1889,3716,3717],{},"aborted",", \"changed meanwhile\"): read the setting again and make the change again, and it is classed against what is there now, so a change that loosens what another admin just tightened waits for review instead of undoing it.",[1855,3720,3721],{},"Writes of a governance setting from elsewhere (a plugin configuration's apply, a plugin's suggested rules narrowed at install, removal or a node's listing, a tenant's region, a results grant's targets revoked with the grant or the plugin) move the version too, and only when they change something: a node's listing that narrows nothing refuses no change.",[1855,3723,3724],{},"A results target added while the plugin's results grant is revoked is not written.",[1855,3726,3727],{},"These writes and governed changes take the tenant's governance first, so changes made at once on several management servers wait for each other and all finish.",[1855,3729,3730],{},"An approval that another change overtook between its read and its write is tried again, and still applies only while the setting is what the request saw; an approved credential binding applies whatever other governance change landed meanwhile, since its approval decided it.",[1855,3732,3733],{},"Loosenings of one setting requested at the same moment, on one management server or several, are each filed as a request that waits, as they would be one after another.",[1855,3735,3736],{},"Data rules are classed as the gateway reads them: rules that name no region keep a tenant pinned to a region in that region, so naming another region widens them.",[2570,3738,3740],{"id":3739},"a-shadow-rule-turned-on","A shadow rule turned on",[1855,3742,3743,3744,3747,3748,1897],{},"A governance change that turns a shadow rule of the tool policy on shows the rule's newest ",[1880,3745,3746],{"href":1087},"governance replay",", if one ran: its ID and its summary line, for the deciding admin to read before they approve. A change never needs a replay; start one with ",[1889,3749,3750],{},"oz0 replay start --promote \u003Crule ID>",[1948,3752,3754],{"id":3753},"related-tasks-and-reference","Related tasks and reference",[1865,3756,3757,3761,3765,3769],{},[1868,3758,3759],{},[1880,3760,1096],{"href":1097},[1868,3762,3763],{},[1880,3764,1100],{"href":1101},[1868,3766,3767],{},[1880,3768,1104],{"href":1105},[1868,3770,3771],{},[1880,3772,1108],{"href":1109},[3774,3775,3776,3787,3796,3805,3814,3823,3831,3839,3848,3856,3864,3873,3882],"legacy-sections",{},[1855,3777,3778,3782,3783,1897],{},[2127,3779,3781],{"id":3780},"a-change-budget-per-plugin","a change budget per plugin",": ",[1880,3784,3786],{"href":3785},"\u002Fgovern\u002Freviewed-changes\u002Fprotected-paths#a-change-budget-per-plugin","Read the section",[1855,3788,3789,3782,3793,1897],{},[2127,3790,3792],{"id":3791},"a-policy-instead-of-a-person","a policy instead of a person",[1880,3794,3786],{"href":3795},"\u002Fgovern\u002Freviewed-changes\u002Fchangesets#a-policy-instead-of-a-person",[1855,3797,3798,3782,3802,1897],{},[2127,3799,3801],{"id":3800},"an-improvers-changesets","an improvers changesets",[1880,3803,3786],{"href":3804},"\u002Fgovern\u002Freviewed-changes\u002Fchangesets#an-improvers-changesets",[1855,3806,3807,3782,3811,1897],{},[2127,3808,3810],{"id":3809},"assistant-plans","assistant plans",[1880,3812,3786],{"href":3813},"\u002Fgovern\u002Freviewed-changes\u002Fproposals#assistant-plans",[1855,3815,3816,3782,3820,1897],{},[2127,3817,3819],{"id":3818},"change-requests-a-job-files","change requests a job files",[1880,3821,3786],{"href":3822},"\u002Fgovern\u002Freviewed-changes\u002Fproposals#change-requests-a-job-files",[1855,3824,3825,3782,3828,1897],{},[2127,3826,3827],{"id":3827},"changesets",[1880,3829,3786],{"href":3830},"\u002Fgovern\u002Freviewed-changes\u002Fchangesets#changesets",[1855,3832,3833,3782,3837,1897],{},[2127,3834,3836],{"id":3835},"credential-bindings","credential bindings",[1880,3838,3786],{"href":1895},[1855,3840,3841,3782,3845,1897],{},[2127,3842,3844],{"id":3843},"plugin-configurations","plugin configurations",[1880,3846,3786],{"href":3847},"\u002Fgovern\u002Freviewed-changes\u002Fplugin-configurations#plugin-configurations",[1855,3849,3850,3782,3854,1897],{},[2127,3851,3853],{"id":3852},"protected-paths","protected paths",[1880,3855,3786],{"href":1938},[1855,3857,3858,3782,3861,1897],{},[2127,3859,3860],{"id":3860},"rollback",[1880,3862,3786],{"href":3863},"\u002Fgovern\u002Freviewed-changes\u002Fchangesets#rollback",[1855,3865,3866,3782,3870,1897],{},[2127,3867,3869],{"id":3868},"skill-proposals","skill proposals",[1880,3871,3786],{"href":3872},"\u002Fgovern\u002Freviewed-changes\u002Fchangesets#skill-proposals",[1855,3874,3875,3782,3879,1897],{},[2127,3876,3878],{"id":3877},"the-job-never-changes-its-own-check","the job never changes its own check",[1880,3880,3786],{"href":3881},"\u002Fgovern\u002Freviewed-changes\u002Fprotected-paths#the-job-never-changes-its-own-check",[1855,3883,3884,3782,3888,1897],{},[2127,3885,3887],{"id":3886},"where-a-change-came-from","where a change came from",[1880,3889,3786],{"href":3890},"\u002Fgovern\u002Freviewed-changes\u002Fchangesets#where-a-change-came-from",[3892,3893,3894],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":2123,"searchDepth":2156,"depth":2156,"links":3896},[3897,3900,3905],{"id":1950,"depth":2156,"text":1951,"children":3898},[3899],{"id":2572,"depth":2180,"text":2573},{"id":2708,"depth":2156,"text":2709,"children":3901},[3902,3903,3904],{"id":3321,"depth":2180,"text":3322},{"id":3704,"depth":2180,"text":3705},{"id":3739,"depth":2180,"text":3740},{"id":3753,"depth":2156,"text":3754},"Widening what sandboxes may reach waits for a tenant admin, a governance change says why and may wait for a second admin, and an agent's file changes are approved as a diff before they land.","md",null,{"audience":3910,"doc_type":3911},"tenant admins and governance reviewers","how-to",{"icon":532},{"title":1090,"description":3906},"0XZhlIFqwSntDquMjZGS9ZU69uuFX99PZldLQG9BZUw",[3916,3918],{"title":1086,"path":1087,"stem":1088,"description":3917,"icon":230,"children":-1},"Backtest a governance change on last week's work: finished jobs decided again under the change, from their records, with the first decision that changes and what the replay could not read.",{"title":1096,"path":1097,"stem":1098,"description":3919,"children":-1},"Review assistant and job proposals for tenant admins and governance reviewers.",1794442945530]