[{"data":1,"prerenderedAt":191},["ShallowReactive",2],{"navigation_docs":3,"-about-security":124,"-about-security-surround":186},[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":24,"body":126,"description":179,"extension":180,"links":181,"meta":182,"navigation":183,"path":25,"seo":184,"stem":26,"__hash__":185},"docs\u002F1.about\u002F5.security.md",{"type":127,"value":128,"toc":171},"minimark",[129,133,138,141,145,153,157,160,164],[130,131,132],"p",{},"The libraries sit between a model and the open internet. A few rules follow from that.",[134,135,137],"h2",{"id":136},"provider-output-is-data","Provider output is data",[130,139,140],{},"Titles, snippets, page content, commit messages, package READMEs and issue bodies were written by someone else. Every library hands them back as typed values and never interprets them. The docs sites render them as text, never as HTML. An agent host should do the same. What a tool returns is evidence, not a prompt.",[134,142,144],{"id":143},"credentials-stay-in-the-environment","Credentials stay in the environment",[130,146,147,148,152],{},"Providers read keys from the environment variables named in their docs. A library never writes a key to disk, a CLI never echoes it, and the libraries that raise an ",[149,150,151],"code",{},"HTTPError"," redact it from the URL before the message is built.",[134,154,156],{"id":155},"failures-are-explicit","Failures are explicit",[130,158,159],{},"A provider that isn't configured answers with a typed error, not with an empty list that looks like a real answer. A fan out reports which providers failed next to the results that did come back.",[134,161,163],{"id":162},"reporting","Reporting",[130,165,166,167,170],{},"Security reports for any ",[149,168,169],{},"@agntn\u002F*"," package go to the maintainers through the repository on GitHub, using private vulnerability reporting where the repo has it enabled. Please don't open a public issue for a vulnerability.",{"title":172,"searchDepth":173,"depth":173,"links":174},"",2,[175,176,177,178],{"id":136,"depth":173,"text":137},{"id":143,"depth":173,"text":144},{"id":155,"depth":173,"text":156},{"id":162,"depth":173,"text":163},"Provider output is data, credentials stay in the environment, and nothing a provider returns is treated as an instruction.","md",null,{},true,{"title":24,"description":179},"D9ODSo6HkGCttWtLoWSoF-7wSauweuJ7u4V-ceGWXl0",[187,189],{"title":20,"path":21,"stem":22,"description":188,"children":-1},"The stack, scripts and release flow every agntn repo shares.",{"title":34,"path":30,"stem":31,"description":190,"children":-1},"Every @agntn package, grouped by domain, with its providers, surfaces and status.",1789773069842]