[{"data":1,"prerenderedAt":970},["ShallowReactive",2],{"navigation_docs":3,"-guide-working-context":129,"-guide-working-context-surround":965},[4,26,49,81,109,121],{"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,105],{"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":108},"Working context","\u002Fguide\u002Fworking-context","docs\u002F4.guide\u002F6.working-context",{"title":110,"path":111,"stem":7,"children":112,"page":25},"Api","\u002Fapi",[113,117],{"title":114,"path":115,"stem":116},"Tools Catalog","\u002Fapi\u002Ftools-catalog","docs\u002F5.api\u002F1.tools-catalog",{"title":118,"path":119,"stem":120},"API Reference","\u002Fapi\u002Freference","docs\u002F5.api\u002F2.reference",{"title":122,"path":123,"stem":7,"children":124,"page":25},"Deprecated","\u002Fdeprecated",[125],{"title":126,"path":127,"stem":128,"icon":34},"eve (direct import)","\u002Fdeprecated\u002Feve","docs\u002F6.deprecated\u002F1.eve",{"id":130,"title":131,"body":132,"description":948,"extension":949,"links":950,"meta":961,"navigation":962,"path":107,"seo":963,"stem":108,"__hash__":964},"docs\u002Fdocs\u002F4.guide\u002F6.working-context.md","Working Context and Composites",{"type":133,"value":134,"toc":942},"minimark",[135,161,165,198,457,467,471,474,538,552,556,751,755,923,938],[136,137,138,139,143,144,147,148,152,153,156,157,160],"p",{},"Agents burn tokens on repeated ",[140,141,142],"code",{},"owner"," \u002F ",[140,145,146],{},"repo"," args, multi-hop reads, and fat payloads (full PR diffs, long issue bodies, entire files). The SDK ships three levers that work together: a ",[149,150,151],"strong",{},"working context",", ",[149,154,155],{},"composite tools",", and ",[149,158,159],{},"lean defaults",".",[162,163,106],"h2",{"id":164},"working-context",[136,166,167,168,171,172,152,175,178,179,182,183,152,185,152,187,152,190,193,194,197],{},"Pass ",[140,169,170],{},"context"," to ",[140,173,174],{},"createGithubTools",[140,176,177],{},"createGithubAgent",", or ",[140,180,181],{},"createDurableGithubAgent"," to default ",[140,184,142],{},[140,186,146],{},[140,188,189],{},"pullNumber",[140,191,192],{},"issueNumber",", and\u002For ",[140,195,196],{},"ref"," on matching tool inputs. Matching schema fields become optional and fill from context when omitted. Agents also get a short system-prompt block describing the context:",[199,200,206],"pre",{"className":201,"code":202,"filename":203,"language":204,"meta":205,"style":205},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createGithubTools, createGithubAgent } from '@github-tools\u002Fsdk'\n\nconst tools = createGithubTools({\n  preset: 'code-review',\n  context: { owner: 'vercel', repo: 'ai', pullNumber: 42 },\n})\n\nconst agent = createGithubAgent({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  preset: 'code-review',\n  context: { owner: 'vercel', repo: 'ai', pullNumber: 42 },\n})\n","context.ts","ts","",[140,207,208,247,254,276,297,347,356,361,377,394,409,450],{"__ignoreMap":205},[209,210,213,217,221,225,228,231,234,237,240,244],"span",{"class":211,"line":212},"line",1,[209,214,216],{"class":215},"s7zQu","import",[209,218,220],{"class":219},"sMK4o"," {",[209,222,224],{"class":223},"sTEyZ"," createGithubTools",[209,226,227],{"class":219},",",[209,229,230],{"class":223}," createGithubAgent",[209,232,233],{"class":219}," }",[209,235,236],{"class":215}," from",[209,238,239],{"class":219}," '",[209,241,243],{"class":242},"sfazB","@github-tools\u002Fsdk",[209,245,246],{"class":219},"'\n",[209,248,250],{"class":211,"line":249},2,[209,251,253],{"emptyLinePlaceholder":252},true,"\n",[209,255,257,261,264,267,270,273],{"class":211,"line":256},3,[209,258,260],{"class":259},"spNyl","const",[209,262,263],{"class":223}," tools ",[209,265,266],{"class":219},"=",[209,268,224],{"class":269},"s2Zo4",[209,271,272],{"class":223},"(",[209,274,275],{"class":219},"{\n",[209,277,279,283,286,288,291,294],{"class":211,"line":278},4,[209,280,282],{"class":281},"swJcz","  preset",[209,284,285],{"class":219},":",[209,287,239],{"class":219},[209,289,290],{"class":242},"code-review",[209,292,293],{"class":219},"'",[209,295,296],{"class":219},",\n",[209,298,300,303,305,307,310,312,314,317,319,321,324,326,328,331,333,335,338,340,344],{"class":211,"line":299},5,[209,301,302],{"class":281},"  context",[209,304,285],{"class":219},[209,306,220],{"class":219},[209,308,309],{"class":281}," owner",[209,311,285],{"class":219},[209,313,239],{"class":219},[209,315,316],{"class":242},"vercel",[209,318,293],{"class":219},[209,320,227],{"class":219},[209,322,323],{"class":281}," repo",[209,325,285],{"class":219},[209,327,239],{"class":219},[209,329,330],{"class":242},"ai",[209,332,293],{"class":219},[209,334,227],{"class":219},[209,336,337],{"class":281}," pullNumber",[209,339,285],{"class":219},[209,341,343],{"class":342},"sbssI"," 42",[209,345,346],{"class":219}," },\n",[209,348,350,353],{"class":211,"line":349},6,[209,351,352],{"class":219},"}",[209,354,355],{"class":223},")\n",[209,357,359],{"class":211,"line":358},7,[209,360,253],{"emptyLinePlaceholder":252},[209,362,364,366,369,371,373,375],{"class":211,"line":363},8,[209,365,260],{"class":259},[209,367,368],{"class":223}," agent ",[209,370,266],{"class":219},[209,372,230],{"class":269},[209,374,272],{"class":223},[209,376,275],{"class":219},[209,378,380,383,385,387,390,392],{"class":211,"line":379},9,[209,381,382],{"class":281},"  model",[209,384,285],{"class":219},[209,386,239],{"class":219},[209,388,389],{"class":242},"anthropic\u002Fclaude-sonnet-4.6",[209,391,293],{"class":219},[209,393,296],{"class":219},[209,395,397,399,401,403,405,407],{"class":211,"line":396},10,[209,398,282],{"class":281},[209,400,285],{"class":219},[209,402,239],{"class":219},[209,404,290],{"class":242},[209,406,293],{"class":219},[209,408,296],{"class":219},[209,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448],{"class":211,"line":411},11,[209,413,302],{"class":281},[209,415,285],{"class":219},[209,417,220],{"class":219},[209,419,309],{"class":281},[209,421,285],{"class":219},[209,423,239],{"class":219},[209,425,316],{"class":242},[209,427,293],{"class":219},[209,429,227],{"class":219},[209,431,323],{"class":281},[209,433,285],{"class":219},[209,435,239],{"class":219},[209,437,330],{"class":242},[209,439,293],{"class":219},[209,441,227],{"class":219},[209,443,337],{"class":281},[209,445,285],{"class":219},[209,447,343],{"class":342},[209,449,346],{"class":219},[209,451,453,455],{"class":211,"line":452},12,[209,454,352],{"class":219},[209,456,355],{"class":223},[136,458,459,460,463,464,466],{},"The same option is available on the ",[461,462,31],"a",{"href":32}," via ",[140,465,170],{}," in the mount config.",[162,468,470],{"id":469},"composite-tools","Composite tools",[136,472,473],{},"Prefer one composite call over chaining several reads:",[475,476,477,490],"table",{},[478,479,480],"thead",{},[481,482,483,487],"tr",{},[484,485,486],"th",{},"Tool",[484,488,489],{},"Returns",[491,492,493,504,518,528],"tbody",{},[481,494,495,501],{},[496,497,498],"td",{},[140,499,500],{},"getPullRequestContext",[496,502,503],{},"PR details + files + reviews (+ optional CI checks)",[481,505,506,511],{},[496,507,508],{},[140,509,510],{},"getIssueContext",[496,512,513,514,517],{},"Issue + ",[140,515,516],{},"labelNames"," + recent comments",[481,519,520,525],{},[496,521,522],{},[140,523,524],{},"getReleaseContext",[496,526,527],{},"Release + previous release + tag comparison",[481,529,530,535],{},[496,531,532],{},[140,533,534],{},"getCiFailureContext",[496,536,537],{},"Combined status, failing checks, failed workflow jobs\u002Fsteps",[136,539,540,541,544,545,547,548,551],{},"Call independent follow-up reads ",[149,542,543],{},"in the same step"," when you already know the arguments (for example ",[140,546,510],{}," and ",[140,549,550],{},"listIssues"," together).",[162,553,555],{"id":554},"lean-payload-defaults","Lean payload defaults",[475,557,558,571],{},[478,559,560],{},[481,561,562,565,568],{},[484,563,564],{},"Default",[484,566,567],{},"Behavior",[484,569,570],{},"Override",[491,572,573,598,622,653,676,692,709,733],{},[481,574,575,580,593],{},[496,576,577],{},[140,578,579],{},"detail: 'summary'",[496,581,582,583,152,586,152,589,592],{},"Truncates long bodies (~500 chars) on ",[140,584,585],{},"getPullRequest",[140,587,588],{},"getIssue",[140,590,591],{},"getDiscussion",", and release getters",[496,594,595],{},[140,596,597],{},"detail: 'full'",[481,599,600,604,613],{},[496,601,602],{},[140,603,510],{},[496,605,606,607,609,610,612],{},"Defaults to ",[140,608,597],{}," (one-shot) and returns ",[140,611,516],{}," (strings), not full label objects",[496,614,615,617,618,621],{},[140,616,579],{},"; use ",[140,619,620],{},"listLabels"," for descriptions",[481,623,624,629,641],{},[496,625,626],{},[140,627,628],{},"includePatch: false",[496,630,631,632,152,635,152,638],{},"Omits diff patches on ",[140,633,634],{},"listPullRequestFiles",[140,636,637],{},"getCommit",[140,639,640],{},"compareCommits",[496,642,643,646,647,650,651],{},[140,644,645],{},"includePatch: true","; optionally ",[140,648,649],{},"filenames"," on ",[140,652,634],{},[481,654,655,658,673],{},[496,656,657],{},"File ranges",[496,659,660,661,143,664,143,667,650,670],{},"Prefer ",[140,662,663],{},"startLine",[140,665,666],{},"endLine",[140,668,669],{},"maxLines",[140,671,672],{},"getFileContent",[496,674,675],{},"Omit ranges only for small files",[481,677,678,683,686],{},[496,679,680],{},[140,681,682],{},"maxPages",[496,684,685],{},"List tools fetch one page by default",[496,687,688,689,691],{},"Set ",[140,690,682],{}," to combine sequential pages in one call",[481,693,694,697,703],{},[496,695,696],{},"Text-match fragments",[496,698,699,702],{},[140,700,701],{},"searchCode"," truncates each snippet to ~300 chars",[496,704,705,706,708],{},"None — fetch the file with ",[140,707,672],{}," for full context",[481,710,711,716,719],{},[496,712,713],{},[140,714,715],{},"listDiscussions",[496,717,718],{},"Returns 20 discussions per call, cursor-paginated",[496,720,721,722,725,726,729,730],{},"Raise ",[140,723,724],{},"perPage",", or pass the returned ",[140,727,728],{},"endCursor"," as ",[140,731,732],{},"after",[481,734,735,740,743],{},[496,736,737],{},[140,738,739],{},"listNotifications",[496,741,742],{},"Returns 20 unread threads per call (max 50)",[496,744,745,748,749],{},[140,746,747],{},"all: true"," to include read threads; raise ",[140,750,724],{},[162,752,754],{"id":753},"example-code-review-bootstrap","Example: code review bootstrap",[199,756,759],{"className":201,"code":757,"filename":758,"language":204,"meta":205,"style":205},"import { createGithubAgent } from '@github-tools\u002Fsdk'\n\nconst agent = createGithubAgent({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  preset: 'code-review',\n  context: { owner: 'vercel-labs', repo: 'github-tools', pullNumber: 39 },\n})\n\n\u002F\u002F Prefer getPullRequestContext first, then listPullRequestFiles with\n\u002F\u002F includePatch + filenames for only the files you need to inspect.\nawait agent.generate({ prompt: 'Summarize this PR and list two review findings. Read-only.' })\n","review-bootstrap.ts",[140,760,761,779,783,797,811,825,868,874,878,884,889],{"__ignoreMap":205},[209,762,763,765,767,769,771,773,775,777],{"class":211,"line":212},[209,764,216],{"class":215},[209,766,220],{"class":219},[209,768,230],{"class":223},[209,770,233],{"class":219},[209,772,236],{"class":215},[209,774,239],{"class":219},[209,776,243],{"class":242},[209,778,246],{"class":219},[209,780,781],{"class":211,"line":249},[209,782,253],{"emptyLinePlaceholder":252},[209,784,785,787,789,791,793,795],{"class":211,"line":256},[209,786,260],{"class":259},[209,788,368],{"class":223},[209,790,266],{"class":219},[209,792,230],{"class":269},[209,794,272],{"class":223},[209,796,275],{"class":219},[209,798,799,801,803,805,807,809],{"class":211,"line":278},[209,800,382],{"class":281},[209,802,285],{"class":219},[209,804,239],{"class":219},[209,806,389],{"class":242},[209,808,293],{"class":219},[209,810,296],{"class":219},[209,812,813,815,817,819,821,823],{"class":211,"line":299},[209,814,282],{"class":281},[209,816,285],{"class":219},[209,818,239],{"class":219},[209,820,290],{"class":242},[209,822,293],{"class":219},[209,824,296],{"class":219},[209,826,827,829,831,833,835,837,839,842,844,846,848,850,852,855,857,859,861,863,866],{"class":211,"line":349},[209,828,302],{"class":281},[209,830,285],{"class":219},[209,832,220],{"class":219},[209,834,309],{"class":281},[209,836,285],{"class":219},[209,838,239],{"class":219},[209,840,841],{"class":242},"vercel-labs",[209,843,293],{"class":219},[209,845,227],{"class":219},[209,847,323],{"class":281},[209,849,285],{"class":219},[209,851,239],{"class":219},[209,853,854],{"class":242},"github-tools",[209,856,293],{"class":219},[209,858,227],{"class":219},[209,860,337],{"class":281},[209,862,285],{"class":219},[209,864,865],{"class":342}," 39",[209,867,346],{"class":219},[209,869,870,872],{"class":211,"line":358},[209,871,352],{"class":219},[209,873,355],{"class":223},[209,875,876],{"class":211,"line":363},[209,877,253],{"emptyLinePlaceholder":252},[209,879,880],{"class":211,"line":379},[209,881,883],{"class":882},"sHwdD","\u002F\u002F Prefer getPullRequestContext first, then listPullRequestFiles with\n",[209,885,886],{"class":211,"line":396},[209,887,888],{"class":882},"\u002F\u002F includePatch + filenames for only the files you need to inspect.\n",[209,890,891,894,897,899,902,904,907,910,912,914,917,919,921],{"class":211,"line":411},[209,892,893],{"class":215},"await",[209,895,896],{"class":223}," agent",[209,898,160],{"class":219},[209,900,901],{"class":269},"generate",[209,903,272],{"class":223},[209,905,906],{"class":219},"{",[209,908,909],{"class":281}," prompt",[209,911,285],{"class":219},[209,913,239],{"class":219},[209,915,916],{"class":242},"Summarize this PR and list two review findings. Read-only.",[209,918,293],{"class":219},[209,920,233],{"class":219},[209,922,355],{"class":223},[136,924,925,926,929,930,933,934,650,936,160],{},"See the ",[461,927,928],{"href":115},"tools catalog"," for the full list and the ",[461,931,932],{"href":119},"API reference"," for ",[140,935,170],{},[140,937,174],{},[939,940,941],"style",{},"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 .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 pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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":205,"searchDepth":249,"depth":249,"links":943},[944,945,946,947],{"id":164,"depth":249,"text":106},{"id":469,"depth":249,"text":470},{"id":554,"depth":249,"text":555},{"id":753,"depth":249,"text":754},"Default owner\u002Frepo\u002FPR\u002Fissue\u002Fref on tools, prefer composite reads, and keep payloads lean with detail, includePatch, and line ranges.","md",[951,956,958],{"label":952,"icon":953,"to":115,"color":954,"variant":955},"Tools catalog","i-lucide-list-tree","neutral","subtle",{"label":932,"icon":957,"to":119,"color":954,"variant":955},"i-lucide-braces",{"label":959,"icon":960,"to":87,"color":954,"variant":955},"Scope with presets","i-lucide-layers",{},{"title":106},{"title":131,"description":948},"u1aPjuhN2iSrxx-T7T7V_X8fz2vvfgtOHnqBcD6nRiA",[966,968],{"title":102,"path":103,"stem":104,"description":967,"children":-1},"Use @github-tools\u002Fsdk\u002Fconnect to mint scoped GitHub tokens from a Vercel Connect connector, preset-derived scopes, zero boilerplate.",{"title":114,"path":115,"stem":116,"description":969,"children":-1},"Every available tool, grouped by domain and write-safety status. Tools run as durable workflow steps when used with Vercel Workflow.",1786088460855]