[{"data":1,"prerenderedAt":1832},["ShallowReactive",2],{"navigation_docs":3,"-examples-manager-agent-with-subagents":125,"-examples-manager-agent-with-subagents-surround":1827},[4,26,49,81,105,117],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fgetting-started","docs",[9,13,17,21],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Installation","\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":18,"path":19,"stem":20},"Quick Start","\u002Fgetting-started\u002Fquick-start","docs\u002F1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","docs\u002F1.getting-started\u002F4.agent-skills",false,{"title":27,"path":28,"stem":7,"children":29,"page":25},"Frameworks","\u002Fframeworks",[30,35,40,44],{"title":31,"path":32,"stem":33,"icon":34},"eve extension","\u002Fframeworks\u002Feve-extension","docs\u002F2.frameworks\u002F1.eve-extension","i-custom:eve",{"title":36,"path":37,"stem":38,"icon":39},"AI SDK","\u002Fframeworks\u002Fai-sdk","docs\u002F2.frameworks\u002F2.ai-sdk","i-simple-icons-vercel",{"title":41,"path":42,"stem":43,"icon":39},"Vercel Workflow","\u002Fframeworks\u002Fvercel-workflow","docs\u002F2.frameworks\u002F3.vercel-workflow",{"title":45,"path":46,"stem":47,"icon":48},"Chat SDK","\u002Fframeworks\u002Fchat-sdk","docs\u002F2.frameworks\u002F4.chat-sdk","i-lucide-message-square",{"title":50,"path":51,"stem":7,"children":52,"page":25},"Examples","\u002Fexamples",[53,57,61,65,69,73,77],{"title":54,"path":55,"stem":56},"Overview","\u002Fexamples\u002Foverview","docs\u002F3.examples\u002F1.overview",{"title":58,"path":59,"stem":60,"icon":34},"Stale issue triager","\u002Fexamples\u002Feve-stale-issue-triager","docs\u002F3.examples\u002F2.eve-stale-issue-triager",{"title":62,"path":63,"stem":64,"icon":39},"Release notes generator","\u002Fexamples\u002Fai-sdk-release-notes-generator","docs\u002F3.examples\u002F3.ai-sdk-release-notes-generator",{"title":66,"path":67,"stem":68,"icon":39},"CI failure bot","\u002Fexamples\u002Fvercel-workflow-ci-failure-bot","docs\u002F3.examples\u002F4.vercel-workflow-ci-failure-bot",{"title":70,"path":71,"stem":72,"icon":48},"Issue triage bot","\u002Fexamples\u002Fchat-sdk-issue-triage-bot","docs\u002F3.examples\u002F5.chat-sdk-issue-triage-bot",{"title":74,"path":75,"stem":76,"icon":34},"Manager & sub-agents","\u002Fexamples\u002Fmanager-agent-with-subagents","docs\u002F3.examples\u002F6.manager-agent-with-subagents",{"title":78,"path":79,"stem":80},"Recipes","\u002Fexamples\u002Frecipes","docs\u002F3.examples\u002F7.recipes",{"title":82,"path":83,"stem":7,"children":84,"page":25},"Guide","\u002Fguide",[85,89,93,97,101],{"title":86,"path":87,"stem":88},"Scope with Presets","\u002Fguide\u002Fpresets","docs\u002F4.guide\u002F1.presets",{"title":90,"path":91,"stem":92},"Control Write Safety","\u002Fguide\u002Fapproval-control","docs\u002F4.guide\u002F2.approval-control",{"title":94,"path":95,"stem":96},"Commit Attribution","\u002Fguide\u002Fcommit-attribution","docs\u002F4.guide\u002F3.commit-attribution",{"title":98,"path":99,"stem":100},"Tokens & Auth","\u002Fguide\u002Ftokens-and-auth","docs\u002F4.guide\u002F4.tokens-and-auth",{"title":102,"path":103,"stem":104},"Vercel Connect","\u002Fguide\u002Fvercel-connect","docs\u002F4.guide\u002F5.vercel-connect",{"title":106,"path":107,"stem":7,"children":108,"page":25},"Api","\u002Fapi",[109,113],{"title":110,"path":111,"stem":112},"Tools Catalog","\u002Fapi\u002Ftools-catalog","docs\u002F5.api\u002F1.tools-catalog",{"title":114,"path":115,"stem":116},"API Reference","\u002Fapi\u002Freference","docs\u002F5.api\u002F2.reference",{"title":118,"path":119,"stem":7,"children":120,"page":25},"Deprecated","\u002Fdeprecated",[121],{"title":122,"path":123,"stem":124,"icon":34},"eve (direct import)","\u002Fdeprecated\u002Feve","docs\u002F6.deprecated\u002F1.eve",{"id":126,"title":127,"body":128,"description":1810,"extension":274,"links":1811,"meta":1822,"navigation":1823,"path":75,"seo":1824,"stem":76,"__hash__":1826},"docs\u002Fdocs\u002F3.examples\u002F6.manager-agent-with-subagents.md","Example: a manager agent with scoped sub-agents",{"type":129,"value":130,"toc":1798},"minimark",[131,163,180,185,202,244,248,258,262,269,347,432,436,457,533,610,614,630,705,804,808,829,904,975,979,1062,1087,1102,1106,1123,1132,1144,1148,1166,1757,1765,1769,1794],[132,133,136,140],"prompt",{":actions":134,"description":135,"icon":34},"[\"copy\",\"cursor\",\"windsurf\"]","Build a manager agent with scoped sub-agents",[137,138,139],"p",{},"Build an eve manager agent that delegates GitHub work to specialist sub-agents instead of holding every tool itself.",[141,142,143,147,150,153],"ul",{},[144,145,146],"li",{},"Declare agent\u002Fsubagents\u002Freviewer, agent\u002Fsubagents\u002Ftriager, and agent\u002Fsubagents\u002Freleaser, each with its own agent.ts (description required), instructions.md, and extensions\u002Fgithub.ts",[144,148,149],{},"Mount @github-tools\u002Feve-extension in each subagent's extensions\u002Fgithub.ts with a single preset: code-review, issue-triage, or release-manager, and a Vercel Connect connector",[144,151,152],{},"Give the root agent instructions describing when to call each sub-agent by name; give the root no GitHub extension of its own",[144,154,155,156,162],{},"Use ",[157,158,159],"a",{"href":159,"rel":160},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fsubagents",[161],"nofollow"," as the source of truth for the subagent contract (message, outputSchema, isolation boundary)",[137,164,165,166,170,171,174,175,179],{},"Instead of one agent holding all 53 tools, this manager holds none. It reads the request, picks the right specialist, and calls it. Each specialist is a normal ",[167,168,169],"code",{},"@github-tools\u002Feve-extension"," mount scoped to a single ",[157,172,173],{"href":87},"preset",", isolated in its own ",[157,176,178],{"href":159,"rel":177},[161],"declared subagent"," directory with its own tools, instructions, and approval policy.",[181,182,184],"h2",{"id":183},"why-declared-subagents","Why declared subagents",[137,186,187,188,191,192,196,197,201],{},"eve ships two ways to delegate: the built-in ",[167,189,190],{},"agent"," tool (spins up a fresh copy of the ",[193,194,195],"em",{},"same"," agent) and ",[198,199,200],"strong",{},"declared subagents"," (specialists with their own directory, tools, and prompt). A manager that routes between a reviewer, a triager, and a release manager needs the second kind, three different roles with three different tool surfaces, not three copies of the same agent.",[137,203,204,205,208,209,212,213,216,217,223,224,227,228,231,232,235,236,239,240,243],{},"A declared subagent under ",[167,206,207],{},"agent\u002Fsubagents\u002F\u003Cid>\u002F"," is compiled as its own agent root: its own ",[167,210,211],{},"instructions.md",", its own ",[167,214,215],{},"extensions\u002F",", nothing inherited from the parent except the root-only ",[157,218,221],{"href":219,"rel":220},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fsubagents#the-built-in-agent-tool",[161],[167,222,190],{}," and ",[167,225,226],{},"Workflow"," tools, which subagents never receive anyway. eve exposes each declared subagent to the parent as a tool with the shape ",[167,229,230],{},"{ message: string, outputSchema?: object }",", named after its directory, no namespace prefix. That is the mechanism this example uses: ",[167,233,234],{},"reviewer",", ",[167,237,238],{},"triager",", and ",[167,241,242],{},"releaser"," become three plain tool calls the manager's model can make.",[181,245,247],{"id":246},"file-tree","File tree",[249,250,256],"pre",{"className":251,"code":253,"language":254,"meta":255},[252],"language-text","agent\u002F\n├── agent.ts                          # manager: no GitHub extension of its own\n├── instructions.md                   # routing logic\n└── subagents\u002F\n    ├── reviewer\u002F\n    │   ├── agent.ts                  # description required\n    │   ├── instructions.md\n    │   └── extensions\u002F\n    │       └── github.ts             # preset: 'code-review'\n    ├── triager\u002F\n    │   ├── agent.ts\n    │   ├── instructions.md\n    │   └── extensions\u002F\n    │       └── github.ts             # preset: 'issue-triage'\n    └── releaser\u002F\n        ├── agent.ts\n        ├── instructions.md\n        └── extensions\u002F\n            └── github.ts             # preset: 'release-manager'\n","text","",[167,257,253],{"__ignoreMap":255},[181,259,261],{"id":260},"the-manager","The manager",[137,263,264,265,268],{},"The root agent has no ",[167,266,267],{},"extensions\u002Fgithub.ts"," of its own. It only knows how to route:",[249,270,275],{"className":271,"code":272,"filename":273,"language":274,"meta":255,"style":255},"language-md shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","You are the GitHub manager for this repository. You never call GitHub tools directly,\nyou only have three specialists available as tools: reviewer, triager, and releaser.\n\nRouting rules:\n- Pull request review, diffs, or code quality questions: call reviewer\n- Issue classification, labeling, or backlog questions: call triager\n- Changelogs, release notes, or \"what changed since the last release\": call releaser\n- If a request spans more than one specialist, call each in turn and combine their answers\n- Pass each specialist everything it needs in the message, it never sees this conversation\n","agent\u002Finstructions.md","md",[167,276,277,286,292,299,305,315,323,331,339],{"__ignoreMap":255},[278,279,282],"span",{"class":280,"line":281},"line",1,[278,283,285],{"class":284},"sTEyZ","You are the GitHub manager for this repository. You never call GitHub tools directly,\n",[278,287,289],{"class":280,"line":288},2,[278,290,291],{"class":284},"you only have three specialists available as tools: reviewer, triager, and releaser.\n",[278,293,295],{"class":280,"line":294},3,[278,296,298],{"emptyLinePlaceholder":297},true,"\n",[278,300,302],{"class":280,"line":301},4,[278,303,304],{"class":284},"Routing rules:\n",[278,306,308,312],{"class":280,"line":307},5,[278,309,311],{"class":310},"sMK4o","-",[278,313,314],{"class":284}," Pull request review, diffs, or code quality questions: call reviewer\n",[278,316,318,320],{"class":280,"line":317},6,[278,319,311],{"class":310},[278,321,322],{"class":284}," Issue classification, labeling, or backlog questions: call triager\n",[278,324,326,328],{"class":280,"line":325},7,[278,327,311],{"class":310},[278,329,330],{"class":284}," Changelogs, release notes, or \"what changed since the last release\": call releaser\n",[278,332,334,336],{"class":280,"line":333},8,[278,335,311],{"class":310},[278,337,338],{"class":284}," If a request spans more than one specialist, call each in turn and combine their answers\n",[278,340,342,344],{"class":280,"line":341},9,[278,343,311],{"class":310},[278,345,346],{"class":284}," Pass each specialist everything it needs in the message, it never sees this conversation\n",[249,348,353],{"className":349,"code":350,"filename":351,"language":352,"meta":255,"style":255},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineAgent } from 'eve'\n\nexport default defineAgent({\n  model: 'anthropic\u002Fclaude-sonnet-5',\n})\n","agent\u002Fagent.ts","ts",[167,354,355,383,387,404,424],{"__ignoreMap":255},[278,356,357,361,364,367,370,373,376,380],{"class":280,"line":281},[278,358,360],{"class":359},"s7zQu","import",[278,362,363],{"class":310}," {",[278,365,366],{"class":284}," defineAgent",[278,368,369],{"class":310}," }",[278,371,372],{"class":359}," from",[278,374,375],{"class":310}," '",[278,377,379],{"class":378},"sfazB","eve",[278,381,382],{"class":310},"'\n",[278,384,385],{"class":280,"line":288},[278,386,298],{"emptyLinePlaceholder":297},[278,388,389,392,395,398,401],{"class":280,"line":294},[278,390,391],{"class":359},"export",[278,393,394],{"class":359}," default",[278,396,366],{"class":397},"s2Zo4",[278,399,400],{"class":284},"(",[278,402,403],{"class":310},"{\n",[278,405,406,410,413,415,418,421],{"class":280,"line":301},[278,407,409],{"class":408},"swJcz","  model",[278,411,412],{"class":310},":",[278,414,375],{"class":310},[278,416,417],{"class":378},"anthropic\u002Fclaude-sonnet-5",[278,419,420],{"class":310},"'",[278,422,423],{"class":310},",\n",[278,425,426,429],{"class":280,"line":307},[278,427,428],{"class":310},"}",[278,430,431],{"class":284},")\n",[181,433,435],{"id":434},"the-reviewer-sub-agent","The reviewer sub-agent",[249,437,440],{"className":271,"code":438,"filename":439,"language":274,"meta":255,"style":255},"You are a code review specialist. Read the PR description and changed files,\ncheck for bugs and edge cases, and reply with a concise, actionable summary.\nAsk before merging or approving anything.\n","agent\u002Fsubagents\u002Freviewer\u002Finstructions.md",[167,441,442,447,452],{"__ignoreMap":255},[278,443,444],{"class":280,"line":281},[278,445,446],{"class":284},"You are a code review specialist. Read the PR description and changed files,\n",[278,448,449],{"class":280,"line":288},[278,450,451],{"class":284},"check for bugs and edge cases, and reply with a concise, actionable summary.\n",[278,453,454],{"class":280,"line":294},[278,455,456],{"class":284},"Ask before merging or approving anything.\n",[249,458,461],{"className":349,"code":459,"filename":460,"language":352,"meta":255,"style":255},"import { defineAgent } from 'eve'\n\nexport default defineAgent({\n  description: 'Reviews pull requests: reads diffs, checks CI status, and drafts review comments.',\n  model: 'anthropic\u002Fclaude-sonnet-5',\n})\n","agent\u002Fsubagents\u002Freviewer\u002Fagent.ts",[167,462,463,481,485,497,513,527],{"__ignoreMap":255},[278,464,465,467,469,471,473,475,477,479],{"class":280,"line":281},[278,466,360],{"class":359},[278,468,363],{"class":310},[278,470,366],{"class":284},[278,472,369],{"class":310},[278,474,372],{"class":359},[278,476,375],{"class":310},[278,478,379],{"class":378},[278,480,382],{"class":310},[278,482,483],{"class":280,"line":288},[278,484,298],{"emptyLinePlaceholder":297},[278,486,487,489,491,493,495],{"class":280,"line":294},[278,488,391],{"class":359},[278,490,394],{"class":359},[278,492,366],{"class":397},[278,494,400],{"class":284},[278,496,403],{"class":310},[278,498,499,502,504,506,509,511],{"class":280,"line":301},[278,500,501],{"class":408},"  description",[278,503,412],{"class":310},[278,505,375],{"class":310},[278,507,508],{"class":378},"Reviews pull requests: reads diffs, checks CI status, and drafts review comments.",[278,510,420],{"class":310},[278,512,423],{"class":310},[278,514,515,517,519,521,523,525],{"class":280,"line":307},[278,516,409],{"class":408},[278,518,412],{"class":310},[278,520,375],{"class":310},[278,522,417],{"class":378},[278,524,420],{"class":310},[278,526,423],{"class":310},[278,528,529,531],{"class":280,"line":317},[278,530,428],{"class":310},[278,532,431],{"class":284},[249,534,537],{"className":349,"code":535,"filename":536,"language":352,"meta":255,"style":255},"import githubExtension from '@github-tools\u002Feve-extension'\n\nexport default githubExtension({\n  connector: 'github\u002Fmy-connector',\n  preset: 'code-review',\n})\n","agent\u002Fsubagents\u002Freviewer\u002Fextensions\u002Fgithub.ts",[167,538,539,555,559,572,588,604],{"__ignoreMap":255},[278,540,541,543,546,549,551,553],{"class":280,"line":281},[278,542,360],{"class":359},[278,544,545],{"class":284}," githubExtension ",[278,547,548],{"class":359},"from",[278,550,375],{"class":310},[278,552,169],{"class":378},[278,554,382],{"class":310},[278,556,557],{"class":280,"line":288},[278,558,298],{"emptyLinePlaceholder":297},[278,560,561,563,565,568,570],{"class":280,"line":294},[278,562,391],{"class":359},[278,564,394],{"class":359},[278,566,567],{"class":397}," githubExtension",[278,569,400],{"class":284},[278,571,403],{"class":310},[278,573,574,577,579,581,584,586],{"class":280,"line":301},[278,575,576],{"class":408},"  connector",[278,578,412],{"class":310},[278,580,375],{"class":310},[278,582,583],{"class":378},"github\u002Fmy-connector",[278,585,420],{"class":310},[278,587,423],{"class":310},[278,589,590,593,595,597,600,602],{"class":280,"line":307},[278,591,592],{"class":408},"  preset",[278,594,412],{"class":310},[278,596,375],{"class":310},[278,598,599],{"class":378},"code-review",[278,601,420],{"class":310},[278,603,423],{"class":310},[278,605,606,608],{"class":280,"line":317},[278,607,428],{"class":310},[278,609,431],{"class":284},[181,611,613],{"id":612},"the-triager-sub-agent","The triager sub-agent",[249,615,618],{"className":271,"code":616,"filename":617,"language":274,"meta":255,"style":255},"You are an issue triage specialist. Classify issues as bug, feature, or question,\napply the matching label, and post a short comment with your reasoning.\n","agent\u002Fsubagents\u002Ftriager\u002Finstructions.md",[167,619,620,625],{"__ignoreMap":255},[278,621,622],{"class":280,"line":281},[278,623,624],{"class":284},"You are an issue triage specialist. Classify issues as bug, feature, or question,\n",[278,626,627],{"class":280,"line":288},[278,628,629],{"class":284},"apply the matching label, and post a short comment with your reasoning.\n",[249,631,634],{"className":349,"code":632,"filename":633,"language":352,"meta":255,"style":255},"import { defineAgent } from 'eve'\n\nexport default defineAgent({\n  description: 'Triages GitHub issues: classifies, labels, and comments with a suggested next step.',\n  model: 'anthropic\u002Fclaude-sonnet-5',\n})\n","agent\u002Fsubagents\u002Ftriager\u002Fagent.ts",[167,635,636,654,658,670,685,699],{"__ignoreMap":255},[278,637,638,640,642,644,646,648,650,652],{"class":280,"line":281},[278,639,360],{"class":359},[278,641,363],{"class":310},[278,643,366],{"class":284},[278,645,369],{"class":310},[278,647,372],{"class":359},[278,649,375],{"class":310},[278,651,379],{"class":378},[278,653,382],{"class":310},[278,655,656],{"class":280,"line":288},[278,657,298],{"emptyLinePlaceholder":297},[278,659,660,662,664,666,668],{"class":280,"line":294},[278,661,391],{"class":359},[278,663,394],{"class":359},[278,665,366],{"class":397},[278,667,400],{"class":284},[278,669,403],{"class":310},[278,671,672,674,676,678,681,683],{"class":280,"line":301},[278,673,501],{"class":408},[278,675,412],{"class":310},[278,677,375],{"class":310},[278,679,680],{"class":378},"Triages GitHub issues: classifies, labels, and comments with a suggested next step.",[278,682,420],{"class":310},[278,684,423],{"class":310},[278,686,687,689,691,693,695,697],{"class":280,"line":307},[278,688,409],{"class":408},[278,690,412],{"class":310},[278,692,375],{"class":310},[278,694,417],{"class":378},[278,696,420],{"class":310},[278,698,423],{"class":310},[278,700,701,703],{"class":280,"line":317},[278,702,428],{"class":310},[278,704,431],{"class":284},[249,706,709],{"className":349,"code":707,"filename":708,"language":352,"meta":255,"style":255},"import githubExtension from '@github-tools\u002Feve-extension'\n\nexport default githubExtension({\n  connector: 'github\u002Fmy-connector',\n  preset: 'issue-triage',\n  requireApproval: {\n    addIssueComment: false,\n  },\n})\n","agent\u002Fsubagents\u002Ftriager\u002Fextensions\u002Fgithub.ts",[167,710,711,725,729,741,755,770,780,793,798],{"__ignoreMap":255},[278,712,713,715,717,719,721,723],{"class":280,"line":281},[278,714,360],{"class":359},[278,716,545],{"class":284},[278,718,548],{"class":359},[278,720,375],{"class":310},[278,722,169],{"class":378},[278,724,382],{"class":310},[278,726,727],{"class":280,"line":288},[278,728,298],{"emptyLinePlaceholder":297},[278,730,731,733,735,737,739],{"class":280,"line":294},[278,732,391],{"class":359},[278,734,394],{"class":359},[278,736,567],{"class":397},[278,738,400],{"class":284},[278,740,403],{"class":310},[278,742,743,745,747,749,751,753],{"class":280,"line":301},[278,744,576],{"class":408},[278,746,412],{"class":310},[278,748,375],{"class":310},[278,750,583],{"class":378},[278,752,420],{"class":310},[278,754,423],{"class":310},[278,756,757,759,761,763,766,768],{"class":280,"line":307},[278,758,592],{"class":408},[278,760,412],{"class":310},[278,762,375],{"class":310},[278,764,765],{"class":378},"issue-triage",[278,767,420],{"class":310},[278,769,423],{"class":310},[278,771,772,775,777],{"class":280,"line":317},[278,773,774],{"class":408},"  requireApproval",[278,776,412],{"class":310},[278,778,779],{"class":310}," {\n",[278,781,782,785,787,791],{"class":280,"line":325},[278,783,784],{"class":408},"    addIssueComment",[278,786,412],{"class":310},[278,788,790],{"class":789},"sfNiH"," false",[278,792,423],{"class":310},[278,794,795],{"class":280,"line":333},[278,796,797],{"class":310},"  },\n",[278,799,800,802],{"class":280,"line":341},[278,801,428],{"class":310},[278,803,431],{"class":284},[181,805,807],{"id":806},"the-releaser-sub-agent","The releaser sub-agent",[249,809,812],{"className":271,"code":810,"filename":811,"language":274,"meta":255,"style":255},"You are a release management specialist. Compare the latest two releases, summarize what\nchanged, and draft release notes grouped by feature, fix, and other. Confirm the target\nbefore creating anything.\n","agent\u002Fsubagents\u002Freleaser\u002Finstructions.md",[167,813,814,819,824],{"__ignoreMap":255},[278,815,816],{"class":280,"line":281},[278,817,818],{"class":284},"You are a release management specialist. Compare the latest two releases, summarize what\n",[278,820,821],{"class":280,"line":288},[278,822,823],{"class":284},"changed, and draft release notes grouped by feature, fix, and other. Confirm the target\n",[278,825,826],{"class":280,"line":294},[278,827,828],{"class":284},"before creating anything.\n",[249,830,833],{"className":349,"code":831,"filename":832,"language":352,"meta":255,"style":255},"import { defineAgent } from 'eve'\n\nexport default defineAgent({\n  description: 'Prepares releases: summarizes changes since the last tag and drafts release notes.',\n  model: 'anthropic\u002Fclaude-sonnet-5',\n})\n","agent\u002Fsubagents\u002Freleaser\u002Fagent.ts",[167,834,835,853,857,869,884,898],{"__ignoreMap":255},[278,836,837,839,841,843,845,847,849,851],{"class":280,"line":281},[278,838,360],{"class":359},[278,840,363],{"class":310},[278,842,366],{"class":284},[278,844,369],{"class":310},[278,846,372],{"class":359},[278,848,375],{"class":310},[278,850,379],{"class":378},[278,852,382],{"class":310},[278,854,855],{"class":280,"line":288},[278,856,298],{"emptyLinePlaceholder":297},[278,858,859,861,863,865,867],{"class":280,"line":294},[278,860,391],{"class":359},[278,862,394],{"class":359},[278,864,366],{"class":397},[278,866,400],{"class":284},[278,868,403],{"class":310},[278,870,871,873,875,877,880,882],{"class":280,"line":301},[278,872,501],{"class":408},[278,874,412],{"class":310},[278,876,375],{"class":310},[278,878,879],{"class":378},"Prepares releases: summarizes changes since the last tag and drafts release notes.",[278,881,420],{"class":310},[278,883,423],{"class":310},[278,885,886,888,890,892,894,896],{"class":280,"line":307},[278,887,409],{"class":408},[278,889,412],{"class":310},[278,891,375],{"class":310},[278,893,417],{"class":378},[278,895,420],{"class":310},[278,897,423],{"class":310},[278,899,900,902],{"class":280,"line":317},[278,901,428],{"class":310},[278,903,431],{"class":284},[249,905,908],{"className":349,"code":906,"filename":907,"language":352,"meta":255,"style":255},"import githubExtension from '@github-tools\u002Feve-extension'\n\nexport default githubExtension({\n  connector: 'github\u002Fmy-connector',\n  preset: 'release-manager',\n})\n","agent\u002Fsubagents\u002Freleaser\u002Fextensions\u002Fgithub.ts",[167,909,910,924,928,940,954,969],{"__ignoreMap":255},[278,911,912,914,916,918,920,922],{"class":280,"line":281},[278,913,360],{"class":359},[278,915,545],{"class":284},[278,917,548],{"class":359},[278,919,375],{"class":310},[278,921,169],{"class":378},[278,923,382],{"class":310},[278,925,926],{"class":280,"line":288},[278,927,298],{"emptyLinePlaceholder":297},[278,929,930,932,934,936,938],{"class":280,"line":294},[278,931,391],{"class":359},[278,933,394],{"class":359},[278,935,567],{"class":397},[278,937,400],{"class":284},[278,939,403],{"class":310},[278,941,942,944,946,948,950,952],{"class":280,"line":301},[278,943,576],{"class":408},[278,945,412],{"class":310},[278,947,375],{"class":310},[278,949,583],{"class":378},[278,951,420],{"class":310},[278,953,423],{"class":310},[278,955,956,958,960,962,965,967],{"class":280,"line":307},[278,957,592],{"class":408},[278,959,412],{"class":310},[278,961,375],{"class":310},[278,963,964],{"class":378},"release-manager",[278,966,420],{"class":310},[278,968,423],{"class":310},[278,970,971,973],{"class":280,"line":317},[278,972,428],{"class":310},[278,974,431],{"class":284},[181,976,978],{"id":977},"install","Install",[980,981,982,1007,1026,1044],"code-group",{},[249,983,988],{"className":984,"code":985,"filename":986,"language":987,"meta":255,"style":255},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @github-tools\u002Feve-extension @vercel\u002Fconnect eve\n","pnpm","bash",[167,989,990],{"__ignoreMap":255},[278,991,992,995,998,1001,1004],{"class":280,"line":281},[278,993,986],{"class":994},"sBMFI",[278,996,997],{"class":378}," add",[278,999,1000],{"class":378}," @github-tools\u002Feve-extension",[278,1002,1003],{"class":378}," @vercel\u002Fconnect",[278,1005,1006],{"class":378}," eve\n",[249,1008,1011],{"className":984,"code":1009,"filename":1010,"language":987,"meta":255,"style":255},"npm install @github-tools\u002Feve-extension @vercel\u002Fconnect eve\n","npm",[167,1012,1013],{"__ignoreMap":255},[278,1014,1015,1017,1020,1022,1024],{"class":280,"line":281},[278,1016,1010],{"class":994},[278,1018,1019],{"class":378}," install",[278,1021,1000],{"class":378},[278,1023,1003],{"class":378},[278,1025,1006],{"class":378},[249,1027,1030],{"className":984,"code":1028,"filename":1029,"language":987,"meta":255,"style":255},"yarn add @github-tools\u002Feve-extension @vercel\u002Fconnect eve\n","yarn",[167,1031,1032],{"__ignoreMap":255},[278,1033,1034,1036,1038,1040,1042],{"class":280,"line":281},[278,1035,1029],{"class":994},[278,1037,997],{"class":378},[278,1039,1000],{"class":378},[278,1041,1003],{"class":378},[278,1043,1006],{"class":378},[249,1045,1048],{"className":984,"code":1046,"filename":1047,"language":987,"meta":255,"style":255},"bun add @github-tools\u002Feve-extension @vercel\u002Fconnect eve\n","bun",[167,1049,1050],{"__ignoreMap":255},[278,1051,1052,1054,1056,1058,1060],{"class":280,"line":281},[278,1053,1047],{"class":994},[278,1055,997],{"class":378},[278,1057,1000],{"class":378},[278,1059,1003],{"class":378},[278,1061,1006],{"class":378},[249,1063,1066],{"className":984,"code":1064,"filename":1065,"language":987,"meta":255,"style":255},"# Vercel Connect OIDC token, shared by all three subagent connectors below.\n# vercel link && vercel env pull\nVERCEL_OIDC_TOKEN=\n",".env",[167,1067,1068,1074,1079],{"__ignoreMap":255},[278,1069,1070],{"class":280,"line":281},[278,1071,1073],{"class":1072},"sHwdD","# Vercel Connect OIDC token, shared by all three subagent connectors below.\n",[278,1075,1076],{"class":280,"line":288},[278,1077,1078],{"class":1072},"# vercel link && vercel env pull\n",[278,1080,1081,1084],{"class":280,"line":294},[278,1082,1083],{"class":284},"VERCEL_OIDC_TOKEN",[278,1085,1086],{"class":310},"=\n",[137,1088,1089,1090,1092,1093,1096,1097,1101],{},"All three specialists reuse the same ",[167,1091,583],{}," connector in this example. Give each one a different connector (or ",[167,1094,1095],{},"connect.repositories"," override) if they should see different repositories, see ",[157,1098,1100],{"href":1099},"\u002Fguide\u002Fvercel-connect#multi-tenant-and-repository-scoping","Multi-tenant and repository scoping",".",[181,1103,1105],{"id":1104},"run-it","Run it",[249,1107,1110],{"className":984,"code":1108,"filename":1109,"language":987,"meta":255,"style":255},"npx eve dev\n","Terminal",[167,1111,1112],{"__ignoreMap":255},[278,1113,1114,1117,1120],{"class":280,"line":281},[278,1115,1116],{"class":994},"npx",[278,1118,1119],{"class":378}," eve",[278,1121,1122],{"class":378}," dev\n",[137,1124,1125,1126,1128,1129,1131],{},"Ask the manager \"review PR #42 and check if the CHANGELOG needs updating for the next release.\" It calls ",[167,1127,234],{}," for the PR, ",[167,1130,242],{}," for the changelog question, and combines both answers, each specialist working with only the tools and prompt it needs.",[1133,1134,1135,1136,1138,1139,1101],"note",{},"A declared subagent inherits nothing from the root except the framework defaults. Each ",[167,1137,267],{}," above is a complete, independent mount: its own connector call, its own preset, its own approval policy. Duplicating those three lines per specialist is the cost of true isolation, see ",[157,1140,1143],{"href":1141,"rel":1142},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fsubagents#the-isolation-boundary",[161],"the isolation boundary",[181,1145,1147],{"id":1146},"without-eve-agent-as-tool-with-the-ai-sdk","Without eve: agent-as-tool with the AI SDK",[137,1149,1150,1151,1154,1155,1162,1163,412],{},"If the project isn't on eve, the same idea works with the AI SDK by exposing each ",[167,1152,1153],{},"createGithubAgent"," as a callable ",[157,1156,1159],{"href":1157,"rel":1158},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Ftools-and-tool-calling",[161],[167,1160,1161],{},"tool()"," for a manager ",[167,1164,1165],{},"ToolLoopAgent",[249,1167,1170],{"className":349,"code":1168,"filename":1169,"language":352,"meta":255,"style":255},"import { createGithubAgent } from '@github-tools\u002Fsdk'\nimport { connectGithubToken } from '@github-tools\u002Fsdk\u002Fconnect'\nimport { ToolLoopAgent, tool } from 'ai'\nimport { z } from 'zod'\n\nfunction specialist(preset: 'code-review' | 'issue-triage' | 'release-manager', description: string) {\n  const agent = createGithubAgent({\n    model: 'anthropic\u002Fclaude-sonnet-4.6',\n    token: connectGithubToken('github\u002Fmy-connector', { preset }),\n    preset,\n    requireApproval: false,\n  })\n\n  return tool({\n    description,\n    inputSchema: z.object({ message: z.string().describe('Everything the specialist needs to complete the task') }),\n    execute: async ({ message }) => {\n      const { text } = await agent.generate({ prompt: message })\n      return text\n    },\n  })\n}\n\nexport const manager = new ToolLoopAgent({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  instructions: 'Route GitHub requests to the right specialist tool: reviewer, triager, or releaser.',\n  tools: {\n    reviewer: specialist('code-review', 'Reviews pull requests and drafts review comments.'),\n    triager: specialist('issue-triage', 'Classifies and labels GitHub issues.'),\n    releaser: specialist('release-manager', 'Drafts release notes from merged pull requests.'),\n  },\n})\n","manager-agent.ts",[167,1171,1172,1192,1212,1238,1258,1262,1316,1333,1349,1379,1387,1399,1407,1412,1424,1432,1490,1514,1554,1563,1569,1576,1582,1587,1610,1625,1642,1652,1683,1714,1745,1750],{"__ignoreMap":255},[278,1173,1174,1176,1178,1181,1183,1185,1187,1190],{"class":280,"line":281},[278,1175,360],{"class":359},[278,1177,363],{"class":310},[278,1179,1180],{"class":284}," createGithubAgent",[278,1182,369],{"class":310},[278,1184,372],{"class":359},[278,1186,375],{"class":310},[278,1188,1189],{"class":378},"@github-tools\u002Fsdk",[278,1191,382],{"class":310},[278,1193,1194,1196,1198,1201,1203,1205,1207,1210],{"class":280,"line":288},[278,1195,360],{"class":359},[278,1197,363],{"class":310},[278,1199,1200],{"class":284}," connectGithubToken",[278,1202,369],{"class":310},[278,1204,372],{"class":359},[278,1206,375],{"class":310},[278,1208,1209],{"class":378},"@github-tools\u002Fsdk\u002Fconnect",[278,1211,382],{"class":310},[278,1213,1214,1216,1218,1221,1224,1227,1229,1231,1233,1236],{"class":280,"line":294},[278,1215,360],{"class":359},[278,1217,363],{"class":310},[278,1219,1220],{"class":284}," ToolLoopAgent",[278,1222,1223],{"class":310},",",[278,1225,1226],{"class":284}," tool",[278,1228,369],{"class":310},[278,1230,372],{"class":359},[278,1232,375],{"class":310},[278,1234,1235],{"class":378},"ai",[278,1237,382],{"class":310},[278,1239,1240,1242,1244,1247,1249,1251,1253,1256],{"class":280,"line":301},[278,1241,360],{"class":359},[278,1243,363],{"class":310},[278,1245,1246],{"class":284}," z",[278,1248,369],{"class":310},[278,1250,372],{"class":359},[278,1252,375],{"class":310},[278,1254,1255],{"class":378},"zod",[278,1257,382],{"class":310},[278,1259,1260],{"class":280,"line":307},[278,1261,298],{"emptyLinePlaceholder":297},[278,1263,1264,1268,1271,1273,1276,1278,1280,1282,1284,1287,1289,1291,1293,1295,1297,1299,1301,1303,1306,1308,1311,1314],{"class":280,"line":317},[278,1265,1267],{"class":1266},"spNyl","function",[278,1269,1270],{"class":397}," specialist",[278,1272,400],{"class":310},[278,1274,173],{"class":1275},"sHdIc",[278,1277,412],{"class":310},[278,1279,375],{"class":310},[278,1281,599],{"class":378},[278,1283,420],{"class":310},[278,1285,1286],{"class":310}," |",[278,1288,375],{"class":310},[278,1290,765],{"class":378},[278,1292,420],{"class":310},[278,1294,1286],{"class":310},[278,1296,375],{"class":310},[278,1298,964],{"class":378},[278,1300,420],{"class":310},[278,1302,1223],{"class":310},[278,1304,1305],{"class":1275}," description",[278,1307,412],{"class":310},[278,1309,1310],{"class":994}," string",[278,1312,1313],{"class":310},")",[278,1315,779],{"class":310},[278,1317,1318,1321,1324,1327,1329,1331],{"class":280,"line":325},[278,1319,1320],{"class":1266},"  const",[278,1322,1323],{"class":284}," agent",[278,1325,1326],{"class":310}," =",[278,1328,1180],{"class":397},[278,1330,400],{"class":408},[278,1332,403],{"class":310},[278,1334,1335,1338,1340,1342,1345,1347],{"class":280,"line":333},[278,1336,1337],{"class":408},"    model",[278,1339,412],{"class":310},[278,1341,375],{"class":310},[278,1343,1344],{"class":378},"anthropic\u002Fclaude-sonnet-4.6",[278,1346,420],{"class":310},[278,1348,423],{"class":310},[278,1350,1351,1354,1356,1358,1360,1362,1364,1366,1368,1370,1373,1375,1377],{"class":280,"line":341},[278,1352,1353],{"class":408},"    token",[278,1355,412],{"class":310},[278,1357,1200],{"class":397},[278,1359,400],{"class":408},[278,1361,420],{"class":310},[278,1363,583],{"class":378},[278,1365,420],{"class":310},[278,1367,1223],{"class":310},[278,1369,363],{"class":310},[278,1371,1372],{"class":284}," preset",[278,1374,369],{"class":310},[278,1376,1313],{"class":408},[278,1378,423],{"class":310},[278,1380,1382,1385],{"class":280,"line":1381},10,[278,1383,1384],{"class":284},"    preset",[278,1386,423],{"class":310},[278,1388,1390,1393,1395,1397],{"class":280,"line":1389},11,[278,1391,1392],{"class":408},"    requireApproval",[278,1394,412],{"class":310},[278,1396,790],{"class":789},[278,1398,423],{"class":310},[278,1400,1402,1405],{"class":280,"line":1401},12,[278,1403,1404],{"class":310},"  }",[278,1406,431],{"class":408},[278,1408,1410],{"class":280,"line":1409},13,[278,1411,298],{"emptyLinePlaceholder":297},[278,1413,1415,1418,1420,1422],{"class":280,"line":1414},14,[278,1416,1417],{"class":359},"  return",[278,1419,1226],{"class":397},[278,1421,400],{"class":408},[278,1423,403],{"class":310},[278,1425,1427,1430],{"class":280,"line":1426},15,[278,1428,1429],{"class":284},"    description",[278,1431,423],{"class":310},[278,1433,1435,1438,1440,1442,1444,1447,1449,1452,1455,1457,1459,1461,1464,1467,1469,1472,1474,1476,1479,1481,1484,1486,1488],{"class":280,"line":1434},16,[278,1436,1437],{"class":408},"    inputSchema",[278,1439,412],{"class":310},[278,1441,1246],{"class":284},[278,1443,1101],{"class":310},[278,1445,1446],{"class":397},"object",[278,1448,400],{"class":408},[278,1450,1451],{"class":310},"{",[278,1453,1454],{"class":408}," message",[278,1456,412],{"class":310},[278,1458,1246],{"class":284},[278,1460,1101],{"class":310},[278,1462,1463],{"class":397},"string",[278,1465,1466],{"class":408},"()",[278,1468,1101],{"class":310},[278,1470,1471],{"class":397},"describe",[278,1473,400],{"class":408},[278,1475,420],{"class":310},[278,1477,1478],{"class":378},"Everything the specialist needs to complete the task",[278,1480,420],{"class":310},[278,1482,1483],{"class":408},") ",[278,1485,428],{"class":310},[278,1487,1313],{"class":408},[278,1489,423],{"class":310},[278,1491,1493,1496,1498,1501,1504,1506,1509,1512],{"class":280,"line":1492},17,[278,1494,1495],{"class":397},"    execute",[278,1497,412],{"class":310},[278,1499,1500],{"class":1266}," async",[278,1502,1503],{"class":310}," ({",[278,1505,1454],{"class":1275},[278,1507,1508],{"class":310}," })",[278,1510,1511],{"class":1266}," =>",[278,1513,779],{"class":310},[278,1515,1517,1520,1522,1525,1527,1529,1532,1534,1536,1539,1541,1543,1546,1548,1550,1552],{"class":280,"line":1516},18,[278,1518,1519],{"class":1266},"      const",[278,1521,363],{"class":310},[278,1523,1524],{"class":284}," text",[278,1526,369],{"class":310},[278,1528,1326],{"class":310},[278,1530,1531],{"class":359}," await",[278,1533,1323],{"class":284},[278,1535,1101],{"class":310},[278,1537,1538],{"class":397},"generate",[278,1540,400],{"class":408},[278,1542,1451],{"class":310},[278,1544,1545],{"class":408}," prompt",[278,1547,412],{"class":310},[278,1549,1454],{"class":284},[278,1551,369],{"class":310},[278,1553,431],{"class":408},[278,1555,1557,1560],{"class":280,"line":1556},19,[278,1558,1559],{"class":359},"      return",[278,1561,1562],{"class":284}," text\n",[278,1564,1566],{"class":280,"line":1565},20,[278,1567,1568],{"class":310},"    },\n",[278,1570,1572,1574],{"class":280,"line":1571},21,[278,1573,1404],{"class":310},[278,1575,431],{"class":408},[278,1577,1579],{"class":280,"line":1578},22,[278,1580,1581],{"class":310},"}\n",[278,1583,1585],{"class":280,"line":1584},23,[278,1586,298],{"emptyLinePlaceholder":297},[278,1588,1590,1592,1595,1598,1601,1604,1606,1608],{"class":280,"line":1589},24,[278,1591,391],{"class":359},[278,1593,1594],{"class":1266}," const",[278,1596,1597],{"class":284}," manager ",[278,1599,1600],{"class":310},"=",[278,1602,1603],{"class":310}," new",[278,1605,1220],{"class":397},[278,1607,400],{"class":284},[278,1609,403],{"class":310},[278,1611,1613,1615,1617,1619,1621,1623],{"class":280,"line":1612},25,[278,1614,409],{"class":408},[278,1616,412],{"class":310},[278,1618,375],{"class":310},[278,1620,1344],{"class":378},[278,1622,420],{"class":310},[278,1624,423],{"class":310},[278,1626,1628,1631,1633,1635,1638,1640],{"class":280,"line":1627},26,[278,1629,1630],{"class":408},"  instructions",[278,1632,412],{"class":310},[278,1634,375],{"class":310},[278,1636,1637],{"class":378},"Route GitHub requests to the right specialist tool: reviewer, triager, or releaser.",[278,1639,420],{"class":310},[278,1641,423],{"class":310},[278,1643,1645,1648,1650],{"class":280,"line":1644},27,[278,1646,1647],{"class":408},"  tools",[278,1649,412],{"class":310},[278,1651,779],{"class":310},[278,1653,1655,1658,1660,1662,1664,1666,1668,1670,1672,1674,1677,1679,1681],{"class":280,"line":1654},28,[278,1656,1657],{"class":408},"    reviewer",[278,1659,412],{"class":310},[278,1661,1270],{"class":397},[278,1663,400],{"class":284},[278,1665,420],{"class":310},[278,1667,599],{"class":378},[278,1669,420],{"class":310},[278,1671,1223],{"class":310},[278,1673,375],{"class":310},[278,1675,1676],{"class":378},"Reviews pull requests and drafts review comments.",[278,1678,420],{"class":310},[278,1680,1313],{"class":284},[278,1682,423],{"class":310},[278,1684,1686,1689,1691,1693,1695,1697,1699,1701,1703,1705,1708,1710,1712],{"class":280,"line":1685},29,[278,1687,1688],{"class":408},"    triager",[278,1690,412],{"class":310},[278,1692,1270],{"class":397},[278,1694,400],{"class":284},[278,1696,420],{"class":310},[278,1698,765],{"class":378},[278,1700,420],{"class":310},[278,1702,1223],{"class":310},[278,1704,375],{"class":310},[278,1706,1707],{"class":378},"Classifies and labels GitHub issues.",[278,1709,420],{"class":310},[278,1711,1313],{"class":284},[278,1713,423],{"class":310},[278,1715,1717,1720,1722,1724,1726,1728,1730,1732,1734,1736,1739,1741,1743],{"class":280,"line":1716},30,[278,1718,1719],{"class":408},"    releaser",[278,1721,412],{"class":310},[278,1723,1270],{"class":397},[278,1725,400],{"class":284},[278,1727,420],{"class":310},[278,1729,964],{"class":378},[278,1731,420],{"class":310},[278,1733,1223],{"class":310},[278,1735,375],{"class":310},[278,1737,1738],{"class":378},"Drafts release notes from merged pull requests.",[278,1740,420],{"class":310},[278,1742,1313],{"class":284},[278,1744,423],{"class":310},[278,1746,1748],{"class":280,"line":1747},31,[278,1749,797],{"class":310},[278,1751,1753,1755],{"class":280,"line":1752},32,[278,1754,428],{"class":310},[278,1756,431],{"class":284},[137,1758,1759,1760,1764],{},"This is a hand-rolled version of the same pattern eve gives you natively: a tool per specialist, its own preset and prompt, no shared state between them. eve's declared subagents add the pieces this snippet leaves out: durable sessions, parallel dispatch, and per-subagent sandboxes, see ",[157,1761,1763],{"href":159,"rel":1762},[161],"Subagents"," in the bundled eve docs.",[181,1766,1768],{"id":1767},"go-further","Go further",[141,1770,1771,1778,1785],{},[144,1772,1773,1774,1777],{},"Add a fourth specialist for ",[167,1775,1776],{},"security-audit"," if the manager should also field vulnerability reports",[144,1779,1780,1781,1784],{},"Set ",[167,1782,1783],{},"outputSchema"," on a subagent call to get structured output back instead of free text, useful when the manager needs to combine multiple specialists' answers programmatically",[144,1786,1787,1788,1793],{},"Read ",[157,1789,1792],{"href":1790,"rel":1791},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fguides\u002Fdynamic-workflows",[161],"Dynamic workflows"," if the manager should fan out to multiple specialists in parallel rather than one at a time",[1795,1796,1797],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":255,"searchDepth":288,"depth":288,"links":1799},[1800,1801,1802,1803,1804,1805,1806,1807,1808,1809],{"id":183,"depth":288,"text":184},{"id":246,"depth":288,"text":247},{"id":260,"depth":288,"text":261},{"id":434,"depth":288,"text":435},{"id":612,"depth":288,"text":613},{"id":806,"depth":288,"text":807},{"id":977,"depth":288,"text":978},{"id":1104,"depth":288,"text":1105},{"id":1146,"depth":288,"text":1147},{"id":1767,"depth":288,"text":1768},"A broadly-capable GitHub manager agent that delegates to specialist eve sub-agents, each scoped to one preset (code-review, issue-triage, release-manager), instead of one agent holding every tool.",[1812,1817,1819],{"label":1813,"icon":34,"to":159,"target":1814,"color":1815,"variant":1816},"eve subagents (bundled docs)","_blank","neutral","subtle",{"label":1818,"icon":34,"to":32,"color":1815,"variant":1816},"eve extension guide",{"label":1820,"icon":1821,"to":87,"color":1815,"variant":1816},"Scope with presets","i-lucide-layers",{},{"title":74,"icon":34},{"title":127,"description":1825},"Compose @github-tools\u002Fsdk presets via eve's declared subagents, a manager agent that routes work to code-review, issue-triage, and release-manager specialists.","YeyxPsGM2jT4Ux9RkSQMpX5ZJBCcz4-F8v-nDT1R6XE",[1828,1830],{"title":70,"path":71,"stem":72,"description":1829,"icon":48,"children":-1},"A durable GitHub bot that triages @mentioned issues, classifies them, and labels them, built with Chat SDK, Vercel Workflow, the issue-triage preset, and Vercel Connect.",{"title":78,"path":79,"stem":80,"description":1831,"children":-1},"Short, focused GitHub agent snippets, selective approval, a reusable review agent, read-only exploration, toolpick, and evlog observability.",1786010331111]