[{"data":1,"prerenderedAt":1312},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-ai-sdk":85,"-frameworks-ai-sdk-surround":1307},[4,26,49,73],{"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","\u002Fframeworks\u002Feve","docs\u002F2.frameworks\u002F1.eve","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},"Guide","\u002Fguide",[53,57,61,65,69],{"title":54,"path":55,"stem":56},"Scope with Presets","\u002Fguide\u002Fpresets","docs\u002F3.guide\u002F1.presets",{"title":58,"path":59,"stem":60},"Control Write Safety","\u002Fguide\u002Fapproval-control","docs\u002F3.guide\u002F2.approval-control",{"title":62,"path":63,"stem":64},"Commit Attribution","\u002Fguide\u002Fcommit-attribution","docs\u002F3.guide\u002F3.commit-attribution",{"title":66,"path":67,"stem":68},"Tokens & Auth","\u002Fguide\u002Ftokens-and-auth","docs\u002F3.guide\u002F4.tokens-and-auth",{"title":70,"path":71,"stem":72},"Examples","\u002Fguide\u002Fexamples","docs\u002F3.guide\u002F5.examples",{"title":74,"path":75,"stem":7,"children":76,"page":25},"Api","\u002Fapi",[77,81],{"title":78,"path":79,"stem":80},"Tools Catalog","\u002Fapi\u002Ftools-catalog","docs\u002F4.api\u002F1.tools-catalog",{"title":82,"path":83,"stem":84},"API Reference","\u002Fapi\u002Freference","docs\u002F4.api\u002F2.reference",{"id":86,"title":87,"body":88,"description":1289,"extension":1290,"links":1291,"meta":1303,"navigation":1304,"path":37,"seo":1305,"stem":38,"__hash__":1306},"docs\u002Fdocs\u002F2.frameworks\u002F2.ai-sdk.md","Use GitHub tools with the AI SDK",{"type":89,"value":90,"toc":1276},"minimark",[91,119,145,152,155,336,339,345,348,539,546,567,726,737,741,748,827,837,841,850,1092,1096,1099,1192,1198,1202,1253,1257,1272],[92,93,94,95,101,102,106,107,110,111,114,115,118],"p",{},"The ",[96,97,36],"a",{"href":98,"rel":99},"https:\u002F\u002Fai-sdk.dev\u002Fdocs",[100],"nofollow"," is the core integration path: ",[103,104,105],"code",{},"createGithubTools()"," returns a standard AI SDK ",[103,108,109],{},"ToolSet",", so GitHub tools work anywhere AI SDK tools do — ",[103,112,113],{},"generateText",", ",[103,116,117],{},"streamText",", agent loops, and any framework built on top of them.",[120,121,125,128],"prompt",{":actions":122,"description":123,"icon":124},"[\"copy\",\"cursor\",\"windsurf\"]","Wire GitHub tools into this AI SDK app","i-lucide-plug",[92,126,127],{},"Wire @github-tools\u002Fsdk into this AI SDK app.",[129,130,131,135,138],"ul",{},[132,133,134],"li",{},"Use createGithubTools with a preset that matches the feature (repo-explorer, code-review, issue-triage, ci-ops, maintainer)",[132,136,137],{},"Pass the tools to generateText or streamText; read GITHUB_TOKEN from env",[132,139,140,141],{},"If the same configuration is reused across calls, refactor to createGithubAgent — ",[96,142,143],{"href":143,"rel":144},"https:\u002F\u002Fgithub-tools.com\u002Fframeworks\u002Fai-sdk",[100],[146,147,149,150],"h2",{"id":148},"one-shot-generatetext","One-shot: ",[103,151,113],{},[92,153,154],{},"Pass the tools and let the model decide which GitHub operations to call:",[156,157,163],"pre",{"className":158,"code":159,"filename":160,"language":161,"meta":162,"style":162},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createGithubTools } from '@github-tools\u002Fsdk'\nimport { generateText } from 'ai'\n\nconst { text } = await generateText({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  tools: createGithubTools({ preset: 'code-review' }),\n  prompt: 'Summarize the latest merged PR on vercel\u002Fai.',\n})\n","summarize.ts","ts","",[103,164,165,198,219,226,256,277,311,328],{"__ignoreMap":162},[166,167,170,174,178,182,185,188,191,195],"span",{"class":168,"line":169},"line",1,[166,171,173],{"class":172},"s7zQu","import",[166,175,177],{"class":176},"sMK4o"," {",[166,179,181],{"class":180},"sTEyZ"," createGithubTools",[166,183,184],{"class":176}," }",[166,186,187],{"class":172}," from",[166,189,190],{"class":176}," '",[166,192,194],{"class":193},"sfazB","@github-tools\u002Fsdk",[166,196,197],{"class":176},"'\n",[166,199,201,203,205,208,210,212,214,217],{"class":168,"line":200},2,[166,202,173],{"class":172},[166,204,177],{"class":176},[166,206,207],{"class":180}," generateText",[166,209,184],{"class":176},[166,211,187],{"class":172},[166,213,190],{"class":176},[166,215,216],{"class":193},"ai",[166,218,197],{"class":176},[166,220,222],{"class":168,"line":221},3,[166,223,225],{"emptyLinePlaceholder":224},true,"\n",[166,227,229,233,235,238,241,244,247,250,253],{"class":168,"line":228},4,[166,230,232],{"class":231},"spNyl","const",[166,234,177],{"class":176},[166,236,237],{"class":180}," text ",[166,239,240],{"class":176},"}",[166,242,243],{"class":176}," =",[166,245,246],{"class":172}," await",[166,248,207],{"class":249},"s2Zo4",[166,251,252],{"class":180},"(",[166,254,255],{"class":176},"{\n",[166,257,259,263,266,268,271,274],{"class":168,"line":258},5,[166,260,262],{"class":261},"swJcz","  model",[166,264,265],{"class":176},":",[166,267,190],{"class":176},[166,269,270],{"class":193},"anthropic\u002Fclaude-sonnet-4.6",[166,272,273],{"class":176},"'",[166,275,276],{"class":176},",\n",[166,278,280,283,285,287,289,292,295,297,299,302,304,306,309],{"class":168,"line":279},6,[166,281,282],{"class":261},"  tools",[166,284,265],{"class":176},[166,286,181],{"class":249},[166,288,252],{"class":180},[166,290,291],{"class":176},"{",[166,293,294],{"class":261}," preset",[166,296,265],{"class":176},[166,298,190],{"class":176},[166,300,301],{"class":193},"code-review",[166,303,273],{"class":176},[166,305,184],{"class":176},[166,307,308],{"class":180},")",[166,310,276],{"class":176},[166,312,314,317,319,321,324,326],{"class":168,"line":313},7,[166,315,316],{"class":261},"  prompt",[166,318,265],{"class":176},[166,320,190],{"class":176},[166,322,323],{"class":193},"Summarize the latest merged PR on vercel\u002Fai.",[166,325,273],{"class":176},[166,327,276],{"class":176},[166,329,331,333],{"class":168,"line":330},8,[166,332,240],{"class":176},[166,334,335],{"class":180},")\n",[92,337,338],{},"Best for scripts, CLI tools, batch jobs, and webhooks.",[146,340,342,343],{"id":341},"streaming-streamtext","Streaming: ",[103,344,117],{},[92,346,347],{},"Same tools, streamed output — for chat UIs and interactive terminals:",[156,349,352],{"className":158,"code":350,"filename":351,"language":161,"meta":162,"style":162},"import { createGithubTools } from '@github-tools\u002Fsdk'\nimport { streamText } from 'ai'\n\nconst result = streamText({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  tools: createGithubTools({ preset: 'repo-explorer' }),\n  prompt: 'Explain the architecture of vercel-labs\u002Fgithub-tools.',\n})\n\nfor await (const chunk of result.textStream) {\n  process.stdout.write(chunk)\n}\n","stream.ts",[103,353,354,372,391,395,411,425,454,469,475,480,510,533],{"__ignoreMap":162},[166,355,356,358,360,362,364,366,368,370],{"class":168,"line":169},[166,357,173],{"class":172},[166,359,177],{"class":176},[166,361,181],{"class":180},[166,363,184],{"class":176},[166,365,187],{"class":172},[166,367,190],{"class":176},[166,369,194],{"class":193},[166,371,197],{"class":176},[166,373,374,376,378,381,383,385,387,389],{"class":168,"line":200},[166,375,173],{"class":172},[166,377,177],{"class":176},[166,379,380],{"class":180}," streamText",[166,382,184],{"class":176},[166,384,187],{"class":172},[166,386,190],{"class":176},[166,388,216],{"class":193},[166,390,197],{"class":176},[166,392,393],{"class":168,"line":221},[166,394,225],{"emptyLinePlaceholder":224},[166,396,397,399,402,405,407,409],{"class":168,"line":228},[166,398,232],{"class":231},[166,400,401],{"class":180}," result ",[166,403,404],{"class":176},"=",[166,406,380],{"class":249},[166,408,252],{"class":180},[166,410,255],{"class":176},[166,412,413,415,417,419,421,423],{"class":168,"line":258},[166,414,262],{"class":261},[166,416,265],{"class":176},[166,418,190],{"class":176},[166,420,270],{"class":193},[166,422,273],{"class":176},[166,424,276],{"class":176},[166,426,427,429,431,433,435,437,439,441,443,446,448,450,452],{"class":168,"line":279},[166,428,282],{"class":261},[166,430,265],{"class":176},[166,432,181],{"class":249},[166,434,252],{"class":180},[166,436,291],{"class":176},[166,438,294],{"class":261},[166,440,265],{"class":176},[166,442,190],{"class":176},[166,444,445],{"class":193},"repo-explorer",[166,447,273],{"class":176},[166,449,184],{"class":176},[166,451,308],{"class":180},[166,453,276],{"class":176},[166,455,456,458,460,462,465,467],{"class":168,"line":313},[166,457,316],{"class":261},[166,459,265],{"class":176},[166,461,190],{"class":176},[166,463,464],{"class":193},"Explain the architecture of vercel-labs\u002Fgithub-tools.",[166,466,273],{"class":176},[166,468,276],{"class":176},[166,470,471,473],{"class":168,"line":330},[166,472,240],{"class":176},[166,474,335],{"class":180},[166,476,478],{"class":168,"line":477},9,[166,479,225],{"emptyLinePlaceholder":224},[166,481,483,486,488,491,493,496,499,502,505,508],{"class":168,"line":482},10,[166,484,485],{"class":172},"for",[166,487,246],{"class":172},[166,489,490],{"class":180}," (",[166,492,232],{"class":231},[166,494,495],{"class":180}," chunk ",[166,497,498],{"class":176},"of",[166,500,501],{"class":180}," result",[166,503,504],{"class":176},".",[166,506,507],{"class":180},"textStream) ",[166,509,255],{"class":176},[166,511,513,516,518,521,523,526,528,531],{"class":168,"line":512},11,[166,514,515],{"class":180},"  process",[166,517,504],{"class":176},[166,519,520],{"class":180},"stdout",[166,522,504],{"class":176},[166,524,525],{"class":249},"write",[166,527,252],{"class":261},[166,529,530],{"class":180},"chunk",[166,532,335],{"class":261},[166,534,536],{"class":168,"line":535},12,[166,537,538],{"class":176},"}\n",[146,540,542,543],{"id":541},"reusable-agent-creategithubagent","Reusable agent: ",[103,544,545],{},"createGithubAgent",[92,547,548,550,551,558,559,562,563,566],{},[103,549,545],{}," returns a ",[96,552,555],{"href":553,"rel":554},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fagents",[100],[103,556,557],{},"ToolLoopAgent"," with tools, preset-aware system instructions, and approval policy wired together. Define it once, call ",[103,560,561],{},".generate()"," or ",[103,564,565],{},".stream()"," everywhere:",[156,568,571],{"className":158,"code":569,"filename":570,"language":161,"meta":162,"style":162},"import { createGithubAgent } from '@github-tools\u002Fsdk'\n\nconst reviewer = createGithubAgent({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  preset: 'code-review',\n  requireApproval: false,\n  additionalInstructions: 'Always cite file paths and line numbers.',\n})\n\nconst { text } = await reviewer.generate({\n  prompt: 'Review PR #42 on vercel-labs\u002Fgithub-tools.',\n})\n","agent.ts",[103,572,573,592,596,611,625,640,653,669,675,679,705,720],{"__ignoreMap":162},[166,574,575,577,579,582,584,586,588,590],{"class":168,"line":169},[166,576,173],{"class":172},[166,578,177],{"class":176},[166,580,581],{"class":180}," createGithubAgent",[166,583,184],{"class":176},[166,585,187],{"class":172},[166,587,190],{"class":176},[166,589,194],{"class":193},[166,591,197],{"class":176},[166,593,594],{"class":168,"line":200},[166,595,225],{"emptyLinePlaceholder":224},[166,597,598,600,603,605,607,609],{"class":168,"line":221},[166,599,232],{"class":231},[166,601,602],{"class":180}," reviewer ",[166,604,404],{"class":176},[166,606,581],{"class":249},[166,608,252],{"class":180},[166,610,255],{"class":176},[166,612,613,615,617,619,621,623],{"class":168,"line":228},[166,614,262],{"class":261},[166,616,265],{"class":176},[166,618,190],{"class":176},[166,620,270],{"class":193},[166,622,273],{"class":176},[166,624,276],{"class":176},[166,626,627,630,632,634,636,638],{"class":168,"line":258},[166,628,629],{"class":261},"  preset",[166,631,265],{"class":176},[166,633,190],{"class":176},[166,635,301],{"class":193},[166,637,273],{"class":176},[166,639,276],{"class":176},[166,641,642,645,647,651],{"class":168,"line":279},[166,643,644],{"class":261},"  requireApproval",[166,646,265],{"class":176},[166,648,650],{"class":649},"sfNiH"," false",[166,652,276],{"class":176},[166,654,655,658,660,662,665,667],{"class":168,"line":313},[166,656,657],{"class":261},"  additionalInstructions",[166,659,265],{"class":176},[166,661,190],{"class":176},[166,663,664],{"class":193},"Always cite file paths and line numbers.",[166,666,273],{"class":176},[166,668,276],{"class":176},[166,670,671,673],{"class":168,"line":330},[166,672,240],{"class":176},[166,674,335],{"class":180},[166,676,677],{"class":168,"line":477},[166,678,225],{"emptyLinePlaceholder":224},[166,680,681,683,685,687,689,691,693,696,698,701,703],{"class":168,"line":482},[166,682,232],{"class":231},[166,684,177],{"class":176},[166,686,237],{"class":180},[166,688,240],{"class":176},[166,690,243],{"class":176},[166,692,246],{"class":172},[166,694,695],{"class":180}," reviewer",[166,697,504],{"class":176},[166,699,700],{"class":249},"generate",[166,702,252],{"class":180},[166,704,255],{"class":176},[166,706,707,709,711,713,716,718],{"class":168,"line":512},[166,708,316],{"class":261},[166,710,265],{"class":176},[166,712,190],{"class":176},[166,714,715],{"class":193},"Review PR #42 on vercel-labs\u002Fgithub-tools.",[166,717,273],{"class":176},[166,719,276],{"class":176},[166,721,722,724],{"class":168,"line":535},[166,723,240],{"class":176},[166,725,335],{"class":180},[92,727,728,729,732,733,736],{},"Each preset ships a tailored system prompt — ",[103,730,731],{},"additionalInstructions"," appends to it, ",[103,734,735],{},"instructions"," replaces it entirely.",[146,738,740],{"id":739},"human-approval-in-the-loop","Human approval in the loop",[92,742,743,744,747],{},"Write tools carry ",[103,745,746],{},"needsApproval"," by default. When the model calls one, the AI SDK emits an approval request instead of executing — your app approves or denies, then execution continues:",[156,749,752],{"className":158,"code":750,"filename":751,"language":161,"meta":162,"style":162},"const tools = createGithubTools({\n  preset: 'maintainer',\n  requireApproval: {\n    mergePullRequest: true,\n    addIssueComment: false,\n  },\n})\n","approval.ts",[103,753,754,769,784,793,805,816,821],{"__ignoreMap":162},[166,755,756,758,761,763,765,767],{"class":168,"line":169},[166,757,232],{"class":231},[166,759,760],{"class":180}," tools ",[166,762,404],{"class":176},[166,764,181],{"class":249},[166,766,252],{"class":180},[166,768,255],{"class":176},[166,770,771,773,775,777,780,782],{"class":168,"line":200},[166,772,629],{"class":261},[166,774,265],{"class":176},[166,776,190],{"class":176},[166,778,779],{"class":193},"maintainer",[166,781,273],{"class":176},[166,783,276],{"class":176},[166,785,786,788,790],{"class":168,"line":221},[166,787,644],{"class":261},[166,789,265],{"class":176},[166,791,792],{"class":176}," {\n",[166,794,795,798,800,803],{"class":168,"line":228},[166,796,797],{"class":261},"    mergePullRequest",[166,799,265],{"class":176},[166,801,802],{"class":649}," true",[166,804,276],{"class":176},[166,806,807,810,812,814],{"class":168,"line":258},[166,808,809],{"class":261},"    addIssueComment",[166,811,265],{"class":176},[166,813,650],{"class":649},[166,815,276],{"class":176},[166,817,818],{"class":168,"line":279},[166,819,820],{"class":176},"  },\n",[166,822,823,825],{"class":168,"line":313},[166,824,240],{"class":176},[166,826,335],{"class":180},[92,828,829,830,833,834,504],{},"Full policy options (including ",[103,831,832],{},"overrides.needsApproval","): ",[96,835,836],{"href":59},"Control write safety",[146,838,840],{"id":839},"trim-tool-context-with-toolpick","Trim tool context with toolpick",[92,842,843,844,849],{},"With all 42 tools visible on every step, tool definitions eat tokens. ",[96,845,848],{"href":846,"rel":847},"https:\u002F\u002Fgithub.com\u002Fpontusab\u002Ftoolpick",[100],"toolpick"," selects only the most relevant tools per step:",[156,851,854],{"className":158,"code":852,"filename":853,"language":161,"meta":162,"style":162},"import { createGithubTools } from '@github-tools\u002Fsdk'\nimport { createToolIndex } from 'toolpick'\nimport { generateText } from 'ai'\nimport { openai } from '@ai-sdk\u002Fopenai'\n\nconst tools = createGithubTools()\nconst index = createToolIndex(tools, {\n  embeddingModel: openai.embeddingModel('text-embedding-3-small'),\n})\n\nconst result = await generateText({\n  model: openai('gpt-4o'),\n  tools,\n  prepareStep: index.prepareStep(),\n  prompt: 'Check if the CI is passing on the main branch of vercel\u002Fai.',\n})\n","with-toolpick.ts",[103,855,856,874,893,911,931,935,948,967,994,1000,1004,1020,1041,1048,1069,1085],{"__ignoreMap":162},[166,857,858,860,862,864,866,868,870,872],{"class":168,"line":169},[166,859,173],{"class":172},[166,861,177],{"class":176},[166,863,181],{"class":180},[166,865,184],{"class":176},[166,867,187],{"class":172},[166,869,190],{"class":176},[166,871,194],{"class":193},[166,873,197],{"class":176},[166,875,876,878,880,883,885,887,889,891],{"class":168,"line":200},[166,877,173],{"class":172},[166,879,177],{"class":176},[166,881,882],{"class":180}," createToolIndex",[166,884,184],{"class":176},[166,886,187],{"class":172},[166,888,190],{"class":176},[166,890,848],{"class":193},[166,892,197],{"class":176},[166,894,895,897,899,901,903,905,907,909],{"class":168,"line":221},[166,896,173],{"class":172},[166,898,177],{"class":176},[166,900,207],{"class":180},[166,902,184],{"class":176},[166,904,187],{"class":172},[166,906,190],{"class":176},[166,908,216],{"class":193},[166,910,197],{"class":176},[166,912,913,915,917,920,922,924,926,929],{"class":168,"line":228},[166,914,173],{"class":172},[166,916,177],{"class":176},[166,918,919],{"class":180}," openai",[166,921,184],{"class":176},[166,923,187],{"class":172},[166,925,190],{"class":176},[166,927,928],{"class":193},"@ai-sdk\u002Fopenai",[166,930,197],{"class":176},[166,932,933],{"class":168,"line":258},[166,934,225],{"emptyLinePlaceholder":224},[166,936,937,939,941,943,945],{"class":168,"line":279},[166,938,232],{"class":231},[166,940,760],{"class":180},[166,942,404],{"class":176},[166,944,181],{"class":249},[166,946,947],{"class":180},"()\n",[166,949,950,952,955,957,959,962,965],{"class":168,"line":313},[166,951,232],{"class":231},[166,953,954],{"class":180}," index ",[166,956,404],{"class":176},[166,958,882],{"class":249},[166,960,961],{"class":180},"(tools",[166,963,964],{"class":176},",",[166,966,792],{"class":176},[166,968,969,972,974,976,978,981,983,985,988,990,992],{"class":168,"line":330},[166,970,971],{"class":261},"  embeddingModel",[166,973,265],{"class":176},[166,975,919],{"class":180},[166,977,504],{"class":176},[166,979,980],{"class":249},"embeddingModel",[166,982,252],{"class":180},[166,984,273],{"class":176},[166,986,987],{"class":193},"text-embedding-3-small",[166,989,273],{"class":176},[166,991,308],{"class":180},[166,993,276],{"class":176},[166,995,996,998],{"class":168,"line":477},[166,997,240],{"class":176},[166,999,335],{"class":180},[166,1001,1002],{"class":168,"line":482},[166,1003,225],{"emptyLinePlaceholder":224},[166,1005,1006,1008,1010,1012,1014,1016,1018],{"class":168,"line":512},[166,1007,232],{"class":231},[166,1009,401],{"class":180},[166,1011,404],{"class":176},[166,1013,246],{"class":172},[166,1015,207],{"class":249},[166,1017,252],{"class":180},[166,1019,255],{"class":176},[166,1021,1022,1024,1026,1028,1030,1032,1035,1037,1039],{"class":168,"line":535},[166,1023,262],{"class":261},[166,1025,265],{"class":176},[166,1027,919],{"class":249},[166,1029,252],{"class":180},[166,1031,273],{"class":176},[166,1033,1034],{"class":193},"gpt-4o",[166,1036,273],{"class":176},[166,1038,308],{"class":180},[166,1040,276],{"class":176},[166,1042,1044,1046],{"class":168,"line":1043},13,[166,1045,282],{"class":180},[166,1047,276],{"class":176},[166,1049,1051,1054,1056,1059,1061,1064,1067],{"class":168,"line":1050},14,[166,1052,1053],{"class":261},"  prepareStep",[166,1055,265],{"class":176},[166,1057,1058],{"class":180}," index",[166,1060,504],{"class":176},[166,1062,1063],{"class":249},"prepareStep",[166,1065,1066],{"class":180},"()",[166,1068,276],{"class":176},[166,1070,1072,1074,1076,1078,1081,1083],{"class":168,"line":1071},15,[166,1073,316],{"class":261},[166,1075,265],{"class":176},[166,1077,190],{"class":176},[166,1079,1080],{"class":193},"Check if the CI is passing on the main branch of vercel\u002Fai.",[166,1082,273],{"class":176},[166,1084,276],{"class":176},[166,1086,1088,1090],{"class":168,"line":1087},16,[166,1089,240],{"class":176},[166,1091,335],{"class":180},[146,1093,1095],{"id":1094},"cherry-pick-individual-tools","Cherry-pick individual tools",[92,1097,1098],{},"Every tool is also exported as a standalone factory — compose your own minimal tool set:",[156,1100,1103],{"className":158,"code":1101,"filename":1102,"language":161,"meta":162,"style":162},"import { listPullRequests, getPullRequest, listPullRequestFiles } from '@github-tools\u002Fsdk'\n\nconst tools = {\n  listPullRequests: listPullRequests(token),\n  getPullRequest: getPullRequest(token),\n  listPullRequestFiles: listPullRequestFiles(token),\n}\n","cherry-pick.ts",[103,1104,1105,1134,1138,1148,1162,1175,1188],{"__ignoreMap":162},[166,1106,1107,1109,1111,1114,1116,1119,1121,1124,1126,1128,1130,1132],{"class":168,"line":169},[166,1108,173],{"class":172},[166,1110,177],{"class":176},[166,1112,1113],{"class":180}," listPullRequests",[166,1115,964],{"class":176},[166,1117,1118],{"class":180}," getPullRequest",[166,1120,964],{"class":176},[166,1122,1123],{"class":180}," listPullRequestFiles",[166,1125,184],{"class":176},[166,1127,187],{"class":172},[166,1129,190],{"class":176},[166,1131,194],{"class":193},[166,1133,197],{"class":176},[166,1135,1136],{"class":168,"line":200},[166,1137,225],{"emptyLinePlaceholder":224},[166,1139,1140,1142,1144,1146],{"class":168,"line":221},[166,1141,232],{"class":231},[166,1143,760],{"class":180},[166,1145,404],{"class":176},[166,1147,792],{"class":176},[166,1149,1150,1153,1155,1157,1160],{"class":168,"line":228},[166,1151,1152],{"class":261},"  listPullRequests",[166,1154,265],{"class":176},[166,1156,1113],{"class":249},[166,1158,1159],{"class":180},"(token)",[166,1161,276],{"class":176},[166,1163,1164,1167,1169,1171,1173],{"class":168,"line":258},[166,1165,1166],{"class":261},"  getPullRequest",[166,1168,265],{"class":176},[166,1170,1118],{"class":249},[166,1172,1159],{"class":180},[166,1174,276],{"class":176},[166,1176,1177,1180,1182,1184,1186],{"class":168,"line":279},[166,1178,1179],{"class":261},"  listPullRequestFiles",[166,1181,265],{"class":176},[166,1183,1123],{"class":249},[166,1185,1159],{"class":180},[166,1187,276],{"class":176},[166,1189,1190],{"class":168,"line":313},[166,1191,538],{"class":176},[92,1193,1194,1195,1197],{},"See the ",[96,1196,78],{"href":79}," for all 42 factories.",[146,1199,1201],{"id":1200},"when-to-level-up","When to level up",[1203,1204,1205,1218],"table",{},[1206,1207,1208],"thead",{},[1209,1210,1211,1215],"tr",{},[1212,1213,1214],"th",{},"Need",[1212,1216,1217],{},"Go to",[1219,1220,1221,1235,1244],"tbody",{},[1209,1222,1223,1231],{},[1224,1225,1226,1227,1230],"td",{},"A standalone agent in 3 files, richer approval (",[103,1228,1229],{},"once",", predicates)",[1224,1232,1233],{},[96,1234,31],{"href":32},[1209,1236,1237,1240],{},[1224,1238,1239],{},"Crash-safe execution, retries, resumable streams",[1224,1241,1242],{},[96,1243,41],{"href":42},[1209,1245,1246,1249],{},[1224,1247,1248],{},"A GitHub\u002FSlack\u002FDiscord bot",[1224,1250,1251],{},[96,1252,45],{"href":46},[146,1254,1256],{"id":1255},"external-references","External references",[129,1258,1259,1266],{},[132,1260,1261],{},[96,1262,1265],{"href":1263,"rel":1264},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Ftools-and-tool-calling",[100],"AI SDK tools and tool calling",[132,1267,1268],{},[96,1269,1271],{"href":553,"rel":1270},[100],"AI SDK agents",[1273,1274,1275],"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 .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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":162,"searchDepth":200,"depth":200,"links":1277},[1278,1280,1282,1284,1285,1286,1287,1288],{"id":148,"depth":200,"text":1279},"One-shot: generateText",{"id":341,"depth":200,"text":1281},"Streaming: streamText",{"id":541,"depth":200,"text":1283},"Reusable agent: createGithubAgent",{"id":739,"depth":200,"text":740},{"id":839,"depth":200,"text":840},{"id":1094,"depth":200,"text":1095},{"id":1200,"depth":200,"text":1201},{"id":1255,"depth":200,"text":1256},"Call GitHub from generateText, streamText, or a ToolLoopAgent — the core integration path for @github-tools\u002Fsdk in any Vercel AI SDK app.","md",[1292,1297,1300],{"label":1293,"icon":1294,"to":83,"color":1295,"variant":1296},"API reference — createGithubAgent","i-lucide-braces","neutral","subtle",{"label":1298,"icon":1299,"to":55,"color":1295,"variant":1296},"Scope with presets","i-lucide-layers",{"label":1301,"icon":1302,"to":71,"color":1295,"variant":1296},"See examples","i-lucide-code",{},{"title":36,"icon":39},{"title":87,"description":1289},"40nAnwZC1bHs30aFoemaH2LPzUBo_Hu3UE5UozN43bU",[1308,1310],{"title":31,"path":32,"stem":33,"description":1309,"icon":34,"children":-1},"Create a complete GitHub agent in 3 files with eve — defineDynamic registers all 42 tools, with durable human-in-the-loop approval (always, once, predicates).",{"title":41,"path":42,"stem":43,"description":1311,"icon":39,"children":-1},"Run GitHub tools as durable, retryable steps with createDurableGithubAgent — crash-safe agents for Nuxt and Next.js apps on Vercel.",1783444204935]