[{"data":1,"prerenderedAt":315},["ShallowReactive",2],{"docs-\u002Fagent\u002Fframeworks":3},{"id":4,"title":5,"body":6,"description":307,"extension":308,"meta":309,"navigation":310,"path":311,"seo":312,"stem":313,"__hash__":314},"docs\u002Fdocs\u002Fagent\u002Fframeworks.md","Supported frameworks",{"type":7,"value":8,"toc":295},"minimark",[9,13,22,25,30,81,83,87,116,118,122,157,159,163,175,177,181,193,195,199,227,229,233,249,251,255,281,283],[10,11,5],"h1",{"id":12},"supported-frameworks",[14,15,16,17,21],"p",{},"The agent detects your framework and CMS, then applies the right kind of patch (e.g. wrap a return, add a ",[18,19,20],"code",{},"transform"," option, or wrap a loader).",[23,24],"hr",{},[26,27,29],"h2",{"id":28},"nuxt-3","Nuxt 3",[31,32,33,68],"ul",{},[34,35,36,40,41,44,45,48,49,51,52,55,56,59,60,63,64,67],"li",{},[37,38,39],"strong",{},"Pages \u002F composables"," — ",[18,42,43],{},"useAsyncData",", ",[18,46,47],{},"useFetch",". Agent adds a ",[18,50,20],{}," option that runs the response transformer with ",[18,53,54],{},"cmsAssetsUrl"," from ",[18,57,58],{},"useRuntimeConfig().public.cmsAssetsUrl",". It can inject ",[18,61,62],{},"runtimeConfig.public.cmsAssetsUrl"," in ",[18,65,66],{},"nuxt.config"," if missing.",[34,69,70,40,73,76,77,80],{},[37,71,72],{},"Server routes",[18,74,75],{},"server\u002Fapi\u002F**"," and ",[18,78,79],{},"server\u002Froutes\u002F**"," — return statements that return CMS data are wrapped with the transformer.",[23,82],{},[26,84,86],{"id":85},"nuxt-2","Nuxt 2",[31,88,89,98],{},[34,90,91,40,94,97],{},[37,92,93],{},"Pages",[18,95,96],{},"asyncData"," hook: the return value inside the hook is wrapped.",[34,99,100,103,104,107,108,111,112,115],{},[37,101,102],{},"Vuex store"," — Actions that fetch CMS data and ",[18,105,106],{},"return"," or ",[18,109,110],{},"commit"," that data: agent can wrap the return or the value passed to ",[18,113,114],{},"commit('SET_STATE', { value: ... })",".",[23,117],{},[26,119,121],{"id":120},"nextjs","Next.js",[31,123,124,141,147],{},[34,125,126,40,129,107,132,40,135,107,137,140],{},[37,127,128],{},"API routes",[18,130,131],{},"app\u002Fapi\u002F**\u002Froute.ts",[18,133,134],{},"pages\u002Fapi\u002F**",[18,136,106],{},[18,138,139],{},"res.json()"," that return CMS data are wrapped.",[34,142,143,146],{},[37,144,145],{},"getServerSideProps \u002F getStaticProps"," — Return value is wrapped.",[34,148,149,152,153,156],{},[37,150,151],{},"App Router lib"," — Return statements in ",[18,154,155],{},"lib\u002F"," (or similar) that return CMS data are detected. App Router page components are not auto-patched (too many edge cases); prefer API or lib layer.",[23,158],{},[26,160,162],{"id":161},"remix","Remix",[31,164,165],{},[34,166,167,170,171,174],{},[37,168,169],{},"Loaders"," — Return value of ",[18,172,173],{},"loader"," is wrapped with the transformer.",[23,176],{},[26,178,180],{"id":179},"astro","Astro",[31,182,183],{},[34,184,185,188,189,192],{},[37,186,187],{},"Frontmatter"," — Assignments like ",[18,190,191],{},"const data = await fetch(...)"," in the frontmatter block are wrapped so the fetched data is transformed before use.",[23,194],{},[26,196,198],{"id":197},"sveltekit","SvelteKit",[31,200,201,218],{},[34,202,203,40,206,209,210,213,214,217],{},[37,204,205],{},"Load",[18,207,208],{},"+page.server.ts"," \u002F ",[18,211,212],{},"+layout.server.ts",": return value of ",[18,215,216],{},"load"," is wrapped.",[34,219,220,152,223,226],{},[37,221,222],{},"Lib",[18,224,225],{},"src\u002Flib\u002F"," that return CMS data are supported.",[23,228],{},[26,230,232],{"id":231},"express-hono-fastify","Express \u002F Hono \u002F Fastify",[31,234,235],{},[34,236,237,240,241,244,245,248],{},[37,238,239],{},"Route handlers"," — Handlers that return JSON (e.g. ",[18,242,243],{},"res.json(data)",") are detected; the agent wraps the value passed to ",[18,246,247],{},"res.json(...)"," (or equivalent) with the transformer.",[23,250],{},[26,252,254],{"id":253},"cms-detection","CMS detection",[14,256,257,258,261,262,44,265,44,268,44,271,44,274,44,277,280],{},"The agent looks for common CMS SDK usage (Prismic, Contentful, Sanity, Shopify, Cloudinary, Imgix) in your code. It also detects generic S3, R2, and GCS origin patterns automatically. You can override with ",[18,259,260],{},"--cms prismic"," (or ",[18,263,264],{},"contentful",[18,266,267],{},"sanity",[18,269,270],{},"shopify",[18,272,273],{},"cloudinary",[18,275,276],{},"imgix",[18,278,279],{},"generic",") if auto-detection is wrong or you want to force a specific CMS type.",[23,282],{},[14,284,285,290,291],{},[286,287,289],"a",{"href":288},"\u002Fdocs\u002Fagent\u002Fpatch-mode","← Patch mode & AI"," · ",[286,292,294],{"href":293},"\u002Fdocs\u002Fagent","CLI Agent overview",{"title":296,"searchDepth":297,"depth":297,"links":298},"",2,[299,300,301,302,303,304,305,306],{"id":28,"depth":297,"text":29},{"id":85,"depth":297,"text":86},{"id":120,"depth":297,"text":121},{"id":161,"depth":297,"text":162},{"id":179,"depth":297,"text":180},{"id":197,"depth":297,"text":198},{"id":231,"depth":297,"text":232},{"id":253,"depth":297,"text":254},"Nuxt 2\u002F3, Next, Remix, Astro, SvelteKit, Express-style.","md",{"parent":293},true,"\u002Fdocs\u002Fagent\u002Fframeworks",{"title":5,"description":307},"docs\u002Fagent\u002Fframeworks","3MH2AgxDAK48RNeyEW8fkTLaNmLiRTXihl9UQxKZEMI",1777579477840]