[{"data":1,"prerenderedAt":3463},["ShallowReactive",2],{"navigation_docs":3,"docs-page:\u002Fgovern\u002Faudit-trail\u002Frecords":1849,"docs-surround:\u002Fgovern\u002Faudit-trail\u002Frecords":3458},[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":1192,"body":1851,"description":3449,"extension":3450,"links":3451,"meta":3452,"navigation":3455,"path":1193,"seo":3456,"stem":1194,"__hash__":3457},"docs\u002F06.govern\u002F11.audit-trail\u002F02.records.md",{"type":1852,"value":1853,"toc":3434},"minimark",[1854,1858,1863,1866,2653,2657,2665,2674,2677,2682,2699,2707,2713,2724,2727,2732,2744,2769,2772,2787,2807,2811,2814,2880,2884,2918,2921,2931,2942,2946,2949,3072,3078,3082,3088,3135,3146,3149,3152,3155,3234,3238,3241,3257,3271,3274,3278,3293,3296,3299,3302,3305,3309,3320,3327,3341,3347,3357,3363,3374,3380,3383,3398,3405,3409,3424,3427,3430],[1855,1856,1857],"p",{},"For: tenant admins and governance reviewers.",[1859,1860,1862],"h2",{"id":1861},"what-a-run-leaves","What a run leaves",[1855,1864,1865],{},"Every job leaves these entries, recorded by the edge as the job runs:",[1867,1868,1869,1882],"table",{},[1870,1871,1872],"thead",{},[1873,1874,1875,1879],"tr",{},[1876,1877,1878],"th",{},"Action",[1876,1880,1881],{},"What it records",[1883,1884,1885,1909,1923,1938,1964,1991,2022,2040,2054,2064,2096,2117,2132,2151,2167,2181,2191,2201,2226,2247,2282,2329,2354,2383,2404,2436,2446,2460,2472,2484,2504,2518,2532,2549,2564,2578,2600,2610,2630],"tbody",{},[1873,1886,1887,1894],{},[1888,1889,1890],"td",{},[1891,1892,1893],"code",{},"run.start",[1888,1895,1896,1897,1900,1901,1904,1905],{},"Who started the job, through what (",[1891,1898,1899],{},"api",", ",[1891,1902,1903],{},"webhook","), its budget, and whether it is about a ",[1906,1907,1908],"a",{"href":1122},"data subject",[1873,1910,1911,1916],{},[1888,1912,1913],{},[1891,1914,1915],{},"run.model_call",[1888,1917,1918,1919,1922],{},"Each call through the gateway: provider, the model and version that answered (",[1891,1920,1921],{},"claude-sonnet-4-5-20250929","), tokens, cost, status, the step",[1873,1924,1925,1930],{},[1888,1926,1927],{},[1891,1928,1929],{},"run.service_call",[1888,1931,1932,1933,1937],{},"What a plugin ",[1906,1934,1936],{"href":1935},"\u002Fbuild\u002Fparts\u002Ftools\u002Fmodel-calls#report-what-your-own-services-cost","reported"," for a service it called",[1873,1939,1940,1945],{},[1888,1941,1942],{},[1891,1943,1944],{},"run.tool_call",[1888,1946,1947,1948,1951,1952,1955,1956,1959,1960],{},"Each tool call: the function (as the call's header named it to the edge), the node, how it went, its activity, run and ",[1891,1949,1950],{},"input_sha256"," (which tie it to its ",[1891,1953,1954],{},"run.tool_intent","), ",[1891,1957,1958],{},"reused_activity"," when its run had scheduled another activity under the same ID, and its error in the entry's ",[1906,1961,1963],{"href":1962},"\u002Fgovern\u002Faudit-trail\u002Frecords#what-a-job-read-or-wrote","private part",[1873,1965,1966,1971],{},[1888,1967,1968],{},[1891,1969,1970],{},"run.hook",[1888,1972,1973,1974,1977,1978,1900,1981,1900,1984,1987,1988],{},"Each ",[1906,1975,1976],{"href":758},"hook"," and its verdict: ",[1891,1979,1980],{},"allow",[1891,1982,1983],{},"deny",[1891,1985,1986],{},"modify"," or ",[1891,1989,1990],{},"escalate",[1873,1992,1993,1998],{},[1888,1994,1995],{},[1891,1996,1997],{},"run.command.decided",[1888,1999,2000,2001,2004,2005,2008,2009,1900,2011,1987,2014,2017,2018,2021],{},"Each harness shell command the ",[1906,2002,2003],{"href":1209},"command rules"," decided: the harness tool (",[1891,2006,2007],{},"claude-agent-sdk.Bash","), the action (",[1891,2010,1980],{},[1891,2012,2013],{},"approve",[1891,2015,2016],{},"refuse","), the rule that decided (a tenant rule's ID, or a default such as ",[1891,2019,2020],{},"cmd.download-run",", with its check), the program and classes of the part that decided, whether the floor decided, the programs the command runs, what shadow rules would have decided, and the defaults' version. Never the command or its arguments",[1873,2023,2024,2029],{},[1888,2025,2026],{},[1891,2027,2028],{},"run.approval.decide",[1888,2030,2031,2032,2035,2036],{},"An ",[1906,2033,2034],{"href":270},"approval"," decided: who, when, and the comment (in the private part); what was decided (its kind, function and action class), how long it waited and how long its card was on screen, for the ",[1906,2037,2039],{"href":2038},"\u002Fagents\u002Fapprovals\u002Fstatistics#approver-statistics","approver statistics",[1873,2041,2042,2047],{},[1888,2043,2044],{},[1891,2045,2046],{},"run.approval",[1888,2048,2049,2050,2053],{},"The approval as the job recorded it, ",[1891,2051,2052],{},"timeout"," included",[1873,2055,2056,2061],{},[1888,2057,2058],{},[1891,2059,2060],{},"run.child_job",[1888,2062,2063],{},"A child job the job started",[1873,2065,2066,2071],{},[1888,2067,2068],{},[1891,2069,2070],{},"run.flow_tool",[1888,2072,2073,2074,2078,2079,2082,2083,1900,2085,2087,2088,2091,2092,2095],{},"A ",[1906,2075,2077],{"href":2076},"\u002Fbuild\u002Fparts\u002Fflows\u002Fflow-tools#flows-as-tools","flow tool's"," call: the tool (",[1891,2080,2081],{},"refunds.issue-refund",") and the child job its flow ran as. That child's own entries (",[1891,2084,1944],{},[1891,2086,2046],{}," and the rest) carry ",[1891,2089,2090],{},"flow_tool"," and ",[1891,2093,2094],{},"parent_job"," in their detail, so each step is audited as its own call and leads back to the job that called the flow",[1873,2097,2098,2103],{},[1888,2099,2100],{},[1891,2101,2102],{},"run.skill_read",[1888,2104,2073,2105,2108,2109,2112,2113,2116],{},[1906,2106,2107],{"href":732},"skill"," an agent read with ",[1891,2110,2111],{},"oz.skill",": the skill as ",[1891,2114,2115],{},"\u003Cplugin>\u002F\u003Cskill>",", the hash of what it read, the file of the skill it read if any, and whether its text was trusted (an imported plugin's or another plugin's is not, and its read tainted the job). Never the text",[1873,2118,2119,2124],{},[1888,2120,2121],{},[1891,2122,2123],{},"skill.hidden_read",[1888,2125,2126,2127,2131],{},"A read of a skill the tenant ",[1906,2128,2130],{"href":2129},"\u002Fbuild\u002Fplugins\u002Fconfigure#skills","hides from the agent",", which the edge let run: its job started before the hide reached its node. The skill, the agent and the job; never the text",[1873,2133,2134,2139],{},[1888,2135,2136],{},[1891,2137,2138],{},"run.file_read",[1888,2140,2141,2142,2146,2147,2150],{},"A job file an ",[1906,2143,2145],{"href":2144},"\u002Fimprove\u002Foutcome-checks\u002Fjudges#a-judge-that-reads-the-jobs-files","outcome check's judge"," read with ",[1891,2148,2149],{},"files: read",": the job, the judge's step (its activity and attempt), the file's SHA-256 and its size, written by the edge before the bytes go out. Never the content",[1873,2152,2153,2158],{},[1888,2154,2155],{},[1891,2156,2157],{},"run.evidence_read",[1888,2159,2160,2161,2166],{},"A read with ",[1906,2162,2163],{"href":1038},[1891,2164,2165],{},"oz.evidence"," of what a granted plugin's jobs came to: the job and agent that read, the reading plugin, the target plugin (and agent, if one was named), the kinds, how many rows of each came back, whether content was in it, and how far back it looked. Every read, never deduplicated, so a change an agent proposes can cite the reads it was based on. Never the content",[1873,2168,2169,2174],{},[1888,2170,2171],{},[1891,2172,2173],{},"run.session.lost",[1888,2175,2073,2176,2180],{},[1906,2177,2179],{"href":2178},"\u002Fbuild\u002Fparts\u002Fharnesses\u002Frecovery#when-a-node-is-lost","harness session"," lost with its node: the node, the session's number, how long it ran, its model calls, tokens and cost, which stays spent",[1873,2182,2183,2188],{},[1888,2184,2185],{},[1891,2186,2187],{},"run.session.restarted",[1888,2189,2190],{},"A fresh session the job started after a lost one: its number, and the lost session and node it follows",[1873,2192,2193,2198],{},[1888,2194,2195],{},[1891,2196,2197],{},"run.output",[1888,2199,2200],{},"The job's end: status, cost, its labels, and the SHA-256 of its answer, so you can prove what it answered without keeping the answer in the log; a failed job's error goes in the private part",[1873,2202,2203,2208],{},[1888,2204,2205],{},[1891,2206,2207],{},"run.refused",[1888,2209,2210,2211,2214,2215,2218,2219,2222,2223,2225],{},"A model call the gateway refused: a spent budget or quota, or a ",[1906,2212,2213],{"href":1117},"kill switch","; or a job a ",[1906,2216,2217],{"href":1535},"quota"," did not let start, at the runtime API, a webhook or a routine's fire. A budget's, a quota's or a tree limit's entry keeps the refusal's numbers in ",[1891,2220,2221],{},"refusal_detail"," (",[1906,2224,1813],{"href":1814},")",[1873,2227,2228,2239],{},[1888,2229,2230,1900,2233,1900,2236],{},[1891,2231,2232],{},"run.a2a.task",[1891,2234,2235],{},"run.a2a.message",[1891,2237,2238],{},"run.a2a.artifact",[1888,2240,2241,2242,2246],{},"The outside agent's tasks, messages and artifacts, recorded before the step returns. See ",[1906,2243,2245],{"href":2244},"#a2a-entry-contents","A2A entry contents",".",[1873,2248,2249,2254],{},[1888,2250,2251],{},[1891,2252,2253],{},"run.sandbox.tier0",[1888,2255,2256,2257,2261,2262,2265,2266,2269,2270,2273,2274,2277,2278,2281],{},"A shell or write harness session of the job ran without a sandbox, on a node allowed to: one a tenant admin ",[1906,2258,2260],{"href":2259},"\u002Ffleet\u002Fnodes#the-sandbox-opt-out","opted out"," of sandbox tier 1, or a dev server's. It names the node and what allowed it (",[1891,2263,2264],{},"allowed_by","): ",[1891,2267,2268],{},"optout"," with that opt-out's who, when, why and decision, or ",[1891,2271,2272],{},"dev_server","; ",[1891,2275,2276],{},"unknown"," when the node no longer held it when the entry was written, and then the node's ",[1891,2279,2280],{},"tenant.sandbox_optout"," entries name it",[1873,2283,2284,2289],{},[1888,2285,2286],{},[1891,2287,2288],{},"egress.denied",[1888,2290,2291,2292,2296,2297,1900,2300,1900,2303,1900,2306,1900,2309,1900,2312,1900,2315,1900,2318,2321,2322,2324,2325,2328],{},"A request a job's sandbox made that the ",[1906,2293,2295],{"href":2294},"\u002Fconcepts\u002Fsecurity\u002Fsandbox-tiers#sandboxes","egress proxy"," refused: host, port, the kind of refusal (",[1891,2298,2299],{},"not_allowed",[1891,2301,2302],{},"deny_entry",[1891,2304,2305],{},"internal",[1891,2307,2308],{},"private",[1891,2310,2311],{},"tls_name",[1891,2313,2314],{},"not_tls",[1891,2316,2317],{},"host_header",[1891,2319,2320],{},"protocol_switch","), and why in the ",[1906,2323,1963],{"href":1962}," (it may quote what the process sent); each target once, at most 20 per job. ",[1891,2326,2327],{},"oz0 egress learn \u003Cjob>"," proposes entries from them",[1873,2330,2331,2336],{},[1888,2332,2333],{},[1891,2334,2335],{},"run.workspace_secret",[1888,2337,2338,2339,2343,2344,1900,2347,1900,2350,2353],{},"A file in a job's working directory that its harness session could read and that looked like a secret, found by the ",[1906,2340,2342],{"href":2341},"\u002Fconcepts\u002Fsecurity\u002Fidentity-and-secrets#secrets-in-the-working-directory","scan before and after the session",": its kind (",[1891,2345,2346],{},"env_file",[1891,2348,2349],{},"private_key",[1891,2351,2352],{},"tenant_secret","), its path relative to the working directory and how many files of that kind there were; once per kind and path, at most 20 paths of each kind per job. Never a value, nor which secret matched",[1873,2355,2356,2361],{},[1888,2357,2358],{},[1891,2359,2360],{},"run.judge_same_model",[1888,2362,2363,2364,2368,2369,1900,2372,1900,2375,2378,2379,2382],{},"A judge whose model was the model of the work it judges (",[1906,2365,2367],{"href":2366},"\u002Fimprove\u002Foutcome-checks\u002Fjudges#a-judge-on-another-model-than-the-agent","A judge on another model","): the judge's kind (",[1891,2370,2371],{},"outcome",[1891,2373,2374],{},"reviewer",[1891,2376,2377],{},"best_of","), the judge's model, the judged model and why they are one; ",[1891,2380,2381],{},"refused",", since such a judge gates the job's answer and the job stopped before it was asked. Model names only",[1873,2384,2385,2390],{},[1888,2386,2387],{},[1891,2388,2389],{},"quality.judge_same_model",[1888,2391,2392,2393,1900,2396,2399,2400,2403],{},"A sampled judge, or a judge on its anchors, that ran on the model of the work it judged: the agent, the judge's kind (",[1891,2394,2395],{},"sample",[1891,2397,2398],{},"anchor","), both models, the judge job and the finding it opened or updated; ",[1891,2401,2402],{},"warned",", since it judged anyway",[1873,2405,2406,2411],{},[1888,2407,2408],{},[1891,2409,2410],{},"event.*",[1888,2412,2031,2413,2416,2417,1900,2420,1900,2423,1900,2426,2091,2429,2432,2433,2225],{},[1906,2414,2415],{"href":763},"event source's"," deliveries and where their events went: ",[1891,2418,2419],{},"event.delivery",[1891,2421,2422],{},"event.refused",[1891,2424,2425],{},"event.failed",[1891,2427,2428],{},"event.received",[1891,2430,2431],{},"event.match"," (see ",[1906,2434,237],{"href":2435},"\u002Fagents\u002Fwaiting-for-events#audit",[1873,2437,2438,2443],{},[1888,2439,2440],{},[1891,2441,2442],{},"kill.*",[1888,2444,2445],{},"A kill switch set, enforced (which jobs it paused or cancelled), released, and the jobs it resumed",[1873,2447,2448,2453],{},[1888,2449,2450],{},[1891,2451,2452],{},"run.calls",[1888,2454,2455,2456,2225],{},"When a job ends: every step of its history with its kind and last attempt, and for each model step the calls its runtime recorded, as SHA-256 digests of what it sent and got (the node's side of the ",[1906,2457,2459],{"href":2458},"\u002Fgovern\u002Faudit-trail\u002Fevidence-bundles#the-two-way-check","two-way check",[1873,2461,2462,2466],{},[1888,2463,2464],{},[1891,2465,1954],{},[1888,2467,2468],{},[1906,2469,2471],{"href":2470},"#runtool_intent","Details",[1873,2473,2474,2479],{},[1888,2475,2476],{},[1891,2477,2478],{},"run.origins",[1888,2480,2481],{},[1906,2482,2471],{"href":2483},"#runorigins",[1873,2485,2486,2491],{},[1888,2487,2488],{},[1891,2489,2490],{},"run.result.withheld",[1888,2492,2493,2494,2498,2499,2503],{},"A tool result kept from the agent's model by its ",[1906,2495,2497],{"href":2496},"\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies#clearance-per-agent","clearance"," or a ",[1906,2500,2502],{"href":2501},"\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies#walls","wall",": the function, the call, why, and the result's labels; never its text",[1873,2505,2506,2511],{},[1888,2507,2508],{},[1891,2509,2510],{},"run.labels.joined",[1888,2512,2513,2514,2517],{},"A join the job's runtime recorded that is not a tool call's own result (a child's, a colleague's, the board's, a file's, an event's labels) with the workflow's time, which ",[1891,2515,2516],{},"oz0 evidence verify"," bounds later calls by",[1873,2519,2520,2525],{},[1888,2521,2522],{},[1891,2523,2524],{},"label.source.unlabelled",[1888,2526,2527,2528,2225],{},"A function of a declared label source returned a result without a level, which got the tenant's default level (",[1906,2529,2531],{"href":2530},"\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies#label-sources-that-do-not-label","label sources that do not label",[1873,2533,2534,2538],{},[1888,2535,2536],{},[1891,2537,2280],{},[1888,2539,2540,2541,2544,2545,2548],{},"A node's ",[1906,2542,2543],{"href":2259},"sandbox opt-out"," set or ended (",[1891,2546,2547],{},"removed","): the node, and the reason and decision of the governance change",[1873,2550,2551,2556],{},[1888,2552,2553],{},[1891,2554,2555],{},"tenant.label_policies",[1888,2557,2558,2559,2563],{},"The tenant's ",[1906,2560,2562],{"href":2561},"\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies#label-policies","label policies"," changed: the clearances, walls and egress lists before and after and what loosens; the people only as a count, never who is cleared for what",[1873,2565,2566,2571],{},[1888,2567,2568],{},[1891,2569,2570],{},"mail.sent",[1888,2572,2573,2574,2577],{},"A message a plugin's call sent through the edge (",[1906,2575,595],{"href":2576},"\u002Fbuild\u002Fplugins\u002Fverified\u002Femail#what-is-recorded","): the job, the agent, the transport, the Message-ID as the target, how many recipients and their domains, the size and each attachment's SHA-256; never an address, the subject or a body",[1873,2579,2580,2588],{},[1888,2581,2582,1900,2585],{},[1891,2583,2584],{},"mail.sending",[1891,2586,2587],{},"mail.unsent",[1888,2589,2590,2591,2593,2594,2596,2597,2599],{},"A message the edge is about to give the operator's relay, written before the relay has it, and one the relay then refused: the job, the transport and the Message-ID as the target. A call tried again after a ",[1891,2592,2584],{}," with neither ",[1891,2595,2570],{}," nor ",[1891,2598,2587],{}," is refused rather than sent twice",[1873,2601,2602,2607],{},[1888,2603,2604],{},[1891,2605,2606],{},"mail.refused",[1888,2608,2609],{},"A message the edge refused for its recipients: the job, how many were refused and their domains",[1873,2611,2612,2623],{},[1888,2613,2614,1900,2617,1900,2620],{},[1891,2615,2616],{},"candidate_check.requested",[1891,2618,2619],{},"candidate_check.started",[1891,2621,2622],{},"candidate_check.finished",[1888,2624,2073,2625,2629],{},[1906,2626,2628],{"href":2627},"\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver\u002Fjob-lifecycle#the-candidate-check","candidate check"," of an agent-made changeset: asked by the job (recorded by the edge, with the check, the target, the installed commit, the bundle's and the patch's digests and how many files), placed (by management: the private candidate, its nodes, the comparisons and their budget) and ended (its state, each agent's verdict, how many problems and widenings). IDs and digests only, never what the change or the runs said",[1873,2631,2632,2646],{},[1888,2633,2634,1900,2637,1900,2640,1900,2643],{},[1891,2635,2636],{},"change.plugin_update.requested",[1891,2638,2639],{},".approved",[1891,2641,2642],{},".applied",[1891,2644,2645],{},".expired",[1888,2647,2073,2648,2652],{},[1906,2649,2651],{"href":2650},"\u002Fgovern\u002Freviewed-changes\u002Fproposals#change-requests-a-job-files","change request a job filed"," to update an installed plugin: the filing job and its plugin, who started it and the trigger, whether it was tainted, the plugin and the commit; who approved it, and how applying it went. The job's note is never in the log",[2654,2655,2245],"h3",{"id":2656},"a2a-entry-contents",[1855,2658,2659,2660,2664],{},"These entries record an ",[1906,2661,2663],{"href":2662},"\u002Fbuild\u002Fapps\u002Fremote-agents\u002Fa2a#the-audit-log","outside A2A agent","'s task as the job saw it: the task started or ended (with its state), each message the job sent it or it sent back, each artifact of its answer.",[1855,2666,2667,2668,2671,2672,2246],{},"Each names the outside agent by its card's origin and name, the task, the size and the SHA-256 of what was exchanged, never its content; the first entry of each step also says how the card was checked (",[1891,2669,2670],{},"card",": signed, unsigned or unverified); the task's context ID is in the ",[1906,2673,1963],{"href":1962},[1855,2675,2676],{},"The node records each before the step that made it returns.",[2654,2678,2680],{"id":2679},"runtool_intent",[1891,2681,1954],{},[1855,2683,2684,2685,2689,2690,2694,2695,2698],{},"Written by the edge ",[2686,2687,2688],"strong",{},"before"," each tool call is scheduled, and the call is not scheduled until it is: the function, its plugin, the node, and the call's receipt, each sensitive argument's role, floor and origin (as digests, never the value) and the ",[1906,2691,2693],{"href":2692},"\u002Fgovern\u002Ftool-policy\u002Forigins-and-sequences#sequence-rules","sequence rules"," that decided it; and ",[1891,2696,2697],{},"floors",", the floor the tenant's policy sets for each of the call's sensitive arguments as the edge reads it from its own copy of the policy and the plugin's approved listing.",[1855,2700,2701,2703,2704,2706],{},[1891,2702,2516],{}," holds each verdict to that floor, not to the one the receipt names: a receipt that names a weaker floor than any tool policy in force since the job's tree started set, or leaves out an argument the call was made with that the edge set a floor for, and a call made with such an argument and no receipt, are differences, found by the call's run, activity and ",[1891,2705,1950],{}," (the digest of its input as the history keeps it), never by a name the node wrote.",[1855,2708,2709,2712],{},[1891,2710,2711],{},"marking"," records the function's marked arguments the floors were read with.",[1855,2714,2715,2716,2719,2720,2723],{},"The entry of a shadow run's call says ",[1891,2717,2718],{},"shadow",", and ",[1891,2721,2722],{},"read_only"," when the function is read-only by its snapshot.",[1855,2725,2726],{},"A call the exported segment holds no record of is a note, not a difference",[2654,2728,2730],{"id":2729},"runorigins",[1891,2731,2478],{},[1855,2733,2734,2735,2739,2740,2743],{},"A job's start as its ",[1906,2736,2738],{"href":2737},"\u002Fgovern\u002Ftool-policy\u002Forigins-and-sequences#where-arguments-came-from","origin index"," saw it: whether its input counts as the request, and the digests of its input's and its starter's identity's units; a child's also lists the digests of the entries it inherited from its parent's index (",[1891,2741,2742],{},"inherited",").",[1855,2745,2746,2091,2748,2750,2751,2754,2755,2758,2759,2762,2763,2765,2766,2768],{},[1891,2747,1944],{},[1891,2749,2060],{}," carry what each result gave the index (",[1891,2752,2753],{},"origin","), where in the job's history the step was (",[1891,2756,2757],{},"history",": its run and event IDs), and, for a tool call, the digests of its sensitive arguments as the call was made (",[1891,2760,2761],{},"argument_units","); ",[1891,2764,2516],{}," rebuilds the index from them, decides every ",[1891,2767,1954],{},"'s verdicts again and compares them with the arguments. Every digest here is keyed per tenant, so a reader of the trail cannot test a guessed value against it",[1855,2770,2771],{},"Tool calls, hooks, approvals and outputs come from the job's history, which the edge reads while the job runs and when it ends, so they arrive within seconds of the step. Model calls are recorded as they happen.",[1855,2773,2073,2774,2778,2779,2782,2783,2786],{},[1906,2775,2777],{"href":2776},"\u002Fagents\u002Fapprovals\u002Fstatistics#test-approvals","test approval"," decided is ",[1891,2780,2781],{},"approval.test.decide",": the card, who decided, whether it was a miss or a catch, and the catalogue entries it used; it names a job that never existed. Changes of the setting are ",[1891,2784,2785],{},"tenant.test_approvals"," in the tenant's log, with the reason.",[1855,2788,2789,2790,2793,2794,2798,2799,2802,2803,2743],{},"Approvals add ",[1891,2791,2792],{},"run.approval.refused"," (a decider the approval's ",[1906,2795,2797],{"href":2796},"\u002Fagents\u002Fapprovals\u002Fconfigure#who-decides","deciders"," did not let decide) and ",[1891,2800,2801],{},"run.recheck.failed"," (a yes that came after a long wait and was refused when ",[1906,2804,2806],{"href":2805},"\u002Fagents\u002Fapprovals\u002Fsecurity#checked-again-after-a-long-wait","checked again",[2654,2808,2810],{"id":2809},"who-started-it","Who started it",[1855,2812,2813],{},"Every entry of a job tree says on whose behalf it happened. Since this release, besides its actor (the node that ran a tool, the edge that metered a model call, the person who decided an approval), each entry of a job, of its child jobs and of their delegations carries:",[1867,2815,2816,2826],{},[1870,2817,2818],{},[1873,2819,2820,2823],{},[1876,2821,2822],{},"Field",[1876,2824,2825],{},"What it is",[1883,2827,2828,2842,2856,2866],{},[1873,2829,2830,2835],{},[1888,2831,2832],{},[1891,2833,2834],{},"starter",[1888,2836,2837,2838,2246],{},"The identity that started the tree's root job. See ",[1906,2839,2841],{"href":2840},"#starter-identities-and-retries","starter identities and retries",[1873,2843,2844,2849],{},[1888,2845,2846],{},[1891,2847,2848],{},"agent_version",[1888,2850,2851,2852,2855],{},"The version of the agent's plugin, such as ",[1891,2853,2854],{},"1.2.0@3f9c2a1b7d4e",", that the job recorded when it started: an upgrade, a pin or a candidate version never makes an entry name a version the job did not run. Only a job from before versions were recorded gets the version installed when the entry was written",[1873,2857,2858,2863],{},[1888,2859,2860],{},[1891,2861,2862],{},"plugin",[1888,2864,2865],{},"The plugin of the tool an entry is about (tool calls, hooks, approvals of a call), else the agent's",[1873,2867,2868,2873],{},[1888,2869,2870],{},[1891,2871,2872],{},"tool",[1888,2874,2875,2876,2879],{},"The function, such as ",[1891,2877,2878],{},"github.merge",", of a tool call, a hook or an approval",[2654,2881,2883],{"id":2882},"starter-identities-and-retries","Starter identities and retries",[1855,2885,2886,2887,2889,2890,2893,2894,2222,2898,2901,2902,2905,2906,2909,2910,2913,2914,2917],{},"The ",[1891,2888,2834],{}," field names who started the tree's root job: a person (",[1891,2891,2892],{},"user:ada","), an app's ",[1906,2895,2897],{"href":2896},"\u002Fbuild\u002Fapps\u002Fruntime-api\u002Fauthentication#authentication","API key",[1891,2899,2900],{},"apikey:\u003Cid>","), an operator (",[1891,2903,2904],{},"operator:\u003Cname>","), a routine (",[1891,2907,2908],{},"routine:\u003Cname>","), a flow's webhook (",[1891,2911,2912],{},"webhook:\u003Cflow>","), an event source (",[1891,2915,2916],{},"event:\u003Csource>",") or a chat channel's identity.",[1855,2919,2920],{},"A child job's entries name its root's starter.",[1855,2922,2923,2924,2926,2927,2930],{},"Starting a job with an ID that is already taken never makes you its starter: a call refused because the job runs leaves no trace on it, and a retry that joins someone else's running job is written as ",[1891,2925,1893],{}," with ",[1891,2928,2929],{},"started_by"," naming them.",[1855,2932,2933,2936,2937,2941],{},[1891,2934,2935],{},"oz0 audit"," shows the starter in its own column, the console's audit page in ",[2938,2939,2940],"em",{},"Started by"," and in each entry's details.",[2654,2943,2945],{"id":2944},"on-whose-authority-and-at-what-level","On whose authority, and at what level",[1855,2947,2948],{},"Since version 3 of the entries, each entry of a job tree also names the authority it ran on, as fields of their own (never inside the detail, which an erasure blanks):",[1867,2950,2951,2959],{},[1870,2952,2953],{},[1873,2954,2955,2957],{},[1876,2956,2822],{},[1876,2958,2825],{},[1883,2960,2961,2979,2993,3007,3020,3034,3062],{},[1873,2962,2963,2968],{},[1888,2964,2965],{},[1891,2966,2967],{},"envelope",[1888,2969,2970,2971,2974,2975,2978],{},"The hash of the job's ",[1906,2972,2973],{"href":187},"authority envelope",": on whose behalf the tree runs, which agent, for what, with which scopes and ceilings, each hop only narrowing the one before. ",[1891,2976,2977],{},"oz0 evidence export"," carries the envelope itself",[1873,2980,2981,2986],{},[1888,2982,2983],{},[1891,2984,2985],{},"binding",[1888,2987,2988,2989,2992],{},"For a model call, a tool call or a harness session, the digest of the call's ",[1906,2990,2985],{"href":2991},"\u002Fconcepts\u002Frun-receipts\u002Fcalls-and-charges#calls-bound-to-the-node",": the job's envelope, its run, the step and its attempt, the function, the digest of the call's arguments and the node that ran it. It is the digest of the binding the edge handed the node for that step, so a tool call's entry and the model calls a harness session made name the same binding; a harness's tool call names its session's",[1873,2994,2995,3000],{},[1888,2996,2997],{},[1891,2998,2999],{},"level",[1888,3001,3002,3003,3006],{},"The autonomy level the job ran at: ",[1891,3004,3005],{},"L2"," for every job until autonomy levels arrive. A child's level is never above its parent's",[1873,3008,3009,3017],{},[1888,3010,3011,1900,3014],{},[1891,3012,3013],{},"granted_by",[1891,3015,3016],{},"granted_at",[1888,3018,3019],{},"Who granted a level other than the default, and when; empty for the default. It names a person, so erasure and retention blank it like the starter, keeping its salted hash",[1873,3021,3022,3027],{},[1888,3023,3024],{},[1891,3025,3026],{},"level_policy_version",[1888,3028,3029,3030,3033],{},"The version of the policy that set the level: ",[1891,3031,3032],{},"builtin:L2\u002F1"," for the default",[1873,3035,3036,3041],{},[1888,3037,3038],{},[1891,3039,3040],{},"action_class",[1888,3042,3043,3044,1900,3047,1900,3050,1900,3053,2498,3056,3059,3060,2225],{},"The class of the function an entry is about: ",[1891,3045,3046],{},"read",[1891,3048,3049],{},"write",[1891,3051,3052],{},"destructive",[1891,3054,3055],{},"egress",[1891,3057,3058],{},"host.*"," class, from its annotations (an unannotated function is ",[1891,3061,3052],{},[1873,3063,3064,3069],{},[1888,3065,3066],{},[1891,3067,3068],{},"labels",[1888,3070,3071],{},"The job's sensitivity labels, when the tenant has them",[1855,3073,3074,3077],{},[1891,3075,3076],{},"oz0 audit --json"," and the export show them; a version 1 or 2 entry has none.",[2654,3079,3081],{"id":3080},"searching-by-starter","Searching by starter",[1855,3083,3084,3087],{},[1891,3085,3086],{},"--starter"," finds the entries of the job trees one principal started, across their child jobs:",[3089,3090,3096],"pre",{"className":3091,"code":3092,"filename":3093,"language":3094,"meta":3095,"style":3095},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","oz0 audit --tenant default --starter user:ada --reason \"Ticket 4711: a refund nobody approved\"\n","Terminal","bash","",[1891,3097,3098],{"__ignoreMap":3095},[3099,3100,3103,3106,3110,3113,3116,3119,3122,3125,3129,3132],"span",{"class":3101,"line":3102},"line",1,[3099,3104,1714],{"class":3105},"sBMFI",[3099,3107,3109],{"class":3108},"sfazB"," audit",[3099,3111,3112],{"class":3108}," --tenant",[3099,3114,3115],{"class":3108}," default",[3099,3117,3118],{"class":3108}," --starter",[3099,3120,3121],{"class":3108}," user:ada",[3099,3123,3124],{"class":3108}," --reason",[3099,3126,3128],{"class":3127},"sMK4o"," \"",[3099,3130,3131],{"class":3108},"Ticket 4711: a refund nobody approved",[3099,3133,3134],{"class":3127},"\"\n",[1855,3136,3137,3138,3141,3142,3145],{},"It is an investigation tool, not a statistic: it takes a tenant and a reason of at least ten characters, the search itself is written to the audit log first (",[1891,3139,3140],{},"audit.search.starter",", with who searched, for whom and why, and whether ",[1906,3143,3144],{"href":1172},"works-council mode"," was on), and it returns entries, never counts or totals.",[1855,3147,3148],{},"Only the tenant's admins, who may read its audit log, may search.",[1855,3150,3151],{},"The starter is a person's identifier in most trees, so searching for it is processing an employee's data; whether your organization needs more than a reason and a record for such searches (a works council's consent, a second person, a narrower group of people allowed to search) is for your policies and your counsel.",[1855,3153,3154],{},"The console's audit page offers the same search, with the reason, for one tenant at a time.",[3089,3156,3158],{"className":3091,"code":3157,"filename":3093,"language":3094,"meta":3095,"style":3095},"oz0 audit --target job-6d106603-ee3d-422e-a1b0-e17cd8f7be20\noz0 audit --action run.          # every runtime event\noz0 audit --action run.model_call --json\noz0 audit --action egress.denied --target \u003Cjob>   # what a job's sandboxes were refused\n",[1891,3159,3160,3172,3189,3204],{"__ignoreMap":3095},[3099,3161,3162,3164,3166,3169],{"class":3101,"line":3102},[3099,3163,1714],{"class":3105},[3099,3165,3109],{"class":3108},[3099,3167,3168],{"class":3108}," --target",[3099,3170,3171],{"class":3108}," job-6d106603-ee3d-422e-a1b0-e17cd8f7be20\n",[3099,3173,3175,3177,3179,3182,3185],{"class":3101,"line":3174},2,[3099,3176,1714],{"class":3105},[3099,3178,3109],{"class":3108},[3099,3180,3181],{"class":3108}," --action",[3099,3183,3184],{"class":3108}," run.",[3099,3186,3188],{"class":3187},"sHwdD","          # every runtime event\n",[3099,3190,3192,3194,3196,3198,3201],{"class":3101,"line":3191},3,[3099,3193,1714],{"class":3105},[3099,3195,3109],{"class":3108},[3099,3197,3181],{"class":3108},[3099,3199,3200],{"class":3108}," run.model_call",[3099,3202,3203],{"class":3108}," --json\n",[3099,3205,3207,3209,3211,3213,3216,3218,3221,3224,3228,3231],{"class":3101,"line":3206},4,[3099,3208,1714],{"class":3105},[3099,3210,3109],{"class":3108},[3099,3212,3181],{"class":3108},[3099,3214,3215],{"class":3108}," egress.denied",[3099,3217,3168],{"class":3108},[3099,3219,3220],{"class":3127}," \u003C",[3099,3222,3223],{"class":3108},"jo",[3099,3225,3227],{"class":3226},"sTEyZ","b",[3099,3229,3230],{"class":3127},">",[3099,3232,3233],{"class":3187},"   # what a job's sandboxes were refused\n",[2654,3235,3237],{"id":3236},"what-a-job-read-or-wrote","What a job read or wrote",[1855,3239,3240],{},"Some entries hold what a job read or wrote: an approval's comment, the error a step or a job failed with (which often quotes what a tool returned).",[1855,3242,3243,3244,3247,3248,3252,3253,3256],{},"That part of an entry is its private part. It shows in the log, in ",[1891,3245,3246],{},"--json"," and in exports only to those with the ",[1906,3249,3251],{"href":3250},"\u002Fgetting-started\u002Fweb-ui\u002Faccounts#accounts-and-roles","content permission"," on the tenant; for everyone else the entry says ",[1891,3254,3255],{},"withheld",", and the rest of it is there as usual.",[1855,3258,3259,3260,3263,3264,2222,3267,3270],{},"Where the tenant's ",[1906,3261,3262],{"href":2501},"walls"," apply to the reader, the private part also follows the job's compartments: the edge reads the job's labels for each entry with a private part when it records it and keeps them in the entry's detail as ",[1891,3265,3266],{},"content_labels",[1891,3268,3269],{},"unread"," when they could not be read then), and the part is withheld when a wall closes those, the entry's own labels, or an entry of a job that kept neither.",[1855,3272,3273],{},"A withheld part is still covered by the entry's hashes, and the export's signed head stands in for what those can no longer show (below).",[2654,3275,3277],{"id":3276},"content-digests","Content digests",[1855,3279,3280,3281,2091,3284,3287,3288,3292],{},"The digests in an entry's detail are of a job's content too: a call's arguments, a result, a file or an exchange. A digest of a short value can confirm a guess of it, so a reader without the content permission reads them keyed: in ",[1891,3282,3283],{},"audit list",[1891,3285,3286],{},"audit export",", an incident's export, a tenant's export and an ",[1906,3289,3291],{"href":3290},"\u002Fgovern\u002Faudit-trail\u002Fevidence-bundles#evidence-bundles","evidence bundle",", each is an HMAC under a key drawn for that one answer or bundle.",[1855,3294,3295],{},"So is an entry's call binding, which is made from its other fields and the digest of the call's arguments.",[1855,3297,3298],{},"Equal digests stay equal within the answer and compare with nothing outside it, so a SIEM that follows the export without the permission can match an intent to its call only within one poll.",[1855,3300,3301],{},"An entry's ID is the same in every answer, so where it is made with such a digest (a file read's and a tool call's intent) it is made under a key of the tenant's that only the edge holds, and it still tells one read or call from another; entries written before that keep the ID they have, which a guess can be held against.",[1855,3303,3304],{},"A digest of something published (a plugin's bundle, an index, advisories, a model's weights) covers no job's content and stays as it is, so it can be compared with what was published.",[2654,3306,3308],{"id":3307},"blinded-entries-and-signed-exports","Blinded entries and signed exports",[1855,3310,3311,3312,3315,3316,3319],{},"An exported entry that keeps anything back, a private part or a digest, is marked ",[1891,3313,3314],{},"blinded"," and has no ",[1891,3317,3318],{},"salt",", because the salt and a part's hash would confirm a guess of the part as surely as the digest would.",[1855,3321,3322,3323,3326],{},"Its hashes stay in the chain and its ",[1891,3324,3325],{},"content_hash"," and links are checked, but its actor, target and detail can no longer be checked against their hashes.",[1855,3328,3329,3330,3333,3334,3337,3338,3340],{},"An entry with a call binding is marked ",[1891,3331,3332],{},"binding_keyed"," as well, a redacted one too, and has no ",[1891,3335,3336],{},"detail_hash",": everything else its ",[1891,3339,3325],{}," covers is in the line, so that hash would otherwise confirm a guess of the binding, and with it of the arguments.",[1855,3342,3343,3344,3346],{},"Its ",[1891,3345,3325],{}," cannot be worked out again, only its link to the entries around it, so its sequence, ID, time and action rest on what follows.",[1855,3348,3349,3350,3352,3353,3356],{},"What stands in for them is a signature: ",[1891,3351,3286],{}," adds a ",[1891,3354,3355],{},"seal"," to every head line, the audit key's signature over the number of blinded entries and the hash of every line since the head before.",[1855,3358,3359,3362],{},[1891,3360,3361],{},"audit verify --file"," refuses a blinded entry no such head covers, and any line that is not as it was signed.",[1855,3364,3365,3366,3369,3370,3373],{},"It also fails on a file with blinded entries unless you give it ",[1891,3367,3368],{},"--key"," with the fingerprint ",[1891,3371,3372],{},"oz0 audit key"," prints: an edit of a blinded entry leaves the chain's head as it was, so comparing the head shows nothing, and whoever made the edit can sign the file again with a key of their own.",[1855,3375,3376,3379],{},[1891,3377,3378],{},"--unpinned"," checks such a file all the same, and shows only that it is whole, not whose it is.",[1855,3381,3382],{},"An export with no blinded entries is checked without a key, and carries its signature all the same: only that shows whose it is.",[1855,3384,3385,3386,2091,3389,3392,3393,3395,3396,2246],{},"An incident's export and a tenant's export need no seal: their own signature covers the lines, so ",[1891,3387,3388],{},"incident verify",[1891,3390,3391],{},"tenant export --verify"," likewise fail on blinded entries without ",[1891,3394,3368],{},", or ",[1891,3397,3378],{},[1855,3399,3400,3401,3404],{},"A line cut off by a ",[1891,3402,3403],{},"--follow"," export that stopped before its next head is refused too, since nothing has signed it yet.",[2654,3406,3408],{"id":3407},"when-an-entry-cannot-be-written","When an entry cannot be written",[1855,3410,3411,3412,3415,3416,3419,3420,3423],{},"No entry of something a person can see is dropped without a trace. What answers a person with data or a verdict is recorded first: looking a data subject up (",[1891,3413,3414],{},"subject.find",") and verifying the chain (",[1891,3417,3418],{},"audit.verify",") answer nothing when their entry cannot be written, and say so (",[1891,3421,3422],{},"unavailable",": try again).",[1855,3425,3426],{},"An entry about a node, a join token or a rollout goes to that object's tenant, so its admins read it; when the object's tenant cannot be read, the entry is not written as the cluster's instead, and the action fails with it.",[1855,3428,3429],{},"What the platform does on its own and cannot take back, such as the end of a tenant's move or a rollout's step, stands when its entry cannot be written, and the server logs the whole entry at error level instead, so an alert on the server's error logs finds it.",[3431,3432,3433],"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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":3095,"searchDepth":3174,"depth":3174,"links":3435},[3436],{"id":1861,"depth":3174,"text":1862,"children":3437},[3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448],{"id":2656,"depth":3191,"text":2245},{"id":2679,"depth":3191,"text":1954},{"id":2729,"depth":3191,"text":2478},{"id":2809,"depth":3191,"text":2810},{"id":2882,"depth":3191,"text":2883},{"id":2944,"depth":3191,"text":2945},{"id":3080,"depth":3191,"text":3081},{"id":3236,"depth":3191,"text":3237},{"id":3276,"depth":3191,"text":3277},{"id":3307,"depth":3191,"text":3308},{"id":3407,"depth":3191,"text":3408},"Audit records and run identity for tenant admins and governance reviewers.","md",null,{"audience":3453,"doc_type":3454},"tenant admins and governance reviewers","reference",true,{"title":1192,"description":3449},"aqj0beqBFsovP1fW6j4ZdpWpL7p3XaP0v2ZBUTDxg7M",[3459,3461],{"title":1185,"path":1186,"stem":1187,"description":3460,"icon":1190,"children":-1},"What every run did and who changed what, in a log that cannot be edited unnoticed, kept as long as your rules say and exported as JSON lines.",{"title":1196,"path":1197,"stem":1198,"description":3462,"children":-1},"Verify the audit chain for tenant admins and governance reviewers.",1794443011007]