[{"data":1,"prerenderedAt":230},["ShallowReactive",2],{"navigation_docs":3,"-about":124,"-about-surround":227},[4,28],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"About","\u002Fabout","1.about\u002F1.index",[9,11,15,19,23],{"title":10,"path":6,"stem":7},"Overview",{"title":12,"path":13,"stem":14},"The shape","\u002Fabout\u002Fshape","1.about\u002F2.shape",{"title":16,"path":17,"stem":18},"Surfaces","\u002Fabout\u002Fsurfaces","1.about\u002F3.surfaces",{"title":20,"path":21,"stem":22},"Conventions","\u002Fabout\u002Fconventions","1.about\u002F4.conventions",{"title":24,"path":25,"stem":26},"Security","\u002Fabout\u002Fsecurity","1.about\u002F5.security","i-lucide-book-open",{"title":29,"path":30,"stem":31,"children":32,"icon":123},"Libraries","\u002Flibraries","2.libraries\u002F0.index",[33,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119],{"title":34,"path":30,"stem":31},"All libraries",{"title":36,"path":37,"stem":38},"web","\u002Flibraries\u002Fweb","2.libraries\u002F01.web",{"title":40,"path":41,"stem":42},"archives","\u002Flibraries\u002Farchives","2.libraries\u002F02.archives",{"title":44,"path":45,"stem":46},"registries","\u002Flibraries\u002Fregistries","2.libraries\u002F03.registries",{"title":48,"path":49,"stem":50},"forges","\u002Flibraries\u002Fforges","2.libraries\u002F04.forges",{"title":52,"path":53,"stem":54},"keys","\u002Flibraries\u002Fkeys","2.libraries\u002F05.keys",{"title":56,"path":57,"stem":58},"harnesses","\u002Flibraries\u002Fharnesses","2.libraries\u002F06.harnesses",{"title":60,"path":61,"stem":62},"explorers","\u002Flibraries\u002Fexplorers","2.libraries\u002F07.explorers",{"title":64,"path":65,"stem":66},"chains","\u002Flibraries\u002Fchains","2.libraries\u002F08.chains",{"title":68,"path":69,"stem":70},"ciphers","\u002Flibraries\u002Fciphers","2.libraries\u002F09.ciphers",{"title":72,"path":73,"stem":74},"puzzles","\u002Flibraries\u002Fpuzzles","2.libraries\u002F10.puzzles",{"title":76,"path":77,"stem":78},"browsers","\u002Flibraries\u002Fbrowsers","2.libraries\u002F11.browsers",{"title":80,"path":81,"stem":82},"sessions","\u002Flibraries\u002Fsessions","2.libraries\u002F12.sessions",{"title":84,"path":85,"stem":86},"memory","\u002Flibraries\u002Fmemory","2.libraries\u002F13.memory",{"title":88,"path":89,"stem":90},"urls","\u002Flibraries\u002Furls","2.libraries\u002F14.urls",{"title":92,"path":93,"stem":94},"nodes","\u002Flibraries\u002Fnodes","2.libraries\u002F15.nodes",{"title":96,"path":97,"stem":98},"nfts","\u002Flibraries\u002Fnfts","2.libraries\u002F16.nfts",{"title":100,"path":101,"stem":102},"storages","\u002Flibraries\u002Fstorages","2.libraries\u002F17.storages",{"title":104,"path":105,"stem":106},"maps","\u002Flibraries\u002Fmaps","2.libraries\u002F18.maps",{"title":108,"path":109,"stem":110},"lyrics","\u002Flibraries\u002Flyrics","2.libraries\u002F19.lyrics",{"title":112,"path":113,"stem":114},"books","\u002Flibraries\u002Fbooks","2.libraries\u002F20.books",{"title":116,"path":117,"stem":118},"wiki","\u002Flibraries\u002Fwiki","2.libraries\u002F21.wiki",{"title":120,"path":121,"stem":122},"ox","\u002Flibraries\u002Fox","2.libraries\u002F22.ox","i-lucide-library",{"id":125,"title":126,"body":127,"description":220,"extension":221,"links":222,"meta":223,"navigation":224,"path":6,"seo":225,"stem":7,"__hash__":226},"docs\u002F1.about\u002F1.index.md","What agntn is",{"type":128,"value":129,"toc":213},"minimark",[130,142,145,150,173,176,180,183,190,194],[131,132,133,137,138,141],"p",{},[134,135,136],"code",{},"agntn"," is a GitHub organization and an npm scope. Every ",[134,139,140],{},"@agntn\u002F*"," package takes one domain, web search, package registries, git forges, blockchain keys, and puts one TypeScript interface in front of every provider in it.",[131,143,144],{},"The word that matters is agnostic. A library doesn't care which search engine, which registry or which forge answers. It also doesn't care whether the caller is a person at a terminal or a model inside an agent host. Both get the same shape back.",[146,147,149],"h2",{"id":148},"why-one-interface","Why one interface",[131,151,152,153,156,157,160,161,164,165,168,169,172],{},"Every provider has its own idea of a request. A different header for the key, a different way to page, a different name for the same field. An agent that wants to search the web shouldn't need to know that Brave wants ",[134,154,155],{},"X-Subscription-Token"," and Exa wants ",[134,158,159],{},"x-api-key",". The adapter knows. You write ",[134,162,163],{},"create(\"brave\")"," or ",[134,166,167],{},"create(\"exa\")"," and read the same ",[134,170,171],{},"SearchResult",".",[131,174,175],{},"The second reason is evidence. When a library asks several providers at once it keeps every record, remembers who returned it and says which provider failed and why. An agent can reason about that. A silent fallback hides it, and then you're debugging an answer that came from nowhere.",[146,177,179],{"id":178},"what-every-library-ships","What every library ships",[181,182],"surface-grid",{},[131,184,185,186,189],{},"The tool executors are written once. CLI, MCP server, the Vercel AI SDK tool and the Pi and OMP extensions all call the same functions and print the same answer. A human at a shell and a model in a harness see the same data. ",[187,188,16],"a",{"href":17}," shows how that's wired.",[146,191,193],{"id":192},"where-to-go-next","Where to go next",[195,196,197,201,205,209],"card-group",{},[198,199,200],"card",{"icon":123,"title":29,"to":30},"The catalogue, grouped by domain, with status and links.",[198,202,204],{"icon":203,"title":12,"to":13},"i-lucide-shapes","Registry, adapters, typed errors and the normalized types.",[198,206,208],{"icon":207,"title":20,"to":21},"i-lucide-wrench","Stack, scripts and release flow every repo shares.",[198,210,212],{"icon":211,"title":24,"to":25},"i-lucide-shield-alert","Provider output is data, keys stay in env, no prompt in a result.",{"title":214,"searchDepth":215,"depth":215,"links":216},"",2,[217,218,219],{"id":148,"depth":215,"text":149},{"id":178,"depth":215,"text":179},{"id":192,"depth":215,"text":193},"Agnostic TypeScript libraries, one per domain, that give an AI agent and a human the same interface over many providers.","md",null,{},{"title":10},{"title":126,"description":220},"1pGh32hFKfesk66KsiGKZziO45cRFSwVPV6OM5CltFA",[222,228],{"title":12,"path":13,"stem":14,"description":229,"children":-1},"How an agntn library is built, from the adapter that registers itself to the normalized answer and the typed error.",1789773068617]