[{"data":1,"prerenderedAt":1651},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:vQMFNo853pOAZofQ2W4koVhV9k5OhTPRMJLStbt3W-8":261,"content-page-surround:docs:vQMFNo853pOAZofQ2W4koVhV9k5OhTPRMJLStbt3W-8":1628,"i-logos:typescript-icon":1644,"i-lucide:clipboard":1648},[4,18,49,65,148,207,230],{"title":5,"page":6,"canonicalKey":7,"locale":8,"id":9,"draft":6,"icon":10,"sidebar":11,"children":12},"Documentation",false,"1","en","content:docs:1.get-started:.navigation.yml","i-lucide-book-open","section",[13],{"title":14,"id":15,"canonicalKey":16,"locale":8,"draft":6,"path":17},"Quickstart","content:docs:1.get-started:1.quickstart.md","1\u002F1","\u002Fdocs\u002Fget-started\u002Fquickstart",{"title":19,"page":6,"canonicalKey":20,"locale":8,"id":21,"draft":6,"icon":22,"sidebar":23,"children":24},"Build","2","content:docs:2.build:.navigation.yml","i-lucide-hammer","group",[25,31,37,43],{"title":26,"id":27,"canonicalKey":28,"locale":8,"draft":6,"navigation":29,"path":30},"Documentation site","content:docs:2.build:1.documentation-site.md","2\u002F1",{"title":26},"\u002Fdocs\u002Fbuild\u002Fdocumentation-site",{"title":32,"id":33,"canonicalKey":34,"locale":8,"draft":6,"navigation":35,"path":36},"Blog","content:docs:2.build:2.blog.md","2\u002F2",{"title":32},"\u002Fdocs\u002Fbuild\u002Fblog",{"title":38,"id":39,"canonicalKey":40,"locale":8,"draft":6,"navigation":41,"path":42},"Multilingual site","content:docs:2.build:3.multilingual-site.md","2\u002F3",{"title":38},"\u002Fdocs\u002Fbuild\u002Fmultilingual-site",{"title":44,"id":45,"canonicalKey":46,"locale":8,"draft":6,"navigation":47,"path":48},"Search and navigation","content:docs:2.build:4.search-and-navigation.md","2\u002F4",{"title":44},"\u002Fdocs\u002Fbuild\u002Fsearch-and-navigation",{"title":50,"page":6,"canonicalKey":51,"locale":8,"id":52,"draft":6,"icon":53,"sidebar":23,"children":54},"Concepts","3","content:docs:3.concepts:.navigation.yml","i-lucide-lightbulb",[55,60],{"title":56,"id":57,"canonicalKey":58,"locale":8,"draft":6,"path":59},"How Ginko thinks","content:docs:3.concepts:1.how-ginko-thinks.md","3\u002F1","\u002Fdocs\u002Fconcepts\u002Fhow-ginko-thinks",{"title":61,"id":62,"canonicalKey":63,"locale":8,"draft":6,"path":64},"Why Ginko (and when not)","content:docs:3.concepts:2.why-ginko.md","3\u002F2","\u002Fdocs\u002Fconcepts\u002Fwhy-ginko",{"title":66,"page":6,"canonicalKey":67,"locale":8,"id":68,"draft":6,"icon":69,"sidebar":23,"children":70},"Guides","4","content:docs:4.guides:.navigation.yml","i-lucide-compass",[71,77,83,89,95,101,107,113,119,125,131,137,143],{"title":72,"id":73,"canonicalKey":74,"locale":8,"draft":6,"navigation":75,"path":76},"Frontmatter and schemas","content:docs:4.guides:1.frontmatter-and-schemas.md","4\u002F1",{"title":72},"\u002Fdocs\u002Fguides\u002Ffrontmatter-and-schemas",{"title":78,"id":79,"canonicalKey":80,"locale":8,"draft":6,"navigation":81,"path":82},"MDC components","content:docs:4.guides:2.mdc-components.md","4\u002F2",{"title":78},"\u002Fdocs\u002Fguides\u002Fmdc-components",{"title":84,"id":85,"canonicalKey":86,"locale":8,"draft":6,"navigation":87,"path":88},"Data and references","content:docs:4.guides:3.data-collections-and-references.md","4\u002F3",{"title":84},"\u002Fdocs\u002Fguides\u002Fdata-collections-and-references",{"title":90,"id":91,"canonicalKey":92,"locale":8,"draft":6,"navigation":93,"path":94},"Drafts and partials","content:docs:4.guides:4.drafts-and-partials.md","4\u002F4",{"title":90},"\u002Fdocs\u002Fguides\u002Fdrafts-and-partials",{"title":96,"id":97,"canonicalKey":98,"locale":8,"draft":6,"navigation":99,"path":100},"Navigation","content:docs:4.guides:5.navigation.md","4\u002F5",{"title":96},"\u002Fdocs\u002Fguides\u002Fnavigation",{"title":102,"id":103,"canonicalKey":104,"locale":8,"draft":6,"navigation":105,"path":106},"Routes and redirects","content:docs:4.guides:6.routes-links-and-redirects.md","4\u002F6",{"title":102},"\u002Fdocs\u002Fguides\u002Froutes-links-and-redirects",{"title":108,"id":109,"canonicalKey":110,"locale":8,"draft":6,"navigation":111,"path":112},"Translated slugs","content:docs:4.guides:7.translated-slugs.md","4\u002F7",{"title":108},"\u002Fdocs\u002Fguides\u002Ftranslated-slugs",{"title":114,"id":115,"canonicalKey":116,"locale":8,"draft":6,"navigation":117,"path":118},"Search engines","content:docs:4.guides:8.search-engines.md","4\u002F8",{"title":114},"\u002Fdocs\u002Fguides\u002Fsearch-engines",{"title":120,"id":121,"canonicalKey":122,"locale":8,"draft":6,"navigation":123,"path":124},"Sitemap and prerender","content:docs:4.guides:9.sitemap-and-prerender.md","4\u002F9",{"title":120},"\u002Fdocs\u002Fguides\u002Fsitemap-and-prerender",{"title":126,"id":127,"canonicalKey":128,"locale":8,"draft":6,"navigation":129,"path":130},"Providers","content:docs:4.guides:10.providers.md","4\u002F10",{"title":126},"\u002Fdocs\u002Fguides\u002Fproviders",{"title":132,"id":133,"canonicalKey":134,"locale":8,"draft":6,"navigation":135,"path":136},"Provider search and caching","content:docs:4.guides:11.provider-search-and-caching.md","4\u002F11",{"title":132},"\u002Fdocs\u002Fguides\u002Fprovider-search-and-caching",{"title":138,"id":139,"canonicalKey":140,"locale":8,"draft":6,"navigation":141,"path":142},"Agent-readable output","content:docs:4.guides:12.agent-readable-output.md","4\u002F12",{"title":138},"\u002Fdocs\u002Fguides\u002Fagent-readable-output",{"title":144,"id":145,"canonicalKey":146,"locale":8,"draft":6,"path":147},"Data-source adapters","content:docs:4.guides:13.data-source-adapters.md","4\u002F13","\u002Fdocs\u002Fguides\u002Fdata-source-adapters",{"title":149,"id":150,"canonicalKey":151,"locale":8,"draft":6,"navigation":152,"icon":154,"sidebar":11,"path":155,"children":156},"Reference","content:docs:5.reference:.navigation.yml","5",{"title":153},"Overview","i-lucide-braces","\u002Fdocs\u002Freference",[157,162,167,172,177,182,187,192,197,202],{"title":158,"id":159,"canonicalKey":160,"locale":8,"draft":6,"path":161},"content.config.ts","content:docs:5.reference:2.content-config.md","5\u002F2","\u002Fdocs\u002Freference\u002Fcontent-config",{"title":163,"id":164,"canonicalKey":165,"locale":8,"draft":6,"path":166},"Module options","content:docs:5.reference:3.module-options.md","5\u002F3","\u002Fdocs\u002Freference\u002Fmodule-options",{"title":168,"id":169,"canonicalKey":170,"locale":8,"draft":6,"path":171},"Query API","content:docs:5.reference:4.query-api.md","5\u002F4","\u002Fdocs\u002Freference\u002Fquery-api",{"title":173,"id":174,"canonicalKey":175,"locale":8,"draft":6,"path":176},"Composables","content:docs:5.reference:5.composables.md","5\u002F5","\u002Fdocs\u002Freference\u002Fcomposables",{"title":178,"id":179,"canonicalKey":180,"locale":8,"draft":6,"path":181},"Server API","content:docs:5.reference:6.server-api.md","5\u002F6","\u002Fdocs\u002Freference\u002Fserver-api",{"title":183,"id":184,"canonicalKey":185,"locale":8,"draft":6,"path":186},"Components","content:docs:5.reference:7.components.md","5\u002F7","\u002Fdocs\u002Freference\u002Fcomponents",{"title":188,"id":189,"canonicalKey":190,"locale":8,"draft":6,"path":191},"Document envelope","content:docs:5.reference:8.document-envelope.md","5\u002F8","\u002Fdocs\u002Freference\u002Fdocument-envelope",{"title":193,"id":194,"canonicalKey":195,"locale":8,"draft":6,"path":196},"Query operators","content:docs:5.reference:9.query-operators.md","5\u002F9","\u002Fdocs\u002Freference\u002Fquery-operators",{"title":198,"id":199,"canonicalKey":200,"locale":8,"draft":6,"path":201},"Provider contract","content:docs:5.reference:10.provider-contract.md","5\u002F10","\u002Fdocs\u002Freference\u002Fprovider-contract",{"title":203,"id":204,"canonicalKey":205,"locale":8,"draft":6,"path":206},"Package exports","content:docs:5.reference:11.package-exports.md","5\u002F11","\u002Fdocs\u002Freference\u002Fpackage-exports",{"title":208,"id":209,"canonicalKey":210,"locale":8,"draft":6,"navigation":211,"icon":212,"sidebar":23,"path":213,"children":214},"Migration","content:docs:6.migration:.navigation.yml","6",{"title":153},"i-lucide-move-right","\u002Fdocs\u002Fmigration",[215,220,225],{"title":216,"id":217,"canonicalKey":218,"locale":8,"draft":6,"path":219},"From Nuxt Content v2","content:docs:6.migration:2.from-nuxt-content-v2.md","6\u002F2","\u002Fdocs\u002Fmigration\u002Ffrom-nuxt-content-v2",{"title":221,"id":222,"canonicalKey":223,"locale":8,"draft":6,"path":224},"From Nuxt Content v3","content:docs:6.migration:3.from-nuxt-content-v3.md","6\u002F3","\u002Fdocs\u002Fmigration\u002Ffrom-nuxt-content-v3",{"title":226,"id":227,"canonicalKey":228,"locale":8,"draft":6,"path":229},"Ginko version upgrades","content:docs:6.migration:4.ginko-version-upgrades.md","6\u002F4","\u002Fdocs\u002Fmigration\u002Fginko-version-upgrades",{"title":231,"page":6,"canonicalKey":232,"locale":8,"id":233,"draft":6,"icon":234,"sidebar":23,"children":235},"Resources","7","content:docs:7.resources:.navigation.yml","i-lucide-library",[236,241,246,251,256],{"title":237,"id":238,"canonicalKey":239,"locale":8,"draft":6,"path":240},"Examples","content:docs:7.resources:1.examples.md","7\u002F1","\u002Fdocs\u002Fresources\u002Fexamples",{"title":242,"id":243,"canonicalKey":244,"locale":8,"draft":6,"path":245},"Deployment","content:docs:7.resources:2.deployment.md","7\u002F2","\u002Fdocs\u002Fresources\u002Fdeployment",{"title":247,"id":248,"canonicalKey":249,"locale":8,"draft":6,"path":250},"Troubleshooting","content:docs:7.resources:3.troubleshooting.md","7\u002F3","\u002Fdocs\u002Fresources\u002Ftroubleshooting",{"title":252,"id":253,"canonicalKey":254,"locale":8,"draft":6,"path":255},"Design principles","content:docs:7.resources:4.design-principles.md","7\u002F4","\u002Fdocs\u002Fresources\u002Fdesign-principles",{"title":257,"id":258,"canonicalKey":259,"locale":8,"draft":6,"path":260},"Support and stability","content:docs:7.resources:5.support-and-stability.md","7\u002F5","\u002Fdocs\u002Fresources\u002Fsupport-and-stability",{"title":144,"description":262,"body":263,"type":1615,"id":145,"canonicalKey":146,"draft":6,"partial":6,"locale":8,"collection":1616,"navigationFile":6,"file":1617,"route":1623,"resolution":1625},"Build a bounded, framework-free adapter for a CMS or remote content store.",{"type":264,"children":265,"toc":1604},"root",[266,303,310,315,320,353,359,364,1324,1361,1367,1385,1397,1403,1429,1452,1457,1476,1501,1506,1523,1529,1547,1553],{"type":267,"tag":268,"props":269,"children":270},"element","p",{},[271,274,280,282,287,289,294,296,301],{"type":272,"value":273},"text","Use ",{"type":267,"tag":275,"props":276,"children":277},"code",{},[278],{"type":272,"value":279},"@lupinum\u002Fginko-content\u002Fdata-source",{"type":272,"value":281}," when a CMS or remote store serves live\ncontent. The data source is the pure, framework-free read contract. Use\n",{"type":267,"tag":275,"props":283,"children":284},{},[285],{"type":272,"value":286},"bindContentProvider",{"type":272,"value":288}," from ",{"type":267,"tag":275,"props":290,"children":291},{},[292],{"type":272,"value":293},"@lupinum\u002Fginko-content\u002Fprovider",{"type":272,"value":295}," only at the Nuxt\u002FH3\nedge to expose that source as a runtime ",{"type":267,"tag":275,"props":297,"children":298},{},[299],{"type":272,"value":300},"ContentProvider",{"type":272,"value":302},".",{"type":267,"tag":304,"props":305,"children":307},"h2",{"id":306},"ownership-boundary",[308],{"type":272,"value":309},"Ownership boundary",{"type":267,"tag":268,"props":311,"children":312},{},[313],{"type":272,"value":314},"Ginko owns the fixed-shape query types, bounds, result envelopes, route facts,\ncache-hint validation, public projection, and the Ginko portability codec. The\nadapter owns its verified context and backend behavior. Persistence,\nauthorization, byte streaming, and retry policy stay in the adapter; do not\nmove those policies into Ginko or reconstruct portable document and manifest\nshapes locally.",{"type":267,"tag":268,"props":316,"children":317},{},[318],{"type":272,"value":319},"Create a verified context from the incoming request before calling the data\nsource. It should contain only facts that the adapter has authenticated and\nauthorized, such as tenant and actor identifiers. Never pass raw headers,\ncookies, bearer tokens, or a caller-supplied tenant through as verified facts.",{"type":267,"tag":268,"props":321,"children":322},{},[323,325,330,332,337,339,344,346,351],{"type":272,"value":324},"Every operation is bounded and fixed-shape. Honor ",{"type":267,"tag":275,"props":326,"children":327},{},[328],{"type":272,"value":329},"control.signal",{"type":272,"value":331}," and\n",{"type":267,"tag":275,"props":333,"children":334},{},[335],{"type":272,"value":336},"control.deadlineAt",{"type":272,"value":338},", advertise only operations the backend implements, and\nnever fetch an unbounded roster to emulate pagination. Return the exact\n",{"type":267,"tag":275,"props":340,"children":341},{},[342],{"type":272,"value":343},"ContentDataSourceResult",{"type":272,"value":345}," envelope and use ",{"type":267,"tag":275,"props":347,"children":348},{},[349],{"type":272,"value":350},"false",{"type":272,"value":352}," when no cache hint exists.",{"type":267,"tag":304,"props":354,"children":356},{"id":355},"complete-minimal-adapter",[357],{"type":272,"value":358},"Complete minimal adapter",{"type":267,"tag":268,"props":360,"children":361},{},[362],{"type":272,"value":363},"This exact example is typechecked by the repository. Its public imports are\nalso exercised by the packed-consumer gates.",{"type":267,"tag":365,"props":366,"children":370},"pre",{"language":367,"filename":368,"class":369},"ts","data-source-adapter.ts","shiki shiki-themes light-plus dark-plus dark:dark-plus",[371],{"type":267,"tag":275,"props":372,"children":374},{"class":373},"language-ts",[375,420,422,434,435,448,449,466,467,483,484,500,501,518,519,547,548,551,552,571,572,590,591,607,608,616,617,620,621,687,688,691,692,708,709,733,734,750,751,768,769,786,787,814,815,822,823,826,827,858,859,876,877,923,924,932,933,952,953,970,971,983,984,1001,1002,1014,1015,1038,1039,1060,1061,1087,1088,1096,1097,1105,1106,1146,1147,1207,1208,1215,1216,1245,1246,1249,1250,1268,1269,1281,1282,1307,1308,1316,1317],{"type":267,"tag":376,"props":377,"children":380},"span",{"class":378,"style":379},"line","display: inline",[381,387,392,398,404,409,414],{"type":267,"tag":376,"props":382,"children":384},{"style":383},"color:#AF00DB;--shiki-dark:#C586C0",[385],{"type":272,"value":386},"import",{"type":267,"tag":376,"props":388,"children":389},{"style":383},[390],{"type":272,"value":391}," type",{"type":267,"tag":376,"props":393,"children":395},{"style":394},"color:#000000;--shiki-dark:#D4D4D4",[396],{"type":272,"value":397}," { ",{"type":267,"tag":376,"props":399,"children":401},{"style":400},"color:#001080;--shiki-dark:#9CDCFE",[402],{"type":272,"value":403},"H3Event",{"type":267,"tag":376,"props":405,"children":406},{"style":394},[407],{"type":272,"value":408}," } ",{"type":267,"tag":376,"props":410,"children":411},{"style":383},[412],{"type":272,"value":413},"from",{"type":267,"tag":376,"props":415,"children":417},{"style":416},"color:#A31515;--shiki-dark:#CE9178",[418],{"type":272,"value":419}," 'h3'",{"type":272,"value":421},"\n",{"type":267,"tag":376,"props":423,"children":424},{"class":378,"style":379},[425,429],{"type":267,"tag":376,"props":426,"children":427},{"style":383},[428],{"type":272,"value":386},{"type":267,"tag":376,"props":430,"children":431},{"style":394},[432],{"type":272,"value":433}," {",{"type":272,"value":421},{"type":267,"tag":376,"props":436,"children":437},{"class":378,"style":379},[438,443],{"type":267,"tag":376,"props":439,"children":440},{"style":400},[441],{"type":272,"value":442},"  CONTENT_DATA_SOURCE_LIMITS",{"type":267,"tag":376,"props":444,"children":445},{"style":394},[446],{"type":272,"value":447},",",{"type":272,"value":421},{"type":267,"tag":376,"props":450,"children":451},{"class":378,"style":379},[452,457,462],{"type":267,"tag":376,"props":453,"children":454},{"style":383},[455],{"type":272,"value":456},"  type",{"type":267,"tag":376,"props":458,"children":459},{"style":400},[460],{"type":272,"value":461}," BoundedContentProviderQuery",{"type":267,"tag":376,"props":463,"children":464},{"style":394},[465],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":468,"children":469},{"class":378,"style":379},[470,474,479],{"type":267,"tag":376,"props":471,"children":472},{"style":383},[473],{"type":272,"value":456},{"type":267,"tag":376,"props":475,"children":476},{"style":400},[477],{"type":272,"value":478}," ContentDataSource",{"type":267,"tag":376,"props":480,"children":481},{"style":394},[482],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":485,"children":486},{"class":378,"style":379},[487,491,496],{"type":267,"tag":376,"props":488,"children":489},{"style":383},[490],{"type":272,"value":456},{"type":267,"tag":376,"props":492,"children":493},{"style":400},[494],{"type":272,"value":495}," ContentDataSourceControl",{"type":267,"tag":376,"props":497,"children":498},{"style":394},[499],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":502,"children":503},{"class":378,"style":379},[504,509,513],{"type":267,"tag":376,"props":505,"children":506},{"style":394},[507],{"type":272,"value":508},"} ",{"type":267,"tag":376,"props":510,"children":511},{"style":383},[512],{"type":272,"value":413},{"type":267,"tag":376,"props":514,"children":515},{"style":416},[516],{"type":272,"value":517}," '@lupinum\u002Fginko-content\u002Fdata-source'",{"type":272,"value":421},{"type":267,"tag":376,"props":520,"children":521},{"class":378,"style":379},[522,526,530,534,538,542],{"type":267,"tag":376,"props":523,"children":524},{"style":383},[525],{"type":272,"value":386},{"type":267,"tag":376,"props":527,"children":528},{"style":394},[529],{"type":272,"value":397},{"type":267,"tag":376,"props":531,"children":532},{"style":400},[533],{"type":272,"value":286},{"type":267,"tag":376,"props":535,"children":536},{"style":394},[537],{"type":272,"value":408},{"type":267,"tag":376,"props":539,"children":540},{"style":383},[541],{"type":272,"value":413},{"type":267,"tag":376,"props":543,"children":544},{"style":416},[545],{"type":272,"value":546}," '@lupinum\u002Fginko-content\u002Fprovider'",{"type":272,"value":421},{"type":267,"tag":376,"props":549,"children":550},{"class":378,"style":379},[],{"type":272,"value":421},{"type":267,"tag":376,"props":553,"children":554},{"class":378,"style":379},[555,561,567],{"type":267,"tag":376,"props":556,"children":558},{"style":557},"color:#0000FF;--shiki-dark:#569CD6",[559],{"type":272,"value":560},"interface",{"type":267,"tag":376,"props":562,"children":564},{"style":563},"color:#267F99;--shiki-dark:#4EC9B0",[565],{"type":272,"value":566}," VerifiedContext",{"type":267,"tag":376,"props":568,"children":569},{"style":394},[570],{"type":272,"value":433},{"type":272,"value":421},{"type":267,"tag":376,"props":573,"children":574},{"class":378,"style":379},[575,580,585],{"type":267,"tag":376,"props":576,"children":577},{"style":400},[578],{"type":272,"value":579},"  tenantId",{"type":267,"tag":376,"props":581,"children":582},{"style":394},[583],{"type":272,"value":584},": ",{"type":267,"tag":376,"props":586,"children":587},{"style":563},[588],{"type":272,"value":589},"string",{"type":272,"value":421},{"type":267,"tag":376,"props":592,"children":593},{"class":378,"style":379},[594,599,603],{"type":267,"tag":376,"props":595,"children":596},{"style":400},[597],{"type":272,"value":598},"  actorId",{"type":267,"tag":376,"props":600,"children":601},{"style":394},[602],{"type":272,"value":584},{"type":267,"tag":376,"props":604,"children":605},{"style":563},[606],{"type":272,"value":589},{"type":272,"value":421},{"type":267,"tag":376,"props":609,"children":610},{"class":378,"style":379},[611],{"type":267,"tag":376,"props":612,"children":613},{"style":394},[614],{"type":272,"value":615},"}",{"type":272,"value":421},{"type":267,"tag":376,"props":618,"children":619},{"class":378,"style":379},[],{"type":272,"value":421},{"type":267,"tag":376,"props":622,"children":623},{"class":378,"style":379},[624,629,634,639,644,649,654,658,663,667,672,677,682],{"type":267,"tag":376,"props":625,"children":626},{"style":557},[627],{"type":272,"value":628},"type",{"type":267,"tag":376,"props":630,"children":631},{"style":563},[632],{"type":272,"value":633}," QueryResult",{"type":267,"tag":376,"props":635,"children":636},{"style":394},[637],{"type":272,"value":638}," = ",{"type":267,"tag":376,"props":640,"children":641},{"style":563},[642],{"type":272,"value":643},"Awaited",{"type":267,"tag":376,"props":645,"children":646},{"style":394},[647],{"type":272,"value":648},"\u003C",{"type":267,"tag":376,"props":650,"children":651},{"style":563},[652],{"type":272,"value":653},"ReturnType",{"type":267,"tag":376,"props":655,"children":656},{"style":394},[657],{"type":272,"value":648},{"type":267,"tag":376,"props":659,"children":660},{"style":563},[661],{"type":272,"value":662},"ContentDataSource",{"type":267,"tag":376,"props":664,"children":665},{"style":394},[666],{"type":272,"value":648},{"type":267,"tag":376,"props":668,"children":669},{"style":563},[670],{"type":272,"value":671},"VerifiedContext",{"type":267,"tag":376,"props":673,"children":674},{"style":394},[675],{"type":272,"value":676},">[",{"type":267,"tag":376,"props":678,"children":679},{"style":416},[680],{"type":272,"value":681},"'query'",{"type":267,"tag":376,"props":683,"children":684},{"style":394},[685],{"type":272,"value":686},"]>>",{"type":272,"value":421},{"type":267,"tag":376,"props":689,"children":690},{"class":378,"style":379},[],{"type":272,"value":421},{"type":267,"tag":376,"props":693,"children":694},{"class":378,"style":379},[695,699,704],{"type":267,"tag":376,"props":696,"children":697},{"style":557},[698],{"type":272,"value":560},{"type":267,"tag":376,"props":700,"children":701},{"style":563},[702],{"type":272,"value":703}," CmsBackend",{"type":267,"tag":376,"props":705,"children":706},{"style":394},[707],{"type":272,"value":433},{"type":272,"value":421},{"type":267,"tag":376,"props":710,"children":711},{"class":378,"style":379},[712,718,723,728],{"type":267,"tag":376,"props":713,"children":715},{"style":714},"color:#795E26;--shiki-dark:#DCDCAA",[716],{"type":272,"value":717},"  query",{"type":267,"tag":376,"props":719,"children":720},{"style":394},[721],{"type":272,"value":722},"(",{"type":267,"tag":376,"props":724,"children":725},{"style":400},[726],{"type":272,"value":727},"input",{"type":267,"tag":376,"props":729,"children":730},{"style":394},[731],{"type":272,"value":732},": {",{"type":272,"value":421},{"type":267,"tag":376,"props":735,"children":736},{"class":378,"style":379},[737,742,746],{"type":267,"tag":376,"props":738,"children":739},{"style":400},[740],{"type":272,"value":741},"    context",{"type":267,"tag":376,"props":743,"children":744},{"style":394},[745],{"type":272,"value":584},{"type":267,"tag":376,"props":747,"children":748},{"style":563},[749],{"type":272,"value":671},{"type":272,"value":421},{"type":267,"tag":376,"props":752,"children":753},{"class":378,"style":379},[754,759,763],{"type":267,"tag":376,"props":755,"children":756},{"style":400},[757],{"type":272,"value":758},"    query",{"type":267,"tag":376,"props":760,"children":761},{"style":394},[762],{"type":272,"value":584},{"type":267,"tag":376,"props":764,"children":765},{"style":563},[766],{"type":272,"value":767},"BoundedContentProviderQuery",{"type":272,"value":421},{"type":267,"tag":376,"props":770,"children":771},{"class":378,"style":379},[772,777,781],{"type":267,"tag":376,"props":773,"children":774},{"style":400},[775],{"type":272,"value":776},"    control",{"type":267,"tag":376,"props":778,"children":779},{"style":394},[780],{"type":272,"value":584},{"type":267,"tag":376,"props":782,"children":783},{"style":563},[784],{"type":272,"value":785},"ContentDataSourceControl",{"type":272,"value":421},{"type":267,"tag":376,"props":788,"children":789},{"class":378,"style":379},[790,795,800,804,809],{"type":267,"tag":376,"props":791,"children":792},{"style":394},[793],{"type":272,"value":794},"  }): ",{"type":267,"tag":376,"props":796,"children":797},{"style":563},[798],{"type":272,"value":799},"Promise",{"type":267,"tag":376,"props":801,"children":802},{"style":394},[803],{"type":272,"value":648},{"type":267,"tag":376,"props":805,"children":806},{"style":563},[807],{"type":272,"value":808},"QueryResult",{"type":267,"tag":376,"props":810,"children":811},{"style":394},[812],{"type":272,"value":813},">",{"type":272,"value":421},{"type":267,"tag":376,"props":816,"children":817},{"class":378,"style":379},[818],{"type":267,"tag":376,"props":819,"children":820},{"style":394},[821],{"type":272,"value":615},{"type":272,"value":421},{"type":267,"tag":376,"props":824,"children":825},{"class":378,"style":379},[],{"type":272,"value":421},{"type":267,"tag":376,"props":828,"children":829},{"class":378,"style":379},[830,835,840,845,849,854],{"type":267,"tag":376,"props":831,"children":832},{"style":383},[833],{"type":272,"value":834},"export",{"type":267,"tag":376,"props":836,"children":837},{"style":557},[838],{"type":272,"value":839}," function",{"type":267,"tag":376,"props":841,"children":842},{"style":714},[843],{"type":272,"value":844}," createCmsContentProvider",{"type":267,"tag":376,"props":846,"children":847},{"style":394},[848],{"type":272,"value":722},{"type":267,"tag":376,"props":850,"children":851},{"style":400},[852],{"type":272,"value":853},"args",{"type":267,"tag":376,"props":855,"children":856},{"style":394},[857],{"type":272,"value":732},{"type":272,"value":421},{"type":267,"tag":376,"props":860,"children":861},{"class":378,"style":379},[862,867,871],{"type":267,"tag":376,"props":863,"children":864},{"style":400},[865],{"type":272,"value":866},"  backend",{"type":267,"tag":376,"props":868,"children":869},{"style":394},[870],{"type":272,"value":584},{"type":267,"tag":376,"props":872,"children":873},{"style":563},[874],{"type":272,"value":875},"CmsBackend",{"type":272,"value":421},{"type":267,"tag":376,"props":878,"children":879},{"class":378,"style":379},[880,885,889,894,898,902,907,911,915,919],{"type":267,"tag":376,"props":881,"children":882},{"style":714},[883],{"type":272,"value":884},"  createVerifiedContext",{"type":267,"tag":376,"props":886,"children":887},{"style":394},[888],{"type":272,"value":722},{"type":267,"tag":376,"props":890,"children":891},{"style":400},[892],{"type":272,"value":893},"event",{"type":267,"tag":376,"props":895,"children":896},{"style":394},[897],{"type":272,"value":584},{"type":267,"tag":376,"props":899,"children":900},{"style":563},[901],{"type":272,"value":403},{"type":267,"tag":376,"props":903,"children":904},{"style":394},[905],{"type":272,"value":906},"): ",{"type":267,"tag":376,"props":908,"children":909},{"style":563},[910],{"type":272,"value":799},{"type":267,"tag":376,"props":912,"children":913},{"style":394},[914],{"type":272,"value":648},{"type":267,"tag":376,"props":916,"children":917},{"style":563},[918],{"type":272,"value":671},{"type":267,"tag":376,"props":920,"children":921},{"style":394},[922],{"type":272,"value":813},{"type":272,"value":421},{"type":267,"tag":376,"props":925,"children":926},{"class":378,"style":379},[927],{"type":267,"tag":376,"props":928,"children":929},{"style":394},[930],{"type":272,"value":931},"}) {",{"type":272,"value":421},{"type":267,"tag":376,"props":934,"children":935},{"class":378,"style":379},[936,941,947],{"type":267,"tag":376,"props":937,"children":938},{"style":557},[939],{"type":272,"value":940},"  const",{"type":267,"tag":376,"props":942,"children":944},{"style":943},"color:#0070C1;--shiki-dark:#4FC1FF",[945],{"type":272,"value":946}," source",{"type":267,"tag":376,"props":948,"children":949},{"style":394},[950],{"type":272,"value":951}," = {",{"type":272,"value":421},{"type":267,"tag":376,"props":954,"children":955},{"class":378,"style":379},[956,961,966],{"type":267,"tag":376,"props":957,"children":958},{"style":400},[959],{"type":272,"value":960},"    name:",{"type":267,"tag":376,"props":962,"children":963},{"style":416},[964],{"type":272,"value":965}," 'cms'",{"type":267,"tag":376,"props":967,"children":968},{"style":394},[969],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":972,"children":973},{"class":378,"style":379},[974,979],{"type":267,"tag":376,"props":975,"children":976},{"style":400},[977],{"type":272,"value":978},"    capabilities:",{"type":267,"tag":376,"props":980,"children":981},{"style":394},[982],{"type":272,"value":433},{"type":272,"value":421},{"type":267,"tag":376,"props":985,"children":986},{"class":378,"style":379},[987,992,997],{"type":267,"tag":376,"props":988,"children":989},{"style":400},[990],{"type":272,"value":991},"      protocol:",{"type":267,"tag":376,"props":993,"children":994},{"style":416},[995],{"type":272,"value":996}," 'ginko-content-data-source\u002Fv1'",{"type":267,"tag":376,"props":998,"children":999},{"style":394},[1000],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":1003,"children":1004},{"class":378,"style":379},[1005,1010],{"type":267,"tag":376,"props":1006,"children":1007},{"style":400},[1008],{"type":272,"value":1009},"      query:",{"type":267,"tag":376,"props":1011,"children":1012},{"style":394},[1013],{"type":272,"value":433},{"type":272,"value":421},{"type":267,"tag":376,"props":1016,"children":1017},{"class":378,"style":379},[1018,1023,1028,1033],{"type":267,"tag":376,"props":1019,"children":1020},{"style":400},[1021],{"type":272,"value":1022},"        operators:",{"type":267,"tag":376,"props":1024,"children":1025},{"style":394},[1026],{"type":272,"value":1027}," [",{"type":267,"tag":376,"props":1029,"children":1030},{"style":416},[1031],{"type":272,"value":1032},"'$eq'",{"type":267,"tag":376,"props":1034,"children":1035},{"style":394},[1036],{"type":272,"value":1037},"],",{"type":272,"value":421},{"type":267,"tag":376,"props":1040,"children":1041},{"class":378,"style":379},[1042,1047,1051,1056],{"type":267,"tag":376,"props":1043,"children":1044},{"style":400},[1045],{"type":272,"value":1046},"        pagination:",{"type":267,"tag":376,"props":1048,"children":1049},{"style":394},[1050],{"type":272,"value":1027},{"type":267,"tag":376,"props":1052,"children":1053},{"style":416},[1054],{"type":272,"value":1055},"'offset'",{"type":267,"tag":376,"props":1057,"children":1058},{"style":394},[1059],{"type":272,"value":1037},{"type":272,"value":421},{"type":267,"tag":376,"props":1062,"children":1063},{"class":378,"style":379},[1064,1069,1074,1078,1083],{"type":267,"tag":376,"props":1065,"children":1066},{"style":400},[1067],{"type":272,"value":1068},"        maxPageSize:",{"type":267,"tag":376,"props":1070,"children":1071},{"style":943},[1072],{"type":272,"value":1073}," CONTENT_DATA_SOURCE_LIMITS",{"type":267,"tag":376,"props":1075,"children":1076},{"style":394},[1077],{"type":272,"value":302},{"type":267,"tag":376,"props":1079,"children":1080},{"style":400},[1081],{"type":272,"value":1082},"maxQueryPageSize",{"type":267,"tag":376,"props":1084,"children":1085},{"style":394},[1086],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":1089,"children":1090},{"class":378,"style":379},[1091],{"type":267,"tag":376,"props":1092,"children":1093},{"style":394},[1094],{"type":272,"value":1095},"      },",{"type":272,"value":421},{"type":267,"tag":376,"props":1098,"children":1099},{"class":378,"style":379},[1100],{"type":267,"tag":376,"props":1101,"children":1102},{"style":394},[1103],{"type":272,"value":1104},"    },",{"type":272,"value":421},{"type":267,"tag":376,"props":1107,"children":1108},{"class":378,"style":379},[1109,1113,1117,1122,1127,1132,1136,1141],{"type":267,"tag":376,"props":1110,"children":1111},{"style":714},[1112],{"type":272,"value":758},{"type":267,"tag":376,"props":1114,"children":1115},{"style":394},[1116],{"type":272,"value":722},{"type":267,"tag":376,"props":1118,"children":1119},{"style":400},[1120],{"type":272,"value":1121},"context",{"type":267,"tag":376,"props":1123,"children":1124},{"style":394},[1125],{"type":272,"value":1126},", ",{"type":267,"tag":376,"props":1128,"children":1129},{"style":400},[1130],{"type":272,"value":1131},"query",{"type":267,"tag":376,"props":1133,"children":1134},{"style":394},[1135],{"type":272,"value":1126},{"type":267,"tag":376,"props":1137,"children":1138},{"style":400},[1139],{"type":272,"value":1140},"control",{"type":267,"tag":376,"props":1142,"children":1143},{"style":394},[1144],{"type":272,"value":1145},") {",{"type":272,"value":421},{"type":267,"tag":376,"props":1148,"children":1149},{"class":378,"style":379},[1150,1155,1160,1164,1169,1173,1177,1182,1186,1190,1194,1198,1202],{"type":267,"tag":376,"props":1151,"children":1152},{"style":383},[1153],{"type":272,"value":1154},"      return",{"type":267,"tag":376,"props":1156,"children":1157},{"style":400},[1158],{"type":272,"value":1159}," args",{"type":267,"tag":376,"props":1161,"children":1162},{"style":394},[1163],{"type":272,"value":302},{"type":267,"tag":376,"props":1165,"children":1166},{"style":400},[1167],{"type":272,"value":1168},"backend",{"type":267,"tag":376,"props":1170,"children":1171},{"style":394},[1172],{"type":272,"value":302},{"type":267,"tag":376,"props":1174,"children":1175},{"style":714},[1176],{"type":272,"value":1131},{"type":267,"tag":376,"props":1178,"children":1179},{"style":394},[1180],{"type":272,"value":1181},"({ ",{"type":267,"tag":376,"props":1183,"children":1184},{"style":400},[1185],{"type":272,"value":1121},{"type":267,"tag":376,"props":1187,"children":1188},{"style":394},[1189],{"type":272,"value":1126},{"type":267,"tag":376,"props":1191,"children":1192},{"style":400},[1193],{"type":272,"value":1131},{"type":267,"tag":376,"props":1195,"children":1196},{"style":394},[1197],{"type":272,"value":1126},{"type":267,"tag":376,"props":1199,"children":1200},{"style":400},[1201],{"type":272,"value":1140},{"type":267,"tag":376,"props":1203,"children":1204},{"style":394},[1205],{"type":272,"value":1206}," })",{"type":272,"value":421},{"type":267,"tag":376,"props":1209,"children":1210},{"class":378,"style":379},[1211],{"type":267,"tag":376,"props":1212,"children":1213},{"style":394},[1214],{"type":272,"value":1104},{"type":272,"value":421},{"type":267,"tag":376,"props":1217,"children":1218},{"class":378,"style":379},[1219,1224,1229,1233,1237,1241],{"type":267,"tag":376,"props":1220,"children":1221},{"style":394},[1222],{"type":272,"value":1223},"  } ",{"type":267,"tag":376,"props":1225,"children":1226},{"style":383},[1227],{"type":272,"value":1228},"satisfies",{"type":267,"tag":376,"props":1230,"children":1231},{"style":563},[1232],{"type":272,"value":478},{"type":267,"tag":376,"props":1234,"children":1235},{"style":394},[1236],{"type":272,"value":648},{"type":267,"tag":376,"props":1238,"children":1239},{"style":563},[1240],{"type":272,"value":671},{"type":267,"tag":376,"props":1242,"children":1243},{"style":394},[1244],{"type":272,"value":813},{"type":272,"value":421},{"type":267,"tag":376,"props":1247,"children":1248},{"class":378,"style":379},[],{"type":272,"value":421},{"type":267,"tag":376,"props":1251,"children":1252},{"class":378,"style":379},[1253,1258,1263],{"type":267,"tag":376,"props":1254,"children":1255},{"style":383},[1256],{"type":272,"value":1257},"  return",{"type":267,"tag":376,"props":1259,"children":1260},{"style":714},[1261],{"type":272,"value":1262}," bindContentProvider",{"type":267,"tag":376,"props":1264,"children":1265},{"style":394},[1266],{"type":272,"value":1267},"({",{"type":272,"value":421},{"type":267,"tag":376,"props":1270,"children":1271},{"class":378,"style":379},[1272,1277],{"type":267,"tag":376,"props":1273,"children":1274},{"style":400},[1275],{"type":272,"value":1276},"    source",{"type":267,"tag":376,"props":1278,"children":1279},{"style":394},[1280],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":1283,"children":1284},{"class":378,"style":379},[1285,1290,1294,1298,1303],{"type":267,"tag":376,"props":1286,"children":1287},{"style":400},[1288],{"type":272,"value":1289},"    createContext:",{"type":267,"tag":376,"props":1291,"children":1292},{"style":400},[1293],{"type":272,"value":1159},{"type":267,"tag":376,"props":1295,"children":1296},{"style":394},[1297],{"type":272,"value":302},{"type":267,"tag":376,"props":1299,"children":1300},{"style":400},[1301],{"type":272,"value":1302},"createVerifiedContext",{"type":267,"tag":376,"props":1304,"children":1305},{"style":394},[1306],{"type":272,"value":447},{"type":272,"value":421},{"type":267,"tag":376,"props":1309,"children":1310},{"class":378,"style":379},[1311],{"type":267,"tag":376,"props":1312,"children":1313},{"style":394},[1314],{"type":272,"value":1315},"  })",{"type":272,"value":421},{"type":267,"tag":376,"props":1318,"children":1319},{"class":378,"style":379},[1320],{"type":267,"tag":376,"props":1321,"children":1322},{"style":394},[1323],{"type":272,"value":615},{"type":267,"tag":268,"props":1325,"children":1326},{},[1327,1329,1334,1335,1340,1341,1346,1347,1352,1354,1359],{"type":272,"value":1328},"The backend method receives the already bounded public query and the verified\ncontext. It should translate that query directly to one backend request. Add\n",{"type":267,"tag":275,"props":1330,"children":1331},{},[1332],{"type":272,"value":1333},"navigation",{"type":272,"value":1126},{"type":267,"tag":275,"props":1336,"children":1337},{},[1338],{"type":272,"value":1339},"surroundings",{"type":272,"value":1126},{"type":267,"tag":275,"props":1342,"children":1343},{},[1344],{"type":272,"value":1345},"search",{"type":272,"value":1126},{"type":267,"tag":275,"props":1348,"children":1349},{},[1350],{"type":272,"value":1351},"siteData",{"type":272,"value":1353},", or cursor-paged ",{"type":267,"tag":275,"props":1355,"children":1356},{},[1357],{"type":272,"value":1358},"routes",{"type":272,"value":1360},"\nonly when the backend implements the corresponding fixed result shape.",{"type":267,"tag":304,"props":1362,"children":1364},{"id":1363},"portable-reads-and-writes",[1365],{"type":272,"value":1366},"Portable reads and writes",{"type":267,"tag":268,"props":1368,"children":1369},{},[1370,1372,1377,1378,1383],{"type":272,"value":1371},"The data-source contract is read-only. When an adapter imports or exports\ncontent, use ",{"type":267,"tag":275,"props":1373,"children":1374},{},[1375],{"type":272,"value":1376},"@lupinum\u002Fginko-content\u002Fportability",{"type":272,"value":331},{"type":267,"tag":275,"props":1379,"children":1380},{},[1381],{"type":272,"value":1382},"@lupinum\u002Fginko-content\u002Fportability\u002Fnode",{"type":272,"value":1384},"; do not define another document,\nfrontmatter, manifest, identity, or hash model. Keep authorization,\ntransactions, receipts, cleanup, asset byte streaming, and retry semantics in\nthe adapter's operational layer.",{"type":267,"tag":268,"props":1386,"children":1387},{},[1388,1390,1395],{"type":272,"value":1389},"CMS and portability MDC parsing uses Ginko's fixed portable baseline. Its\nsyntax and normalized AST change only with the package's versioned contract;\nit does not execute an application's Nuxt Markdown plugin configuration.\nFilesystem ingestion is intentionally different: it uses the build-time\n",{"type":267,"tag":275,"props":1391,"children":1392},{},[1393],{"type":272,"value":1394},"markdown.plugins",{"type":272,"value":1396}," profile from that application. If portable content requires\nan enriched construct, store the portable baseline form and apply the\napplication-specific presentation at the filesystem or Vue boundary.",{"type":267,"tag":304,"props":1398,"children":1400},{"id":1399},"evidence-levels",[1401],{"type":272,"value":1402},"Evidence levels",{"type":267,"tag":268,"props":1404,"children":1405},{},[1406,1408,1413,1415,1420,1422,1427],{"type":272,"value":1407},"Level 1 is protocol conformance. Use ",{"type":267,"tag":275,"props":1409,"children":1410},{},[1411],{"type":272,"value":1412},"runContentDataSourceContractSuite",{"type":272,"value":1414}," from\n",{"type":267,"tag":275,"props":1416,"children":1417},{},[1418],{"type":272,"value":1419},"@lupinum\u002Fginko-content\u002Ftesting\u002Fdata-source-contract",{"type":272,"value":1421}," with an adapter-owned\nverified context. Its found, missing, list, and cursor probes execute through\nthe real binder. Keep ",{"type":267,"tag":275,"props":1423,"children":1424},{},[1425],{"type":272,"value":1426},"runContentDataSourceContract",{"type":272,"value":1428}," for a focused single-query\nprobe. Core's binder contract owns adversarial response, cache, cancellation,\ndeadline, JSON-purity, and route-limit tests; adapters must not duplicate those\ninvariants. A passing Level 1 result proves the public protocol and bounds only.",{"type":267,"tag":268,"props":1430,"children":1431},{},[1432,1437,1439,1444,1446,1451],{"type":267,"tag":275,"props":1433,"children":1434},{},[1435],{"type":272,"value":1436},"routes()",{"type":272,"value":1438}," returns one stable ",{"type":267,"tag":275,"props":1440,"children":1441},{},[1442],{"type":272,"value":1443},"snapshot",{"type":272,"value":1445}," for the complete logical enumeration\nand its exact collection\u002Flocale scope, not one snapshot per backend partition.\nThat snapshot must remain unchanged across all cursor pages. Cursors are opaque\nand must be bound to the snapshot, ordering, collections, and locales. Ginko\nrejects changing snapshots, repeated cursors, empty continuation pages, and\nnon-progress with ",{"type":267,"tag":275,"props":1447,"children":1448},{},[1449],{"type":272,"value":1450},"ROUTE_ENUMERATION_INVALID",{"type":272,"value":302},{"type":267,"tag":268,"props":1453,"children":1454},{},[1455],{"type":272,"value":1456},"Route limits are protocol rejection ceilings, not throughput promises:\n100,000 records, 64 KiB per serialized record, 32 MiB for the serialized\nenumeration, 16 sitemap images per route, and 2 KiB per image location. Publish\nseparate production benchmarks for any supported operating scale.",{"type":267,"tag":268,"props":1458,"children":1459},{},[1460,1462,1467,1469,1474],{"type":272,"value":1461},"Adapters may throw ",{"type":267,"tag":275,"props":1463,"children":1464},{},[1465],{"type":272,"value":1466},"createContentDataSourceError('QUERY_CURSOR_INVALID')",{"type":272,"value":1468}," for\na stale or scope-invalid query cursor, or ",{"type":267,"tag":275,"props":1470,"children":1471},{},[1472],{"type":272,"value":1473},"createContentDataSourceError('BACKEND_FAILURE')",{"type":272,"value":1475},"\nfor a sanitized backend failure. Do not include backend messages or details.\nThe public boundary maps them to 400 and 502 respectively; binder deadlines map\nto 504, and invalid provider responses map to 502.",{"type":267,"tag":268,"props":1477,"children":1478},{},[1479,1481,1486,1488,1493,1495,1499],{"type":272,"value":1480},"Import ",{"type":267,"tag":275,"props":1482,"children":1483},{},[1484],{"type":272,"value":1485},"createContentDataSourceError",{"type":272,"value":1487}," and the ",{"type":267,"tag":275,"props":1489,"children":1490},{},[1491],{"type":272,"value":1492},"ContentDataSourceErrorCode",{"type":272,"value":1494}," type\nfrom ",{"type":267,"tag":275,"props":1496,"children":1497},{},[1498],{"type":272,"value":279},{"type":272,"value":1500},". The code union is the stable contract;\nbackend exception classes, messages, and details are not.",{"type":267,"tag":268,"props":1502,"children":1503},{},[1504],{"type":272,"value":1505},"Level 2 is adapter-owned operational evidence. It must separately prove the\nbackend's authorization matrix, transaction or receipt behavior, retries,\ncrash recovery, scoped cleanup, concurrency, asset streaming, and deployment\nlimits. Never describe an adapter as operationally certified from Level 1\nalone. Release evidence must name the adapter artifact hash and both sets of\nresults.",{"type":267,"tag":268,"props":1507,"children":1508},{},[1509,1511,1515,1517,1521],{"type":272,"value":1510},"When runtime delivery is required, integrate the bound ",{"type":267,"tag":275,"props":1512,"children":1513},{},[1514],{"type":272,"value":300},{"type":272,"value":1516}," in\n",{"type":267,"tag":275,"props":1518,"children":1519},{},[1520],{"type":272,"value":158},{"type":272,"value":1522},". Portability-only tools do not need a runtime provider.",{"type":267,"tag":304,"props":1524,"children":1526},{"id":1525},"test-the-packed-artifact",[1527],{"type":272,"value":1528},"Test the packed artifact",{"type":267,"tag":268,"props":1530,"children":1531},{},[1532,1534,1539,1540,1545],{"type":272,"value":1533},"Pack and install the adapter with the exact Ginko tarball in a fresh consumer,\nwithout workspace resolution. Reject ",{"type":267,"tag":275,"props":1535,"children":1536},{},[1537],{"type":272,"value":1538},"workspace:",{"type":272,"value":1126},{"type":267,"tag":275,"props":1541,"children":1542},{},[1543],{"type":272,"value":1544},"link:",{"type":272,"value":1546},", sibling-source,\nregistry fallback, peer warnings, and duplicate physical package resolutions.\nRun typecheck, production build, Level 1 conformance, and the adapter-owned\nLevel 2 scenarios against those installed bytes.",{"type":267,"tag":304,"props":1548,"children":1550},{"id":1549},"production-checklist",[1551],{"type":272,"value":1552},"Production checklist",{"type":267,"tag":1554,"props":1555,"children":1556},"ul",{},[1557,1563,1568,1573,1578,1583,1588,1599],{"type":267,"tag":1558,"props":1559,"children":1560},"li",{},[1561],{"type":272,"value":1562},"The context is authenticated, authorized, adapter-owned, and request-scoped.",{"type":267,"tag":1558,"props":1564,"children":1565},{},[1566],{"type":272,"value":1567},"Every advertised operation has positive and negative probes.",{"type":267,"tag":1558,"props":1569,"children":1570},{},[1571],{"type":272,"value":1572},"Query, search, navigation, route, site-data, cache, error, and deadline bounds\nare enforced at the backend edge.",{"type":267,"tag":1558,"props":1574,"children":1575},{},[1576],{"type":272,"value":1577},"Abort signals cancel backend work and no credential appears in cache keys,\npaths, asset URLs, results, or errors.",{"type":267,"tag":1558,"props":1579,"children":1580},{},[1581],{"type":272,"value":1582},"Portable reads and writes use the Ginko portability codec and canonical hash.",{"type":267,"tag":1558,"props":1584,"children":1585},{},[1586],{"type":272,"value":1587},"Persistence, authorization, streaming, receipts, cleanup, and retries have\nadapter-owned Level 2 evidence.",{"type":267,"tag":1558,"props":1589,"children":1590},{},[1591,1593,1597],{"type":272,"value":1592},"Runtime delivery uses the separate ",{"type":267,"tag":275,"props":1594,"children":1595},{},[1596],{"type":272,"value":300},{"type":272,"value":1598}," integration.",{"type":267,"tag":1558,"props":1600,"children":1601},{},[1602],{"type":272,"value":1603},"The exact packed artifact and dependency hashes are recorded with the\nconformance results.",{"title":1605,"searchDepth":1606,"depth":1606,"links":1607},"",4,[1608,1610,1611,1612,1613,1614],{"id":306,"depth":1609,"text":309},2,{"id":355,"depth":1609,"text":358},{"id":1363,"depth":1609,"text":1366},{"id":1399,"depth":1609,"text":1402},{"id":1525,"depth":1609,"text":1528},{"id":1549,"depth":1609,"text":1552},"markdown","docs",{"source":1618,"path":1619,"stem":1620,"dir":1621,"extension":1622},"content","docs\u002F4.guides\u002F13.data-source-adapters.md","docs\u002F4.guides\u002F13.data-source-adapters","guides","md",{"requestedPath":147,"resolvedPath":147,"alternates":1624},[],{"requested":1626,"resolved":1627,"usedFallback":6},{},{"locale":8},{"previous":1629,"next":1631},{"title":138,"id":139,"canonicalKey":140,"locale":8,"draft":6,"navigation":1630,"path":142},{"title":138},{"title":149,"id":150,"canonicalKey":151,"locale":8,"draft":6,"navigation":1632,"path":155,"children":1633},{"title":153},[1634,1635,1636,1637,1638,1639,1640,1641,1642,1643],{"title":158,"id":159,"canonicalKey":160,"locale":8,"draft":6,"path":161},{"title":163,"id":164,"canonicalKey":165,"locale":8,"draft":6,"path":166},{"title":168,"id":169,"canonicalKey":170,"locale":8,"draft":6,"path":171},{"title":173,"id":174,"canonicalKey":175,"locale":8,"draft":6,"path":176},{"title":178,"id":179,"canonicalKey":180,"locale":8,"draft":6,"path":181},{"title":183,"id":184,"canonicalKey":185,"locale":8,"draft":6,"path":186},{"title":188,"id":189,"canonicalKey":190,"locale":8,"draft":6,"path":191},{"title":193,"id":194,"canonicalKey":195,"locale":8,"draft":6,"path":196},{"title":198,"id":199,"canonicalKey":200,"locale":8,"draft":6,"path":201},{"title":203,"id":204,"canonicalKey":205,"locale":8,"draft":6,"path":206},{"left":1645,"top":1645,"width":1646,"height":1646,"rotate":1645,"vFlip":6,"hFlip":6,"body":1647},0,256,"\u003Cpath fill=\"#3178c6\" d=\"M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0\"\u002F>\u003Cpath fill=\"#fff\" d=\"M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z\"\u002F>",{"left":1645,"top":1645,"width":1649,"height":1649,"rotate":1645,"vFlip":6,"hFlip":6,"body":1650},24,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1786636625983]