[{"data":1,"prerenderedAt":429},["ShallowReactive",2],{"navigation_docs":3,"-guide-api-overview":168,"-guide-api-overview-surround":424},[4,146],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":36},"Guide","i-lucide-book-open","\u002Fguide","1.guide",[10,14,37,55,59,63,67,71,75,79,83,87,109,134,138,142],{"title":11,"path":12,"stem":13},"What is Agent Zero?","\u002Fguide\u002Fintroduction","1.guide\u002F1.introduction",{"title":15,"icon":16,"path":17,"stem":18,"children":19,"page":36},"API","i-lucide-plug","\u002Fguide\u002Fapi","1.guide\u002F10.api",[20,24,28,32],{"title":21,"path":22,"stem":23},"API overview","\u002Fguide\u002Fapi\u002Foverview","1.guide\u002F10.api\u002F1.overview",{"title":25,"path":26,"stem":27},"Define endpoints","\u002Fguide\u002Fapi\u002Fdefine-endpoints","1.guide\u002F10.api\u002F2.define-endpoints",{"title":29,"path":30,"stem":31},"Use the API from a client","\u002Fguide\u002Fapi\u002Fuse-from-client","1.guide\u002F10.api\u002F3.use-from-client",{"title":33,"path":34,"stem":35},"Protect endpoints","\u002Fguide\u002Fapi\u002Fprotect-endpoints","1.guide\u002F10.api\u002F4.protect-endpoints",false,{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":36},"Authentication","i-lucide-lock","\u002Fguide\u002Fauthentication","1.guide\u002F11.authentication",[43,47,51],{"title":44,"path":45,"stem":46},"Authentication overview","\u002Fguide\u002Fauthentication\u002Foverview","1.guide\u002F11.authentication\u002F1.overview",{"title":48,"path":49,"stem":50},"GitHub OAuth","\u002Fguide\u002Fauthentication\u002Foauth","1.guide\u002F11.authentication\u002F2.oauth",{"title":52,"path":53,"stem":54},"Permissions","\u002Fguide\u002Fauthentication\u002Fpermissions","1.guide\u002F11.authentication\u002F3.permissions",{"title":56,"path":57,"stem":58},"Organizations","\u002Fguide\u002Forganizations","1.guide\u002F12.organizations",{"title":60,"path":61,"stem":62},"Frontend","\u002Fguide\u002Ffrontend","1.guide\u002F13.frontend",{"title":64,"path":65,"stem":66},"Mails","\u002Fguide\u002Fmails","1.guide\u002F14.mails",{"title":68,"path":69,"stem":70},"Internationalization","\u002Fguide\u002Finternationalization","1.guide\u002F15.internationalization",{"title":72,"path":73,"stem":74},"Deployment","\u002Fguide\u002Fdeployment","1.guide\u002F16.deployment",{"title":76,"path":77,"stem":78},"Tech stack","\u002Fguide\u002Ftech-stack","1.guide\u002F2.tech-stack",{"title":80,"path":81,"stem":82},"Installation","\u002Fguide\u002Finstallation","1.guide\u002F3.installation",{"title":84,"path":85,"stem":86},"Environment variables","\u002Fguide\u002Fenvironment-variables","1.guide\u002F4.environment-variables",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":36},"Codebase","i-lucide-folder-tree","\u002Fguide\u002Fcodebase","1.guide\u002F5.codebase",[93,97,101,105],{"title":94,"path":95,"stem":96},"Codebase structure","\u002Fguide\u002Fcodebase\u002Fstructure","1.guide\u002F5.codebase\u002F1.structure",{"title":98,"path":99,"stem":100},"Dependencies","\u002Fguide\u002Fcodebase\u002Fdependencies","1.guide\u002F5.codebase\u002F2.dependencies",{"title":102,"path":103,"stem":104},"Formatting and linting","\u002Fguide\u002Fcodebase\u002Fformatting-linting","1.guide\u002F5.codebase\u002F3.formatting-linting",{"title":106,"path":107,"stem":108},"Agent Skills","\u002Fguide\u002Fcodebase\u002Fagent-skills","1.guide\u002F5.codebase\u002F4.agent-skills",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":36},"Architecture","i-lucide-layers","\u002Fguide\u002Farchitecture","1.guide\u002F6.architecture",[115,118,122,126,130],{"title":110,"path":116,"stem":117},"\u002Fguide\u002Farchitecture\u002Foverview","1.guide\u002F6.architecture\u002F1.overview",{"title":119,"path":120,"stem":121},"State machine","\u002Fguide\u002Farchitecture\u002Fstate-machine","1.guide\u002F6.architecture\u002F2.state-machine",{"title":123,"path":124,"stem":125},"Execution boundary","\u002Fguide\u002Farchitecture\u002Fexecution-boundary","1.guide\u002F6.architecture\u002F3.execution-boundary",{"title":127,"path":128,"stem":129},"Issue-to-PR workflow","\u002Fguide\u002Farchitecture\u002Fissue-to-pr","1.guide\u002F6.architecture\u002F4.issue-to-pr",{"title":131,"path":132,"stem":133},"Adding a capability","\u002Fguide\u002Farchitecture\u002Fadding-a-capability","1.guide\u002F6.architecture\u002F5.adding-a-capability",{"title":135,"path":136,"stem":137},"Repository policy","\u002Fguide\u002Fconfiguration","1.guide\u002F7.configuration",{"title":139,"path":140,"stem":141},"Safety model","\u002Fguide\u002Fsafety","1.guide\u002F8.safety",{"title":143,"path":144,"stem":145},"Database","\u002Fguide\u002Fdatabase","1.guide\u002F9.database",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":36},"Reference","i-lucide-book-marked","\u002Freference","2.reference",[152,156,160,164],{"title":153,"path":154,"stem":155},"CLI","\u002Freference\u002Fcli","2.reference\u002F1.cli",{"title":157,"path":158,"stem":159},"Model providers","\u002Freference\u002Fmodel-providers","2.reference\u002F2.model-providers",{"title":161,"path":162,"stem":163},"Source-control providers","\u002Freference\u002Fsource-control-providers","2.reference\u002F3.source-control-providers",{"title":165,"path":166,"stem":167},"Sandbox providers","\u002Freference\u002Fsandbox-providers","2.reference\u002F4.sandbox-providers",{"id":169,"title":21,"body":170,"description":417,"extension":418,"links":419,"meta":420,"navigation":421,"path":22,"seo":422,"stem":23,"__hash__":423},"docs\u002F1.guide\u002F10.api\u002F1.overview.md",{"type":171,"value":172,"toc":410},"minimark",[173,186,260,265,288,301,305,310,314],[174,175,176,177,181,182,185],"p",{},"Agent Zero exposes one typed router — ",[178,179,180],"code",{},"rpcRouter"," from ",[178,183,184],{},"packages\u002Fapi"," — served over two wire protocols by the dashboard's Nitro server. Authorization behaves identically either way, because both transports serve the exact same procedures.",[187,188,189,202],"table",{},[190,191,192],"thead",{},[193,194,195,199],"tr",{},[196,197,198],"th",{},"Surface",[196,200,201],{},"Purpose",[203,204,205,229,246],"tbody",{},[193,206,207,213],{},[208,209,210],"td",{},[178,211,212],{},"\u002Frpc\u002F**",[208,214,215,216,219,220,219,223,219,226],{},"Typed oRPC router: ",[178,217,218],{},"health",", ",[178,221,222],{},"dashboard.overview",[178,224,225],{},"tasks.list\u002Fget\u002Fcreate",[178,227,228],{},"approvals.decide",[193,230,231,236],{},[208,232,233],{},[178,234,235],{},"\u002Fapi\u002Fv1\u002F**",[208,237,238,239,242,243],{},"The same router over OpenAPI\u002FREST; interactive docs at ",[178,240,241],{},"\u002Fapi\u002Fv1\u002Fdocs",", spec at ",[178,244,245],{},"\u002Fapi\u002Fv1\u002Fopenapi.json",[193,247,248,253],{},[208,249,250],{},[178,251,252],{},"\u002Fapi\u002Fauth\u002F**",[208,254,255,256,259],{},"The Better Auth handler (see ",[257,258,38],"a",{"href":45},")",[261,262,264],"h2",{"id":263},"the-api-package","The API package",[174,266,267,269,270,219,273,219,276,279,280,283,284,287],{},[178,268,184],{}," is the library the dashboard's server reads from: it composes the agent runtime, source-control adapter, model abstraction, and config into the typed oRPC router and a control-plane operations layer (",[178,271,272],{},"runTask",[178,274,275],{},"TaskScheduler",[178,277,278],{},"TaskStore","). It holds no HTTP host of its own and does not depend on ",[178,281,282],{},"packages\u002Fauth"," — ",[178,285,286],{},"apps\u002Fdashboard\u002Fserver\u002F"," is the only place that constructs a transport handler from it.",[174,289,290,291,297,298,300],{},"Procedures validate at the boundary with ",[257,292,296],{"href":293,"rel":294},"https:\u002F\u002Fzod.dev",[295],"nofollow","Zod"," and then delegate; they never invoke a shell or touch a checkout, because ",[178,299,272],{}," is the only place that resolves policy and constructs a runner.",[261,302,304],{"id":303},"scheduling","Scheduling",[174,306,307,309],{},[178,308,275],{}," bounds work globally and per repository, so a burst queues instead of fanning out unbounded runs, and rejects work once the queue is exhausted rather than growing without limit.",[261,311,313],{"id":312},"where-things-live","Where things live",[187,315,316,326],{},[190,317,318],{},[193,319,320,323],{},[196,321,322],{},"Concern",[196,324,325],{},"Location",[203,327,328,338,348,358,368,378,388,400],{},[193,329,330,333],{},[208,331,332],{},"Router and procedures",[208,334,335],{},[178,336,337],{},"packages\u002Fapi\u002Fsrc\u002Forpc\u002Frouter.ts",[193,339,340,343],{},[208,341,342],{},"Request logging",[208,344,345],{},[178,346,347],{},"packages\u002Fapi\u002Fsrc\u002Forpc\u002Flogging.ts",[193,349,350,353],{},[208,351,352],{},"Control-plane operations",[208,354,355],{},[178,356,357],{},"packages\u002Fapi\u002Fsrc\u002Fcontrol-plane.ts",[193,359,360,363],{},[208,361,362],{},"Access rules",[208,364,365],{},[178,366,367],{},"packages\u002Fapi\u002Fsrc\u002Faccess.ts",[193,369,370,373],{},[208,371,372],{},"RPC transport route",[208,374,375],{},[178,376,377],{},"apps\u002Fdashboard\u002Fserver\u002Froutes\u002Frpc\u002F[...].ts",[193,379,380,383],{},[208,381,382],{},"OpenAPI transport route",[208,384,385],{},[178,386,387],{},"apps\u002Fdashboard\u002Fserver\u002Fapi\u002Fv1\u002F[...].ts",[193,389,390,393],{},[208,391,392],{},"Aggregate dashboard view",[208,394,395,397,398,259],{},[178,396,337],{}," (",[178,399,222],{},[193,401,402,405],{},[208,403,404],{},"GitHub webhook ingress",[208,406,407],{},[178,408,409],{},"apps\u002Fdashboard\u002Fserver\u002Froutes\u002Fwebhooks\u002Fgithub.post.ts",{"title":411,"searchDepth":412,"depth":412,"links":413},"",2,[414,415,416],{"id":263,"depth":412,"text":264},{"id":303,"depth":412,"text":304},{"id":312,"depth":412,"text":313},"Agent Zero exposes one typed router — rpcRouter from packages\u002Fapi — served over two wire protocols by the dashboard's Nitro server. Authorization behaves identically either way, because both transports serve the exact same procedures.","md",null,{},true,{"title":21,"description":417},"dd7K19kst5iVlyTL0_M_vDhEuL77ch2Xrusp2kis_I4",[425,427],{"title":11,"path":12,"stem":13,"description":426,"children":-1},"Agent Zero is an open-source autonomous engineer that finds, fixes, and verifies problems in pull requests.",{"title":25,"path":26,"stem":27,"description":428,"children":-1},"Procedures are defined once in packages\u002Fapi\u002Fsrc\u002Forpc\u002Frouter.ts and served over both transports automatically. Before changing routes, read the orpc-server Agent Skill.",1787482153259]