[{"data":1,"prerenderedAt":2045},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:EFRNbLRv2Mgi8bmdmApXcK-Xu5izk6GqkpBU4VVgwf8":595,"content-page-surround:docs:EFRNbLRv2Mgi8bmdmApXcK-Xu5izk6GqkpBU4VVgwf8":2028,"i-lucide:terminal":2033,"i-logos:vue":2037,"i-logos:typescript-icon":2041,"i-lucide:clipboard":2043},[4,55,123,191,450,509,554,590],{"title":5,"page":6,"canonicalKey":7,"locale":8,"id":9,"draft":6,"icon":10,"sidebar":11,"children":12},"Learn",false,"1","en","content:docs:1.overview:.navigation.yml","i-lucide-book-open","section",[13,20,27,34,41,48],{"title":14,"id":15,"canonicalKey":16,"locale":8,"draft":6,"navigation":17,"icon":18,"path":19},"Better Convex Nuxt","content:docs:1.overview:1.introduction.md","1\u002F1",{"icon":18},"i-lucide-orbit","\u002Fdocs\u002Foverview\u002Fintroduction",{"title":21,"id":22,"canonicalKey":23,"locale":8,"draft":6,"navigation":24,"icon":25,"path":26},"Why Better Convex Nuxt","content:docs:1.overview:2.why-better-convex-nuxt.md","1\u002F2",{"icon":25},"i-lucide-badge-check","\u002Fdocs\u002Foverview\u002Fwhy-better-convex-nuxt",{"title":28,"id":29,"canonicalKey":30,"locale":8,"draft":6,"navigation":31,"icon":32,"path":33},"Who It Is For","content:docs:1.overview:3.who-it-is-for.md","1\u002F3",{"icon":32},"i-lucide-users","\u002Fdocs\u002Foverview\u002Fwho-it-is-for",{"title":35,"id":36,"canonicalKey":37,"locale":8,"draft":6,"navigation":38,"icon":39,"path":40},"Use Cases","content:docs:1.overview:4.use-cases.md","1\u002F4",{"icon":39},"i-lucide-layout-dashboard","\u002Fdocs\u002Foverview\u002Fuse-cases",{"title":42,"id":43,"canonicalKey":44,"locale":8,"draft":6,"navigation":45,"icon":46,"path":47},"Compare Nuxt Integrations","content:docs:1.overview:5.comparison.md","1\u002F5",{"icon":46},"i-lucide-scale","\u002Fdocs\u002Foverview\u002Fcomparison",{"title":49,"id":50,"canonicalKey":51,"locale":8,"draft":6,"navigation":52,"icon":53,"path":54},"Limitations and Trade-offs","content:docs:1.overview:6.limitations.md","1\u002F6",{"icon":53},"i-lucide-triangle-alert","\u002Fdocs\u002Foverview\u002Flimitations",{"title":56,"page":6,"canonicalKey":57,"locale":8,"id":58,"draft":6,"icon":59,"children":60},"Understand","2","content:docs:2.understand:.navigation.yml","i-lucide-brain",[61,67,74,81,88,95,102,109,116],{"title":62,"id":63,"canonicalKey":64,"locale":8,"draft":6,"navigation":65,"icon":59,"path":66},"Mental Model","content:docs:2.understand:1.mental-model.md","2\u002F1",{"icon":59},"\u002Fdocs\u002Funderstand\u002Fmental-model",{"title":68,"id":69,"canonicalKey":70,"locale":8,"draft":6,"navigation":71,"icon":72,"path":73},"Request Lifecycle","content:docs:2.understand:2.request-lifecycle.md","2\u002F2",{"icon":72},"i-lucide-route","\u002Fdocs\u002Funderstand\u002Frequest-lifecycle",{"title":75,"id":76,"canonicalKey":77,"locale":8,"draft":6,"navigation":78,"icon":79,"path":80},"SSR, Hydration, and Real-Time","content:docs:2.understand:3.ssr-hydration-realtime.md","2\u002F3",{"icon":79},"i-lucide-refresh-cw","\u002Fdocs\u002Funderstand\u002Fssr-hydration-realtime",{"title":82,"id":83,"canonicalKey":84,"locale":8,"draft":6,"navigation":85,"icon":86,"path":87},"Query Ownership and Caching","content:docs:2.understand:4.query-ownership-and-caching.md","2\u002F4",{"icon":86},"i-lucide-database","\u002Fdocs\u002Funderstand\u002Fquery-ownership-and-caching",{"title":89,"id":90,"canonicalKey":91,"locale":8,"draft":6,"navigation":92,"icon":93,"path":94},"Authentication and Identity","content:docs:2.understand:5.authentication-and-identity.md","2\u002F5",{"icon":93},"i-lucide-fingerprint","\u002Fdocs\u002Funderstand\u002Fauthentication-and-identity",{"title":96,"id":97,"canonicalKey":98,"locale":8,"draft":6,"navigation":99,"icon":100,"path":101},"Server and Client Boundaries","content:docs:2.understand:6.server-and-client-boundaries.md","2\u002F6",{"icon":100},"i-lucide-panels-top-left","\u002Fdocs\u002Funderstand\u002Fserver-and-client-boundaries",{"title":103,"id":104,"canonicalKey":105,"locale":8,"draft":6,"navigation":106,"icon":107,"path":108},"Errors and Failures","content:docs:2.understand:7.errors-and-failures.md","2\u002F7",{"icon":107},"i-lucide-circle-x","\u002Fdocs\u002Funderstand\u002Ferrors-and-failures",{"title":110,"id":111,"canonicalKey":112,"locale":8,"draft":6,"navigation":113,"icon":114,"path":115},"Design Decisions","content:docs:2.understand:8.design-decisions.md","2\u002F8",{"icon":114},"i-lucide-git-branch","\u002Fdocs\u002Funderstand\u002Fdesign-decisions",{"title":117,"id":118,"canonicalKey":119,"locale":8,"draft":6,"navigation":120,"icon":121,"path":122},"Glossary","content:docs:2.understand:9.glossary.md","2\u002F9",{"icon":121},"i-lucide-book-a","\u002Fdocs\u002Funderstand\u002Fglossary",{"title":124,"page":6,"canonicalKey":125,"locale":8,"id":126,"draft":6,"icon":127,"children":128},"Get Started","3","content:docs:3.get-started:.navigation.yml","i-lucide-rocket",[129,136,143,150,157,164,171,178,185],{"title":130,"id":131,"canonicalKey":132,"locale":8,"draft":6,"navigation":133,"icon":134,"path":135},"Choose Your Path","content:docs:3.get-started:1.choose-your-path.md","3\u002F1",{"icon":134},"i-lucide-signpost","\u002Fdocs\u002Fget-started\u002Fchoose-your-path",{"title":137,"id":138,"canonicalKey":139,"locale":8,"draft":6,"navigation":140,"icon":141,"path":142},"Installation","content:docs:3.get-started:2.installation.md","3\u002F2",{"icon":141},"i-lucide-download","\u002Fdocs\u002Fget-started\u002Finstallation",{"title":144,"id":145,"canonicalKey":146,"locale":8,"draft":6,"navigation":147,"icon":148,"path":149},"First Real-Time Page","content:docs:3.get-started:3.first-realtime-page.md","3\u002F3",{"icon":148},"i-lucide-radio","\u002Fdocs\u002Fget-started\u002Ffirst-realtime-page",{"title":151,"id":152,"canonicalKey":153,"locale":8,"draft":6,"navigation":154,"icon":155,"path":156},"Add a Mutation","content:docs:3.get-started:4.add-a-mutation.md","3\u002F4",{"icon":155},"i-lucide-square-pen","\u002Fdocs\u002Fget-started\u002Fadd-a-mutation",{"title":158,"id":159,"canonicalKey":160,"locale":8,"draft":6,"navigation":161,"icon":162,"path":163},"Add Authentication","content:docs:3.get-started:5.add-authentication.md","3\u002F5",{"icon":162},"i-lucide-log-in","\u002Fdocs\u002Fget-started\u002Fadd-authentication",{"title":165,"id":166,"canonicalKey":167,"locale":8,"draft":6,"navigation":168,"icon":169,"path":170},"Protect Data","content:docs:3.get-started:6.protect-data.md","3\u002F6",{"icon":169},"i-lucide-shield-check","\u002Fdocs\u002Fget-started\u002Fprotect-data",{"title":172,"id":173,"canonicalKey":174,"locale":8,"draft":6,"navigation":175,"icon":176,"path":177},"Project Structure","content:docs:3.get-started:7.project-structure.md","3\u002F7",{"icon":176},"i-lucide-folder-tree","\u002Fdocs\u002Fget-started\u002Fproject-structure",{"title":179,"id":180,"canonicalKey":181,"locale":8,"draft":6,"navigation":182,"icon":183,"path":184},"Next Steps","content:docs:3.get-started:8.next-steps.md","3\u002F8",{"icon":183},"i-lucide-arrow-right","\u002Fdocs\u002Fget-started\u002Fnext-steps",{"title":186,"id":187,"canonicalKey":188,"locale":8,"draft":6,"navigation":189,"icon":100,"path":190},"Plain Vue and Vite","content:docs:3.get-started:9.plain-vue.md","3\u002F9",{"icon":100},"\u002Fdocs\u002Fget-started\u002Fplain-vue",{"title":192,"page":6,"canonicalKey":193,"locale":8,"id":194,"draft":6,"icon":195,"sidebar":11,"children":196},"Build","4","content:docs:4.build:.navigation.yml","i-lucide-blocks",[197,234,265,336,368,393,432],{"title":198,"page":6,"canonicalKey":199,"locale":8,"children":200},"Queries","4\u002F1",[201,206,213,220,227],{"title":198,"id":202,"canonicalKey":203,"locale":8,"draft":6,"navigation":204,"icon":86,"path":205},"content:docs:4.build:1.queries:1.queries.md","4\u002F1\u002F1",{"icon":86},"\u002Fdocs\u002Fbuild\u002Fqueries\u002Fqueries",{"title":207,"id":208,"canonicalKey":209,"locale":8,"draft":6,"navigation":210,"icon":211,"path":212},"Reactive Arguments","content:docs:4.build:1.queries:2.reactive-arguments.md","4\u002F1\u002F2",{"icon":211},"i-lucide-sliders-horizontal","\u002Fdocs\u002Fbuild\u002Fqueries\u002Freactive-arguments",{"title":214,"id":215,"canonicalKey":216,"locale":8,"draft":6,"navigation":217,"icon":218,"path":219},"Loading and Stale Data","content:docs:4.build:1.queries:3.loading-and-stale-data.md","4\u002F1\u002F3",{"icon":218},"i-lucide-loader-circle","\u002Fdocs\u002Fbuild\u002Fqueries\u002Floading-and-stale-data",{"title":221,"id":222,"canonicalKey":223,"locale":8,"draft":6,"navigation":224,"icon":225,"path":226},"Query Execution Options","content:docs:4.build:1.queries:4.ssr-options.md","4\u002F1\u002F4",{"icon":225},"i-lucide-server-cog","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fssr-options",{"title":228,"id":229,"canonicalKey":230,"locale":8,"draft":6,"navigation":231,"icon":232,"path":233},"Pagination","content:docs:4.build:1.queries:6.pagination.md","4\u002F1\u002F6",{"icon":232},"i-lucide-list-plus","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fpagination",{"title":235,"page":6,"canonicalKey":236,"locale":8,"children":237},"Write Data","4\u002F2",[238,244,251,258],{"title":239,"id":240,"canonicalKey":241,"locale":8,"draft":6,"navigation":242,"icon":155,"path":243},"Mutations","content:docs:4.build:2.write-data:1.mutations.md","4\u002F2\u002F1",{"icon":155},"\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fmutations",{"title":245,"id":246,"canonicalKey":247,"locale":8,"draft":6,"navigation":248,"icon":249,"path":250},"Actions","content:docs:4.build:2.write-data:2.actions.md","4\u002F2\u002F2",{"icon":249},"i-lucide-zap","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Factions",{"title":252,"id":253,"canonicalKey":254,"locale":8,"draft":6,"navigation":255,"icon":256,"path":257},"Optimistic Updates","content:docs:4.build:2.write-data:3.optimistic-updates.md","4\u002F2\u002F3",{"icon":256},"i-lucide-gauge","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Foptimistic-updates",{"title":259,"id":260,"canonicalKey":261,"locale":8,"draft":6,"navigation":262,"icon":263,"path":264},"Concurrent Operations","content:docs:4.build:2.write-data:4.concurrent-operations.md","4\u002F2\u002F4",{"icon":263},"i-lucide-git-fork","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fconcurrent-operations",{"title":266,"page":6,"canonicalKey":267,"locale":8,"children":268},"Authentication","4\u002F3",[269,275,282,289,295,301,308,315,322,329],{"title":266,"id":270,"canonicalKey":271,"locale":8,"draft":6,"navigation":272,"icon":273,"path":274},"content:docs:4.build:3.authentication:1.overview.md","4\u002F3\u002F1",{"icon":273},"i-lucide-shield","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Foverview",{"title":276,"id":277,"canonicalKey":278,"locale":8,"draft":6,"navigation":279,"icon":280,"path":281},"Better Auth Setup","content:docs:4.build:3.authentication:2.better-auth-setup.md","4\u002F3\u002F2",{"icon":280},"i-lucide-settings-2","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-setup",{"title":283,"id":284,"canonicalKey":285,"locale":8,"draft":6,"navigation":286,"icon":287,"path":288},"Auth State and User Data","content:docs:4.build:3.authentication:3.auth-state-and-user.md","4\u002F3\u002F3",{"icon":287},"i-lucide-user-round","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fauth-state-and-user",{"title":290,"id":291,"canonicalKey":292,"locale":8,"draft":6,"navigation":293,"icon":162,"path":294},"Sign In and Sign Out","content:docs:4.build:3.authentication:4.sign-in-and-sign-out.md","4\u002F3\u002F4",{"icon":162},"\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fsign-in-and-sign-out",{"title":296,"id":297,"canonicalKey":298,"locale":8,"draft":6,"navigation":299,"icon":72,"path":300},"Route Protection","content:docs:4.build:3.authentication:5.route-protection.md","4\u002F3\u002F5",{"icon":72},"\u002Fdocs\u002Fbuild\u002Fauthentication\u002Froute-protection",{"title":302,"id":303,"canonicalKey":304,"locale":8,"draft":6,"navigation":305,"icon":306,"path":307},"Backend Authorization","content:docs:4.build:3.authentication:6.backend-authorization.md","4\u002F3\u002F6",{"icon":306},"i-lucide-lock-keyhole","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbackend-authorization",{"title":309,"id":310,"canonicalKey":311,"locale":8,"draft":6,"navigation":312,"icon":313,"path":314},"Better Auth Plugins","content:docs:4.build:3.authentication:7.better-auth-plugins.md","4\u002F3\u002F7",{"icon":313},"i-lucide-plug","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-plugins",{"title":316,"id":317,"canonicalKey":318,"locale":8,"draft":6,"navigation":319,"icon":320,"path":321},"Custom User Fields","content:docs:4.build:3.authentication:8.custom-user-fields.md","4\u002F3\u002F8",{"icon":320},"i-lucide-user-cog","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fcustom-user-fields",{"title":323,"id":324,"canonicalKey":325,"locale":8,"draft":6,"navigation":326,"icon":327,"path":328},"User Synchronization","content:docs:4.build:3.authentication:9.user-synchronization.md","4\u002F3\u002F9",{"icon":327},"i-lucide-refresh-ccw","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fuser-synchronization",{"title":330,"id":331,"canonicalKey":332,"locale":8,"draft":6,"navigation":333,"icon":334,"path":335},"Delegated OAuth and MCP","content:docs:4.build:3.authentication:10.delegated-oauth-and-mcp.md","4\u002F3\u002F10",{"icon":334},"i-lucide-bot","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fdelegated-oauth-and-mcp",{"title":337,"page":6,"canonicalKey":338,"locale":8,"children":339},"Server","4\u002F4",[340,347,354,361],{"title":341,"id":342,"canonicalKey":343,"locale":8,"draft":6,"navigation":344,"icon":345,"path":346},"serverConvex","content:docs:4.build:4.server:1.server-convex.md","4\u002F4\u002F1",{"icon":345},"i-lucide-server","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-convex",{"title":348,"id":349,"canonicalKey":350,"locale":8,"draft":6,"navigation":351,"icon":352,"path":353},"Server Routes","content:docs:4.build:4.server:2.server-routes.md","4\u002F4\u002F2",{"icon":352},"i-lucide-waypoints","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-routes",{"title":355,"id":356,"canonicalKey":357,"locale":8,"draft":6,"navigation":358,"icon":359,"path":360},"Webhooks and Jobs","content:docs:4.build:4.server:3.webhooks-and-jobs.md","4\u002F4\u002F3",{"icon":359},"i-lucide-webhook","\u002Fdocs\u002Fbuild\u002Fserver\u002Fwebhooks-and-jobs",{"title":362,"id":363,"canonicalKey":364,"locale":8,"draft":6,"navigation":365,"icon":366,"path":367},"Credentials and Server Security","content:docs:4.build:4.server:4.credentials-and-security.md","4\u002F4\u002F4",{"icon":366},"i-lucide-key-round","\u002Fdocs\u002Fbuild\u002Fserver\u002Fcredentials-and-security",{"title":369,"page":6,"canonicalKey":370,"locale":8,"children":371},"Files","4\u002F5",[372,379,386],{"title":373,"id":374,"canonicalKey":375,"locale":8,"draft":6,"navigation":376,"icon":377,"path":378},"Upload Files","content:docs:4.build:5.files:1.upload-files.md","4\u002F5\u002F1",{"icon":377},"i-lucide-upload","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fupload-files",{"title":380,"id":381,"canonicalKey":382,"locale":8,"draft":6,"navigation":383,"icon":384,"path":385},"Storage URLs","content:docs:4.build:5.files:3.storage-urls.md","4\u002F5\u002F3",{"icon":384},"i-lucide-link","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fstorage-urls",{"title":387,"id":388,"canonicalKey":389,"locale":8,"draft":6,"navigation":390,"icon":391,"path":392},"File Validation and Deletion","content:docs:4.build:5.files:4.validation-and-deletion.md","4\u002F5\u002F4",{"icon":391},"i-lucide-file-x","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fvalidation-and-deletion",{"title":394,"page":6,"canonicalKey":395,"locale":8,"children":396},"Application Behavior","4\u002F6",[397,404,411,418,425],{"title":398,"id":399,"canonicalKey":400,"locale":8,"draft":6,"navigation":401,"icon":402,"path":403},"Connection State","content:docs:4.build:6.application-behavior:1.connection-state.md","4\u002F6\u002F1",{"icon":402},"i-lucide-wifi","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fconnection-state",{"title":405,"id":406,"canonicalKey":407,"locale":8,"draft":6,"navigation":408,"icon":409,"path":410},"Error Handling","content:docs:4.build:6.application-behavior:2.error-handling.md","4\u002F6\u002F2",{"icon":409},"i-lucide-circle-alert","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Ferror-handling",{"title":412,"id":413,"canonicalKey":414,"locale":8,"draft":6,"navigation":415,"icon":416,"path":417},"Logging","content:docs:4.build:6.application-behavior:3.logging.md","4\u002F6\u002F3",{"icon":416},"i-lucide-scroll-text","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Flogging",{"title":419,"id":420,"canonicalKey":421,"locale":8,"draft":6,"navigation":422,"icon":423,"path":424},"DevTools","content:docs:4.build:6.application-behavior:4.devtools.md","4\u002F6\u002F4",{"icon":423},"i-lucide-wrench","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fdevtools",{"title":426,"id":427,"canonicalKey":428,"locale":8,"draft":6,"navigation":429,"icon":430,"path":431},"Performance","content:docs:4.build:6.application-behavior:5.performance.md","4\u002F6\u002F5",{"icon":430},"i-lucide-chart-no-axes-combined","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fperformance",{"title":433,"page":6,"canonicalKey":434,"locale":8,"id":435,"draft":6,"icon":334,"children":436},"Agents and MCP","4\u002F7","content:docs:4.build:7.agents:.navigation.yml",[437,444],{"title":438,"id":439,"canonicalKey":440,"locale":8,"draft":6,"navigation":441,"icon":442,"path":443},"MCP on Convex","content:docs:4.build:7.agents:1.mcp.md","4\u002F7\u002F1",{"icon":442},"i-lucide-plug-zap","\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp",{"title":445,"id":446,"canonicalKey":447,"locale":8,"draft":6,"navigation":448,"icon":100,"path":449},"Vue MCP Apps","content:docs:4.build:7.agents:2.mcp-apps.md","4\u002F7\u002F2",{"icon":100},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp-apps",{"title":451,"page":6,"canonicalKey":452,"locale":8,"id":453,"draft":6,"icon":454,"children":455},"Recipes","5","content:docs:5.recipes:.navigation.yml","i-lucide-cooking-pot",[456,462,469,476,483,490,497,503],{"title":457,"id":458,"canonicalKey":459,"locale":8,"draft":6,"navigation":460,"icon":39,"path":461},"Protected Dashboard","content:docs:5.recipes:1.protected-dashboard.md","5\u002F1",{"icon":39},"\u002Fdocs\u002Frecipes\u002Fprotected-dashboard",{"title":463,"id":464,"canonicalKey":465,"locale":8,"draft":6,"navigation":466,"icon":467,"path":468},"Real-Time Feed","content:docs:5.recipes:2.realtime-feed.md","5\u002F2",{"icon":467},"i-lucide-messages-square","\u002Fdocs\u002Frecipes\u002Frealtime-feed",{"title":470,"id":471,"canonicalKey":472,"locale":8,"draft":6,"navigation":473,"icon":474,"path":475},"Optimistic Todo List","content:docs:5.recipes:3.optimistic-todo-list.md","5\u002F3",{"icon":474},"i-lucide-list-todo","\u002Fdocs\u002Frecipes\u002Foptimistic-todo-list",{"title":477,"id":478,"canonicalKey":479,"locale":8,"draft":6,"navigation":480,"icon":481,"path":482},"Infinite Scroll","content:docs:5.recipes:4.infinite-scroll.md","5\u002F4",{"icon":481},"i-lucide-mouse","\u002Fdocs\u002Frecipes\u002Finfinite-scroll",{"title":484,"id":485,"canonicalKey":486,"locale":8,"draft":6,"navigation":487,"icon":488,"path":489},"File Upload Form","content:docs:5.recipes:5.file-upload-form.md","5\u002F5",{"icon":488},"i-lucide-file-up","\u002Fdocs\u002Frecipes\u002Ffile-upload-form",{"title":491,"id":492,"canonicalKey":493,"locale":8,"draft":6,"navigation":494,"icon":495,"path":496},"Organization Permissions","content:docs:5.recipes:6.organization-permissions.md","5\u002F6",{"icon":495},"i-lucide-building-2","\u002Fdocs\u002Frecipes\u002Forganization-permissions",{"title":498,"id":499,"canonicalKey":500,"locale":8,"draft":6,"navigation":501,"icon":345,"path":502},"Authenticated Server Route","content:docs:5.recipes:7.authenticated-server-route.md","5\u002F7",{"icon":345},"\u002Fdocs\u002Frecipes\u002Fauthenticated-server-route",{"title":504,"id":505,"canonicalKey":506,"locale":8,"draft":6,"navigation":507,"icon":100,"path":508},"Public and Private Data","content:docs:5.recipes:8.public-and-private-data.md","5\u002F8",{"icon":100},"\u002Fdocs\u002Frecipes\u002Fpublic-and-private-data",{"title":510,"page":6,"canonicalKey":511,"locale":8,"id":512,"draft":6,"icon":513,"children":514},"Reference","6","content:docs:6.reference:.navigation.yml","i-lucide-braces",[515,521,527,533,540,547],{"title":516,"id":517,"canonicalKey":518,"locale":8,"draft":6,"navigation":519,"icon":513,"path":520},"Composables","content:docs:6.reference:1.composables.md","6\u002F1",{"icon":513},"\u002Fdocs\u002Freference\u002Fcomposables",{"title":522,"id":523,"canonicalKey":524,"locale":8,"draft":6,"navigation":525,"icon":345,"path":526},"Server API","content:docs:6.reference:3.server-api.md","6\u002F3",{"icon":345},"\u002Fdocs\u002Freference\u002Fserver-api",{"title":528,"id":529,"canonicalKey":530,"locale":8,"draft":6,"navigation":531,"icon":107,"path":532},"Error Types","content:docs:6.reference:4.error-types.md","6\u002F4",{"icon":107},"\u002Fdocs\u002Freference\u002Ferror-types",{"title":534,"id":535,"canonicalKey":536,"locale":8,"draft":6,"navigation":537,"icon":538,"path":539},"Module Configuration","content:docs:6.reference:5.module-configuration.md","6\u002F5",{"icon":538},"i-lucide-settings","\u002Fdocs\u002Freference\u002Fmodule-configuration",{"title":541,"id":542,"canonicalKey":543,"locale":8,"draft":6,"navigation":544,"icon":545,"path":546},"Package Exports","content:docs:6.reference:6.package-exports.md","6\u002F6",{"icon":545},"i-lucide-package-open","\u002Fdocs\u002Freference\u002Fpackage-exports",{"title":548,"id":549,"canonicalKey":550,"locale":8,"draft":6,"navigation":551,"icon":552,"path":553},"API Surface","content:docs:6.reference:7.api-surface.md","6\u002F7",{"icon":552},"i-lucide-list","\u002Fdocs\u002Freference\u002Fapi-surface",{"title":555,"page":6,"canonicalKey":556,"locale":8,"id":557,"draft":6,"icon":280,"children":558},"Operations","7","content:docs:7.operations:.navigation.yml",[559,566,572,578,584],{"title":560,"id":561,"canonicalKey":562,"locale":8,"draft":6,"navigation":563,"icon":564,"path":565},"Environment Variables","content:docs:7.operations:1.environment-variables.md","7\u002F1",{"icon":564},"i-lucide-variable","\u002Fdocs\u002Foperations\u002Fenvironment-variables",{"title":567,"id":568,"canonicalKey":569,"locale":8,"draft":6,"navigation":570,"icon":127,"path":571},"Deployment","content:docs:7.operations:2.deployment.md","7\u002F2",{"icon":127},"\u002Fdocs\u002Foperations\u002Fdeployment",{"title":573,"id":574,"canonicalKey":575,"locale":8,"draft":6,"navigation":576,"icon":169,"path":577},"Security Model","content:docs:7.operations:3.security-model.md","7\u002F3",{"icon":169},"\u002Fdocs\u002Foperations\u002Fsecurity-model",{"title":579,"id":580,"canonicalKey":581,"locale":8,"draft":6,"navigation":582,"icon":423,"path":583},"Troubleshooting","content:docs:7.operations:4.troubleshooting.md","7\u002F4",{"icon":423},"\u002Fdocs\u002Foperations\u002Ftroubleshooting",{"title":585,"id":586,"canonicalKey":587,"locale":8,"draft":6,"navigation":588,"icon":25,"path":589},"Release Compatibility","content:docs:7.operations:5.release-compatibility.md","7\u002F5",{"icon":25},"\u002Fdocs\u002Foperations\u002Frelease-compatibility",{"title":591,"id":592,"canonicalKey":593,"locale":8,"draft":6,"path":594},"Better Convex documentation","content:docs:index.md","\u002F","\u002Fdocs",{"title":445,"description":596,"navigation":597,"body":598,"type":2015,"id":446,"canonicalKey":447,"draft":6,"partial":6,"locale":8,"collection":2016,"navigationFile":6,"file":2017,"route":2023,"resolution":2025},"Add a credential-free Vue interface to an MCP tool without changing its authorization boundary.",{"icon":100},{"type":599,"children":600,"toc":2003},"root",[601,622,627,634,639,697,709,715,720,1518,1528,1553,1565,1570,1630,1635,1640,1646,1664,1669,1702,1707,1713,1724,1729,1762,1767,1773,1782,1787,1793,1798,1941,1946,1952,1964,1993,1998],{"type":602,"tag":603,"props":604,"children":605},"element","p",{},[606,613,615,620],{"type":602,"tag":607,"props":608,"children":609},"code",{},[610],{"type":611,"value":612},"text","@lupinum\u002Fbetter-convex-vue\u002Fmcp-app",{"type":611,"value":614}," is an experimental Vue lifecycle integration for\nthe official MCP Apps SDK. It lets a supporting host render a ",{"type":602,"tag":607,"props":616,"children":617},{},[618],{"type":611,"value":619},"ui:\u002F\u002F",{"type":611,"value":621}," resource\nin a sandboxed iframe while the same tool remains useful to clients that do not\nsupport Apps.",{"type":602,"tag":603,"props":623,"children":624},{},[625],{"type":611,"value":626},"The integration is intentionally narrow. The official SDK owns App Bridge and\nwire behavior. Better Convex owns Vue mount, disposal, readonly reactive\nprojections, and structured-clone boundaries. Your application still owns the\ntool, resource, authorization, data, and effects.",{"type":602,"tag":628,"props":629,"children":631},"h2",{"id":630},"install-the-optional-entry",[632],{"type":611,"value":633},"Install the optional entry",{"type":602,"tag":603,"props":635,"children":636},{},[637],{"type":611,"value":638},"Install the complete exact Apps peer set only when the application builds an MCP App:",{"type":602,"tag":640,"props":641,"children":644},"pre",{"language":642,"class":643},"bash","shiki shiki-themes light-plus dark-plus dark:dark-plus",[645],{"type":602,"tag":607,"props":646,"children":648},{"class":647},"language-bash",[649],{"type":602,"tag":650,"props":651,"children":654},"span",{"class":652,"style":653},"line","display: inline",[655,661,667,672,677,682,687,692],{"type":602,"tag":650,"props":656,"children":658},{"style":657},"color:#795E26;--shiki-dark:#DCDCAA",[659],{"type":611,"value":660},"pnpm",{"type":602,"tag":650,"props":662,"children":664},{"style":663},"color:#A31515;--shiki-dark:#CE9178",[665],{"type":611,"value":666}," add",{"type":602,"tag":650,"props":668,"children":669},{"style":663},[670],{"type":611,"value":671}," @lupinum\u002Fbetter-convex-vue@0.8.0-beta.40",{"type":602,"tag":650,"props":673,"children":674},{"style":663},[675],{"type":611,"value":676}," convex@1.42.2",{"type":602,"tag":650,"props":678,"children":679},{"style":663},[680],{"type":611,"value":681}," vue@3.5.40",{"type":602,"tag":650,"props":683,"children":684},{"style":663},[685],{"type":611,"value":686}," @modelcontextprotocol\u002Fext-apps@1.7.5",{"type":602,"tag":650,"props":688,"children":689},{"style":663},[690],{"type":611,"value":691}," @modelcontextprotocol\u002Fsdk@1.30.0",{"type":602,"tag":650,"props":693,"children":694},{"style":663},[695],{"type":611,"value":696}," zod@4.4.3",{"type":602,"tag":603,"props":698,"children":699},{},[700,702,707],{"type":611,"value":701},"Importing ordinary ",{"type":602,"tag":607,"props":703,"children":704},{},[705],{"type":611,"value":706},"@lupinum\u002Fbetter-convex-vue",{"type":611,"value":708}," does not pull the Apps SDK into the\nclient graph. The SDK and Zod entries satisfy the non-optional peers declared\nby the official Apps package under strict package managers.",{"type":602,"tag":628,"props":710,"children":712},{"id":711},"own-one-app-per-vue-scope",[713],{"type":611,"value":714},"Own one App per Vue scope",{"type":602,"tag":603,"props":716,"children":717},{},[718],{"type":611,"value":719},"Create the lifecycle synchronously in component setup:",{"type":602,"tag":640,"props":721,"children":723},{"language":722,"class":643},"vue",[724],{"type":602,"tag":607,"props":725,"children":727},{"class":726},"language-vue",[728,771,773,808,809,842,843,882,883,886,887,916,917,930,931,949,950,967,968,976,977,990,991,999,1000,1003,1004,1109,1110,1113,1114,1162,1163,1172,1173,1193,1194,1201,1202,1205,1206,1269,1270,1316,1317,1324,1325,1328,1329,1352,1353,1387,1388,1427,1428,1444,1445,1463,1464,1472,1473,1492,1493,1501,1502],{"type":602,"tag":650,"props":729,"children":730},{"class":652,"style":653},[731,737,743,749,754,760,766],{"type":602,"tag":650,"props":732,"children":734},{"style":733},"color:#800000;--shiki-dark:#808080",[735],{"type":611,"value":736},"\u003C",{"type":602,"tag":650,"props":738,"children":740},{"style":739},"color:#800000;--shiki-dark:#569CD6",[741],{"type":611,"value":742},"script",{"type":602,"tag":650,"props":744,"children":746},{"style":745},"color:#E50000;--shiki-dark:#9CDCFE",[747],{"type":611,"value":748}," setup",{"type":602,"tag":650,"props":750,"children":751},{"style":745},[752],{"type":611,"value":753}," lang",{"type":602,"tag":650,"props":755,"children":757},{"style":756},"color:#000000;--shiki-dark:#D4D4D4",[758],{"type":611,"value":759},"=",{"type":602,"tag":650,"props":761,"children":763},{"style":762},"color:#0000FF;--shiki-dark:#CE9178",[764],{"type":611,"value":765},"\"ts\"",{"type":602,"tag":650,"props":767,"children":768},{"style":733},[769],{"type":611,"value":770},">",{"type":611,"value":772},"\n",{"type":602,"tag":650,"props":774,"children":775},{"class":652,"style":653},[776,782,787,793,798,803],{"type":602,"tag":650,"props":777,"children":779},{"style":778},"color:#AF00DB;--shiki-dark:#C586C0",[780],{"type":611,"value":781},"import",{"type":602,"tag":650,"props":783,"children":784},{"style":756},[785],{"type":611,"value":786}," { ",{"type":602,"tag":650,"props":788,"children":790},{"style":789},"color:#001080;--shiki-dark:#9CDCFE",[791],{"type":611,"value":792},"useMcpApp",{"type":602,"tag":650,"props":794,"children":795},{"style":756},[796],{"type":611,"value":797}," } ",{"type":602,"tag":650,"props":799,"children":800},{"style":778},[801],{"type":611,"value":802},"from",{"type":602,"tag":650,"props":804,"children":805},{"style":663},[806],{"type":611,"value":807}," '@lupinum\u002Fbetter-convex-vue\u002Fmcp-app'",{"type":611,"value":772},{"type":602,"tag":650,"props":810,"children":811},{"class":652,"style":653},[812,816,821,825,830,834,838],{"type":602,"tag":650,"props":813,"children":814},{"style":778},[815],{"type":611,"value":781},{"type":602,"tag":650,"props":817,"children":818},{"style":778},[819],{"type":611,"value":820}," type",{"type":602,"tag":650,"props":822,"children":823},{"style":756},[824],{"type":611,"value":786},{"type":602,"tag":650,"props":826,"children":827},{"style":789},[828],{"type":611,"value":829},"McpAppError",{"type":602,"tag":650,"props":831,"children":832},{"style":756},[833],{"type":611,"value":797},{"type":602,"tag":650,"props":835,"children":836},{"style":778},[837],{"type":611,"value":802},{"type":602,"tag":650,"props":839,"children":840},{"style":663},[841],{"type":611,"value":807},{"type":611,"value":772},{"type":602,"tag":650,"props":844,"children":845},{"class":652,"style":653},[846,850,854,859,864,869,873,877],{"type":602,"tag":650,"props":847,"children":848},{"style":778},[849],{"type":611,"value":781},{"type":602,"tag":650,"props":851,"children":852},{"style":756},[853],{"type":611,"value":786},{"type":602,"tag":650,"props":855,"children":856},{"style":789},[857],{"type":611,"value":858},"computed",{"type":602,"tag":650,"props":860,"children":861},{"style":756},[862],{"type":611,"value":863},", ",{"type":602,"tag":650,"props":865,"children":866},{"style":789},[867],{"type":611,"value":868},"watch",{"type":602,"tag":650,"props":870,"children":871},{"style":756},[872],{"type":611,"value":797},{"type":602,"tag":650,"props":874,"children":875},{"style":778},[876],{"type":611,"value":802},{"type":602,"tag":650,"props":878,"children":879},{"style":663},[880],{"type":611,"value":881}," 'vue'",{"type":611,"value":772},{"type":602,"tag":650,"props":884,"children":885},{"class":652,"style":653},[],{"type":611,"value":772},{"type":602,"tag":650,"props":888,"children":889},{"class":652,"style":653},[890,896,902,907,911],{"type":602,"tag":650,"props":891,"children":893},{"style":892},"color:#0000FF;--shiki-dark:#569CD6",[894],{"type":611,"value":895},"const",{"type":602,"tag":650,"props":897,"children":899},{"style":898},"color:#0070C1;--shiki-dark:#4FC1FF",[900],{"type":611,"value":901}," app",{"type":602,"tag":650,"props":903,"children":904},{"style":756},[905],{"type":611,"value":906}," = ",{"type":602,"tag":650,"props":908,"children":909},{"style":657},[910],{"type":611,"value":792},{"type":602,"tag":650,"props":912,"children":913},{"style":756},[914],{"type":611,"value":915},"({",{"type":611,"value":772},{"type":602,"tag":650,"props":918,"children":919},{"class":652,"style":653},[920,925],{"type":602,"tag":650,"props":921,"children":922},{"style":789},[923],{"type":611,"value":924},"  implementation:",{"type":602,"tag":650,"props":926,"children":927},{"style":756},[928],{"type":611,"value":929}," {",{"type":611,"value":772},{"type":602,"tag":650,"props":932,"children":933},{"class":652,"style":653},[934,939,944],{"type":602,"tag":650,"props":935,"children":936},{"style":789},[937],{"type":611,"value":938},"    name:",{"type":602,"tag":650,"props":940,"children":941},{"style":663},[942],{"type":611,"value":943}," 'notes-dashboard'",{"type":602,"tag":650,"props":945,"children":946},{"style":756},[947],{"type":611,"value":948},",",{"type":611,"value":772},{"type":602,"tag":650,"props":951,"children":952},{"class":652,"style":653},[953,958,963],{"type":602,"tag":650,"props":954,"children":955},{"style":789},[956],{"type":611,"value":957},"    version:",{"type":602,"tag":650,"props":959,"children":960},{"style":663},[961],{"type":611,"value":962}," '0.1.0'",{"type":602,"tag":650,"props":964,"children":965},{"style":756},[966],{"type":611,"value":948},{"type":611,"value":772},{"type":602,"tag":650,"props":969,"children":970},{"class":652,"style":653},[971],{"type":602,"tag":650,"props":972,"children":973},{"style":756},[974],{"type":611,"value":975},"  },",{"type":611,"value":772},{"type":602,"tag":650,"props":978,"children":979},{"class":652,"style":653},[980,985],{"type":602,"tag":650,"props":981,"children":982},{"style":789},[983],{"type":611,"value":984},"  capabilities:",{"type":602,"tag":650,"props":986,"children":987},{"style":756},[988],{"type":611,"value":989}," {},",{"type":611,"value":772},{"type":602,"tag":650,"props":992,"children":993},{"class":652,"style":653},[994],{"type":602,"tag":650,"props":995,"children":996},{"style":756},[997],{"type":611,"value":998},"})",{"type":611,"value":772},{"type":602,"tag":650,"props":1001,"children":1002},{"class":652,"style":653},[],{"type":611,"value":772},{"type":602,"tag":650,"props":1005,"children":1006},{"class":652,"style":653},[1007,1011,1016,1020,1024,1029,1034,1038,1043,1048,1052,1057,1062,1067,1072,1077,1081,1086,1090,1094,1099,1104],{"type":602,"tag":650,"props":1008,"children":1009},{"style":892},[1010],{"type":611,"value":895},{"type":602,"tag":650,"props":1012,"children":1013},{"style":898},[1014],{"type":611,"value":1015}," canSearch",{"type":602,"tag":650,"props":1017,"children":1018},{"style":756},[1019],{"type":611,"value":906},{"type":602,"tag":650,"props":1021,"children":1022},{"style":657},[1023],{"type":611,"value":858},{"type":602,"tag":650,"props":1025,"children":1026},{"style":756},[1027],{"type":611,"value":1028},"(() ",{"type":602,"tag":650,"props":1030,"children":1031},{"style":892},[1032],{"type":611,"value":1033},"=>",{"type":602,"tag":650,"props":1035,"children":1036},{"style":789},[1037],{"type":611,"value":901},{"type":602,"tag":650,"props":1039,"children":1040},{"style":756},[1041],{"type":611,"value":1042},".",{"type":602,"tag":650,"props":1044,"children":1045},{"style":789},[1046],{"type":611,"value":1047},"phase",{"type":602,"tag":650,"props":1049,"children":1050},{"style":756},[1051],{"type":611,"value":1042},{"type":602,"tag":650,"props":1053,"children":1054},{"style":789},[1055],{"type":611,"value":1056},"value",{"type":602,"tag":650,"props":1058,"children":1059},{"style":756},[1060],{"type":611,"value":1061}," === ",{"type":602,"tag":650,"props":1063,"children":1064},{"style":663},[1065],{"type":611,"value":1066},"'ready'",{"type":602,"tag":650,"props":1068,"children":1069},{"style":756},[1070],{"type":611,"value":1071}," && ",{"type":602,"tag":650,"props":1073,"children":1074},{"style":789},[1075],{"type":611,"value":1076},"app",{"type":602,"tag":650,"props":1078,"children":1079},{"style":756},[1080],{"type":611,"value":1042},{"type":602,"tag":650,"props":1082,"children":1083},{"style":789},[1084],{"type":611,"value":1085},"toolInput",{"type":602,"tag":650,"props":1087,"children":1088},{"style":756},[1089],{"type":611,"value":1042},{"type":602,"tag":650,"props":1091,"children":1092},{"style":789},[1093],{"type":611,"value":1056},{"type":602,"tag":650,"props":1095,"children":1096},{"style":756},[1097],{"type":611,"value":1098}," !== ",{"type":602,"tag":650,"props":1100,"children":1101},{"style":892},[1102],{"type":611,"value":1103},"undefined",{"type":602,"tag":650,"props":1105,"children":1106},{"style":756},[1107],{"type":611,"value":1108},")",{"type":611,"value":772},{"type":602,"tag":650,"props":1111,"children":1112},{"class":652,"style":653},[],{"type":611,"value":772},{"type":602,"tag":650,"props":1115,"children":1116},{"class":652,"style":653},[1117,1121,1126,1130,1134,1139,1144,1149,1154,1158],{"type":602,"tag":650,"props":1118,"children":1119},{"style":657},[1120],{"type":611,"value":868},{"type":602,"tag":650,"props":1122,"children":1123},{"style":756},[1124],{"type":611,"value":1125},"(",{"type":602,"tag":650,"props":1127,"children":1128},{"style":789},[1129],{"type":611,"value":1076},{"type":602,"tag":650,"props":1131,"children":1132},{"style":756},[1133],{"type":611,"value":1042},{"type":602,"tag":650,"props":1135,"children":1136},{"style":789},[1137],{"type":611,"value":1138},"toolResult",{"type":602,"tag":650,"props":1140,"children":1141},{"style":756},[1142],{"type":611,"value":1143},", (",{"type":602,"tag":650,"props":1145,"children":1146},{"style":789},[1147],{"type":611,"value":1148},"result",{"type":602,"tag":650,"props":1150,"children":1151},{"style":756},[1152],{"type":611,"value":1153},") ",{"type":602,"tag":650,"props":1155,"children":1156},{"style":892},[1157],{"type":611,"value":1033},{"type":602,"tag":650,"props":1159,"children":1160},{"style":756},[1161],{"type":611,"value":929},{"type":611,"value":772},{"type":602,"tag":650,"props":1164,"children":1165},{"class":652,"style":653},[1166],{"type":602,"tag":650,"props":1167,"children":1169},{"style":1168},"color:#008000;--shiki-dark:#6A9955",[1170],{"type":611,"value":1171},"  \u002F\u002F Validate and project only the fields this interface renders.",{"type":611,"value":772},{"type":602,"tag":650,"props":1174,"children":1175},{"class":652,"style":653},[1176,1181,1185,1189],{"type":602,"tag":650,"props":1177,"children":1178},{"style":657},[1179],{"type":611,"value":1180},"  receiveSearchResult",{"type":602,"tag":650,"props":1182,"children":1183},{"style":756},[1184],{"type":611,"value":1125},{"type":602,"tag":650,"props":1186,"children":1187},{"style":789},[1188],{"type":611,"value":1148},{"type":602,"tag":650,"props":1190,"children":1191},{"style":756},[1192],{"type":611,"value":1108},{"type":611,"value":772},{"type":602,"tag":650,"props":1195,"children":1196},{"class":652,"style":653},[1197],{"type":602,"tag":650,"props":1198,"children":1199},{"style":756},[1200],{"type":611,"value":998},{"type":611,"value":772},{"type":602,"tag":650,"props":1203,"children":1204},{"class":652,"style":653},[],{"type":611,"value":772},{"type":602,"tag":650,"props":1207,"children":1208},{"class":652,"style":653},[1209,1213,1217,1221,1225,1230,1234,1238,1243,1248,1253,1257,1261,1265],{"type":602,"tag":650,"props":1210,"children":1211},{"style":657},[1212],{"type":611,"value":868},{"type":602,"tag":650,"props":1214,"children":1215},{"style":756},[1216],{"type":611,"value":1125},{"type":602,"tag":650,"props":1218,"children":1219},{"style":789},[1220],{"type":611,"value":1076},{"type":602,"tag":650,"props":1222,"children":1223},{"style":756},[1224],{"type":611,"value":1042},{"type":602,"tag":650,"props":1226,"children":1227},{"style":789},[1228],{"type":611,"value":1229},"error",{"type":602,"tag":650,"props":1231,"children":1232},{"style":756},[1233],{"type":611,"value":1143},{"type":602,"tag":650,"props":1235,"children":1236},{"style":789},[1237],{"type":611,"value":1229},{"type":602,"tag":650,"props":1239,"children":1240},{"style":756},[1241],{"type":611,"value":1242},": ",{"type":602,"tag":650,"props":1244,"children":1246},{"style":1245},"color:#267F99;--shiki-dark:#4EC9B0",[1247],{"type":611,"value":829},{"type":602,"tag":650,"props":1249,"children":1250},{"style":756},[1251],{"type":611,"value":1252}," | ",{"type":602,"tag":650,"props":1254,"children":1255},{"style":1245},[1256],{"type":611,"value":1103},{"type":602,"tag":650,"props":1258,"children":1259},{"style":756},[1260],{"type":611,"value":1153},{"type":602,"tag":650,"props":1262,"children":1263},{"style":892},[1264],{"type":611,"value":1033},{"type":602,"tag":650,"props":1266,"children":1267},{"style":756},[1268],{"type":611,"value":929},{"type":611,"value":772},{"type":602,"tag":650,"props":1271,"children":1272},{"class":652,"style":653},[1273,1278,1283,1287,1291,1296,1300,1304,1308,1312],{"type":602,"tag":650,"props":1274,"children":1275},{"style":778},[1276],{"type":611,"value":1277},"  if",{"type":602,"tag":650,"props":1279,"children":1280},{"style":756},[1281],{"type":611,"value":1282}," (",{"type":602,"tag":650,"props":1284,"children":1285},{"style":789},[1286],{"type":611,"value":1229},{"type":602,"tag":650,"props":1288,"children":1289},{"style":756},[1290],{"type":611,"value":1153},{"type":602,"tag":650,"props":1292,"children":1293},{"style":657},[1294],{"type":611,"value":1295},"showSafeLifecycleFailure",{"type":602,"tag":650,"props":1297,"children":1298},{"style":756},[1299],{"type":611,"value":1125},{"type":602,"tag":650,"props":1301,"children":1302},{"style":789},[1303],{"type":611,"value":1229},{"type":602,"tag":650,"props":1305,"children":1306},{"style":756},[1307],{"type":611,"value":1042},{"type":602,"tag":650,"props":1309,"children":1310},{"style":789},[1311],{"type":611,"value":607},{"type":602,"tag":650,"props":1313,"children":1314},{"style":756},[1315],{"type":611,"value":1108},{"type":611,"value":772},{"type":602,"tag":650,"props":1318,"children":1319},{"class":652,"style":653},[1320],{"type":602,"tag":650,"props":1321,"children":1322},{"style":756},[1323],{"type":611,"value":998},{"type":611,"value":772},{"type":602,"tag":650,"props":1326,"children":1327},{"class":652,"style":653},[],{"type":611,"value":772},{"type":602,"tag":650,"props":1330,"children":1331},{"class":652,"style":653},[1332,1337,1342,1347],{"type":602,"tag":650,"props":1333,"children":1334},{"style":892},[1335],{"type":611,"value":1336},"async",{"type":602,"tag":650,"props":1338,"children":1339},{"style":892},[1340],{"type":611,"value":1341}," function",{"type":602,"tag":650,"props":1343,"children":1344},{"style":657},[1345],{"type":611,"value":1346}," refresh",{"type":602,"tag":650,"props":1348,"children":1349},{"style":756},[1350],{"type":611,"value":1351},"() {",{"type":611,"value":772},{"type":602,"tag":650,"props":1354,"children":1355},{"class":652,"style":653},[1356,1360,1365,1370,1374,1378,1382],{"type":602,"tag":650,"props":1357,"children":1358},{"style":778},[1359],{"type":611,"value":1277},{"type":602,"tag":650,"props":1361,"children":1362},{"style":756},[1363],{"type":611,"value":1364}," (!",{"type":602,"tag":650,"props":1366,"children":1367},{"style":789},[1368],{"type":611,"value":1369},"canSearch",{"type":602,"tag":650,"props":1371,"children":1372},{"style":756},[1373],{"type":611,"value":1042},{"type":602,"tag":650,"props":1375,"children":1376},{"style":789},[1377],{"type":611,"value":1056},{"type":602,"tag":650,"props":1379,"children":1380},{"style":756},[1381],{"type":611,"value":1153},{"type":602,"tag":650,"props":1383,"children":1384},{"style":778},[1385],{"type":611,"value":1386},"return",{"type":611,"value":772},{"type":602,"tag":650,"props":1389,"children":1390},{"class":652,"style":653},[1391,1396,1401,1405,1410,1414,1418,1423],{"type":602,"tag":650,"props":1392,"children":1393},{"style":892},[1394],{"type":611,"value":1395},"  const",{"type":602,"tag":650,"props":1397,"children":1398},{"style":898},[1399],{"type":611,"value":1400}," result",{"type":602,"tag":650,"props":1402,"children":1403},{"style":756},[1404],{"type":611,"value":906},{"type":602,"tag":650,"props":1406,"children":1407},{"style":778},[1408],{"type":611,"value":1409},"await",{"type":602,"tag":650,"props":1411,"children":1412},{"style":789},[1413],{"type":611,"value":901},{"type":602,"tag":650,"props":1415,"children":1416},{"style":756},[1417],{"type":611,"value":1042},{"type":602,"tag":650,"props":1419,"children":1420},{"style":657},[1421],{"type":611,"value":1422},"callServerTool",{"type":602,"tag":650,"props":1424,"children":1425},{"style":756},[1426],{"type":611,"value":915},{"type":611,"value":772},{"type":602,"tag":650,"props":1429,"children":1430},{"class":652,"style":653},[1431,1435,1440],{"type":602,"tag":650,"props":1432,"children":1433},{"style":789},[1434],{"type":611,"value":938},{"type":602,"tag":650,"props":1436,"children":1437},{"style":663},[1438],{"type":611,"value":1439}," 'search_notes'",{"type":602,"tag":650,"props":1441,"children":1442},{"style":756},[1443],{"type":611,"value":948},{"type":611,"value":772},{"type":602,"tag":650,"props":1446,"children":1447},{"class":652,"style":653},[1448,1453,1458],{"type":602,"tag":650,"props":1449,"children":1450},{"style":789},[1451],{"type":611,"value":1452},"    arguments:",{"type":602,"tag":650,"props":1454,"children":1455},{"style":657},[1456],{"type":611,"value":1457}," validatedSearchInput",{"type":602,"tag":650,"props":1459,"children":1460},{"style":756},[1461],{"type":611,"value":1462},"(),",{"type":611,"value":772},{"type":602,"tag":650,"props":1465,"children":1466},{"class":652,"style":653},[1467],{"type":602,"tag":650,"props":1468,"children":1469},{"style":756},[1470],{"type":611,"value":1471},"  })",{"type":611,"value":772},{"type":602,"tag":650,"props":1474,"children":1475},{"class":652,"style":653},[1476,1480,1484,1488],{"type":602,"tag":650,"props":1477,"children":1478},{"style":657},[1479],{"type":611,"value":1180},{"type":602,"tag":650,"props":1481,"children":1482},{"style":756},[1483],{"type":611,"value":1125},{"type":602,"tag":650,"props":1485,"children":1486},{"style":789},[1487],{"type":611,"value":1148},{"type":602,"tag":650,"props":1489,"children":1490},{"style":756},[1491],{"type":611,"value":1108},{"type":611,"value":772},{"type":602,"tag":650,"props":1494,"children":1495},{"class":652,"style":653},[1496],{"type":602,"tag":650,"props":1497,"children":1498},{"style":756},[1499],{"type":611,"value":1500},"}",{"type":611,"value":772},{"type":602,"tag":650,"props":1503,"children":1504},{"class":652,"style":653},[1505,1510,1514],{"type":602,"tag":650,"props":1506,"children":1507},{"style":733},[1508],{"type":611,"value":1509},"\u003C\u002F",{"type":602,"tag":650,"props":1511,"children":1512},{"style":739},[1513],{"type":611,"value":742},{"type":602,"tag":650,"props":1515,"children":1516},{"style":733},[1517],{"type":611,"value":770},{"type":602,"tag":603,"props":1519,"children":1520},{},[1521,1526],{"type":602,"tag":607,"props":1522,"children":1523},{},[1524],{"type":611,"value":1525},"useMcpApp()",{"type":611,"value":1527}," must run synchronously during browser component setup. It fails\nbefore constructing the official App when called during SSR or outside an\nactive component instance. It exposes one canonical phase, one readonly\nsanitized lifecycle error, readonly shallow refs for official host and tool\nnotifications, and only two host operations:",{"type":602,"tag":1529,"props":1530,"children":1531},"ul",{},[1532,1543],{"type":602,"tag":1533,"props":1534,"children":1535},"li",{},[1536,1541],{"type":602,"tag":607,"props":1537,"children":1538},{},[1539],{"type":611,"value":1540},"callServerTool()",{"type":611,"value":1542}," asks the host to perform an ordinary MCP tool call;",{"type":602,"tag":1533,"props":1544,"children":1545},{},[1546,1551],{"type":602,"tag":607,"props":1547,"children":1548},{},[1549],{"type":611,"value":1550},"openLink()",{"type":611,"value":1552}," asks the host to navigate to an external URL.",{"type":602,"tag":603,"props":1554,"children":1555},{},[1556,1558,1563],{"type":611,"value":1557},"Both operations reject before initialization, structured-clone inputs and\noutputs, and reject results that complete after the Vue scope is retired. A\ntool-call or link rejection belongs to that operation: it rejects the caller\nwithout changing the connection phase or lifecycle error. Scope disposal\nremoves Better Convex listeners, clears projected state, and closes the private\nSDK App exactly once. The mutable SDK ",{"type":602,"tag":607,"props":1559,"children":1560},{},[1561],{"type":611,"value":1562},"App",{"type":611,"value":1564}," is never exposed.",{"type":602,"tag":603,"props":1566,"children":1567},{},[1568],{"type":611,"value":1569},"Connection and structured-clone failures are terminal. They close the private\nApp and expose only stable local diagnostics:",{"type":602,"tag":1571,"props":1572,"children":1573},"table",{},[1574,1593],{"type":602,"tag":1575,"props":1576,"children":1577},"thead",{},[1578],{"type":602,"tag":1579,"props":1580,"children":1581},"tr",{},[1582,1588],{"type":602,"tag":1583,"props":1584,"children":1585},"th",{},[1586],{"type":611,"value":1587},"Code",{"type":602,"tag":1583,"props":1589,"children":1590},{},[1591],{"type":611,"value":1592},"Meaning",{"type":602,"tag":1594,"props":1595,"children":1596},"tbody",{},[1597,1614],{"type":602,"tag":1579,"props":1598,"children":1599},{},[1600,1609],{"type":602,"tag":1601,"props":1602,"children":1603},"td",{},[1604],{"type":602,"tag":607,"props":1605,"children":1606},{},[1607],{"type":611,"value":1608},"MCP_APP_CONNECT_FAILED",{"type":602,"tag":1601,"props":1610,"children":1611},{},[1612],{"type":611,"value":1613},"The App could not complete the host handshake",{"type":602,"tag":1579,"props":1615,"children":1616},{},[1617,1625],{"type":602,"tag":1601,"props":1618,"children":1619},{},[1620],{"type":602,"tag":607,"props":1621,"children":1622},{},[1623],{"type":611,"value":1624},"MCP_APP_CLONE_FAILED",{"type":602,"tag":1601,"props":1626,"children":1627},{},[1628],{"type":611,"value":1629},"A bridge value could not be safely copied",{"type":602,"tag":603,"props":1631,"children":1632},{},[1633],{"type":611,"value":1634},"The error object never includes the host error, rejected value, raw cause,\nstack, bridge transcript, or credentials. Log application-owned context around\nthe stable code if you need telemetry; do not reconstruct a raw-host escape\nhatch. Host-context change notifications remain partial in the protocol. The\nofficial App merges them into its current context before this composable clones\nthe merged snapshot.",{"type":602,"tag":603,"props":1636,"children":1637},{},[1638],{"type":611,"value":1639},"Automatic resizing is deliberately unavailable. The exact SDK does not expose\nthe cleanup required to retire its resize observer, so Better Convex constructs\nthe App with automatic resizing disabled.",{"type":602,"tag":628,"props":1641,"children":1643},{"id":1642},"register-one-truthful-resource",[1644],{"type":611,"value":1645},"Register one truthful resource",{"type":602,"tag":603,"props":1647,"children":1648},{},[1649,1651,1655,1657,1662],{"type":611,"value":1650},"Register the ",{"type":602,"tag":607,"props":1652,"children":1653},{},[1654],{"type":611,"value":619},{"type":611,"value":1656}," resource and its tool metadata directly with the official\nMCP server created by ",{"type":602,"tag":607,"props":1658,"children":1659},{},[1660],{"type":611,"value":1661},"@lupinum\u002Fbetter-convex-mcp",{"type":611,"value":1663},". Better Convex does not add another\nApps registry or server protocol wrapper.",{"type":602,"tag":603,"props":1665,"children":1666},{},[1667],{"type":611,"value":1668},"The HTML document should be a bounded production bundle with:",{"type":602,"tag":1529,"props":1670,"children":1671},{},[1672,1677,1682,1687,1692,1697],{"type":602,"tag":1533,"props":1673,"children":1674},{},[1675],{"type":611,"value":1676},"a restrictive Content Security Policy;",{"type":602,"tag":1533,"props":1678,"children":1679},{},[1680],{"type":611,"value":1681},"unused validation-library locale barrels excluded from the browser bundle;",{"type":602,"tag":1533,"props":1683,"children":1684},{},[1685],{"type":611,"value":1686},"no dynamic application data interpolated into executable HTML;",{"type":602,"tag":1533,"props":1688,"children":1689},{},[1690],{"type":611,"value":1691},"no credentials, provider references, raw errors, or Convex client;",{"type":602,"tag":1533,"props":1693,"children":1694},{},[1695],{"type":611,"value":1696},"validated rendering of every tool input and result; and",{"type":602,"tag":1533,"props":1698,"children":1699},{},[1700],{"type":611,"value":1701},"useful text and structured tool output for clients that do not render it.",{"type":602,"tag":603,"props":1703,"children":1704},{},[1705],{"type":611,"value":1706},"Capability negotiation controls whether the host presents the App. It must not\nfork the canonical tool\u002Fresource inventory or change application authority.",{"type":602,"tag":628,"props":1708,"children":1710},{"id":1709},"authorization-remains-ordinary-mcp-authorization",[1711],{"type":611,"value":1712},"Authorization remains ordinary MCP authorization",{"type":602,"tag":603,"props":1714,"children":1715},{},[1716,1718,1722],{"type":611,"value":1717},"An iframe button grants no permission. ",{"type":602,"tag":607,"props":1719,"children":1720},{},[1721],{"type":611,"value":1540},{"type":611,"value":1723}," goes through the\nhost, the MCP bearer boundary, the tool schema, and current application\nauthorization just like a model-originated call.",{"type":602,"tag":603,"props":1725,"children":1726},{},[1727],{"type":611,"value":1728},"The iframe must never receive:",{"type":602,"tag":1529,"props":1730,"children":1731},{},[1732,1737,1742,1747,1752,1757],{"type":602,"tag":1533,"props":1733,"children":1734},{},[1735],{"type":611,"value":1736},"an MCP bearer token;",{"type":602,"tag":1533,"props":1738,"children":1739},{},[1740],{"type":611,"value":1741},"a Better Auth cookie, session, or provider-private identifier;",{"type":602,"tag":1533,"props":1743,"children":1744},{},[1745],{"type":611,"value":1746},"a Convex JWT or raw Convex client;",{"type":602,"tag":1533,"props":1748,"children":1749},{},[1750],{"type":611,"value":1751},"a refresh token or internal service proof;",{"type":602,"tag":1533,"props":1753,"children":1754},{},[1755],{"type":611,"value":1756},"application signing keys;",{"type":602,"tag":1533,"props":1758,"children":1759},{},[1760],{"type":611,"value":1761},"raw request headers, arguments from another operation, or raw error causes.",{"type":602,"tag":603,"props":1763,"children":1764},{},[1765],{"type":611,"value":1766},"Recheck current membership, role, delegation, credential state, and target\nresource inside the canonical application operation. OAuth scopes and App\nvisibility are ceilings and presentation metadata—not current application\nauthorization.",{"type":602,"tag":628,"props":1768,"children":1770},{"id":1769},"navigation-is-not-confirmation",[1771],{"type":611,"value":1772},"Navigation is not confirmation",{"type":602,"tag":603,"props":1774,"children":1775},{},[1776,1780],{"type":602,"tag":607,"props":1777,"children":1778},{},[1779],{"type":611,"value":1550},{"type":611,"value":1781}," is host-mediated navigation. A successful link response does not\nmean the human approved anything and does not grant the opened page authority.",{"type":602,"tag":603,"props":1783,"children":1784},{},[1785],{"type":611,"value":1786},"Ordinary writes should remain ordinary tools. If an application requires\nstep-up authentication or a human review for a high-blast-radius effect, the\nauthoritative application must authenticate the person, reload current\nauthority and impact, and perform its own state-changing request. The App can\ndisplay validated impact and navigate to that application; it cannot approve\nor execute the protected effect merely because it rendered a button.",{"type":602,"tag":628,"props":1788,"children":1790},{"id":1789},"progressive-fallback",[1791],{"type":611,"value":1792},"Progressive fallback",{"type":602,"tag":603,"props":1794,"children":1795},{},[1796],{"type":611,"value":1797},"Always return useful model-visible content for a model-visible tool:",{"type":602,"tag":640,"props":1799,"children":1801},{"language":1800,"class":643},"ts",[1802],{"type":602,"tag":607,"props":1803,"children":1805},{"class":1804},"language-ts",[1806,1817,1818,1831,1832,1840,1841,1858,1859,1876,1877,1885,1886,1894,1895,1907,1908,1925,1926,1933,1934],{"type":602,"tag":650,"props":1807,"children":1808},{"class":652,"style":653},[1809,1813],{"type":602,"tag":650,"props":1810,"children":1811},{"style":778},[1812],{"type":611,"value":1386},{"type":602,"tag":650,"props":1814,"children":1815},{"style":756},[1816],{"type":611,"value":929},{"type":611,"value":772},{"type":602,"tag":650,"props":1819,"children":1820},{"class":652,"style":653},[1821,1826],{"type":602,"tag":650,"props":1822,"children":1823},{"style":789},[1824],{"type":611,"value":1825},"  content:",{"type":602,"tag":650,"props":1827,"children":1828},{"style":756},[1829],{"type":611,"value":1830}," [",{"type":611,"value":772},{"type":602,"tag":650,"props":1833,"children":1834},{"class":652,"style":653},[1835],{"type":602,"tag":650,"props":1836,"children":1837},{"style":756},[1838],{"type":611,"value":1839},"    {",{"type":611,"value":772},{"type":602,"tag":650,"props":1842,"children":1843},{"class":652,"style":653},[1844,1849,1854],{"type":602,"tag":650,"props":1845,"children":1846},{"style":789},[1847],{"type":611,"value":1848},"      type:",{"type":602,"tag":650,"props":1850,"children":1851},{"style":663},[1852],{"type":611,"value":1853}," 'text'",{"type":602,"tag":650,"props":1855,"children":1856},{"style":756},[1857],{"type":611,"value":948},{"type":611,"value":772},{"type":602,"tag":650,"props":1860,"children":1861},{"class":652,"style":653},[1862,1867,1872],{"type":602,"tag":650,"props":1863,"children":1864},{"style":789},[1865],{"type":611,"value":1866},"      text:",{"type":602,"tag":650,"props":1868,"children":1869},{"style":663},[1870],{"type":611,"value":1871}," 'Found 3 notes. The dashboard can refine these results.'",{"type":602,"tag":650,"props":1873,"children":1874},{"style":756},[1875],{"type":611,"value":948},{"type":611,"value":772},{"type":602,"tag":650,"props":1878,"children":1879},{"class":652,"style":653},[1880],{"type":602,"tag":650,"props":1881,"children":1882},{"style":756},[1883],{"type":611,"value":1884},"    },",{"type":611,"value":772},{"type":602,"tag":650,"props":1887,"children":1888},{"class":652,"style":653},[1889],{"type":602,"tag":650,"props":1890,"children":1891},{"style":756},[1892],{"type":611,"value":1893},"  ],",{"type":611,"value":772},{"type":602,"tag":650,"props":1896,"children":1897},{"class":652,"style":653},[1898,1903],{"type":602,"tag":650,"props":1899,"children":1900},{"style":789},[1901],{"type":611,"value":1902},"  structuredContent:",{"type":602,"tag":650,"props":1904,"children":1905},{"style":756},[1906],{"type":611,"value":929},{"type":611,"value":772},{"type":602,"tag":650,"props":1909,"children":1910},{"class":652,"style":653},[1911,1916,1921],{"type":602,"tag":650,"props":1912,"children":1913},{"style":789},[1914],{"type":611,"value":1915},"    matches:",{"type":602,"tag":650,"props":1917,"children":1918},{"style":789},[1919],{"type":611,"value":1920}," minimizedMatches",{"type":602,"tag":650,"props":1922,"children":1923},{"style":756},[1924],{"type":611,"value":948},{"type":611,"value":772},{"type":602,"tag":650,"props":1927,"children":1928},{"class":652,"style":653},[1929],{"type":602,"tag":650,"props":1930,"children":1931},{"style":756},[1932],{"type":611,"value":975},{"type":611,"value":772},{"type":602,"tag":650,"props":1935,"children":1936},{"class":652,"style":653},[1937],{"type":602,"tag":650,"props":1938,"children":1939},{"style":756},[1940],{"type":611,"value":1500},{"type":602,"tag":603,"props":1942,"children":1943},{},[1944],{"type":611,"value":1945},"A baseline client can use this result without the extension. A capable host may\nalso render the App resource and deliver the same validated result through App\nBridge. Host denial, missing capability, iframe teardown, or link denial must\nnot corrupt the canonical operation or fabricate success.",{"type":602,"tag":628,"props":1947,"children":1949},{"id":1948},"experimental-limits",[1950],{"type":611,"value":1951},"Experimental limits",{"type":602,"tag":603,"props":1953,"children":1954},{},[1955,1957,1962],{"type":611,"value":1956},"The ",{"type":602,"tag":607,"props":1958,"children":1959},{},[1960],{"type":611,"value":1961},"mcp-app",{"type":611,"value":1963}," entry remains experimental:",{"type":602,"tag":1529,"props":1965,"children":1966},{},[1967,1977,1982],{"type":602,"tag":1533,"props":1968,"children":1969},{},[1970,1975],{"type":602,"tag":607,"props":1971,"children":1972},{},[1973],{"type":611,"value":1974},"@modelcontextprotocol\u002Fext-apps@1.7.5",{"type":611,"value":1976}," logs parsed and sent bridge messages\nand exposes no logger control;",{"type":602,"tag":1533,"props":1978,"children":1979},{},[1980],{"type":611,"value":1981},"different-origin and compatible real-host evidence is still required; and",{"type":602,"tag":1533,"props":1983,"children":1984},{},[1985,1987,1991],{"type":611,"value":1986},"the Apps server helper is coupled to the v1 combined MCP SDK while\n",{"type":602,"tag":607,"props":1988,"children":1989},{},[1990],{"type":611,"value":1661},{"type":611,"value":1992}," uses the locked split v2 SDK for the final protocol.",{"type":602,"tag":603,"props":1994,"children":1995},{},[1996],{"type":611,"value":1997},"Better Convex therefore uses the official Apps client directly and registers\nserver resources through the selected official v2 server. It does not ship two\nMCP server runtimes, cast between SDK majors, or provide a compatibility\nprotocol.",{"type":602,"tag":603,"props":1999,"children":2000},{},[2001],{"type":611,"value":2002},"The exact beta candidate has passed production Vite browser proofs for a\nneutral notes dashboard and Ginko's materially different publish-impact\ninterface, including installed-byte checks, fallback behavior, CSP\u002Fsandbox,\nwrong-source messages, malicious results, teardown, current authorization, and\ncredential sentinels. Those local proofs do not substitute for protected\ndeployment and real-host evidence before stable admission.",{"title":2004,"searchDepth":2005,"depth":2005,"links":2006},"",4,[2007,2009,2010,2011,2012,2013,2014],{"id":630,"depth":2008,"text":633},2,{"id":711,"depth":2008,"text":714},{"id":1642,"depth":2008,"text":1645},{"id":1709,"depth":2008,"text":1712},{"id":1769,"depth":2008,"text":1772},{"id":1789,"depth":2008,"text":1792},{"id":1948,"depth":2008,"text":1951},"markdown","docs",{"source":2018,"path":2019,"stem":2020,"dir":2021,"extension":2022},"content","docs\u002F4.build\u002F7.agents\u002F2.mcp-apps.md","docs\u002F4.build\u002F7.agents\u002F2.mcp-apps","agents","md",{"requestedPath":449,"resolvedPath":449,"alternates":2024},[],{"requested":2026,"resolved":2027,"usedFallback":6},{},{"locale":8},{"previous":2029,"next":2031},{"title":438,"id":439,"canonicalKey":440,"locale":8,"draft":6,"navigation":2030,"icon":442,"path":443},{"icon":442},{"title":457,"id":458,"canonicalKey":459,"locale":8,"draft":6,"navigation":2032,"icon":39,"path":461},{"icon":39},{"left":2034,"top":2034,"width":2035,"height":2035,"rotate":2034,"vFlip":6,"hFlip":6,"body":2036},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19h8M4 17l6-6l-6-6\"\u002F>",{"left":2034,"top":2034,"width":2038,"height":2039,"rotate":2034,"vFlip":6,"hFlip":6,"body":2040},256,221,"\u003Cpath fill=\"#41b883\" d=\"M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0z\"\u002F>\u003Cpath fill=\"#41b883\" d=\"m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0z\"\u002F>\u003Cpath fill=\"#35495e\" d=\"M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0z\"\u002F>",{"left":2034,"top":2034,"width":2038,"height":2038,"rotate":2034,"vFlip":6,"hFlip":6,"body":2042},"\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":2034,"top":2034,"width":2035,"height":2035,"rotate":2034,"vFlip":6,"hFlip":6,"body":2044},"\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>",1786627526412]