[{"data":1,"prerenderedAt":1008},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fguides\u002Fui":3,"docs:navigation":883,"docs:surround:\u002Fdocs\u002Fguides\u002Fui":1003},{"id":4,"title":5,"body":6,"description":875,"extension":876,"meta":877,"navigation":266,"navigationTitle":878,"path":879,"seo":880,"stem":881,"__hash__":882},"docs\u002Fdocs\u002F3.guides\u002F9.ui.md","Dashboard UI",{"type":7,"value":8,"toc":869},"minimark",[9,18,23,26,164,168,171,212,215,363,367,370,563,593,731,755,758,818,833,837,865],[10,11,12,13,17],"p",{},"Brand the dashboard with your Nuxt UI theme, then add your product's name, pages, navigation,\nand settings. The shared dashboard components are in ",[14,15,16],"code",{},"@nuxtagentic-pro\u002Fvue",".",[19,20,22],"h2",{"id":21},"applying-your-brand","Applying Your Brand",[10,24,25],{},"Set the product name and icon shown on the sign-in page:",[27,28,29,100],"code-group",{},[30,31,37],"pre",{"className":32,"code":33,"filename":34,"language":35,"meta":36,"style":36},"language-ts shiki shiki-themes github-dark-default","export default defineAppConfig({\n  agentic: {\n    branding: { name: 'Acme', icon: 'i-lucide-rocket' },\n  },\n})\n","Nuxt: app\u002Fapp.config.ts","ts","",[14,38,39,59,66,85,94],{"__ignoreMap":36},[40,41,44,48,51,55],"span",{"class":42,"line":43},"line",1,[40,45,47],{"class":46},"suJrU","export",[40,49,50],{"class":46}," default",[40,52,54],{"class":53},"sc3cj"," defineAppConfig",[40,56,58],{"class":57},"sQhOw","({\n",[40,60,62],{"class":42,"line":61},2,[40,63,65],{"class":64},"sZEs4","  agentic: {\n",[40,67,69,72,76,79,82],{"class":42,"line":68},3,[40,70,71],{"class":64},"    branding: { name: ",[40,73,75],{"class":74},"s9uIt","'Acme'",[40,77,78],{"class":64},", icon: ",[40,80,81],{"class":74},"'i-lucide-rocket'",[40,83,84],{"class":64}," },\n",[40,86,88,91],{"class":42,"line":87},4,[40,89,90],{"class":64},"  }",[40,92,93],{"class":57},",\n",[40,95,97],{"class":42,"line":96},5,[40,98,99],{"class":57},"})\n",[30,101,104],{"className":32,"code":102,"filename":103,"language":35,"meta":36,"style":36},"createApp(AgenticApp, { branding: { name: 'Acme', icon: 'i-lucide-rocket' } })\n  .use(createAgenticRouter())\n  .use(ui)\n  .mount('#app')\n","Void: src\u002Fmain.ts",[14,105,106,123,140,149],{"__ignoreMap":36},[40,107,108,111,114,116,118,120],{"class":42,"line":43},[40,109,110],{"class":53},"createApp",[40,112,113],{"class":64},"(AgenticApp, { branding: { name: ",[40,115,75],{"class":74},[40,117,78],{"class":64},[40,119,81],{"class":74},[40,121,122],{"class":64}," } })\n",[40,124,125,128,131,134,137],{"class":42,"line":61},[40,126,127],{"class":64},"  .",[40,129,130],{"class":53},"use",[40,132,133],{"class":64},"(",[40,135,136],{"class":53},"createAgenticRouter",[40,138,139],{"class":64},"())\n",[40,141,142,144,146],{"class":42,"line":68},[40,143,127],{"class":64},[40,145,130],{"class":53},[40,147,148],{"class":64},"(ui)\n",[40,150,151,153,156,158,161],{"class":42,"line":87},[40,152,127],{"class":64},[40,154,155],{"class":53},"mount",[40,157,133],{"class":64},[40,159,160],{"class":74},"'#app'",[40,162,163],{"class":64},")\n",[19,165,167],{"id":166},"customizing-a-dashboard-page-in-nuxt","Customizing a Dashboard Page in Nuxt",[10,169,170],{},"Every dashboard page is a small file in the layer. Copy one into your app and edit it; Nuxt uses\nyour copy instead of the layer's:",[30,172,176],{"className":173,"code":174,"language":175,"meta":36,"style":36},"language-bash shiki shiki-themes github-dark-default","pnpm exec agentic eject                              # list the files you can copy\npnpm exec agentic eject pages\u002Fdashboard\u002Fagents.vue   # copy into app\u002Fpages\u002Fdashboard\u002Fagents.vue\n","bash",[14,177,178,196],{"__ignoreMap":36},[40,179,180,183,186,189,192],{"class":42,"line":43},[40,181,182],{"class":57},"pnpm",[40,184,185],{"class":74}," exec",[40,187,188],{"class":74}," agentic",[40,190,191],{"class":74}," eject",[40,193,195],{"class":194},"sH3jZ","                              # list the files you can copy\n",[40,197,198,200,202,204,206,209],{"class":42,"line":61},[40,199,182],{"class":57},[40,201,185],{"class":74},[40,203,188],{"class":74},[40,205,191],{"class":74},[40,207,208],{"class":74}," pages\u002Fdashboard\u002Fagents.vue",[40,210,211],{"class":194},"   # copy into app\u002Fpages\u002Fdashboard\u002Fagents.vue\n",[10,213,214],{},"Ejected files are yours, so upgrades no longer change them. Eject the smallest file that does\nthe job, and compose the exported page components so the page itself keeps receiving fixes:",[30,216,221],{"className":217,"code":218,"filename":219,"language":220,"meta":36,"style":36},"language-vue shiki shiki-themes github-dark-default","\u003Cscript setup lang=\"ts\">\nimport { AgenticAgentsPage } from '@nuxtagentic-pro\u002Fvue\u002Fpages'\n\ndefinePageMeta({ layout: 'agentic' })\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUAlert\n    title=\"Agents run on the Acme plan.\"\n    class=\"mb-4\"\n  \u002F>\n  \u003CAgenticAgentsPage \u002F>\n\u003C\u002Ftemplate>\n","app\u002Fpages\u002Fdashboard\u002Fagents.vue","vue",[14,222,223,248,262,268,282,291,296,306,315,326,337,343,354],{"__ignoreMap":36},[40,224,225,228,232,236,239,242,245],{"class":42,"line":43},[40,226,227],{"class":64},"\u003C",[40,229,231],{"class":230},"sPWt5","script",[40,233,235],{"class":234},"sFSAA"," setup",[40,237,238],{"class":234}," lang",[40,240,241],{"class":64},"=",[40,243,244],{"class":74},"\"ts\"",[40,246,247],{"class":64},">\n",[40,249,250,253,256,259],{"class":42,"line":61},[40,251,252],{"class":46},"import",[40,254,255],{"class":64}," { AgenticAgentsPage } ",[40,257,258],{"class":46},"from",[40,260,261],{"class":74}," '@nuxtagentic-pro\u002Fvue\u002Fpages'\n",[40,263,264],{"class":42,"line":68},[40,265,267],{"emptyLinePlaceholder":266},true,"\n",[40,269,270,273,276,279],{"class":42,"line":87},[40,271,272],{"class":53},"definePageMeta",[40,274,275],{"class":64},"({ layout: ",[40,277,278],{"class":74},"'agentic'",[40,280,281],{"class":64}," })\n",[40,283,284,287,289],{"class":42,"line":96},[40,285,286],{"class":64},"\u003C\u002F",[40,288,231],{"class":230},[40,290,247],{"class":64},[40,292,294],{"class":42,"line":293},6,[40,295,267],{"emptyLinePlaceholder":266},[40,297,299,301,304],{"class":42,"line":298},7,[40,300,227],{"class":64},[40,302,303],{"class":230},"template",[40,305,247],{"class":64},[40,307,309,312],{"class":42,"line":308},8,[40,310,311],{"class":64},"  \u003C",[40,313,314],{"class":230},"UAlert\n",[40,316,318,321,323],{"class":42,"line":317},9,[40,319,320],{"class":234},"    title",[40,322,241],{"class":64},[40,324,325],{"class":74},"\"Agents run on the Acme plan.\"\n",[40,327,329,332,334],{"class":42,"line":328},10,[40,330,331],{"class":234},"    class",[40,333,241],{"class":64},[40,335,336],{"class":74},"\"mb-4\"\n",[40,338,340],{"class":42,"line":339},11,[40,341,342],{"class":64},"  \u002F>\n",[40,344,346,348,351],{"class":42,"line":345},12,[40,347,311],{"class":64},[40,349,350],{"class":230},"AgenticAgentsPage",[40,352,353],{"class":64}," \u002F>\n",[40,355,357,359,361],{"class":42,"line":356},13,[40,358,286],{"class":64},[40,360,303],{"class":230},[40,362,247],{"class":64},[19,364,366],{"id":365},"adding-pages-navigation-and-settings","Adding Pages, Navigation, and Settings",[10,368,369],{},"A UI feature adds dashboard routes, sidebar items, settings sections, and prompt commands:",[30,371,374],{"className":32,"code":372,"filename":373,"language":35,"meta":36,"style":36},"import { defineAsyncComponent } from 'vue'\nimport { defineUiFeature } from '@nuxtagentic-pro\u002Fvue'\n\nexport const reports = defineUiFeature({\n  id: 'reports',\n  navigation: [{ label: 'Reports', icon: 'i-lucide-chart-line', to: '\u002Fdashboard\u002Freports' }],\n  routes: [\n    { path: '\u002Fdashboard\u002Freports', component: () => import('..\u002Fcomponents\u002FReportsPage.vue') },\n  ],\n  settingsSections: [\n    {\n      id: 'reports',\n      area: 'workspace',\n      component: defineAsyncComponent(() => import('..\u002Fcomponents\u002FReportSettings.vue')),\n    },\n  ],\n})\n","app\u002Ffeatures\u002Freports.ts",[14,375,376,388,400,404,422,432,454,459,489,494,499,504,513,523,547,553,558],{"__ignoreMap":36},[40,377,378,380,383,385],{"class":42,"line":43},[40,379,252],{"class":46},[40,381,382],{"class":64}," { defineAsyncComponent } ",[40,384,258],{"class":46},[40,386,387],{"class":74}," 'vue'\n",[40,389,390,392,395,397],{"class":42,"line":61},[40,391,252],{"class":46},[40,393,394],{"class":64}," { defineUiFeature } ",[40,396,258],{"class":46},[40,398,399],{"class":74}," '@nuxtagentic-pro\u002Fvue'\n",[40,401,402],{"class":42,"line":68},[40,403,267],{"emptyLinePlaceholder":266},[40,405,406,408,411,414,417,420],{"class":42,"line":87},[40,407,47],{"class":46},[40,409,410],{"class":46}," const",[40,412,413],{"class":234}," reports",[40,415,416],{"class":46}," =",[40,418,419],{"class":53}," defineUiFeature",[40,421,58],{"class":64},[40,423,424,427,430],{"class":42,"line":96},[40,425,426],{"class":64},"  id: ",[40,428,429],{"class":74},"'reports'",[40,431,93],{"class":64},[40,433,434,437,440,442,445,448,451],{"class":42,"line":293},[40,435,436],{"class":64},"  navigation: [{ label: ",[40,438,439],{"class":74},"'Reports'",[40,441,78],{"class":64},[40,443,444],{"class":74},"'i-lucide-chart-line'",[40,446,447],{"class":64},", to: ",[40,449,450],{"class":74},"'\u002Fdashboard\u002Freports'",[40,452,453],{"class":64}," }],\n",[40,455,456],{"class":42,"line":298},[40,457,458],{"class":64},"  routes: [\n",[40,460,461,464,466,469,472,475,478,481,483,486],{"class":42,"line":308},[40,462,463],{"class":64},"    { path: ",[40,465,450],{"class":74},[40,467,468],{"class":64},", ",[40,470,471],{"class":53},"component",[40,473,474],{"class":64},": () ",[40,476,477],{"class":46},"=>",[40,479,480],{"class":46}," import",[40,482,133],{"class":64},[40,484,485],{"class":74},"'..\u002Fcomponents\u002FReportsPage.vue'",[40,487,488],{"class":64},") },\n",[40,490,491],{"class":42,"line":317},[40,492,493],{"class":64},"  ],\n",[40,495,496],{"class":42,"line":328},[40,497,498],{"class":64},"  settingsSections: [\n",[40,500,501],{"class":42,"line":339},[40,502,503],{"class":64},"    {\n",[40,505,506,509,511],{"class":42,"line":345},[40,507,508],{"class":64},"      id: ",[40,510,429],{"class":74},[40,512,93],{"class":64},[40,514,515,518,521],{"class":42,"line":356},[40,516,517],{"class":64},"      area: ",[40,519,520],{"class":74},"'workspace'",[40,522,93],{"class":64},[40,524,526,529,532,535,537,539,541,544],{"class":42,"line":525},14,[40,527,528],{"class":64},"      component: ",[40,530,531],{"class":53},"defineAsyncComponent",[40,533,534],{"class":64},"(() ",[40,536,477],{"class":46},[40,538,480],{"class":46},[40,540,133],{"class":64},[40,542,543],{"class":74},"'..\u002Fcomponents\u002FReportSettings.vue'",[40,545,546],{"class":64},")),\n",[40,548,550],{"class":42,"line":549},15,[40,551,552],{"class":64},"    },\n",[40,554,556],{"class":42,"line":555},16,[40,557,493],{"class":64},[40,559,561],{"class":42,"line":560},17,[40,562,99],{"class":64},[10,564,565,566,569,570,468,573,468,576,579,580,583,584,569,587,589,590,592],{},"Settings sections with ",[14,567,568],{},"area: 'workspace'"," receive ",[14,571,572],{},"workspace",[14,574,575],{},"role",[14,577,578],{},"active",", and ",[14,581,582],{},"disabled","\nprops; sections with ",[14,585,586],{},"area: 'account'",[14,588,578],{}," and ",[14,591,582],{},". Register the feature:",[27,594,595,645],{},[30,596,599],{"className":32,"code":597,"filename":598,"language":35,"meta":36,"style":36},"import { reports } from '..\u002Ffeatures\u002Freports'\n\nexport default defineNuxtPlugin(() => ({\n  provide: { agenticUiFeatures: [reports] },\n}))\n","Nuxt: app\u002Fplugins\u002Fagentic-features.ts",[14,600,601,613,617,633,640],{"__ignoreMap":36},[40,602,603,605,608,610],{"class":42,"line":43},[40,604,252],{"class":46},[40,606,607],{"class":64}," { reports } ",[40,609,258],{"class":46},[40,611,612],{"class":74}," '..\u002Ffeatures\u002Freports'\n",[40,614,615],{"class":42,"line":61},[40,616,267],{"emptyLinePlaceholder":266},[40,618,619,621,623,626,628,630],{"class":42,"line":68},[40,620,47],{"class":46},[40,622,50],{"class":46},[40,624,625],{"class":53}," defineNuxtPlugin",[40,627,534],{"class":57},[40,629,477],{"class":46},[40,631,632],{"class":57}," ({\n",[40,634,635,638],{"class":42,"line":87},[40,636,637],{"class":64},"  provide: { agenticUiFeatures: [reports] }",[40,639,93],{"class":57},[40,641,642],{"class":42,"line":96},[40,643,644],{"class":57},"}))\n",[30,646,648],{"className":32,"code":647,"filename":103,"language":35,"meta":36,"style":36},"import { AgenticApp, createAgenticRouter, defaultUiFeatures } from '@nuxtagentic-pro\u002Fvue'\nimport { reports } from '.\u002Ffeatures\u002Freports'\n\nconst features = [...defaultUiFeatures(), reports]\n\ncreateApp(AgenticApp, { features }).use(createAgenticRouter({ features })).use(ui).mount('#app')\n",[14,649,650,661,672,676,698,702],{"__ignoreMap":36},[40,651,652,654,657,659],{"class":42,"line":43},[40,653,252],{"class":46},[40,655,656],{"class":64}," { AgenticApp, createAgenticRouter, defaultUiFeatures } ",[40,658,258],{"class":46},[40,660,399],{"class":74},[40,662,663,665,667,669],{"class":42,"line":61},[40,664,252],{"class":46},[40,666,607],{"class":64},[40,668,258],{"class":46},[40,670,671],{"class":74}," '.\u002Ffeatures\u002Freports'\n",[40,673,674],{"class":42,"line":68},[40,675,267],{"emptyLinePlaceholder":266},[40,677,678,681,684,686,689,692,695],{"class":42,"line":87},[40,679,680],{"class":46},"const",[40,682,683],{"class":234}," features",[40,685,416],{"class":46},[40,687,688],{"class":64}," [",[40,690,691],{"class":46},"...",[40,693,694],{"class":53},"defaultUiFeatures",[40,696,697],{"class":64},"(), reports]\n",[40,699,700],{"class":42,"line":96},[40,701,267],{"emptyLinePlaceholder":266},[40,703,704,706,709,711,713,715,718,720,723,725,727,729],{"class":42,"line":293},[40,705,110],{"class":53},[40,707,708],{"class":64},"(AgenticApp, { features }).",[40,710,130],{"class":53},[40,712,133],{"class":64},[40,714,136],{"class":53},[40,716,717],{"class":64},"({ features })).",[40,719,130],{"class":53},[40,721,722],{"class":64},"(ui).",[40,724,155],{"class":53},[40,726,133],{"class":64},[40,728,160],{"class":74},[40,730,163],{"class":64},[10,732,733,734,737,738,741,742,745,746,749,750,752,753,17],{},"In Nuxt, pages come from your ",[14,735,736],{},"app\u002Fpages"," directory, so ",[14,739,740],{},"routes"," is not needed there: add\n",[14,743,744],{},"app\u002Fpages\u002Fdashboard\u002Freports.vue"," with ",[14,747,748],{},"definePageMeta({ layout: 'agentic' })"," and the feature\nadds its sidebar item, settings sections, and prompt commands. In Void, ",[14,751,136],{},"\nregisters the feature's ",[14,754,740],{},[10,756,757],{},"To include a custom settings panel in the Done button and navigation guards, register its\ncallbacks during setup:",[30,759,761],{"className":32,"code":760,"language":35,"meta":36,"style":36},"import { useSettingsPanel } from '@nuxtagentic-pro\u002Fvue\u002Fsettings'\n\nuseSettingsPanel({\n  save: saveSettings,\n  prepareLeave: () => !isBusy.value && !hasUnsavedToken.value,\n})\n",[14,762,763,775,779,786,791,814],{"__ignoreMap":36},[40,764,765,767,770,772],{"class":42,"line":43},[40,766,252],{"class":46},[40,768,769],{"class":64}," { useSettingsPanel } ",[40,771,258],{"class":46},[40,773,774],{"class":74}," '@nuxtagentic-pro\u002Fvue\u002Fsettings'\n",[40,776,777],{"class":42,"line":61},[40,778,267],{"emptyLinePlaceholder":266},[40,780,781,784],{"class":42,"line":68},[40,782,783],{"class":53},"useSettingsPanel",[40,785,58],{"class":64},[40,787,788],{"class":42,"line":87},[40,789,790],{"class":64},"  save: saveSettings,\n",[40,792,793,796,798,800,803,806,809,811],{"class":42,"line":96},[40,794,795],{"class":53},"  prepareLeave",[40,797,474],{"class":64},[40,799,477],{"class":46},[40,801,802],{"class":46}," !",[40,804,805],{"class":64},"isBusy.value ",[40,807,808],{"class":46},"&&",[40,810,802],{"class":46},[40,812,813],{"class":64},"hasUnsavedToken.value,\n",[40,815,816],{"class":42,"line":293},[40,817,99],{"class":64},[10,819,820,821,824,825,828,829,832],{},"Return ",[14,822,823],{},"true"," from ",[14,826,827],{},"saveSettings"," to save the draft; return ",[14,830,831],{},"false"," to keep the panel open. Either\ncallback may be async. The page waits before saving another panel or navigating. Registration ends\nwhen the settings panel unmounts. Use props and emitted events for field changes.",[19,834,836],{"id":835},"reusing-dashboard-building-blocks","Reusing Dashboard Building Blocks",[10,838,839,841,842,468,845,848,849,852,853,856,857,860,861,864],{},[14,840,16],{}," exports the shell (",[14,843,844],{},"AgenticApp",[14,846,847],{},"WorkspacePromptInput","), every page under\n",[14,850,851],{},"\u002Fpages",", and settings building blocks such as ",[14,854,855],{},"SettingsSection"," under ",[14,858,859],{},"\u002Fsettings",". Inside the\ndashboard, ",[14,862,863],{},"useAgenticContext()"," gives the typed API client, request helpers, and branding.",[866,867,868],"style",{},"html pre.shiki code .suJrU, html code.shiki .suJrU{--shiki-default:#FF7B72}html pre.shiki code .sc3cj, html code.shiki .sc3cj{--shiki-default:#D2A8FF}html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sH3jZ, html code.shiki .sH3jZ{--shiki-default:#8B949E}html pre.shiki code .sPWt5, html code.shiki .sPWt5{--shiki-default:#7EE787}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}",{"title":36,"searchDepth":61,"depth":61,"links":870},[871,872,873,874],{"id":21,"depth":61,"text":22},{"id":166,"depth":61,"text":167},{"id":365,"depth":61,"text":366},{"id":835,"depth":61,"text":836},"Brand the dashboard, override any page and add your own pages, navigation and settings.","md",{},null,"\u002Fdocs\u002Fguides\u002Fui",{"title":5,"description":875},"docs\u002F3.guides\u002F9.ui","kHO9iTu1JiwufYcV0OIMiuGH-nf82BkvZCKP08fSjjs",[884],{"title":885,"path":886,"stem":887,"children":888,"navigationTitle":878},"Introduction","\u002Fdocs","docs\u002F0.index",[889,890,908,912,962,966,970,999],{"title":885,"path":886,"stem":887,"navigationTitle":878},{"title":891,"path":892,"stem":893,"children":894,"page":907},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[895,899,903],{"title":896,"path":897,"stem":898,"navigationTitle":878},"Free module","\u002Fdocs\u002Fgetting-started\u002Ffree","docs\u002F1.getting-started\u002F1.free",{"title":900,"path":901,"stem":902,"navigationTitle":878},"Pro on Nuxt","\u002Fdocs\u002Fgetting-started\u002Fnuxt","docs\u002F1.getting-started\u002F2.nuxt",{"title":904,"path":905,"stem":906,"navigationTitle":878},"Pro on Void","\u002Fdocs\u002Fgetting-started\u002Fvoid","docs\u002F1.getting-started\u002F3.void",false,{"title":909,"path":910,"stem":911,"navigationTitle":878},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",{"title":913,"path":914,"stem":915,"children":916,"page":907},"Guides","\u002Fdocs\u002Fguides","docs\u002F3.guides",[917,921,925,929,933,937,941,945,949,953,957,961],{"title":918,"path":919,"stem":920,"navigationTitle":878},"Agents","\u002Fdocs\u002Fguides\u002Fagents","docs\u002F3.guides\u002F1.agents",{"title":922,"path":923,"stem":924,"navigationTitle":878},"Events","\u002Fdocs\u002Fguides\u002Fevents","docs\u002F3.guides\u002F10.events",{"title":926,"path":927,"stem":928,"navigationTitle":878},"Features","\u002Fdocs\u002Fguides\u002Ffeatures","docs\u002F3.guides\u002F11.features",{"title":930,"path":931,"stem":932,"navigationTitle":878},"Coding agents","\u002Fdocs\u002Fguides\u002Fcoding-agents","docs\u002F3.guides\u002F12.coding-agents",{"title":934,"path":935,"stem":936,"navigationTitle":878},"Tools","\u002Fdocs\u002Fguides\u002Ftools","docs\u002F3.guides\u002F2.tools",{"title":938,"path":939,"stem":940,"navigationTitle":878},"Automations","\u002Fdocs\u002Fguides\u002Fautomations","docs\u002F3.guides\u002F3.automations",{"title":942,"path":943,"stem":944,"navigationTitle":878},"Agentic Models","\u002Fdocs\u002Fguides\u002Fagentic-models","docs\u002F3.guides\u002F4.agentic-models",{"title":946,"path":947,"stem":948,"navigationTitle":878},"Outcomes","\u002Fdocs\u002Fguides\u002Foutcomes","docs\u002F3.guides\u002F5.outcomes",{"title":950,"path":951,"stem":952,"navigationTitle":878},"Integrations","\u002Fdocs\u002Fguides\u002Fintegrations","docs\u002F3.guides\u002F6.integrations",{"title":954,"path":955,"stem":956,"navigationTitle":878},"Prompt","\u002Fdocs\u002Fguides\u002Fprompt","docs\u002F3.guides\u002F7.prompt",{"title":958,"path":959,"stem":960,"navigationTitle":878},"Server logic","\u002Fdocs\u002Fguides\u002Fserver-logic","docs\u002F3.guides\u002F8.server-logic",{"title":5,"path":879,"stem":881,"navigationTitle":878},{"title":963,"path":964,"stem":965,"navigationTitle":878},"Deploy to Cloudflare","\u002Fdocs\u002Fdeploy","docs\u002F4.deploy",{"title":967,"path":968,"stem":969,"navigationTitle":878},"Upgrading","\u002Fdocs\u002Fupgrade","docs\u002F5.upgrade",{"title":971,"path":972,"stem":973,"children":974,"page":907},"Reference","\u002Fdocs\u002Freference","docs\u002F6.reference",[975,979,983,987,991,995],{"title":976,"path":977,"stem":978,"navigationTitle":878},"Configuration","\u002Fdocs\u002Freference\u002Fconfiguration","docs\u002F6.reference\u002F1.configuration",{"title":980,"path":981,"stem":982,"navigationTitle":878},"Composables","\u002Fdocs\u002Freference\u002Fcomposables","docs\u002F6.reference\u002F2.composables",{"title":984,"path":985,"stem":986,"navigationTitle":878},"Server utilities","\u002Fdocs\u002Freference\u002Fserver-utils","docs\u002F6.reference\u002F3.server-utils",{"title":988,"path":989,"stem":990,"navigationTitle":878},"Services","\u002Fdocs\u002Freference\u002Fservices","docs\u002F6.reference\u002F4.services",{"title":992,"path":993,"stem":994,"navigationTitle":878},"REST API","\u002Fdocs\u002Freference\u002Frest-api","docs\u002F6.reference\u002F5.rest-api",{"title":996,"path":997,"stem":998,"navigationTitle":878},"CLI","\u002Fdocs\u002Freference\u002Fcli","docs\u002F6.reference\u002F6.cli",{"title":1000,"path":1001,"stem":1002,"navigationTitle":878},"Licensing & FAQ","\u002Fdocs\u002Flicensing","docs\u002F8.licensing",[1004,1006],{"title":958,"path":959,"stem":960,"description":1005,"children":-1},"Call agents, runs, automations and models from your own routes with actor-bound services.",{"title":963,"path":964,"stem":965,"description":1007,"children":-1},"Ship a Pro app to Cloudflare Workers with D1, R2, Durable Objects and a maintenance cron.",1792672479675]