[{"data":1,"prerenderedAt":3620},["ShallowReactive",2],{"navigation_docs":3,"docs-page:\u002Fgovern\u002Finventory":1849,"docs-surround:\u002Fgovern\u002Finventory":3615},[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":1181,"body":1851,"description":3606,"extension":3607,"links":3608,"meta":3609,"navigation":3612,"path":1182,"seo":3613,"stem":1183,"__hash__":3614},"docs\u002F06.govern\u002F10.inventory.md",{"type":1852,"value":1853,"toc":3590},"minimark",[1854,1858,1861,1998,2114,2123,2133,2143,2155,2160,2171,2196,2199,2202,2205,2210,2223,2237,2241,2247,2292,2302,2315,2331,2338,2341,2357,2370,2374,2401,2405,2408,2451,2470,2473,2481,2517,2521,2539,2546,2550,2579,2582,2600,2610,2614,2629,2738,2746,2750,2761,2780,2787,2791,2801,2851,2854,2861,2872,2876,2882,3189,3242,3248,3263,3270,3285,3289,3305,3319,3339,3343,3349,3510,3513,3571,3586],[1855,1856,1857],"p",{},"For: tenant admins and governance reviewers.",[1855,1859,1860],{},"Use the inventory to record ownership, purpose and risk for the agents, flows and tools in the catalog. It adds the organisational information needed for accountability, including information requested by the EU AI Act and procurement checklists:",[1862,1863,1864,1877],"table",{},[1865,1866,1867],"thead",{},[1868,1869,1870,1874],"tr",{},[1871,1872,1873],"th",{},"Field",[1871,1875,1876],{},"What it is",[1878,1879,1880,1897,1916,1926,1955,1975,1985],"tbody",{},[1868,1881,1882,1889],{},[1883,1884,1885],"td",{},[1886,1887,1888],"strong",{},"Owner",[1883,1890,1891,1892,1896],{},"The team that answers for it, by name: one of the tenant's ",[1893,1894,1895],"a",{"href":1535},"teams",", which cannot be deleted while it owns an entry",[1868,1898,1899,1904],{},[1883,1900,1901],{},[1886,1902,1903],{},"Owner person",[1883,1905,1906,1907,1911,1912,1915],{},"The person who answers for it, a member of the tenant (",[1908,1909,1910],"code",{},"user:\u003Cname>","). An approval's escalation goes to them (see ",[1893,1913,1914],{"href":270},"approvals",")",[1868,1917,1918,1923],{},[1883,1919,1920],{},[1886,1921,1922],{},"Purpose",[1883,1924,1925],{},"What it is for, in a sentence",[1868,1927,1928,1933],{},[1883,1929,1930],{},[1886,1931,1932],{},"Risk class",[1883,1934,1935,1938,1939,1942,1943,1946,1947,1949,1950,1954],{},[1908,1936,1937],{},"minimal",", ",[1908,1940,1941],{},"limited"," or ",[1908,1944,1945],{},"high",", after the AI Act's tiers. A ",[1908,1948,1945],{}," agent keeps its ",[1893,1951,1953],{"href":1952},"\u002Fgovern\u002Faudit-trail\u002Fretention#retention","audit entries"," at least six months",[1868,1956,1957,1962],{},[1883,1958,1959],{},[1886,1960,1961],{},"Data",[1883,1963,1964,1965,1938,1968,1938,1971,1974],{},"The kinds of data it handles or reaches: ",[1908,1966,1967],{},"personal",[1908,1969,1970],{},"financial",[1908,1972,1973],{},"health","...",[1868,1976,1977,1982],{},[1883,1978,1979],{},[1886,1980,1981],{},"Models and regions",[1883,1983,1984],{},"The models an agent's definition names and those its calls used in the last 30 days, each with the region you record for it",[1868,1986,1987,1992],{},[1883,1988,1989],{},[1886,1990,1991],{},"Evals",[1883,1993,1994,1995],{},"Its plugin's latest ",[1893,1996,1997],{"href":970},"quality gate",[1999,2000,2006],"pre",{"className":2001,"code":2002,"filename":2003,"language":2004,"meta":2005,"style":2005},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","oz0 inventory list\noz0 inventory set agent acme-triage --owner support --owner-person ada --purpose \"Sorts incoming tickets\" \\\n  --risk high --data personal --region claude-sonnet-4-5=eu\noz0 inventory set tool acme_github --owner platform --data source-code\n","Terminal","bash","",[1908,2007,2008,2023,2068,2089],{"__ignoreMap":2005},[2009,2010,2013,2016,2020],"span",{"class":2011,"line":2012},"line",1,[2009,2014,1714],{"class":2015},"sBMFI",[2009,2017,2019],{"class":2018},"sfazB"," inventory",[2009,2021,2022],{"class":2018}," list\n",[2009,2024,2026,2028,2030,2033,2036,2039,2042,2045,2048,2051,2054,2058,2061,2064],{"class":2011,"line":2025},2,[2009,2027,1714],{"class":2015},[2009,2029,2019],{"class":2018},[2009,2031,2032],{"class":2018}," set",[2009,2034,2035],{"class":2018}," agent",[2009,2037,2038],{"class":2018}," acme-triage",[2009,2040,2041],{"class":2018}," --owner",[2009,2043,2044],{"class":2018}," support",[2009,2046,2047],{"class":2018}," --owner-person",[2009,2049,2050],{"class":2018}," ada",[2009,2052,2053],{"class":2018}," --purpose",[2009,2055,2057],{"class":2056},"sMK4o"," \"",[2009,2059,2060],{"class":2018},"Sorts incoming tickets",[2009,2062,2063],{"class":2056},"\"",[2009,2065,2067],{"class":2066},"sTEyZ"," \\\n",[2009,2069,2071,2074,2077,2080,2083,2086],{"class":2011,"line":2070},3,[2009,2072,2073],{"class":2018},"  --risk",[2009,2075,2076],{"class":2018}," high",[2009,2078,2079],{"class":2018}," --data",[2009,2081,2082],{"class":2018}," personal",[2009,2084,2085],{"class":2018}," --region",[2009,2087,2088],{"class":2018}," claude-sonnet-4-5=eu\n",[2009,2090,2092,2094,2096,2098,2101,2104,2106,2109,2111],{"class":2011,"line":2091},4,[2009,2093,1714],{"class":2015},[2009,2095,2019],{"class":2018},[2009,2097,2032],{"class":2018},[2009,2099,2100],{"class":2018}," tool",[2009,2102,2103],{"class":2018}," acme_github",[2009,2105,2041],{"class":2018},[2009,2107,2108],{"class":2018}," platform",[2009,2110,2079],{"class":2018},[2009,2112,2113],{"class":2018}," source-code\n",[1999,2115,2121],{"className":2116,"code":2118,"filename":2119,"language":2120,"meta":2005},[2117],"language-text","KIND   NAME            OWNER     PERSON    RISK  MODELS                                                DATA         PURPOSE\nagent  acme-triage     support   user:ada  high  claude-sonnet-4-5 (eu), claude-sonnet-4-5-20250929     personal     Sorts incoming tickets\ntool   acme_github     platform  -         -     -                                                     source-code  -\n","Output","text",[1908,2122,2118],{"__ignoreMap":2005},[1855,2124,2125,2128,2129,2132],{},[1908,2126,2127],{},"inventory set"," changes only the flags you give. Admins of the tenant edit the inventory; readers see it. Every change is in the audit log as ",[1908,2130,2131],{},"inventory.set",".",[1855,2134,2135,2136,2139,2140,2132],{},"An item stays when its agent or tool leaves the catalog, marked so, and an item that a ",[1893,2137,2138],{"href":1117},"kill switch"," stops is marked ",[1908,2141,2142],{},"killed",[1855,2144,2145,2146,1938,2149,2151,2152,2132],{},"The console has the inventory under ",[2147,2148,1041],"em",{},[2147,2150,1181],{},": search it, filter it by kind, plugin, risk class and owner, open an agent or a tool to edit it, and download the whole of it as CSV or JSON under ",[1886,2153,2154],{},"Export",[2156,2157,2159],"h3",{"id":2158},"pages-and-search","Pages and search",[1855,2161,2162,2163,2166,2167,2170],{},"The inventory comes from the server a page at a time: 25 agents and flows by name unless ",[1908,2164,2165],{},"page_size"," asks for more, at most 100, with the tools whole on the first page (unless ",[1908,2168,2169],{},"--kind tool"," asks for them alone).",[1855,2172,2173,2176,2177,2180,2181,2184,2185,2188,2189,1942,2192,2195],{},[1908,2174,2175],{},"oz0 inventory list"," reads every page, and searches on the server with ",[1908,2178,2179],{},"--query"," (words that start the name or a word of the name or description), ",[1908,2182,2183],{},"--plugin"," and ",[1908,2186,2187],{},"--kind"," (",[1908,2190,2191],{},"agent",[1908,2193,2194],{},"tool",").",[1855,2197,2198],{},"The console asks the server for one page at a time too, with its search and every filter (kind, plugin, risk class, owner), and pages below the table; with no kind chosen, the first page also holds every tool, as the API answers it.",[1855,2200,2201],{},"Its counts of agents with no owner person, unused for 90 days and with no risk class are each the whole inventory's: the page asks the server for each with its filter and one row, and reads the total.",[1855,2203,2204],{},"The report export is always the whole inventory.",[2206,2207,2209],"h2",{"id":2208},"owner-people","Owner people",[1855,2211,2212,2215,2216,2219,2220,2195],{},[1908,2213,2214],{},"--owner-person"," takes an account that is a member of the tenant (or a cluster admin); ",[1908,2217,2218],{},"--owner-person \"\""," takes it away. A person who leaves stops owning: when their membership of the tenant ends, or their account is removed, their items keep their owner team and lose their owner person, and the audit log says so (",[1908,2221,2222],{},"inventory.owner_cleared",[1855,2224,2225,2226,2229,2230,2232,2233,2236],{},"An agent in the catalog with no owner person is a finding. ",[1908,2227,2228],{},"oz0 doctor"," shows a row per tenant that has such agents, with their names and the fix, and the Inventory page shows a banner and an ",[2147,2231,1903],{}," filter (",[2147,2234,2235],{},"No owner person","). Retired agents do not count.",[2206,2238,2240],{"id":2239},"the-report","The report",[1855,2242,2243,2246],{},[1908,2244,2245],{},"oz0 inventory export"," writes every item as a report, for an auditor, a procurement questionnaire or a spreadsheet:",[1999,2248,2250],{"className":2001,"code":2249,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory export --format csv --out inventory.csv\noz0 inventory export --format json > inventory.json\n",[1908,2251,2252,2273],{"__ignoreMap":2005},[2009,2253,2254,2256,2258,2261,2264,2267,2270],{"class":2011,"line":2012},[2009,2255,1714],{"class":2015},[2009,2257,2019],{"class":2018},[2009,2259,2260],{"class":2018}," export",[2009,2262,2263],{"class":2018}," --format",[2009,2265,2266],{"class":2018}," csv",[2009,2268,2269],{"class":2018}," --out",[2009,2271,2272],{"class":2018}," inventory.csv\n",[2009,2274,2275,2277,2279,2281,2283,2286,2289],{"class":2011,"line":2025},[2009,2276,1714],{"class":2015},[2009,2278,2019],{"class":2018},[2009,2280,2260],{"class":2018},[2009,2282,2263],{"class":2018},[2009,2284,2285],{"class":2018}," json",[2009,2287,2288],{"class":2056}," >",[2009,2290,2291],{"class":2018}," inventory.json\n",[1855,2293,2294,2295,1942,2298,2301],{},"Each item has its kind, name, plugin and version, state (",[1908,2296,2297],{},"active",[1908,2299,2300],{},"retired",", with why), owner person and team, purpose, risk class, data, model regions, whether it is still in the catalog or stopped by a kill switch, and when the agent's latest job started.",[1855,2303,2304,2305,2309,2310,2314],{},"An agent's row also has its declared purposes with their legal bases, how many of its jobs in the last 30 days named no purpose, and its ",[1893,2306,2308],{"href":2307},"\u002Fgovern\u002Finventory#where-data-goes","recipients"," (the JSON has the rows and the findings; the CSV counts the rows), so the ",[1893,2311,2313],{"href":2312},"\u002Fgovern\u002Faudit-trail\u002Fevidence-bundles#evidence-bundles","evidence bundle",", which carries this export, carries the recipient map too.",[1855,2316,2317,2318,2322,2323,2326,2327,2330],{},"The JSON also says where each agent's models came from and whether the tenant ",[1893,2319,2321],{"href":2320},"\u002Fspend\u002Fmodels-and-keys\u002Fdata-rules#provenance-and-vetting","vetted"," them (",[1908,2324,2325],{},"model_provenance",", by the name the agent uses), and lists every model the tenant's agents may run on, with its provenance and vetting (",[1908,2328,2329],{},"models","): what it is reached through, its publisher, source, endpoint, the model it was edited from, a local model's digest, and who vetted it, when and why.",[1855,2332,2333,2334,2337],{},"The Inventory page marks a model nobody has vetted, and ",[1886,2335,2336],{},"Govern, Policy, Models"," shows them all.",[1855,2339,2340],{},"A provenance record says where a model came from; it never says the model is safe.",[1855,2342,2343,2344,1938,2347,1938,2350,1942,2353,2356],{},"A cell that a spreadsheet would read as a formula (one that starts with ",[1908,2345,2346],{},"=",[1908,2348,2349],{},"+",[1908,2351,2352],{},"-",[1908,2354,2355],{},"@",") is written with a leading apostrophe.",[1855,2358,2359,2360,2363,2364,2184,2367,2132],{},"The tenant's readers may export, and every export is in the audit log (",[1908,2361,2362],{},"inventory.exported","). The Inventory page has the same report under ",[2147,2365,2366],{},"CSV",[2147,2368,2369],{},"JSON",[2206,2371,2373],{"id":2372},"procedures","Procedures",[1855,2375,2376,2377,2380,2381,2385,2386,2388,2389,2392,2393,2396,2397,2400],{},"An agent of a plugin written from an approved procedure (the manifest's ",[1908,2378,2379],{},"procedure:",", see ",[1893,2382,2384],{"href":2383},"\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Ftests-and-drills#start-from-a-written-procedure","Start from a written procedure",") shows the day the procedure was approved and the day its review is due. The date is checked against today each time the inventory is read, so when it passes, ",[1908,2387,2175],{}," marks the agent ",[1908,2390,2391],{},"[procedure review due \u003Cdate>]"," and the Inventory page shows a ",[2147,2394,2395],{},"procedure review due"," badge, without anyone running lint again. Have the expert review the text, set ",[1908,2398,2399],{},"approved_at",", and install the new version.",[2206,2402,2404],{"id":2403},"retiring-and-deleting","Retiring and deleting",[1855,2406,2407],{},"Retire an agent (or a flow) or a tool to stop new use without removing its plugin:",[1999,2409,2411],{"className":2001,"code":2410,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory retire agent acme-triage --reason \"replaced by acme-triage-v2\"\noz0 inventory unretire agent acme-triage\n",[1908,2412,2413,2437],{"__ignoreMap":2005},[2009,2414,2415,2417,2419,2422,2424,2426,2429,2431,2434],{"class":2011,"line":2012},[2009,2416,1714],{"class":2015},[2009,2418,2019],{"class":2018},[2009,2420,2421],{"class":2018}," retire",[2009,2423,2035],{"class":2018},[2009,2425,2038],{"class":2018},[2009,2427,2428],{"class":2018}," --reason",[2009,2430,2057],{"class":2056},[2009,2432,2433],{"class":2018},"replaced by acme-triage-v2",[2009,2435,2436],{"class":2056},"\"\n",[2009,2438,2439,2441,2443,2446,2448],{"class":2011,"line":2025},[2009,2440,1714],{"class":2015},[2009,2442,2019],{"class":2018},[2009,2444,2445],{"class":2018}," unretire",[2009,2447,2035],{"class":2018},[2009,2449,2450],{"class":2018}," acme-triage\n",[1855,2452,2453,2454,2457,2458,2188,2460,2463,2464,1938,2467,2195],{},"A retired agent takes no new jobs: the runtime API, routines, webhooks, event routes and delegations refuse them with the reason and the fix. A retired tool's new calls are refused on the nodes within seconds, with the fix (",[1908,2455,2456],{},"inventory unretire tool","). Jobs that run when you retire finish, and so does a call of the tool that is already running: retiring is not an emergency stop. To stop running calls at once, use a ",[1893,2459,2138],{"href":1117},[1908,2461,2462],{},"oz0 kill tool","). The reason is required, and both steps are audited (",[1908,2465,2466],{},"inventory.retired",[1908,2468,2469],{},"inventory.unretired",[1855,2471,2472],{},"Removing a plugin retires its agents, flows and tools, so they stay in the inventory, marked, instead of looking active, and installing a version that no longer has an agent or flow retires that one's item the same way. Installing the plugin again, or a version that has the agent again, brings back what was retired so; what a person retired stays retired. An agent of the same name from another plugin starts with a new item instead of the old one's owner, purpose and risk class.",[1855,2474,2475,2476,2480],{},"What named an agent that went (API key scopes, agent grants, routines, keep-for rules, legal bases, rules) is marked, dropped or listed when it goes, so that a new agent of the same name inherits none of it (",[1893,2477,2479],{"href":2478},"\u002Fbuild\u002Fplugins\u002Finstall\u002Fretire-and-remove#remove","removing a plugin"," says which). The list stays, for the tenant's admins, since it names keys and people's grants:",[1999,2482,2484],{"className":2001,"code":2483,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory tombstones\n# Agent billing of plugin payments went 2026-10-13 09:12 (by user:ada); what named it:\n#   marked api_key 01J9...: key billing-app: its scope for billing reaches nothing now; make a new key for a new agent\n#   dropped keep_for billing: keep-for rule of 3650 days; the jobs it left keep their class\n#   listed tool_rule rule-3f2a: its condition names billing; edit the rule (a governance change) if a new agent of the name should not meet it\n",[1908,2485,2486,2495,2501,2506,2511],{"__ignoreMap":2005},[2009,2487,2488,2490,2492],{"class":2011,"line":2012},[2009,2489,1714],{"class":2015},[2009,2491,2019],{"class":2018},[2009,2493,2494],{"class":2018}," tombstones\n",[2009,2496,2497],{"class":2011,"line":2025},[2009,2498,2500],{"class":2499},"sHwdD","# Agent billing of plugin payments went 2026-10-13 09:12 (by user:ada); what named it:\n",[2009,2502,2503],{"class":2011,"line":2070},[2009,2504,2505],{"class":2499},"#   marked api_key 01J9...: key billing-app: its scope for billing reaches nothing now; make a new key for a new agent\n",[2009,2507,2508],{"class":2011,"line":2091},[2009,2509,2510],{"class":2499},"#   dropped keep_for billing: keep-for rule of 3650 days; the jobs it left keep their class\n",[2009,2512,2514],{"class":2011,"line":2513},5,[2009,2515,2516],{"class":2499},"#   listed tool_rule rule-3f2a: its condition names billing; edit the rule (a governance change) if a new agent of the name should not meet it\n",[2156,2518,2520],{"id":2519},"unused-agents","Unused agents",[1855,2522,2523,2524,2527,2528,2531,2532,2535,2536,2538],{},"An agent or flow whose plugin was installed more than 90 days ago and that started no job in 90 days, at the top of a tree or delegated, is marked ",[1886,2525,2526],{},"unused 90 days",": a candidate to retire. The Inventory page has an ",[1886,2529,2530],{},"Unused for 90 days"," filter and a banner that counts them, ",[1908,2533,2534],{},"oz0 inventory list --unused"," lists them, and ",[1908,2537,2228],{}," shows them per tenant with the command that retires one.",[1855,2540,2541,2542,2545],{},"The finding names agents and dates only, never who used an agent or how often. It is as good as the job history the tenant keeps: with a shorter ",[1893,2543,2544],{"href":1122},"retention",", it says so.",[2156,2547,2549],{"id":2548},"badges-from-what-an-agent-reaches","Badges from what an agent reaches",[1855,2551,2552,2553,2556,2557,1938,2561,2564,2565,1938,2568,2571,2572,2575,2576,2132],{},"An item's badges say what is wrong with its plugin or a plugin it reaches through grants: ",[1886,2554,2555],{},"retired via"," a ",[1893,2558,2560],{"href":2559},"\u002Fbuild\u002Fplugins\u002Finstall\u002Fretire-and-remove#retire","retired plugin",[1886,2562,2563],{},"vulnerable via"," one with a ",[1893,2566,2567],{"href":499},"known vulnerability",[1886,2569,2570],{},"retired version via"," one whose installed hub version its index deprecated, withdrew or quarantined, with the chain when it is further away. ",[1908,2573,2574],{},"inventory list"," prints them after the name, and the API returns them as ",[1908,2577,2578],{},"via",[1855,2580,2581],{},"Once its plugin is gone, an item's row can go too:",[1999,2583,2585],{"className":2001,"code":2584,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory delete agent acme-triage\n",[1908,2586,2587],{"__ignoreMap":2005},[2009,2588,2589,2591,2593,2596,2598],{"class":2011,"line":2012},[2009,2590,1714],{"class":2015},[2009,2592,2019],{"class":2018},[2009,2594,2595],{"class":2018}," delete",[2009,2597,2035],{"class":2018},[2009,2599,2450],{"class":2018},[1855,2601,2602,2603,2606,2607,2132],{},"Its audit entries stay, and the audit chain keeps verifying. ",[1908,2604,2605],{},"delete"," is refused while a plugin of the tenant still has the agent or tool: remove the plugin, or retire the item. It is audited as ",[1908,2608,2609],{},"inventory.deleted",[2206,2611,2613],{"id":2612},"the-capability-card","The capability card",[1855,2615,2616,2617,2620,2621,2624,2625,2628],{},"Each agent has a card that says what it may do, generated from its plugin, never from what its author wrote about it. The inventory shows it when you open an agent, and so does the agent's page (its ",[2147,2618,2619],{},"Permissions"," tab, under ",[2147,2622,2623],{},"More","); ",[1908,2626,2627],{},"plugin inspect"," prints it before an install, and a hub listing carries it.",[1862,2630,2631,2641],{},[1865,2632,2633],{},[1868,2634,2635,2638],{},[1871,2636,2637],{},"On the card",[1871,2639,2640],{},"Where it comes from",[1878,2642,2643,2657,2674,2691,2704,2724],{},[1868,2644,2645,2650],{},[1883,2646,2647],{},[1886,2648,2649],{},"Takes and returns",[1883,2651,2652,2653,2656],{},"The agent's ",[1893,2654,2655],{"href":674},"contracts",": text, or a JSON object with its schema",[1868,2658,2659,2664],{},[1883,2660,2661],{},[1886,2662,2663],{},"Tools, by plugin",[1883,2665,2666,2667,1938,2670,2673],{},"Every function the agent may call, grouped by the plugin that provides it, each counted as read-only, write or destructive from its MCP annotations (",[1908,2668,2669],{},"readOnlyHint",[1908,2671,2672],{},"destructiveHint","). A function without annotations counts as destructive, as MCP says; one no node has listed yet counts as not listed",[1868,2675,2676,2681],{},[1883,2677,2678],{},[1886,2679,2680],{},"Needs approval",[1883,2682,2683,2684,2687,2688],{},"The functions that wait for a person: ",[1908,2685,2686],{},"requires_approval"," in the manifest, and the tenant's ",[1893,2689,2690],{"href":1049},"tool policy",[1868,2692,2693,2698],{},[1883,2694,2695],{},[1886,2696,2697],{},"Delegates to, asks people",[1883,2699,2700,2701,1915],{},"The agents it may start as children, and whether it may ask people questions (",[1908,2702,2703],{},"oz.ask_user",[1868,2705,2706,2711],{},[1883,2707,2708],{},[1886,2709,2710],{},"Per request",[1883,2712,2713,2714,2718,2719,2723],{},"The estimated tokens its tool definitions add to every model request (see ",[1893,2715,2717],{"href":2716},"\u002Fbuild\u002Fplugins\u002Fcatalog#what-tool-definitions-cost","the catalog","). For an agent that ",[1893,2720,2722],{"href":2721},"\u002Fbuild\u002Fparts\u002Fagents#lazy-tool-loading","loads its tools lazily",", what its requests carry (the two discovery tools and its built-ins), with what every function it lists would add beside it",[1868,2725,2726,2731],{},[1883,2727,2728],{},[1886,2729,2730],{},"Version state",[1883,2732,2733,2734,1915],{},"How far its plugin's version was checked: saved, validated or published (see ",[1893,2735,2737],{"href":2736},"\u002Fbuild\u002Fplugins\u002Findexes\u002Fversion-records#version-states","Indexes",[1855,2739,2740,2741,2745],{},"Annotations are a tool's own hints about itself. The card shows them as they are; the ",[1893,2742,2744],{"href":2743},"\u002Fbuild\u002Fparts\u002Ftools\u002Fsnapshots#snapshots-a-tool-may-not-change-what-it-says-it-does","snapshot"," keeps a tool from changing them after its first listing, and the tool policy decides what each class may do.",[2206,2747,2749],{"id":2748},"deployment-profile","Deployment profile",[1855,2751,2752,2753,2756,2757,2760],{},"An agent's entry also shows how people oversee it, in the console's dialog for the agent and with ",[1908,2754,2755],{},"oz0 inventory list --oversight \u003Cagent> --json"," as ",[1908,2758,2759],{},"oversight"," (it is computed for the one agent asked for, since it reads that agent's approval decisions of 90 days):",[2762,2763,2764,2773],"ul",{},[2765,2766,2767,2768,2772],"li",{},"Test approvals caught: of the agent's ",[1893,2769,2771],{"href":2770},"\u002Fagents\u002Fapprovals\u002Fstatistics#test-approvals","test approvals"," decided in the last 90 days, how many people caught;",[2765,2774,2775,2776,2195],{},"Agreement per action class: how often people approved the agent's proposed calls of each class as proposed, since its latest drift event or over 90 days, with the shadow rules' sums beside it and whether the promotion threshold (95% over 50 decisions) holds (",[1893,2777,2779],{"href":2778},"\u002Fagents\u002Fapprovals\u002Fstatistics#agreement-per-agent-and-action-class","agreement",[1855,2781,2782,2783,2786],{},"Both go through ",[1893,2784,2785],{"href":1172},"works-council mode",": figures decided by fewer people than its threshold are hidden. They are data: nothing changes an agent's level from them.",[2206,2788,2790],{"id":2789},"plugins-that-read-the-inventory","Plugins that read the inventory",[1855,2792,2793,2794,2800],{},"A plugin may read the inventory, to keep another system in step with it: a plugin whose manifest declares ",[1893,2795,2797],{"href":2796},"\u002Freference\u002Fplugin-manifest\u002Fdata#reads",[1908,2798,2799],{},"reads: [inventory]"," gets the tenant's agents and flows in each call of its functions, and its routines and flows fire on the inventory's changes. Each is a permission a tenant admin grants at install, and takes back without removing the plugin:",[1999,2802,2804],{"className":2001,"code":2803,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 plugin install .\u002Fregistry --accept-reads inventory\noz0 plugin list                                   # registry reads inventory (granted)\noz0 plugin revoke-reads registry inventory\n",[1908,2805,2806,2825,2837],{"__ignoreMap":2005},[2009,2807,2808,2810,2813,2816,2819,2822],{"class":2011,"line":2012},[2009,2809,1714],{"class":2015},[2009,2811,2812],{"class":2018}," plugin",[2009,2814,2815],{"class":2018}," install",[2009,2817,2818],{"class":2018}," .\u002Fregistry",[2009,2820,2821],{"class":2018}," --accept-reads",[2009,2823,2824],{"class":2018}," inventory\n",[2009,2826,2827,2829,2831,2834],{"class":2011,"line":2025},[2009,2828,1714],{"class":2015},[2009,2830,2812],{"class":2018},[2009,2832,2833],{"class":2018}," list",[2009,2835,2836],{"class":2499},"                                   # registry reads inventory (granted)\n",[2009,2838,2839,2841,2843,2846,2849],{"class":2011,"line":2070},[2009,2840,1714],{"class":2015},[2009,2842,2812],{"class":2018},[2009,2844,2845],{"class":2018}," revoke-reads",[2009,2847,2848],{"class":2018}," registry",[2009,2850,2824],{"class":2018},[1855,2852,2853],{},"Such a plugin reads each agent's name, plugin and version, description, owner team and person, state (and why and when it was retired), risk class and purpose, and nothing else: not its models, regions or kinds of data, its eval results, its jobs or the tenant's members. It writes nothing back.",[1855,2855,2856,2857,2860],{},"Its reads are audited (",[1908,2858,2859],{},"inventory.read",", at most once per plugin and ten minutes), and so are the grant and its revocation. An owner person's name is personal data: a plugin that reads it may send it where the plugin sends what it reads, so check what a plugin does with it before you grant it.",[1855,2862,2863,2864,2188,2867,2871],{},"The changes come as events of the built-in source ",[1908,2865,2866],{},"inventory",[1893,2868,2870],{"href":2869},"\u002Fbuild\u002Fparts\u002Fevent-sources\u002Fplatform-events#the-inventorys-changes","the inventory's changes","): created, updated, retired, unretired and deleted, within about ten seconds of the change.",[2206,2873,2875],{"id":2874},"where-data-goes","Where data goes",[1855,2877,2878,2881],{},[1908,2879,2880],{},"oz0 inventory recipients"," shows, for each agent and flow, every place its jobs can send data. It is computed from the records that route the data, never typed, and every row says where it came from:",[1862,2883,2884,2896],{},[1865,2885,2886],{},[1868,2887,2888,2891,2893],{},[1871,2889,2890],{},"Kind",[1871,2892,1876],{},[1871,2894,2895],{},"Source",[1878,2897,2898,2935,2960,2975,3001,3020,3042,3061,3076,3098,3118,3139,3163],{},[1868,2899,2900,2905,2921],{},[1883,2901,2902],{},[1908,2903,2904],{},"model_provider",[1883,2906,2907,2908,2912,2913,2917,2918],{},"A provider its model, fallbacks or ",[1893,2909,2911],{"href":2910},"\u002Fspend\u002Fmodels-and-keys\u002Faliases#name-the-model-or-ask-for-an-alias","model alias"," can resolve to, with the provider record's region, whether it keeps data after a call, whether it is the node-local provider, its base URL's host, and why the tenant's ",[1893,2914,2916],{"href":2915},"\u002Fspend\u002Fmodels-and-keys\u002Fdata-rules#data-rules","data rules"," refuse it, if they do. A provider its calls used in the last 30 days (from the metered calls) is marked ",[1908,2919,2920],{},"observed",[1883,2922,2923,1938,2926,1938,2929,1938,2932],{},[1908,2924,2925],{},"model.primary",[1908,2927,2928],{},"model.fallback",[1908,2930,2931],{},"alias:\u003Cname>",[1908,2933,2934],{},"llm_usage",[1868,2936,2937,2942,2949],{},[1883,2938,2939],{},[1908,2940,2941],{},"egress_host",[1883,2943,2944,2945,2948],{},"Hosts its sandboxed sessions may reach: the plugin's ",[1908,2946,2947],{},"egress",", the agent's own, and the tenant's (a row without an agent)",[1883,2950,2951,1938,2954,1938,2957],{},[1908,2952,2953],{},"manifest:egress",[1908,2955,2956],{},"agent:egress",[1908,2958,2959],{},"tenant:egress",[1868,2961,2962,2967,2970],{},[1883,2963,2964],{},[1908,2965,2966],{},"remote_tool",[1883,2968,2969],{},"A remote MCP server one of its tools is, by URL",[1883,2971,2972],{},[1908,2973,2974],{},"manifest:tools.url",[1868,2976,2977,2982,2993],{},[1883,2978,2979],{},[1908,2980,2981],{},"credential_host",[1883,2983,2984,2985,2988,2989,2992],{},"Hosts the platform puts a secret on: the manifest's ",[1908,2986,2987],{},"inject",", with the secret's name, and the tenant's ",[1893,2990,2991],{"href":1652},"credential bindings",", with the connection a binding serves but not the tenant secret's name. A connection's binding is listed only for the agents of plugins that declare that connection, as the edge applies it. Never a value",[1883,2994,2995,1938,2998],{},[1908,2996,2997],{},"manifest:requires.inject",[1908,2999,3000],{},"credential_binding:\u003Cid>",[1868,3002,3003,3008,3015],{},[1883,3004,3005],{},[1908,3006,3007],{},"connection_host",[1883,3009,3010,3011,3014],{},"The hosts of its plugin's ",[1893,3012,3013],{"href":1660},"connections",": their steps' and token URLs",[1883,3016,3017],{},[1908,3018,3019],{},"manifest:connections",[1868,3021,3022,3027,3034],{},[1883,3023,3024],{},[1908,3025,3026],{},"publisher",[1883,3028,3029,3030,3033],{},"Who publishes its plugin: the hub namespace, or ",[1908,3031,3032],{},"not from a hub"," with where it was installed from (a URL without its credentials)",[1883,3035,3036,1938,3039],{},[1908,3037,3038],{},"plugin:hub",[1908,3040,3041],{},"plugin:source",[1868,3043,3044,3049,3056],{},[1883,3045,3046],{},[1908,3047,3048],{},"grant",[1883,3050,3051,3052,3055],{},"The plugins its plugin's grants (",[1908,3053,3054],{},"uses:",") reach, and the plugins those reach, each with its publisher",[1883,3057,3058],{},[1908,3059,3060],{},"grant:\u003Cplugin>",[1868,3062,3063,3068,3071],{},[1883,3064,3065],{},[1908,3066,3067],{},"notification_target",[1883,3069,3070],{},"Notification rules that carry its facts: a webhook's host, a channel, or email to roles, teams or a number of people",[1883,3072,3073],{},[1908,3074,3075],{},"notification_rule:\u003Cid>",[1868,3077,3078,3083,3091],{},[1883,3079,3080],{},[1908,3081,3082],{},"outside_spend",[1883,3084,3085,3086,3090],{},"Plugins the tenant lets import ",[1893,3087,3089],{"href":3088},"\u002Fspend\u002Fcost-and-usage\u002Faccounting#outside-spend","outside spend",", and the sources it holds (rows without an agent)",[1883,3092,3093,1938,3096],{},[1908,3094,3095],{},"plugin_provides:outside-spend",[1908,3097,3082],{},[1868,3099,3100,3105,3113],{},[1883,3101,3102],{},[1908,3103,3104],{},"secret_store",[1883,3106,3107,3108,3112],{},"The ",[1893,3109,3111],{"href":3110},"\u002Fadmin\u002Fsecrets\u002Fexternal-stores#secrets-in-your-own-store","secret stores"," the tenant's edges offer it: an edge asks one for the value of a secret reference, by its path (a row without an agent)",[1883,3114,3115],{},[1908,3116,3117],{},"secret_stores",[1868,3119,3120,3125,3134],{},[1883,3121,3122],{},[1908,3123,3124],{},"inventory_reader",[1883,3126,3127,3128,3133],{},"Plugins granted ",[1893,3129,3131],{"href":3130},"\u002Fgovern\u002Finventory#plugins-that-read-the-inventory",[1908,3132,2799],{},": their calls carry the tenant's inventory, its agents' owners among it (a row without an agent)",[1883,3135,3136],{},[1908,3137,3138],{},"plugin_reads:inventory",[1868,3140,3141,3146,3159],{},[1883,3142,3143],{},[1908,3144,3145],{},"token_cloud",[1883,3147,3148,3149,1942,3152,3155,3156,3158],{},"A service or cloud that receives the platform's identity tokens for an agent's calls: the audience of a connection of kind ",[1908,3150,3151],{},"identity",[1908,3153,3154],{},"on_behalf_of",", and an ",[1908,3157,3154],{}," connection's token endpoint; the row says when the token names a person",[1883,3160,3161],{},[1908,3162,3019],{},[1868,3164,3165,3170,3181],{},[1883,3166,3167],{},[1908,3168,3169],{},"outside_agent",[1883,3171,3172,3173,3177,3178],{},"An ",[1893,3174,3176],{"href":3175},"\u002Fbuild\u002Fapps\u002Fremote-agents\u002Fa2a#outside-a2a-agents","outside A2A agent"," the agent is: its card's URL and host, which receive the job's input and the answers to its questions, the auth kind and the plugin secret it uses, and the token endpoint it gets a token from. Where the tenant's plugin settings fill in the host, the row shows the plugin's egress hosts it can be, such as ",[1908,3179,3180],{},"*.services.ai.azure.com",[1883,3182,3183,1938,3186],{},[1908,3184,3185],{},"agent:harness.card",[1908,3187,3188],{},"agent:harness.auth.token_url",[1999,3190,3192],{"className":2001,"code":3191,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory recipients --agent acme-triage\noz0 inventory recipients --format json --out recipients.json\noz0 inventory recipients --format csv --out recipients.csv\n",[1908,3193,3194,3208,3225],{"__ignoreMap":2005},[2009,3195,3196,3198,3200,3203,3206],{"class":2011,"line":2012},[2009,3197,1714],{"class":2015},[2009,3199,2019],{"class":2018},[2009,3201,3202],{"class":2018}," recipients",[2009,3204,3205],{"class":2018}," --agent",[2009,3207,2450],{"class":2018},[2009,3209,3210,3212,3214,3216,3218,3220,3222],{"class":2011,"line":2025},[2009,3211,1714],{"class":2015},[2009,3213,2019],{"class":2018},[2009,3215,3202],{"class":2018},[2009,3217,2263],{"class":2018},[2009,3219,2285],{"class":2018},[2009,3221,2269],{"class":2018},[2009,3223,3224],{"class":2018}," recipients.json\n",[2009,3226,3227,3229,3231,3233,3235,3237,3239],{"class":2011,"line":2070},[2009,3228,1714],{"class":2015},[2009,3230,2019],{"class":2018},[2009,3232,3202],{"class":2018},[2009,3234,2263],{"class":2018},[2009,3236,2266],{"class":2018},[2009,3238,2269],{"class":2018},[2009,3240,3241],{"class":2018}," recipients.csv\n",[1999,3243,3246],{"className":3244,"code":3245,"filename":2119,"language":2120,"meta":2005},[2117],"AGENT        KIND            NAME            HOST               REGION  NOTE                                   SOURCE\nacme-triage  model_provider  anthropic       api.anthropic.com  us      observed; anthropic\u002Fclaude-sonnet-4-5  model.primary\nacme-triage  model_provider  anthropic       -                  eu      declared; claude-sonnet-4-5            inventory:regions\nacme-triage  remote_tool     kb              kb.example.com     -       -                                      manifest:tools.url\nacme-triage  publisher       not from a hub  -                  -       git https:\u002F\u002Fgithub.com\u002Facme\u002Ftriage     plugin:source\nfinding region_differs: the inventory says claude-sonnet-4-5 runs in eu, and provider anthropic's record says us\n",[1908,3247,3245],{"__ignoreMap":2005},[1855,3249,3250,3251,3254,3255,3258,3259,3262],{},"The regions people record with ",[1908,3252,3253],{},"inventory set --region"," stay, as ",[1908,3256,3257],{},"declared"," rows beside the computed ones. A declared region that differs from the provider record's is a finding (",[1908,3260,3261],{},"region_differs","), not an error: fix the record or the inventory.",[1855,3264,3265,3266,3269],{},"The map is as good as the records. An installed plugin whose stored bundle cannot be read is a finding of the map (",[1908,3267,3268],{},"bundle_unreadable","): the map cannot say where that plugin's agents and flows send data until it is installed again. It does not see a plugin's own code reaching a host outside the sandbox, a remote tool's server passing data on, or a provider record with the wrong region. Agents that a flow's steps start, delegated children and colleagues appear under their own names.",[1855,3271,3272,3273,3276,3277,3280,3281,2184,3283,2132],{},"The JSON export names its format (",[1908,3274,3275],{},"oz0-recipients\u002F1",") and the row kinds; the CSV writes cells a spreadsheet would read as formulas with a leading apostrophe. The tenant's readers may see and export it, and every export is audited (",[1908,3278,3279],{},"inventory.recipients.exported","). The Inventory page shows an agent's map when you open the agent, with ",[2147,3282,2366],{},[2147,3284,2369],{},[2206,3286,3288],{"id":3287},"purposes","Purposes",[1855,3290,3291,3292,3295,3296,3299,3300,3304],{},"An agent's definition declares what its jobs are for (",[1908,3293,3294],{},"purposes: [support]",", see the ",[1893,3297,3298],{"href":1762},"agent definition","), and each start may name one; the tenant keeps its own lists of purposes and legal bases. ",[1893,3301,3303],{"href":3302},"\u002Fgovern\u002Fpersonal-data\u002Fassociate-people#purposes-and-legal-bases","Purposes and legal bases"," says what the platform checks and what it leaves to you.",[1999,3306,3308],{"className":2001,"code":3307,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory purposes\n",[1908,3309,3310],{"__ignoreMap":2005},[2009,3311,3312,3314,3316],{"class":2011,"line":2012},[2009,3313,1714],{"class":2015},[2009,3315,2019],{"class":2018},[2009,3317,3318],{"class":2018}," purposes\n",[1855,3320,3321,3322,3325,3326,3329,3330,2184,3333,3336,3337,2132],{},"lists the tenant's legal bases and purposes, every agent's declared purposes with the legal basis that holds for each, its jobs in the last 30 days and how many named no purpose, and the findings: ",[1908,3323,3324],{},"jobs_without_purpose"," (an agent that declares purposes still gets jobs without one), ",[1908,3327,3328],{},"purpose_not_listed"," (it declares a purpose the tenant's list does not have), ",[1908,3331,3332],{},"no_legal_basis",[1908,3334,3335],{},"unknown_legal_basis",". The counts are per agent and purpose, never per person. The Inventory page has the lists under ",[2147,3338,3303],{},[2206,3340,3342],{"id":3341},"assessment-fields","Assessment fields",[1855,3344,3345,3348],{},[1908,3346,3347],{},"oz0 inventory assessment"," answers, for one agent, the fields a data protection impact assessment (GDPR Art. 35(7)) and a fundamental rights impact assessment (AI Act Art. 27(1)) ask about:",[1862,3350,3351,3360],{},[1865,3352,3353],{},[1868,3354,3355,3357],{},[1871,3356,1873],{},[1871,3358,3359],{},"Filled from",[1878,3361,3362,3372,3382,3392,3402,3411,3423,3435,3448,3458,3468,3477,3487,3500],{},[1868,3363,3364,3369],{},[1883,3365,3366],{},[1908,3367,3368],{},"processing_description",[1883,3370,3371],{},"The agent's description, the inventory's purpose, its plugin and version; typed text beside them",[1868,3373,3374,3379],{},[1883,3375,3376],{},[1908,3377,3378],{},"purposes_and_legal_bases",[1883,3380,3381],{},"Its declared purposes, their legal bases and job counts",[1868,3383,3384,3389],{},[1883,3385,3386],{},[1908,3387,3388],{},"data_categories",[1883,3390,3391],{},"The inventory's data",[1868,3393,3394,3399],{},[1883,3395,3396],{},[1908,3397,3398],{},"data_subject_categories",[1883,3400,3401],{},"Typed",[1868,3403,3404,3408],{},[1883,3405,3406],{},[1908,3407,2308],{},[1883,3409,3410],{},"The recipient map",[1868,3412,3413,3417],{},[1883,3414,3415],{},[1908,3416,2544],{},[1883,3418,3419,3420],{},"The tenant's retention, its legal hold and the high-risk floor (for the tenant's admins, who alone read the retention rule; readers see where to find it), the agent's ",[1908,3421,3422],{},"keep_for",[1868,3424,3425,3433],{},[1883,3426,3427,1938,3430],{},[1908,3428,3429],{},"necessity_and_proportionality",[1908,3431,3432],{},"risks_to_rights",[1883,3434,3401],{},[1868,3436,3437,3442],{},[1883,3438,3439],{},[1908,3440,3441],{},"measures",[1883,3443,3444,3445,3447],{},"Settings: payload encryption, data subjects' keys, data rules, the tool policy, tools that need approval, ",[1908,3446,2703],{},", four eyes, works-council mode, the AI label, kill switches, egress; typed text beside them",[1868,3449,3450,3455],{},[1883,3451,3452],{},[1908,3453,3454],{},"fria_deployer_process",[1883,3456,3457],{},"The owner team and person, the routines, triggers and channel bindings that start it; typed",[1868,3459,3460,3465],{},[1883,3461,3462],{},[1908,3463,3464],{},"fria_period_and_frequency",[1883,3466,3467],{},"Its jobs in the last 30 days and its last run; typed",[1868,3469,3470,3475],{},[1883,3471,3472],{},[1908,3473,3474],{},"fria_affected_persons",[1883,3476,3401],{},[1868,3478,3479,3484],{},[1883,3480,3481],{},[1908,3482,3483],{},"fria_specific_risks",[1883,3485,3486],{},"Its risk class; typed",[1868,3488,3489,3494],{},[1883,3490,3491],{},[1908,3492,3493],{},"fria_human_oversight",[1883,3495,3496,3497,3499],{},"Approvals, ",[1908,3498,2703],{},", four eyes; typed",[1868,3501,3502,3507],{},[1883,3503,3504],{},[1908,3505,3506],{},"fria_if_risk_materialises",[1883,3508,3509],{},"Kill switches and retiring; typed",[1855,3511,3512],{},"Every filled value names its source. What the platform cannot know, an admin types:",[1999,3514,3516],{"className":2001,"code":3515,"filename":2003,"language":2004,"meta":2005,"style":2005},"oz0 inventory assessment acme-triage\noz0 inventory assessment acme-triage --set data_subject_categories=\"customers who open tickets\"\noz0 inventory assessment acme-triage --format json --out acme-triage-fields.json\n",[1908,3517,3518,3529,3552],{"__ignoreMap":2005},[2009,3519,3520,3522,3524,3527],{"class":2011,"line":2012},[2009,3521,1714],{"class":2015},[2009,3523,2019],{"class":2018},[2009,3525,3526],{"class":2018}," assessment",[2009,3528,2450],{"class":2018},[2009,3530,3531,3533,3535,3537,3539,3542,3545,3547,3550],{"class":2011,"line":2025},[2009,3532,1714],{"class":2015},[2009,3534,2019],{"class":2018},[2009,3536,3526],{"class":2018},[2009,3538,2038],{"class":2018},[2009,3540,3541],{"class":2018}," --set",[2009,3543,3544],{"class":2018}," data_subject_categories=",[2009,3546,2063],{"class":2056},[2009,3548,3549],{"class":2018},"customers who open tickets",[2009,3551,2436],{"class":2056},[2009,3553,3554,3556,3558,3560,3562,3564,3566,3568],{"class":2011,"line":2070},[2009,3555,1714],{"class":2015},[2009,3557,2019],{"class":2018},[2009,3559,3526],{"class":2018},[2009,3561,2038],{"class":2018},[2009,3563,2263],{"class":2018},[2009,3565,2285],{"class":2018},[2009,3567,2269],{"class":2018},[2009,3569,3570],{"class":2018}," acme-triage-fields.json\n",[1855,3572,3573,3574,3577,3578,3581,3582,3585],{},"A typed field holds at most 4,000 characters; an empty text clears it, and each change is audited (",[1908,3575,3576],{},"inventory.assessment.set","). The JSON export (",[1908,3579,3580],{},"oz0-assessment-fields\u002F1",") is audited too (",[1908,3583,3584],{},"inventory.assessment.exported","). These are fields and their sources, for the assessment you write with them: the platform generates no assessment or report, and says nothing about whether one is enough.",[3587,3588,3589],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":2005,"searchDepth":2025,"depth":2025,"links":3591},[3592,3593,3594,3595,3596,3600,3601,3602,3603,3604,3605],{"id":2158,"depth":2070,"text":2159},{"id":2208,"depth":2025,"text":2209},{"id":2239,"depth":2025,"text":2240},{"id":2372,"depth":2025,"text":2373},{"id":2403,"depth":2025,"text":2404,"children":3597},[3598,3599],{"id":2519,"depth":2070,"text":2520},{"id":2548,"depth":2070,"text":2549},{"id":2612,"depth":2025,"text":2613},{"id":2748,"depth":2025,"text":2749},{"id":2789,"depth":2025,"text":2790},{"id":2874,"depth":2025,"text":2875},{"id":3287,"depth":2025,"text":3288},{"id":3341,"depth":2025,"text":3342},"Every agent and tool with its owner team and person, purpose, risk class, models and their regions, the data it handles, where its data goes, its DPIA and FRIA fields, a report export, and retired items.","md",null,{"audience":3610,"doc_type":3611},"tenant admins and governance reviewers","how-to",{"icon":213},{"title":1181,"description":3606},"d-YhK6s-Oj-x-2A0WCvgb4vKQfg72P5geQSd7fRUAxs",[3616,3618],{"title":1176,"path":1177,"stem":1178,"description":3617,"icon":1179,"children":-1},"Keep one record of an incident, with the jobs, audit entries, kill switches and egress denials that tell what happened, deadline clocks for the regimes you say apply, reminders before each deadline, and a timeline that verifies offline.",{"title":1185,"path":1186,"stem":1187,"description":3619,"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.",1794442947181]