[{"data":1,"prerenderedAt":653},["ShallowReactive",2],{"navigation_docs":3,"-guide-configuration":88,"-guide-configuration-surround":648},[4,40],{"title":5,"path":6,"stem":7,"children":8,"icon":39},"Guide","\u002Fguide","1.guide\u002F1.index",[9,11,15,19,23,27,31,35],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Listing Captures","\u002Fguide\u002Fsnapshots","1.guide\u002F2.snapshots",{"title":16,"path":17,"stem":18},"Reading Captures","\u002Fguide\u002Fcontent","1.guide\u002F3.content",{"title":20,"path":21,"stem":22},"Comparing Versions","\u002Fguide\u002Fdiff","1.guide\u002F4.diff",{"title":24,"path":25,"stem":26},"Configuration","\u002Fguide\u002Fconfiguration","1.guide\u002F5.configuration",{"title":28,"path":29,"stem":30},"Agents","\u002Fguide\u002Fagents","1.guide\u002F6.agents",{"title":32,"path":33,"stem":34},"Custom Providers","\u002Fguide\u002Fcustom","1.guide\u002F7.custom",{"title":36,"path":37,"stem":38},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F8.explorer","i-lucide-book-open",{"title":41,"path":42,"stem":43,"children":44,"icon":87},"Providers","\u002Fproviders","2.providers\u002F0.index",[45,47,51,55,59,63,67,71,75,79,83],{"title":46,"path":42,"stem":43},"Overview",{"title":48,"path":49,"stem":50},"Wayback Machine","\u002Fproviders\u002Fwayback","2.providers\u002F01.wayback",{"title":52,"path":53,"stem":54},"Arquivo.pt","\u002Fproviders\u002Farquivo","2.providers\u002F02.arquivo",{"title":56,"path":57,"stem":58},"Webarchiv Österreich","\u002Fproviders\u002Fwebarchiv","2.providers\u002F03.webarchiv",{"title":60,"path":61,"stem":62},"Archive.today","\u002Fproviders\u002Farchive-today","2.providers\u002F04.archive-today",{"title":64,"path":65,"stem":66},"Common Crawl","\u002Fproviders\u002Fcommoncrawl","2.providers\u002F05.commoncrawl",{"title":68,"path":69,"stem":70},"WebCite","\u002Fproviders\u002Fwebcite","2.providers\u002F06.webcite",{"title":72,"path":73,"stem":74},"Memento","\u002Fproviders\u002Fmemento","2.providers\u002F07.memento",{"title":76,"path":77,"stem":78},"Archive-It","\u002Fproviders\u002Farchive-it","2.providers\u002F08.archive-it",{"title":80,"path":81,"stem":82},"Conifer","\u002Fproviders\u002Fconifer","2.providers\u002F09.conifer",{"title":84,"path":85,"stem":86},"Perma.cc","\u002Fproviders\u002Fpermacc","2.providers\u002F10.permacc","i-lucide-library",{"id":89,"title":24,"body":90,"description":641,"extension":642,"links":643,"meta":644,"navigation":407,"path":25,"seo":646,"stem":26,"__hash__":647},"docs\u002F1.guide\u002F5.configuration.md",{"type":91,"value":92,"toc":635},"minimark",[93,98,127,312,338,342,351,480,495,498,579,586,590,612,616,631],[94,95,97],"h2",{"id":96},"config-files","Config files",[99,100,101,102,109,110,114,115,118,119,122,123,126],"p",{},"The library loads configuration through ",[103,104,108],"a",{"href":105,"rel":106},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fc12",[107],"nofollow","c12",": ",[111,112,113],"code",{},"archives.config.ts",", ",[111,116,117],{},".archives",", or an ",[111,120,121],{},"archives"," key in ",[111,124,125],{},"package.json",".",[128,129,134],"pre",{"className":130,"code":131,"filename":113,"language":132,"meta":133,"style":133},"language-ts shiki shiki-themes vitesse-light vitesse-light vesper","export default {\n  storage: {\n    cache: true,\n    ttl: 7 * 24 * 60 * 60 * 1000, \u002F\u002F 7 days\n    prefix: \"archives\",\n  },\n  performance: {\n    concurrency: 3,\n    batchSize: 20,\n    timeout: 10_000,\n    retries: 1,\n  },\n};\n","ts","",[111,135,136,152,162,177,216,235,241,249,262,275,288,301,306],{"__ignoreMap":133},[137,138,141,145,148],"span",{"class":139,"line":140},"line",1,[137,142,144],{"class":143},"sB1ot","export",[137,146,147],{"class":143}," default",[137,149,151],{"class":150},"sldxI"," {\n",[137,153,155,159],{"class":139,"line":154},2,[137,156,158],{"class":157},"sYv7f","  storage",[137,160,161],{"class":150},": {\n",[137,163,165,168,170,174],{"class":139,"line":164},3,[137,166,167],{"class":157},"    cache",[137,169,109],{"class":150},[137,171,173],{"class":172},"sKIuG","true",[137,175,176],{"class":150},",\n",[137,178,180,183,185,189,193,196,198,201,203,205,207,210,212],{"class":139,"line":179},4,[137,181,182],{"class":157},"    ttl",[137,184,109],{"class":150},[137,186,188],{"class":187},"sZMfM","7",[137,190,192],{"class":191},"s8Cdk"," *",[137,194,195],{"class":187}," 24",[137,197,192],{"class":191},[137,199,200],{"class":187}," 60",[137,202,192],{"class":191},[137,204,200],{"class":187},[137,206,192],{"class":191},[137,208,209],{"class":187}," 1000",[137,211,114],{"class":150},[137,213,215],{"class":214},"szOLe","\u002F\u002F 7 days\n",[137,217,219,222,224,228,231,233],{"class":139,"line":218},5,[137,220,221],{"class":157},"    prefix",[137,223,109],{"class":150},[137,225,227],{"class":226},"sbwUx","\"",[137,229,121],{"class":230},"sHyde",[137,232,227],{"class":226},[137,234,176],{"class":150},[137,236,238],{"class":139,"line":237},6,[137,239,240],{"class":150},"  },\n",[137,242,244,247],{"class":139,"line":243},7,[137,245,246],{"class":157},"  performance",[137,248,161],{"class":150},[137,250,252,255,257,260],{"class":139,"line":251},8,[137,253,254],{"class":157},"    concurrency",[137,256,109],{"class":150},[137,258,259],{"class":187},"3",[137,261,176],{"class":150},[137,263,265,268,270,273],{"class":139,"line":264},9,[137,266,267],{"class":157},"    batchSize",[137,269,109],{"class":150},[137,271,272],{"class":187},"20",[137,274,176],{"class":150},[137,276,278,281,283,286],{"class":139,"line":277},10,[137,279,280],{"class":157},"    timeout",[137,282,109],{"class":150},[137,284,285],{"class":187},"10_000",[137,287,176],{"class":150},[137,289,291,294,296,299],{"class":139,"line":290},11,[137,292,293],{"class":157},"    retries",[137,295,109],{"class":150},[137,297,298],{"class":187},"1",[137,300,176],{"class":150},[137,302,304],{"class":139,"line":303},12,[137,305,240],{"class":150},[137,307,309],{"class":139,"line":308},13,[137,310,311],{"class":150},"};\n",[99,313,314,315,114,318,321,322,325,326,329,330,333,334,337],{},"Overrides per environment live under ",[111,316,317],{},"$development",[111,319,320],{},"$production"," and ",[111,323,324],{},"$test",". ",[111,327,328],{},"getConfig()"," returns the resolved object, ",[111,331,332],{},"resetConfig()"," drops the cache, ",[111,335,336],{},"resolveConfig({ cwd })"," loads from somewhere else without caching.",[94,339,341],{"id":340},"cache","Cache",[99,343,344,345,350],{},"Responses are cached through ",[103,346,349],{"href":347,"rel":348},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funstorage",[107],"unstorage",", in memory unless you say otherwise. Any driver works:",[128,352,354],{"className":130,"code":353,"language":132,"meta":133,"style":133},"import { configureStorage } from \"@agntn\u002Farchives\";\nimport fsDriver from \"unstorage\u002Fdrivers\u002Ffs\";\n\nawait configureStorage({\n  driver: fsDriver({ base: \".\u002Fcache\" }),\n  ttl: 24 * 60 * 60 * 1000, \u002F\u002F 1 day\n});\n",[111,355,356,385,403,409,420,448,475],{"__ignoreMap":133},[137,357,358,361,364,368,371,374,377,380,382],{"class":139,"line":140},[137,359,360],{"class":143},"import",[137,362,363],{"class":150}," {",[137,365,367],{"class":366},"sA8fy"," configureStorage",[137,369,370],{"class":150}," }",[137,372,373],{"class":143}," from",[137,375,376],{"class":226}," \"",[137,378,379],{"class":230},"@agntn\u002Farchives",[137,381,227],{"class":226},[137,383,384],{"class":150},";\n",[137,386,387,389,392,394,396,399,401],{"class":139,"line":154},[137,388,360],{"class":143},[137,390,391],{"class":366}," fsDriver",[137,393,373],{"class":143},[137,395,376],{"class":226},[137,397,398],{"class":230},"unstorage\u002Fdrivers\u002Ffs",[137,400,227],{"class":226},[137,402,384],{"class":150},[137,404,405],{"class":139,"line":164},[137,406,408],{"emptyLinePlaceholder":407},true,"\n",[137,410,411,414,417],{"class":139,"line":179},[137,412,413],{"class":143},"await",[137,415,367],{"class":416},"shFES",[137,418,419],{"class":150},"({\n",[137,421,422,425,427,430,433,436,438,440,443,445],{"class":139,"line":218},[137,423,424],{"class":157},"  driver",[137,426,109],{"class":150},[137,428,429],{"class":416},"fsDriver",[137,431,432],{"class":150},"({ ",[137,434,435],{"class":157},"base",[137,437,109],{"class":150},[137,439,227],{"class":226},[137,441,442],{"class":230},".\u002Fcache",[137,444,227],{"class":226},[137,446,447],{"class":150}," }),\n",[137,449,450,453,455,458,460,462,464,466,468,470,472],{"class":139,"line":237},[137,451,452],{"class":157},"  ttl",[137,454,109],{"class":150},[137,456,457],{"class":187},"24",[137,459,192],{"class":191},[137,461,200],{"class":187},[137,463,192],{"class":191},[137,465,200],{"class":187},[137,467,192],{"class":191},[137,469,209],{"class":187},[137,471,114],{"class":150},[137,473,474],{"class":214},"\u002F\u002F 1 day\n",[137,476,477],{"class":139,"line":243},[137,478,479],{"class":150},"});\n",[99,481,482,483,486,487,490,491,494],{},"Keys are ",[111,484,485],{},"{prefix}:{provider key hash}:{query hash}",", where the provider key includes the options that change a result set, such as a Wayback ",[111,488,489],{},"collapse"," or an Archive-It collection. Two calls that differ only in cosmetic options share an entry. ",[111,492,493],{},"clearProviderStorage()"," empties the cache.",[99,496,497],{},"Per call:",[128,499,501],{"className":130,"code":500,"language":132,"meta":133,"style":133},"await archive.snapshots(\"example.com\", { cache: false }); \u002F\u002F skip the cache\nawait archive.snapshots(\"example.com\", { ttl: 60_000 }); \u002F\u002F keep this one for a minute\n",[111,502,503,544],{"__ignoreMap":133},[137,504,505,507,510,512,515,518,520,523,525,528,531,533,535,538,541],{"class":139,"line":140},[137,506,413],{"class":143},[137,508,509],{"class":366}," archive",[137,511,126],{"class":150},[137,513,514],{"class":416},"snapshots",[137,516,517],{"class":150},"(",[137,519,227],{"class":226},[137,521,522],{"class":230},"example.com",[137,524,227],{"class":226},[137,526,527],{"class":150},",",[137,529,530],{"class":150}," { ",[137,532,340],{"class":157},[137,534,109],{"class":150},[137,536,537],{"class":172},"false",[137,539,540],{"class":150}," });",[137,542,543],{"class":214}," \u002F\u002F skip the cache\n",[137,545,546,548,550,552,554,556,558,560,562,564,566,569,571,574,576],{"class":139,"line":154},[137,547,413],{"class":143},[137,549,509],{"class":366},[137,551,126],{"class":150},[137,553,514],{"class":416},[137,555,517],{"class":150},[137,557,227],{"class":226},[137,559,522],{"class":230},[137,561,227],{"class":226},[137,563,527],{"class":150},[137,565,530],{"class":150},[137,567,568],{"class":157},"ttl",[137,570,109],{"class":150},[137,572,573],{"class":187},"60_000",[137,575,540],{"class":150},[137,577,578],{"class":214}," \u002F\u002F keep this one for a minute\n",[99,580,581,582,585],{},"Listings and bodies are cached separately. A body read is cached against the capture it resolved to, so asking for ",[111,583,584],{},"timestamp: \"2015\""," twice reads the archive once.",[94,587,589],{"id":588},"where-the-config-is-read-from","Where the config is read from",[99,591,592,593,596,597,600,601,603,604,607,608,611],{},"The library resolves config from ",[111,594,595],{},"process.cwd()",". The MCP server does not: an MCP client starts ",[111,598,599],{},"archives mcp"," in whatever directory it has open, and a config file belonging to a repository you are merely browsing is code you did not choose to run. ",[111,602,599],{}," therefore pins discovery to the home directory of the account running it. Hosts that embed ",[111,605,606],{},"createMcpServer()"," can call ",[111,609,610],{},"setConfigCwd()"," to choose their own root.",[94,613,615],{"id":614},"permacc-key","Perma.cc key",[99,617,618,619,622,623,626,627,630],{},"Perma.cc is the one provider that needs a credential. In code, pass ",[111,620,621],{},"apiKey"," to the factory. Over MCP and in the agent extensions, the key comes from ",[111,624,625],{},"PERMA_CC_API_KEY"," or ",[111,628,629],{},"PERMACC_API_KEY"," and is never accepted as a tool argument; it is redacted before the options reach a transcript.",[632,633,634],"style",{},"html pre.shiki code .sB1ot, html code.shiki .sB1ot{--shiki-light:#1E754F;--shiki-default:#1E754F;--shiki-dark:#A0A0A0}html pre.shiki code .sldxI, html code.shiki .sldxI{--shiki-light:#999999;--shiki-default:#999999;--shiki-dark:#FFF}html pre.shiki code .sYv7f, html code.shiki .sYv7f{--shiki-light:#998418;--shiki-default:#998418;--shiki-dark:#FFF}html pre.shiki code .sKIuG, html code.shiki .sKIuG{--shiki-light:#1E754F;--shiki-default:#1E754F;--shiki-dark:#FFC799}html pre.shiki code .sZMfM, html code.shiki .sZMfM{--shiki-light:#2F798A;--shiki-default:#2F798A;--shiki-dark:#FFC799}html pre.shiki code .s8Cdk, html code.shiki .s8Cdk{--shiki-light:#AB5959;--shiki-default:#AB5959;--shiki-dark:#A0A0A0}html pre.shiki code .szOLe, html code.shiki .szOLe{--shiki-light:#A0ADA0;--shiki-default:#A0ADA0;--shiki-dark:#8B8B8B94}html pre.shiki code .sbwUx, html code.shiki .sbwUx{--shiki-light:#B5695977;--shiki-default:#B5695977;--shiki-dark:#99FFE4}html pre.shiki code .sHyde, html code.shiki .sHyde{--shiki-light:#B56959;--shiki-default:#B56959;--shiki-dark:#99FFE4}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 .sA8fy, html code.shiki .sA8fy{--shiki-light:#B07D48;--shiki-default:#B07D48;--shiki-dark:#FFF}html pre.shiki code .shFES, html code.shiki .shFES{--shiki-light:#59873A;--shiki-default:#59873A;--shiki-dark:#FFC799}",{"title":133,"searchDepth":154,"depth":154,"links":636},[637,638,639,640],{"id":96,"depth":154,"text":97},{"id":340,"depth":154,"text":341},{"id":588,"depth":154,"text":589},{"id":614,"depth":154,"text":615},"Config files through c12, the unstorage cache, and where an MCP server looks for its config.","md",null,{"icon":645},"i-lucide-settings-2",{"title":24,"description":641},"juJ4MNoKqmo6HF1U43VSjGl-p8oHx22Obhvh1TBqEbE",[649,651],{"title":20,"path":21,"stem":22,"description":650,"children":-1},"A bounded line diff between two captures that keeps provenance and never overstates an absence.",{"title":28,"path":29,"stem":30,"description":652,"children":-1},"The MCP server, the Pi and OMP extensions, and the text contract that makes them answer identically.",1788446779052]