[{"data":1,"prerenderedAt":537},["ShallowReactive",2],{"navigation_docs":3,"-guide-codebase-dependencies":168,"-guide-codebase-dependencies-surround":532},[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":98,"body":170,"description":216,"extension":526,"links":527,"meta":528,"navigation":529,"path":99,"seo":530,"stem":100,"__hash__":531},"docs\u002F1.guide\u002F5.codebase\u002F2.dependencies.md",{"type":171,"value":172,"toc":519},"minimark",[173,178,207,210,285,298,302,307,339,363,367,376,399,411,435,439,447,473,494,498,515],[174,175,177],"h2",{"id":176},"aube-with-pnpms-lockfile","aube, with pnpm's lockfile",[179,180,181,182,189,190,194,195,198,199,202,203,206],"p",{},"Agent Zero uses ",[183,184,188],"a",{"href":185,"rel":186},"https:\u002F\u002Faube.jdx.dev",[187],"nofollow","aube"," as its package manager, pinned through the ",[191,192,193],"code",{},"packageManager"," field in the root ",[191,196,197],{},"package.json",". aube reads and writes the existing ",[191,200,201],{},"pnpm-lock.yaml"," and ",[191,204,205],{},"pnpm-workspace.yaml"," in place, so the lockfile stays in pnpm's v9 format for anyone who still runs pnpm.",[179,208,209],{},"Do not use npm, Yarn, Bun, or another package manager in this repository, and do not add a second lockfile.",[211,212,217],"pre",{"className":213,"code":214,"language":215,"meta":216,"style":216},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","aube ci                                  # clean install from the lockfile\naube install                             # install, updating the lockfile if needed\naube add -F @agent-zero\u002Frunner destr     # add a dependency to one workspace\naube add -D -w oxfmt                     # add a root dev dependency\n","bash","",[191,218,219,235,246,266],{"__ignoreMap":216},[220,221,224,227,231],"span",{"class":222,"line":223},"line",1,[220,225,188],{"class":226},"sBMFI",[220,228,230],{"class":229},"sfazB"," ci",[220,232,234],{"class":233},"sHwdD","                                  # clean install from the lockfile\n",[220,236,238,240,243],{"class":222,"line":237},2,[220,239,188],{"class":226},[220,241,242],{"class":229}," install",[220,244,245],{"class":233},"                             # install, updating the lockfile if needed\n",[220,247,249,251,254,257,260,263],{"class":222,"line":248},3,[220,250,188],{"class":226},[220,252,253],{"class":229}," add",[220,255,256],{"class":229}," -F",[220,258,259],{"class":229}," @agent-zero\u002Frunner",[220,261,262],{"class":229}," destr",[220,264,265],{"class":233},"     # add a dependency to one workspace\n",[220,267,269,271,273,276,279,282],{"class":222,"line":268},4,[220,270,188],{"class":226},[220,272,253],{"class":229},[220,274,275],{"class":229}," -D",[220,277,278],{"class":229}," -w",[220,280,281],{"class":229}," oxfmt",[220,283,284],{"class":233},"                     # add a root dev dependency\n",[179,286,287,202,290,293,294,297],{},[191,288,289],{},"aube run \u003Cscript>",[191,291,292],{},"aube test"," check install freshness first and install only when ",[191,295,296],{},"node_modules"," is stale, so a separate install step is rarely needed.",[174,299,301],{"id":300},"workspaces","Workspaces",[179,303,304,306],{},[191,305,205],{}," declares two workspace globs:",[211,308,312],{"className":309,"code":310,"language":311,"meta":216,"style":216},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","packages:\n  - apps\u002F*\n  - packages\u002F*\n","yaml",[191,313,314,324,332],{"__ignoreMap":216},[220,315,316,320],{"class":222,"line":223},[220,317,319],{"class":318},"swJcz","packages",[220,321,323],{"class":322},"sMK4o",":\n",[220,325,326,329],{"class":222,"line":237},[220,327,328],{"class":322},"  -",[220,330,331],{"class":229}," apps\u002F*\n",[220,333,334,336],{"class":222,"line":248},[220,335,328],{"class":322},[220,337,338],{"class":229}," packages\u002F*\n",[179,340,341,342,344,345,348,349,348,352,348,355,358,359,362],{},"Any directory added under either glob with a ",[191,343,197],{}," becomes a workspace automatically. Turborepo picks up its ",[191,346,347],{},"build",", ",[191,350,351],{},"dev",[191,353,354],{},"lint",[191,356,357],{},"test",", and ",[191,360,361],{},"typecheck"," scripts when they exist; packages without a given script are skipped, not failed.",[174,364,366],{"id":365},"the-typescript-override","The TypeScript override",[179,368,369,371,372,375],{},[191,370,205],{}," overrides ",[191,373,374],{},"typescript"," repo-wide:",[211,377,379],{"className":309,"code":378,"language":311,"meta":216,"style":216},"overrides:\n  typescript: npm:typescript-native-bridge@6.0.3-bridge.12.tsgo.7.0.2\n",[191,380,381,388],{"__ignoreMap":216},[220,382,383,386],{"class":222,"line":223},[220,384,385],{"class":318},"overrides",[220,387,323],{"class":322},[220,389,390,393,396],{"class":222,"line":237},[220,391,392],{"class":318},"  typescript",[220,394,395],{"class":322},":",[220,397,398],{"class":229}," npm:typescript-native-bridge@6.0.3-bridge.12.tsgo.7.0.2\n",[179,400,401,406,407,410],{},[183,402,405],{"href":403,"rel":404},"https:\u002F\u002Fgithub.com\u002Fjohnsoncodehk\u002Ftypescript-native-bridge",[187],"typescript-native-bridge"," is a drop-in fork whose checker runs on tsgo in-process, so ",[191,408,409],{},"tsc"," and every Compiler API consumer type-check natively. Two rules follow:",[412,413,414,422],"ul",{},[415,416,417,421],"li",{},[418,419,420],"strong",{},"Keep the pin exact."," The fork only publishes prerelease versions, which caret ranges never match.",[415,423,424,427,428,430,431,434],{},[418,425,426],{},"Reinstall after changing it."," ",[191,429,409],{}," prints ",[191,432,433],{},"TNB ACTIVE"," to stderr on the first type-check in a process; no banner means stock TypeScript is loaded and the install is stale.",[174,436,438],{"id":437},"the-nuxtschema-override","The @nuxt\u002Fschema override",[179,440,441,443,444,395],{},[191,442,205],{}," also pins ",[191,445,446],{},"@nuxt\u002Fschema",[211,448,450],{"className":309,"code":449,"language":311,"meta":216,"style":216},"overrides:\n  '@nuxt\u002Fschema': npm:@nuxt\u002Fschema@4.5.2\n",[191,451,452,458],{"__ignoreMap":216},[220,453,454,456],{"class":222,"line":223},[220,455,385],{"class":318},[220,457,323],{"class":322},[220,459,460,463,465,468,470],{"class":222,"line":237},[220,461,462],{"class":322},"  '",[220,464,446],{"class":229},[220,466,467],{"class":322},"'",[220,469,395],{"class":322},[220,471,472],{"class":229}," npm:@nuxt\u002Fschema@4.5.2\n",[179,474,475,478,479,481,482,485,486,489,490,493],{},[191,476,477],{},"@redstardev\u002Funplugin-version-injector"," pulls in an older ",[191,480,446],{}," than the ",[191,483,484],{},"nuxt@4.5.2"," the workspace actually runs. Two instances of the package mean two nominally different ",[191,487,488],{},"DefineNuxtConfig"," types, so wherever the older one wins resolution, ",[191,491,492],{},"defineNuxtConfig(...)"," type-checks as \"not callable\". The override forces every consumer onto the one Nuxt version already in use.",[174,495,497],{"id":496},"build-scripts","Build scripts",[179,499,500,503,504,506,507,510,511,514],{},[191,501,502],{},"onlyBuiltDependencies"," in ",[191,505,205],{}," allow-lists the dependencies whose lifecycle scripts may run (currently only ",[191,508,509],{},"esbuild","). Everything else installs without executing scripts, which keeps ",[191,512,513],{},"aube ci"," deterministic and safe.",[516,517,518],"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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":216,"searchDepth":237,"depth":237,"links":520},[521,522,523,524,525],{"id":176,"depth":237,"text":177},{"id":300,"depth":237,"text":301},{"id":365,"depth":237,"text":366},{"id":437,"depth":237,"text":438},{"id":496,"depth":237,"text":497},"md",null,{},true,{"title":98,"description":216},"IV4agJe18QLc5PUXsUcvd_MQbYIoUTjXIlW_8bObXuU",[533,535],{"title":94,"path":95,"stem":96,"description":534,"children":-1},"Agent Zero is a dependency-directed monorepo managed with Turborepo and aube. Workspaces live under apps\u002F* and packages\u002F* (declared in pnpm-workspace.yaml).",{"title":102,"path":103,"stem":104,"description":536,"children":-1},"Oxfmt owns formatting and Oxlint owns linting. ESLint and Prettier are deliberately absent — do not add them.",1787482153846]