[{"data":1,"prerenderedAt":1201},["ShallowReactive",2],{"navigation_docs":3,"-guide-agents":96,"-guide-agents-surround":1196},[4,44],{"title":5,"path":6,"stem":7,"children":8,"icon":43},"Guide","\u002Fguide","1.guide\u002F1.index",[9,11,15,19,23,27,31,35,39],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Searching","\u002Fguide\u002Fsearch","1.guide\u002F2.search",{"title":16,"path":17,"stem":18},"Fan-out","\u002Fguide\u002Ffanout","1.guide\u002F3.fanout",{"title":20,"path":21,"stem":22},"Reading","\u002Fguide\u002Fread","1.guide\u002F4.read",{"title":24,"path":25,"stem":26},"Reverse Image Search","\u002Fguide\u002Fimage","1.guide\u002F5.image",{"title":28,"path":29,"stem":30},"CLI","\u002Fguide\u002Fcli","1.guide\u002F6.cli",{"title":32,"path":33,"stem":34},"Agents","\u002Fguide\u002Fagents","1.guide\u002F7.agents",{"title":36,"path":37,"stem":38},"Custom Providers","\u002Fguide\u002Fcustom","1.guide\u002F8.custom",{"title":40,"path":41,"stem":42},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F9.explorer","i-lucide-book-open",{"title":45,"path":46,"stem":47,"children":48,"icon":95},"Providers","\u002Fproviders","2.providers\u002F0.index",[49,51,55,59,63,67,71,75,79,83,87,91],{"title":50,"path":46,"stem":47},"Overview",{"title":52,"path":53,"stem":54},"Brave","\u002Fproviders\u002Fbrave","2.providers\u002F01.brave",{"title":56,"path":57,"stem":58},"Context.dev","\u002Fproviders\u002Fcontext","2.providers\u002F02.context",{"title":60,"path":61,"stem":62},"Exa","\u002Fproviders\u002Fexa","2.providers\u002F03.exa",{"title":64,"path":65,"stem":66},"Firecrawl","\u002Fproviders\u002Ffirecrawl","2.providers\u002F04.firecrawl",{"title":68,"path":69,"stem":70},"Jina","\u002Fproviders\u002Fjina","2.providers\u002F05.jina",{"title":72,"path":73,"stem":74},"Mojeek","\u002Fproviders\u002Fmojeek","2.providers\u002F06.mojeek",{"title":76,"path":77,"stem":78},"SearXNG","\u002Fproviders\u002Fsearxng","2.providers\u002F07.searxng",{"title":80,"path":81,"stem":82},"SerpAPI","\u002Fproviders\u002Fserpapi","2.providers\u002F08.serpapi",{"title":84,"path":85,"stem":86},"SerpBase","\u002Fproviders\u002Fserpbase","2.providers\u002F09.serpbase",{"title":88,"path":89,"stem":90},"Tavily","\u002Fproviders\u002Ftavily","2.providers\u002F10.tavily",{"title":92,"path":93,"stem":94},"TinyFish","\u002Fproviders\u002Ftinyfish","2.providers\u002F11.tinyfish","i-lucide-library",{"id":97,"title":32,"body":98,"description":1189,"extension":1190,"links":1191,"meta":1192,"navigation":290,"path":33,"seo":1194,"stem":34,"__hash__":1195},"docs\u002F1.guide\u002F7.agents.md",{"type":99,"value":100,"toc":1181},"minimark",[101,106,196,200,204,414,431,637,670,674,719,734,744,748,764,782,786,793,801,805,808,1177],[102,103,105],"h2",{"id":104},"four-tools-every-host","Four tools, every host",[107,108,109,125],"table",{},[110,111,112],"thead",{},[113,114,115,119,122],"tr",{},[116,117,118],"th",{},"Tool",[116,120,121],{},"Does",[116,123,124],{},"Returns",[126,127,128,147,162,177],"tbody",{},[113,129,130,137,144],{},[131,132,133],"td",{},[134,135,136],"code",{},"web_search",[131,138,139,140,143],{},"one query or a batch, one provider, automatic selection, or ",[134,141,142],{},"all"," for fan-out",[131,145,146],{},"results with the provider diagnostics",[113,148,149,154,157],{},[131,150,151],{},[134,152,153],{},"web_search_image",[131,155,156],{},"matching pages and images for one public image URL",[131,158,159],{},[134,160,161],{},"ImageSearchResult[]",[113,163,164,169,172],{},[131,165,166],{},[134,167,168],{},"web_read",[131,170,171],{},"one URL or a batch into normalized content, with reader provenance",[131,173,174],{},[134,175,176],{},"{ result, requestedProvider, provider, attempts, failures }",[113,178,179,184,187],{},[131,180,181],{},[134,182,183],{},"web_providers",[131,185,186],{},"the running build, configuration, reachability and the complete capability matrix",[131,188,189,192,193],{},[134,190,191],{},"listProviders()"," plus ",[134,194,195],{},"packageCapabilities",[197,198,199],"p",{},"Same four on every surface. The descriptions name the built-in providers, but execution checks the name against the live registry, so a custom provider registered before the session works in a tool call too. The host's abort signal cancels the provider request, no zombie fetches after the model gives up.",[102,201,203],{"id":202},"ai-sdk","AI SDK",[205,206,211],"pre",{"className":207,"code":208,"language":209,"meta":210,"style":210},"language-ts shiki shiki-themes github-light github-light poimandres","import { generateText } from \"ai\";\nimport { readTool, searchImageTool, searchTool } from \"@agntn\u002Fweb\u002Fai\";\n\nconst { text } = await generateText({\n  model: yourModel,\n  tools: {\n    web_search: searchTool,\n    web_search_image: searchImageTool,\n    web_read: readTool,\n  },\n  prompt: \"Find the latest TypeScript release notes\",\n});\n","ts","",[134,212,213,251,285,292,322,338,349,361,373,385,391,408],{"__ignoreMap":210},[214,215,218,222,226,230,233,237,241,245,248],"span",{"class":216,"line":217},"line",1,[214,219,221],{"class":220},"sP0CR","import",[214,223,225],{"class":224},"sKlNE"," {",[214,227,229],{"class":228},"snHMy"," generateText",[214,231,232],{"class":224}," }",[214,234,236],{"class":235},"stCPd"," from",[214,238,240],{"class":239},"scVjq"," \"",[214,242,244],{"class":243},"sQ7BG","ai",[214,246,247],{"class":239},"\"",[214,249,250],{"class":224},";\n",[214,252,254,256,258,261,264,267,269,272,274,276,278,281,283],{"class":216,"line":253},2,[214,255,221],{"class":220},[214,257,225],{"class":224},[214,259,260],{"class":228}," readTool",[214,262,263],{"class":224},",",[214,265,266],{"class":228}," searchImageTool",[214,268,263],{"class":224},[214,270,271],{"class":228}," searchTool",[214,273,232],{"class":224},[214,275,236],{"class":235},[214,277,240],{"class":239},[214,279,280],{"class":243},"@agntn\u002Fweb\u002Fai",[214,282,247],{"class":239},[214,284,250],{"class":224},[214,286,288],{"class":216,"line":287},3,[214,289,291],{"emptyLinePlaceholder":290},true,"\n",[214,293,295,299,302,306,309,312,316,319],{"class":216,"line":294},4,[214,296,298],{"class":297},"s1TYA","const",[214,300,301],{"class":224}," { ",[214,303,305],{"class":304},"saoiD","text",[214,307,308],{"class":224}," } ",[214,310,311],{"class":297},"=",[214,313,315],{"class":314},"sZW6a"," await",[214,317,229],{"class":318},"sULi6",[214,320,321],{"class":224},"({\n",[214,323,325,328,331,335],{"class":216,"line":324},5,[214,326,327],{"class":228},"  model",[214,329,330],{"class":224},":",[214,332,334],{"class":333},"spVlQ"," yourModel",[214,336,337],{"class":224},",\n",[214,339,341,344,346],{"class":216,"line":340},6,[214,342,343],{"class":228},"  tools",[214,345,330],{"class":224},[214,347,348],{"class":224}," {\n",[214,350,352,355,357,359],{"class":216,"line":351},7,[214,353,354],{"class":228},"    web_search",[214,356,330],{"class":224},[214,358,271],{"class":333},[214,360,337],{"class":224},[214,362,364,367,369,371],{"class":216,"line":363},8,[214,365,366],{"class":228},"    web_search_image",[214,368,330],{"class":224},[214,370,266],{"class":333},[214,372,337],{"class":224},[214,374,376,379,381,383],{"class":216,"line":375},9,[214,377,378],{"class":228},"    web_read",[214,380,330],{"class":224},[214,382,260],{"class":333},[214,384,337],{"class":224},[214,386,388],{"class":216,"line":387},10,[214,389,390],{"class":224},"  },\n",[214,392,394,397,399,401,404,406],{"class":216,"line":393},11,[214,395,396],{"class":228},"  prompt",[214,398,330],{"class":224},[214,400,240],{"class":239},[214,402,403],{"class":243},"Find the latest TypeScript release notes",[214,405,247],{"class":239},[214,407,337],{"class":224},[214,409,411],{"class":216,"line":410},12,[214,412,413],{"class":224},"});\n",[197,415,416,418,419,422,423,426,427,430],{},[134,417,244],{}," and ",[134,420,421],{},"zod"," are optional peers. The main entry never imports them, only the ",[134,424,425],{},"\u002Fai"," subpath does. ",[134,428,429],{},"providersTool"," is the fourth export.",[205,432,434],{"className":207,"code":433,"language":209,"meta":210,"style":210},"type SearchToolInput = {\n  query: string | string[]; \u002F\u002F up to 10 in a batch\n  provider?: string; \u002F\u002F a built-in, a custom name, or \"all\"\n  maxResults?: number; \u002F\u002F 1 to 20, default 10\n  continuation?: string;\n  highlights?: boolean;\n  summary?: boolean;\n  fullText?: boolean;\n  includeDomains?: string[];\n  excludeDomains?: string[];\n  sources?: string[];\n  categories?: string[];\n  category?: string;\n  startPublishedDate?: string;\n  endPublishedDate?: string;\n};\n",[134,435,436,450,474,490,505,516,528,539,550,562,573,584,595,607,619,631],{"__ignoreMap":210},[214,437,438,441,445,448],{"class":216,"line":217},[214,439,440],{"class":297},"type",[214,442,444],{"class":443},"s3-Zl"," SearchToolInput",[214,446,447],{"class":297}," =",[214,449,348],{"class":224},[214,451,452,456,458,462,465,467,470],{"class":216,"line":253},[214,453,455],{"class":454},"stSEH","  query",[214,457,330],{"class":297},[214,459,461],{"class":460},"s8yaW"," string",[214,463,464],{"class":297}," |",[214,466,461],{"class":460},[214,468,469],{"class":224},"[];",[214,471,473],{"class":472},"sjhu3"," \u002F\u002F up to 10 in a batch\n",[214,475,476,479,482,484,487],{"class":216,"line":287},[214,477,478],{"class":454},"  provider",[214,480,481],{"class":297},"?:",[214,483,461],{"class":460},[214,485,486],{"class":224},";",[214,488,489],{"class":472}," \u002F\u002F a built-in, a custom name, or \"all\"\n",[214,491,492,495,497,500,502],{"class":216,"line":294},[214,493,494],{"class":454},"  maxResults",[214,496,481],{"class":297},[214,498,499],{"class":460}," number",[214,501,486],{"class":224},[214,503,504],{"class":472}," \u002F\u002F 1 to 20, default 10\n",[214,506,507,510,512,514],{"class":216,"line":324},[214,508,509],{"class":454},"  continuation",[214,511,481],{"class":297},[214,513,461],{"class":460},[214,515,250],{"class":224},[214,517,518,521,523,526],{"class":216,"line":340},[214,519,520],{"class":454},"  highlights",[214,522,481],{"class":297},[214,524,525],{"class":460}," boolean",[214,527,250],{"class":224},[214,529,530,533,535,537],{"class":216,"line":351},[214,531,532],{"class":454},"  summary",[214,534,481],{"class":297},[214,536,525],{"class":460},[214,538,250],{"class":224},[214,540,541,544,546,548],{"class":216,"line":363},[214,542,543],{"class":454},"  fullText",[214,545,481],{"class":297},[214,547,525],{"class":460},[214,549,250],{"class":224},[214,551,552,555,557,559],{"class":216,"line":375},[214,553,554],{"class":454},"  includeDomains",[214,556,481],{"class":297},[214,558,461],{"class":460},[214,560,561],{"class":224},"[];\n",[214,563,564,567,569,571],{"class":216,"line":387},[214,565,566],{"class":454},"  excludeDomains",[214,568,481],{"class":297},[214,570,461],{"class":460},[214,572,561],{"class":224},[214,574,575,578,580,582],{"class":216,"line":393},[214,576,577],{"class":454},"  sources",[214,579,481],{"class":297},[214,581,461],{"class":460},[214,583,561],{"class":224},[214,585,586,589,591,593],{"class":216,"line":410},[214,587,588],{"class":454},"  categories",[214,590,481],{"class":297},[214,592,461],{"class":460},[214,594,561],{"class":224},[214,596,598,601,603,605],{"class":216,"line":597},13,[214,599,600],{"class":454},"  category",[214,602,481],{"class":297},[214,604,461],{"class":460},[214,606,250],{"class":224},[214,608,610,613,615,617],{"class":216,"line":609},14,[214,611,612],{"class":454},"  startPublishedDate",[214,614,481],{"class":297},[214,616,461],{"class":460},[214,618,250],{"class":224},[214,620,622,625,627,629],{"class":216,"line":621},15,[214,623,624],{"class":454},"  endPublishedDate",[214,626,481],{"class":297},[214,628,461],{"class":460},[214,630,250],{"class":224},[214,632,634],{"class":216,"line":633},16,[214,635,636],{"class":224},"};\n",[197,638,639,640,643,644,418,647,650,651,654,655,418,658,661,662,665,666,669],{},"A scalar search returns ",[134,641,642],{},"{ provider, results, ignoredFilters, undeclaredFilters, pagination, metadata? }",", automatic ones add ",[134,645,646],{},"attempts",[134,648,649],{},"failures",", and ",[134,652,653],{},"provider: \"all\""," returns the fan-out envelope with ",[134,656,657],{},"providers",[134,659,660],{},"evidence"," on each result. ",[134,663,664],{},"readTool"," takes ",[134,667,668],{},"url"," or an array of URLs plus the read options, defaults to 20 000 characters and accepts at most 200 000. Without that default a model would happily ask for a whole site and stuff it into its context.",[102,671,673],{"id":672},"mcp","MCP",[205,675,679],{"className":676,"code":677,"language":678,"meta":210,"style":210},"language-bash shiki shiki-themes github-light github-light poimandres","web mcp\nclaude mcp add web --scope user -- web mcp\n","bash",[134,680,681,691],{"__ignoreMap":210},[214,682,683,687],{"class":216,"line":217},[214,684,686],{"class":685},"sseY5","web",[214,688,690],{"class":689},"sX7Zv"," mcp\n",[214,692,693,696,699,702,705,709,712,715,717],{"class":216,"line":253},[214,694,695],{"class":685},"claude",[214,697,698],{"class":689}," mcp",[214,700,701],{"class":689}," add",[214,703,704],{"class":689}," web",[214,706,708],{"class":707},"sqT1Y"," --scope",[214,710,711],{"class":689}," user",[214,713,714],{"class":707}," --",[214,716,704],{"class":689},[214,718,690],{"class":689},[197,720,721,722,725,726,729,730,733],{},"The server uses the SDK's ",[134,723,724],{},"Server"," class with TypeBox schemas. Every tool advertises an output schema and returns its result under ",[134,727,728],{},"structuredContent.result",", compact JSON stays in ",[134,731,732],{},"content"," for clients that only render text. Tool symbols and titles match the native extensions, and nothing decorative gets written into the JSON-RPC stream. The client owns its TUI, not the server.",[197,735,736,739,740,743],{},[134,737,738],{},"createMcpServer()"," from the ",[134,741,742],{},"@agntn\u002Fweb\u002Fmcp"," subpath returns the same server when your host brings its own transport.",[102,745,747],{"id":746},"pi-and-omp","Pi and OMP",[205,749,751],{"className":676,"code":750,"language":678,"meta":210,"style":210},"pi install git:github.com\u002Fagntn\u002Fweb\n",[134,752,753],{"__ignoreMap":210},[214,754,755,758,761],{"class":216,"line":217},[214,756,757],{"class":685},"pi",[214,759,760],{"class":689}," install",[214,762,763],{"class":689}," git:github.com\u002Fagntn\u002Fweb\n",[197,765,766,767,773,774,777,778,781],{},"The package ships the four tools as a ",[768,769,757],"a",{"href":770,"rel":771},"https:\u002F\u002Fpi.dev",[772],"nofollow"," extension and an OMP extension. Pi also gets two slash commands: ",[134,775,776],{},"\u002Fweb [query]"," shows results as a selector and pastes the chosen URL into the editor, ",[134,779,780],{},"\u002Fweb-providers"," shows configuration, reachability and capabilities. Both extensions read the same env vars as the library. Their TUI rows show progress, provider choice, result counts and fallback attempts, with bounded previews. A whole page rendered into the terminal is useless, so it never happens.",[102,783,785],{"id":784},"what-the-answer-is","What the answer is",[197,787,788,789,792],{},"The tools return the normalized objects, not prose. A model summarizing them should say what the provider said. The ",[768,790,40],{"href":791},"\u002Fexplorer"," shows the same objects for any query, which is a quick way to check a summary against the source when a model gets creative.",[794,795,796,797,800],"caution",{},"Titles, snippets, highlights and page content are published by whoever owns the page. They are data to report, not instructions to follow. An agent that reads ",[134,798,799],{},"snippet: \"ignore previous instructions\""," has learned one thing about the page, and nothing about what to do next.",[102,802,804],{"id":803},"rolling-your-own","Rolling your own",[197,806,807],{},"Framework is none of the above? The four tools are thin wrappers over the helpers anyway:",[205,809,811],{"className":207,"code":810,"language":209,"meta":210,"style":210},"import { listProviders, readUrlDetailed, searchAllDetailed, searchByImage, searchWithFallback } from \"@agntn\u002Fweb\";\n\nexport async function run(input: { operation: string; query?: string; url?: string; provider?: string }, signal?: AbortSignal) {\n  switch (input.operation) {\n    case \"search\":\n      return input.provider === \"all\"\n        ? searchAllDetailed(input.query!, { signal })\n        : searchWithFallback(input.query!, { signal });\n    case \"search_image\":\n      return searchByImage(input.url!, { provider: input.provider, signal });\n    case \"read\":\n      return readUrlDetailed(input.url!, { provider: input.provider, maxChars: 20_000, signal });\n    case \"providers\":\n      return listProviders();\n  }\n}\n",[134,812,813,855,859,935,952,967,989,1016,1040,1053,1088,1101,1146,1158,1167,1172],{"__ignoreMap":210},[214,814,815,817,819,822,824,827,829,832,834,837,839,842,844,846,848,851,853],{"class":216,"line":217},[214,816,221],{"class":220},[214,818,225],{"class":224},[214,820,821],{"class":228}," listProviders",[214,823,263],{"class":224},[214,825,826],{"class":228}," readUrlDetailed",[214,828,263],{"class":224},[214,830,831],{"class":228}," searchAllDetailed",[214,833,263],{"class":224},[214,835,836],{"class":228}," searchByImage",[214,838,263],{"class":224},[214,840,841],{"class":228}," searchWithFallback",[214,843,232],{"class":224},[214,845,236],{"class":235},[214,847,240],{"class":239},[214,849,850],{"class":243},"@agntn\u002Fweb",[214,852,247],{"class":239},[214,854,250],{"class":224},[214,856,857],{"class":216,"line":253},[214,858,291],{"emptyLinePlaceholder":290},[214,860,861,864,867,870,874,877,881,883,885,889,891,893,896,899,901,903,905,907,909,911,913,916,918,920,923,926,928,932],{"class":216,"line":287},[214,862,863],{"class":220},"export",[214,865,866],{"class":220}," async",[214,868,869],{"class":297}," function",[214,871,873],{"class":872},"scZRh"," run",[214,875,876],{"class":224},"(",[214,878,880],{"class":879},"s1jWp","input",[214,882,330],{"class":297},[214,884,301],{"class":224},[214,886,888],{"class":887},"s0VbO","operation",[214,890,330],{"class":297},[214,892,461],{"class":460},[214,894,895],{"class":224},"; ",[214,897,898],{"class":887},"query",[214,900,481],{"class":297},[214,902,461],{"class":460},[214,904,895],{"class":224},[214,906,668],{"class":887},[214,908,481],{"class":297},[214,910,461],{"class":460},[214,912,895],{"class":224},[214,914,915],{"class":887},"provider",[214,917,481],{"class":297},[214,919,461],{"class":460},[214,921,922],{"class":224}," }, ",[214,924,925],{"class":879},"signal",[214,927,481],{"class":297},[214,929,931],{"class":930},"sCrqT"," AbortSignal",[214,933,934],{"class":224},") {\n",[214,936,937,940,943,945,948,950],{"class":216,"line":294},[214,938,939],{"class":235},"  switch",[214,941,942],{"class":224}," (",[214,944,880],{"class":333},[214,946,947],{"class":224},".",[214,949,888],{"class":333},[214,951,934],{"class":224},[214,953,954,957,959,962,964],{"class":216,"line":324},[214,955,956],{"class":235},"    case",[214,958,240],{"class":239},[214,960,961],{"class":243},"search",[214,963,247],{"class":239},[214,965,966],{"class":224},":\n",[214,968,969,972,975,977,979,982,984,986],{"class":216,"line":340},[214,970,971],{"class":314},"      return",[214,973,974],{"class":333}," input",[214,976,947],{"class":224},[214,978,915],{"class":333},[214,980,981],{"class":297}," ===",[214,983,240],{"class":239},[214,985,142],{"class":243},[214,987,988],{"class":239},"\"\n",[214,990,991,994,996,998,1000,1002,1004,1007,1010,1013],{"class":216,"line":351},[214,992,993],{"class":297},"        ?",[214,995,831],{"class":318},[214,997,876],{"class":224},[214,999,880],{"class":333},[214,1001,947],{"class":224},[214,1003,898],{"class":333},[214,1005,1006],{"class":297},"!",[214,1008,1009],{"class":224},", {",[214,1011,1012],{"class":333}," signal",[214,1014,1015],{"class":224}," })\n",[214,1017,1018,1021,1023,1025,1027,1029,1031,1033,1035,1037],{"class":216,"line":363},[214,1019,1020],{"class":297},"        :",[214,1022,841],{"class":318},[214,1024,876],{"class":224},[214,1026,880],{"class":333},[214,1028,947],{"class":224},[214,1030,898],{"class":333},[214,1032,1006],{"class":297},[214,1034,1009],{"class":224},[214,1036,1012],{"class":333},[214,1038,1039],{"class":224}," });\n",[214,1041,1042,1044,1046,1049,1051],{"class":216,"line":375},[214,1043,956],{"class":235},[214,1045,240],{"class":239},[214,1047,1048],{"class":243},"search_image",[214,1050,247],{"class":239},[214,1052,966],{"class":224},[214,1054,1055,1057,1059,1061,1063,1065,1067,1069,1071,1074,1076,1078,1080,1082,1084,1086],{"class":216,"line":387},[214,1056,971],{"class":314},[214,1058,836],{"class":318},[214,1060,876],{"class":224},[214,1062,880],{"class":333},[214,1064,947],{"class":224},[214,1066,668],{"class":333},[214,1068,1006],{"class":297},[214,1070,1009],{"class":224},[214,1072,1073],{"class":228}," provider",[214,1075,330],{"class":224},[214,1077,974],{"class":333},[214,1079,947],{"class":224},[214,1081,915],{"class":333},[214,1083,263],{"class":224},[214,1085,1012],{"class":333},[214,1087,1039],{"class":224},[214,1089,1090,1092,1094,1097,1099],{"class":216,"line":393},[214,1091,956],{"class":235},[214,1093,240],{"class":239},[214,1095,1096],{"class":243},"read",[214,1098,247],{"class":239},[214,1100,966],{"class":224},[214,1102,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1134,1136,1140,1142,1144],{"class":216,"line":410},[214,1104,971],{"class":314},[214,1106,826],{"class":318},[214,1108,876],{"class":224},[214,1110,880],{"class":333},[214,1112,947],{"class":224},[214,1114,668],{"class":333},[214,1116,1006],{"class":297},[214,1118,1009],{"class":224},[214,1120,1073],{"class":228},[214,1122,330],{"class":224},[214,1124,974],{"class":333},[214,1126,947],{"class":224},[214,1128,915],{"class":333},[214,1130,263],{"class":224},[214,1132,1133],{"class":228}," maxChars",[214,1135,330],{"class":224},[214,1137,1139],{"class":1138},"siHFe"," 20_000",[214,1141,263],{"class":224},[214,1143,1012],{"class":333},[214,1145,1039],{"class":224},[214,1147,1148,1150,1152,1154,1156],{"class":216,"line":597},[214,1149,956],{"class":235},[214,1151,240],{"class":239},[214,1153,657],{"class":243},[214,1155,247],{"class":239},[214,1157,966],{"class":224},[214,1159,1160,1162,1164],{"class":216,"line":609},[214,1161,971],{"class":314},[214,1163,821],{"class":318},[214,1165,1166],{"class":224},"();\n",[214,1168,1169],{"class":216,"line":621},[214,1170,1171],{"class":224},"  }\n",[214,1173,1174],{"class":216,"line":633},[214,1175,1176],{"class":224},"}\n",[1178,1179,1180],"style",{},"html pre.shiki code .sP0CR, html code.shiki .sP0CR{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .snHMy, html code.shiki .snHMy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#ADD7FF}html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .scVjq, html code.shiki .scVjq{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#A6ACCD}html pre.shiki code .sQ7BG, html code.shiki .sQ7BG{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#5DE4C7}html pre.shiki code .s1TYA, html code.shiki .s1TYA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#91B4D5}html pre.shiki code .saoiD, html code.shiki .saoiD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#E4F0FB}html pre.shiki code .sZW6a, html code.shiki .sZW6a{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7C0}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}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 .s3-Zl, html code.shiki .s3-Zl{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#A6ACCD}html pre.shiki code .stSEH, html code.shiki .stSEH{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#ADD7FF}html pre.shiki code .s8yaW, html code.shiki .s8yaW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#A6ACCDC0}html pre.shiki code .sjhu3, html code.shiki .sjhu3{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#767C9DB0;--shiki-dark-font-style:italic}html pre.shiki code .sseY5, html code.shiki .sseY5{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#91B4D5}html pre.shiki code .sX7Zv, html code.shiki .sX7Zv{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#ADD7FF}html pre.shiki code .sqT1Y, html code.shiki .sqT1Y{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#ADD7FF}html pre.shiki code .scZRh, html code.shiki .scZRh{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#ADD7FF}html pre.shiki code .s1jWp, html code.shiki .s1jWp{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#E4F0FB}html pre.shiki code .s0VbO, html code.shiki .s0VbO{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#A6ACCD}html pre.shiki code .sCrqT, html code.shiki .sCrqT{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#A6ACCDC0}html pre.shiki code .siHFe, html code.shiki .siHFe{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#5DE4C7}",{"title":210,"searchDepth":253,"depth":253,"links":1182},[1183,1184,1185,1186,1187,1188],{"id":104,"depth":253,"text":105},{"id":202,"depth":253,"text":203},{"id":672,"depth":253,"text":673},{"id":746,"depth":253,"text":747},{"id":784,"depth":253,"text":785},{"id":803,"depth":253,"text":804},"The same four tools for the Vercel AI SDK, the MCP server, Pi and OMP, and what an agent should and should not do with the answer.","md",null,{"icon":1193},"i-lucide-bot",{"title":32,"description":1189},"iXu3-e7AsTx29hh4LBEJa0iR2Z1jF8bx9tpldQpdnmI",[1197,1199],{"title":28,"path":29,"stem":30,"description":1198,"children":-1},"The web command, its five subcommands, the flags, and the JSON envelopes that match the library.",{"title":36,"path":37,"stem":38,"description":1200,"children":-1},"Extend the base class, implement the capabilities you have, register it, and every helper, tool and CLI picks it up.",1788509441443]