[{"data":1,"prerenderedAt":1137},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fguides\u002Fautomations":3,"docs:navigation":1014,"docs:surround:\u002Fdocs\u002Fguides\u002Fautomations":1132},{"id":4,"title":5,"body":6,"description":1005,"extension":1006,"meta":1007,"navigation":1008,"navigationTitle":1009,"path":1010,"seo":1011,"stem":1012,"__hash__":1013},"docs\u002Fdocs\u002F3.guides\u002F3.automations.md","Automations",{"type":7,"value":8,"toc":995},"minimark",[9,18,21,26,41,192,420,427,430,435,450,454,461,558,565,617,627,631,641,771,779,782,799,899,924,928,931,984,991],[10,11,12,13,17],"p",{},"Use an automation for recurring or event-driven work, such as a morning review or a reply to a\nsupport request. It runs an agent when its trigger fires, then applies the configured success or\nfailure outcome. Users create and activate automations at ",[14,15,16],"code",{},"\u002Fdashboard\u002Fautomations",". Each run is\ndurable and keeps a step-by-step history.",[10,19,20],{},"An automation belongs to the person who created it, in one workspace.",[22,23,25],"h2",{"id":24},"shipping-templates-in-code","Shipping Templates in Code",[10,27,28,29,32,33,36,37,40],{},"Files in ",[14,30,31],{},"server\u002Fautomations"," define templates. A workspace installs a template as an inactive\ndraft in the ",[14,34,35],{},"Templates"," folder, reviews it, and switches it on. This template runs the\n",[14,38,39],{},"account-manager"," agent every weekday morning:",[42,43,49],"pre",{"className":44,"code":45,"filename":46,"language":47,"meta":48,"style":48},"language-ts shiki shiki-themes github-dark-default","export default defineAutomation({\n  name: 'Weekday account review',\n  description: 'Every weekday morning, refresh summaries for customers changed yesterday.',\n  trigger: {\n    kind: 'schedule',\n    event: 'schedule',\n    slug: 'weekday-account-review',\n    cron: '0 8 * * 1-5',\n    timeZone: 'Europe\u002FAmsterdam',\n  },\n  agent: 'account-manager',\n  instructions: 'Review customers updated in the last day and refresh their summaries.',\n})\n","server\u002Fautomations\u002Fweekday-account-review.ts","ts","",[14,50,51,71,85,96,102,113,123,134,145,156,164,175,186],{"__ignoreMap":48},[52,53,56,60,63,67],"span",{"class":54,"line":55},"line",1,[52,57,59],{"class":58},"suJrU","export",[52,61,62],{"class":58}," default",[52,64,66],{"class":65},"sc3cj"," defineAutomation",[52,68,70],{"class":69},"sQhOw","({\n",[52,72,74,78,82],{"class":54,"line":73},2,[52,75,77],{"class":76},"sZEs4","  name: ",[52,79,81],{"class":80},"s9uIt","'Weekday account review'",[52,83,84],{"class":69},",\n",[52,86,88,91,94],{"class":54,"line":87},3,[52,89,90],{"class":76},"  description: ",[52,92,93],{"class":80},"'Every weekday morning, refresh summaries for customers changed yesterday.'",[52,95,84],{"class":69},[52,97,99],{"class":54,"line":98},4,[52,100,101],{"class":76},"  trigger: {\n",[52,103,105,108,111],{"class":54,"line":104},5,[52,106,107],{"class":76},"    kind: ",[52,109,110],{"class":80},"'schedule'",[52,112,84],{"class":76},[52,114,116,119,121],{"class":54,"line":115},6,[52,117,118],{"class":76},"    event: ",[52,120,110],{"class":80},[52,122,84],{"class":76},[52,124,126,129,132],{"class":54,"line":125},7,[52,127,128],{"class":76},"    slug: ",[52,130,131],{"class":80},"'weekday-account-review'",[52,133,84],{"class":76},[52,135,137,140,143],{"class":54,"line":136},8,[52,138,139],{"class":76},"    cron: ",[52,141,142],{"class":80},"'0 8 * * 1-5'",[52,144,84],{"class":76},[52,146,148,151,154],{"class":54,"line":147},9,[52,149,150],{"class":76},"    timeZone: ",[52,152,153],{"class":80},"'Europe\u002FAmsterdam'",[52,155,84],{"class":76},[52,157,159,162],{"class":54,"line":158},10,[52,160,161],{"class":76},"  }",[52,163,84],{"class":69},[52,165,167,170,173],{"class":54,"line":166},11,[52,168,169],{"class":76},"  agent: ",[52,171,172],{"class":80},"'account-manager'",[52,174,84],{"class":69},[52,176,178,181,184],{"class":54,"line":177},12,[52,179,180],{"class":76},"  instructions: ",[52,182,183],{"class":80},"'Review customers updated in the last day and refresh their summaries.'",[52,185,84],{"class":69},[52,187,189],{"class":54,"line":188},13,[52,190,191],{"class":69},"})\n",[193,194,195,211],"table",{},[196,197,198],"thead",{},[199,200,201,205,208],"tr",{},[202,203,204],"th",{},"Option",[202,206,207],{},"Description",[202,209,210],{},"Default",[212,213,214,228,243,256,276,291,306,331,353,374,399],"tbody",{},[199,215,216,222,225],{},[217,218,219],"td",{},[14,220,221],{},"name",[217,223,224],{},"Shown in the dashboard",[217,226,227],{},"required",[199,229,230,235,238],{},[217,231,232],{},[14,233,234],{},"description",[217,236,237],{},"Shown in the template list",[217,239,240],{},[14,241,242],{},"''",[199,244,245,250,253],{},[217,246,247],{},[14,248,249],{},"slug",[217,251,252],{},"Template id used to install it",[217,254,255],{},"the file name",[199,257,258,263,274],{},[217,259,260],{},[14,261,262],{},"trigger",[217,264,265,268,269],{},[14,266,267],{},"{ kind, event, slug, cron?, timeZone? }","; see ",[270,271,273],"a",{"href":272},"#choosing-a-trigger","Choosing a Trigger",[217,275,227],{},[199,277,278,283,289],{},[217,279,280],{},[14,281,282],{},"agent",[217,284,285,286],{},"Slug of a code agent in ",[14,287,288],{},"server\u002Fagents",[217,290,227],{},[199,292,293,298,301],{},[217,294,295],{},[14,296,297],{},"instructions",[217,299,300],{},"The task for this automation, given to the agent with the payload",[217,302,303],{},[14,304,305],{},"'Use the event payload to complete your task. Return a concise result.'",[199,307,308,313,327],{},[217,309,310],{},[14,311,312],{},"timeout",[217,314,315,316,319,320,323,324],{},"Seconds before a run fails: ",[14,317,318],{},"15",", ",[14,321,322],{},"30",", or ",[14,325,326],{},"60",[217,328,329],{},[14,330,322],{},[199,332,333,338,348],{},[217,334,335],{},[14,336,337],{},"retries",[217,339,340,341,344,345],{},"Retry attempts after a failure, ",[14,342,343],{},"0"," to ",[14,346,347],{},"5",[217,349,350],{},[14,351,352],{},"2",[199,354,355,360,369],{},[217,356,357],{},[14,358,359],{},"success",[217,361,362,268,365],{},[14,363,364],{},"{ action, target }",[270,366,368],{"href":367},"#handling-the-result","Handling the Result",[217,370,371],{},[14,372,373],{},"{ action: 'none', target: '' }",[199,375,376,381,395],{},[217,377,378],{},[14,379,380],{},"failure",[217,382,383,385,386,319,389,323,392],{},[14,384,364],{}," with ",[14,387,388],{},"none",[14,390,391],{},"notify",[14,393,394],{},"slack",[217,396,397],{},[14,398,373],{},[199,400,401,406,416],{},[217,402,403],{},[14,404,405],{},"runAs",[217,407,408,411,412,415],{},[14,409,410],{},"owner",": the owner's and the workspace's connections; ",[14,413,414],{},"workspace",": shared workspace connections only",[217,417,418],{},[14,419,410],{},[10,421,422,423,426],{},"Installing fails with ",[14,424,425],{},"409"," until the workspace can see the agent file the template names.",[22,428,273],{"id":429},"choosing-a-trigger",[431,432,434],"h3",{"id":433},"running-on-a-schedule","Running on a Schedule",[10,436,437,438,441,442,445,446,449],{},"Set ",[14,439,440],{},"kind: 'schedule'"," with a five-field ",[14,443,444],{},"cron"," expression and an IANA ",[14,447,448],{},"timeZone",", as in the\ntemplate above. The scheduler Durable Object wakes each active automation at its next time.",[431,451,453],{"id":452},"starting-from-a-webhook","Starting from a Webhook",[10,455,456,457,460],{},"Every webhook automation has a secret URL, ",[14,458,459],{},"\u002Fapi\u002Fagentic\u002Fhooks\u002F\u003Cautomation id>\u002F\u003Ctoken>",", shown in\nthe dashboard. The starter's support inbox uses one:",[42,462,465],{"className":44,"code":463,"filename":464,"language":47,"meta":48,"style":48},"export default defineAutomation({\n  name: 'Support inbox',\n  description: 'Answer support questions posted to a webhook, for example from a form or inbox.',\n  trigger: { kind: 'webhook', event: 'webhook', slug: 'support-inbox' },\n  agent: 'support',\n  instructions: 'Answer the question in the payload. Return a reply ready to send.',\n  success: { action: 'none', target: '' },\n})\n","server\u002Fautomations\u002Fsupport-inbox.ts",[14,466,467,477,486,495,519,528,537,554],{"__ignoreMap":48},[52,468,469,471,473,475],{"class":54,"line":55},[52,470,59],{"class":58},[52,472,62],{"class":58},[52,474,66],{"class":65},[52,476,70],{"class":69},[52,478,479,481,484],{"class":54,"line":73},[52,480,77],{"class":76},[52,482,483],{"class":80},"'Support inbox'",[52,485,84],{"class":69},[52,487,488,490,493],{"class":54,"line":87},[52,489,90],{"class":76},[52,491,492],{"class":80},"'Answer support questions posted to a webhook, for example from a form or inbox.'",[52,494,84],{"class":69},[52,496,497,500,503,506,508,511,514,517],{"class":54,"line":98},[52,498,499],{"class":76},"  trigger: { kind: ",[52,501,502],{"class":80},"'webhook'",[52,504,505],{"class":76},", event: ",[52,507,502],{"class":80},[52,509,510],{"class":76},", slug: ",[52,512,513],{"class":80},"'support-inbox'",[52,515,516],{"class":76}," }",[52,518,84],{"class":69},[52,520,521,523,526],{"class":54,"line":104},[52,522,169],{"class":76},[52,524,525],{"class":80},"'support'",[52,527,84],{"class":69},[52,529,530,532,535],{"class":54,"line":115},[52,531,180],{"class":76},[52,533,534],{"class":80},"'Answer the question in the payload. Return a reply ready to send.'",[52,536,84],{"class":69},[52,538,539,542,545,548,550,552],{"class":54,"line":125},[52,540,541],{"class":76},"  success: { action: ",[52,543,544],{"class":80},"'none'",[52,546,547],{"class":76},", target: ",[52,549,242],{"class":80},[52,551,516],{"class":76},[52,553,84],{"class":69},[52,555,556],{"class":54,"line":136},[52,557,191],{"class":69},[10,559,560,561,564],{},"The sender posts a JSON body, which becomes the run payload, with a unique ",[14,562,563],{},"Idempotency-Key","\nheader of at most 200 characters:",[42,566,570],{"className":567,"code":568,"language":569,"meta":48,"style":48},"language-bash shiki shiki-themes github-dark-default","curl -X POST \"https:\u002F\u002Fapp.example.com\u002Fapi\u002Fagentic\u002Fhooks\u002F12\u002F\u003Ctoken>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Idempotency-Key: form-submission-4821\" \\\n  -d '{\"question\":\"How do I move to the pro plan?\"}'\n","bash",[14,571,572,590,600,609],{"__ignoreMap":48},[52,573,574,577,581,584,587],{"class":54,"line":55},[52,575,576],{"class":69},"curl",[52,578,580],{"class":579},"sFSAA"," -X",[52,582,583],{"class":80}," POST",[52,585,586],{"class":80}," \"https:\u002F\u002Fapp.example.com\u002Fapi\u002Fagentic\u002Fhooks\u002F12\u002F\u003Ctoken>\"",[52,588,589],{"class":58}," \\\n",[52,591,592,595,598],{"class":54,"line":73},[52,593,594],{"class":579},"  -H",[52,596,597],{"class":80}," \"Content-Type: application\u002Fjson\"",[52,599,589],{"class":58},[52,601,602,604,607],{"class":54,"line":87},[52,603,594],{"class":579},[52,605,606],{"class":80}," \"Idempotency-Key: form-submission-4821\"",[52,608,589],{"class":58},[52,610,611,614],{"class":54,"line":98},[52,612,613],{"class":579},"  -d",[52,615,616],{"class":80}," '{\"question\":\"How do I move to the pro plan?\"}'\n",[10,618,619,620,623,624,626],{},"The same key never starts a second run, so a sender can retry safely. The endpoint answers\n",[14,621,622],{},"202",", accepts bodies up to 1 MB, and starts only active automations whose agent is active. A\nwebhook ",[14,625,249],{}," uses lowercase letters, numbers, and hyphens.",[431,628,630],{"id":629},"reacting-to-events","Reacting to Events",[10,632,437,633,636,637,640],{},[14,634,635],{},"kind: 'event'"," and the event name in ",[14,638,639],{},"event",". Events come from connected integrations, such\nas a new GitHub issue, or from your own server code. Deliver an app event with the services:",[42,642,645],{"className":44,"code":643,"filename":644,"language":47,"meta":48,"style":48},"export default defineEventHandler(async (event) => {\n  const order = await readBody\u003C{ id: number; total: number }>(event)\n  const { automations } = await useAgentic(event)\n  return automations.deliverEvent({ event: 'order.paid', id: String(order.id), payload: order })\n})\n","server\u002Fapi\u002Forders\u002Fpaid.post.ts",[14,646,647,671,713,737,763],{"__ignoreMap":48},[52,648,649,651,653,656,659,662,665,668],{"class":54,"line":55},[52,650,59],{"class":58},[52,652,62],{"class":58},[52,654,655],{"class":65}," defineEventHandler",[52,657,658],{"class":69},"(",[52,660,661],{"class":58},"async",[52,663,664],{"class":69}," (event) ",[52,666,667],{"class":58},"=>",[52,669,670],{"class":76}," {\n",[52,672,673,676,679,682,685,688,691,694,697,700,703,706,708,710],{"class":54,"line":73},[52,674,675],{"class":58},"  const",[52,677,678],{"class":579}," order",[52,680,681],{"class":58}," =",[52,683,684],{"class":58}," await",[52,686,687],{"class":65}," readBody",[52,689,690],{"class":76},"\u003C{ ",[52,692,693],{"class":69},"id",[52,695,696],{"class":58},":",[52,698,699],{"class":579}," number",[52,701,702],{"class":76},"; ",[52,704,705],{"class":69},"total",[52,707,696],{"class":58},[52,709,699],{"class":579},[52,711,712],{"class":76}," }>(event)\n",[52,714,715,717,720,723,726,729,731,734],{"class":54,"line":87},[52,716,675],{"class":58},[52,718,719],{"class":76}," { ",[52,721,722],{"class":579},"automations",[52,724,725],{"class":76}," } ",[52,727,728],{"class":58},"=",[52,730,684],{"class":58},[52,732,733],{"class":65}," useAgentic",[52,735,736],{"class":76},"(event)\n",[52,738,739,742,745,748,751,754,757,760],{"class":54,"line":98},[52,740,741],{"class":58},"  return",[52,743,744],{"class":76}," automations.",[52,746,747],{"class":65},"deliverEvent",[52,749,750],{"class":76},"({ event: ",[52,752,753],{"class":80},"'order.paid'",[52,755,756],{"class":76},", id: ",[52,758,759],{"class":65},"String",[52,761,762],{"class":76},"(order.id), payload: order })\n",[52,764,765,768],{"class":54,"line":104},[52,766,767],{"class":76},"}",[52,769,770],{"class":69},")\n",[10,772,773,775,776,778],{},[14,774,747],{}," starts the signed-in user's own active automations in the current workspace whose\ntrigger listens for that event. ",[14,777,693],{}," is a string of up to 200 characters that makes delivery\nidempotent: the same event and id never start a second run.",[22,780,368],{"id":781},"handling-the-result",[10,783,784,785,787,788,790,791,794,795,798],{},"The ",[14,786,359],{}," outcome runs after the agent finishes; the ",[14,789,380],{}," outcome runs when the last\nretry fails. ",[14,792,793],{},"target"," can use ",[14,796,797],{},"{{ payload.field }}"," placeholders with primitive payload values.",[193,800,801,814],{},[196,802,803],{},[199,804,805,808,811],{},[202,806,807],{},"Action",[202,809,810],{},"Target",[202,812,813],{},"Where",[212,815,816,828,845,856,871,887],{},[199,817,818,822,825],{},[217,819,820],{},[14,821,388],{},[217,823,824],{},"Nothing: the result stays in run history",[217,826,827],{},"Both",[199,829,830,835,842],{},[217,831,832],{},[14,833,834],{},"email",[217,836,837,838,841],{},"An address or a payload path such as ",[14,839,840],{},"user.email",", sent through Gmail",[217,843,844],{},"Success",[199,846,847,851,854],{},[217,848,849],{},[14,850,394],{},[217,852,853],{},"A channel of a connected Slack account",[217,855,827],{},[199,857,858,863,869],{},[217,859,860],{},[14,861,862],{},"webhook",[217,864,865,866],{},"An HTTPS URL whose origin is listed in ",[14,867,868],{},"AGENTIC_WEBHOOK_ORIGINS",[217,870,844],{},[199,872,873,878,885],{},[217,874,875],{},[14,876,877],{},"record",[217,879,880,881],{},"A field on the triggering record; see ",[270,882,884],{"href":883},"\u002Fdocs\u002Fguides\u002Foutcomes","Outcomes",[217,886,844],{},[199,888,889,893,896],{},[217,890,891],{},[14,892,391],{},[217,894,895],{},"An address for a failure report through Gmail; empty sends it to the owner",[217,897,898],{},"Failure",[10,900,901,902,905,906,909,910,913,914,916,917,920,921,923],{},"Email and Slack outcomes need a connected account with ",[14,903,904],{},"send_email"," or ",[14,907,908],{},"post_messages"," granted.\nWith ",[14,911,912],{},"runAs: 'workspace'",", only workspace connections count. A ",[14,915,862],{}," outcome posts\n",[14,918,919],{},"{ payload, output, error, runId }"," with an ",[14,922,563],{}," header, so the receiver can ignore\na retried delivery.",[22,925,927],{"id":926},"starting-and-controlling-runs","Starting and Controlling Runs",[10,929,930],{},"From the dashboard or the services, you can start an automation by hand, resume an unfinished\nrun, and cancel a running one:",[42,932,934],{"className":44,"code":933,"language":47,"meta":48,"style":48},"const { automations } = await useAgentic(event)\nconst { runId } = await automations.start(automationId, { payload: { customerId: 42 } })\n",[14,935,936,955],{"__ignoreMap":48},[52,937,938,941,943,945,947,949,951,953],{"class":54,"line":55},[52,939,940],{"class":58},"const",[52,942,719],{"class":76},[52,944,722],{"class":579},[52,946,725],{"class":76},[52,948,728],{"class":58},[52,950,684],{"class":58},[52,952,733],{"class":65},[52,954,736],{"class":76},[52,956,957,959,961,964,966,968,970,972,975,978,981],{"class":54,"line":73},[52,958,940],{"class":58},[52,960,719],{"class":76},[52,962,963],{"class":579},"runId",[52,965,725],{"class":76},[52,967,728],{"class":58},[52,969,684],{"class":58},[52,971,744],{"class":76},[52,973,974],{"class":65},"start",[52,976,977],{"class":76},"(automationId, { payload: { customerId: ",[52,979,980],{"class":579},"42",[52,982,983],{"class":76}," } })\n",[10,985,986,987,990],{},"A manual start also works for inactive drafts, which makes it the way to test a template before\nyou switch it on. Pass ",[14,988,989],{},"eventId"," to make a manual start idempotent. Runs that wait for an approval\ncontinue after someone answers it.",[992,993,994],"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 .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}",{"title":48,"searchDepth":73,"depth":73,"links":996},[997,998,1003,1004],{"id":24,"depth":73,"text":25},{"id":429,"depth":73,"text":273,"children":999},[1000,1001,1002],{"id":433,"depth":87,"text":434},{"id":452,"depth":87,"text":453},{"id":629,"depth":87,"text":630},{"id":781,"depth":73,"text":368},{"id":926,"depth":73,"text":927},"Run agents on a schedule, from a webhook or on an event, with retries and outcomes.","md",{},true,null,"\u002Fdocs\u002Fguides\u002Fautomations",{"title":5,"description":1005},"docs\u002F3.guides\u002F3.automations","bMRKT3HtDADTyc1zb9EonNzaEySxWAmVG2YyXrkOweM",[1015],{"title":1016,"path":1017,"stem":1018,"children":1019,"navigationTitle":1009},"Introduction","\u002Fdocs","docs\u002F0.index",[1020,1021,1039,1043,1091,1095,1099,1128],{"title":1016,"path":1017,"stem":1018,"navigationTitle":1009},{"title":1022,"path":1023,"stem":1024,"children":1025,"page":1038},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[1026,1030,1034],{"title":1027,"path":1028,"stem":1029,"navigationTitle":1009},"Free module","\u002Fdocs\u002Fgetting-started\u002Ffree","docs\u002F1.getting-started\u002F1.free",{"title":1031,"path":1032,"stem":1033,"navigationTitle":1009},"Pro on Nuxt","\u002Fdocs\u002Fgetting-started\u002Fnuxt","docs\u002F1.getting-started\u002F2.nuxt",{"title":1035,"path":1036,"stem":1037,"navigationTitle":1009},"Pro on Void","\u002Fdocs\u002Fgetting-started\u002Fvoid","docs\u002F1.getting-started\u002F3.void",false,{"title":1040,"path":1041,"stem":1042,"navigationTitle":1009},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",{"title":1044,"path":1045,"stem":1046,"children":1047,"page":1038},"Guides","\u002Fdocs\u002Fguides","docs\u002F3.guides",[1048,1052,1056,1060,1064,1068,1069,1073,1075,1079,1083,1087],{"title":1049,"path":1050,"stem":1051,"navigationTitle":1009},"Agents","\u002Fdocs\u002Fguides\u002Fagents","docs\u002F3.guides\u002F1.agents",{"title":1053,"path":1054,"stem":1055,"navigationTitle":1009},"Events","\u002Fdocs\u002Fguides\u002Fevents","docs\u002F3.guides\u002F10.events",{"title":1057,"path":1058,"stem":1059,"navigationTitle":1009},"Features","\u002Fdocs\u002Fguides\u002Ffeatures","docs\u002F3.guides\u002F11.features",{"title":1061,"path":1062,"stem":1063,"navigationTitle":1009},"Coding agents","\u002Fdocs\u002Fguides\u002Fcoding-agents","docs\u002F3.guides\u002F12.coding-agents",{"title":1065,"path":1066,"stem":1067,"navigationTitle":1009},"Tools","\u002Fdocs\u002Fguides\u002Ftools","docs\u002F3.guides\u002F2.tools",{"title":5,"path":1010,"stem":1012,"navigationTitle":1009},{"title":1070,"path":1071,"stem":1072,"navigationTitle":1009},"Agentic Models","\u002Fdocs\u002Fguides\u002Fagentic-models","docs\u002F3.guides\u002F4.agentic-models",{"title":884,"path":883,"stem":1074,"navigationTitle":1009},"docs\u002F3.guides\u002F5.outcomes",{"title":1076,"path":1077,"stem":1078,"navigationTitle":1009},"Integrations","\u002Fdocs\u002Fguides\u002Fintegrations","docs\u002F3.guides\u002F6.integrations",{"title":1080,"path":1081,"stem":1082,"navigationTitle":1009},"Prompt","\u002Fdocs\u002Fguides\u002Fprompt","docs\u002F3.guides\u002F7.prompt",{"title":1084,"path":1085,"stem":1086,"navigationTitle":1009},"Server logic","\u002Fdocs\u002Fguides\u002Fserver-logic","docs\u002F3.guides\u002F8.server-logic",{"title":1088,"path":1089,"stem":1090,"navigationTitle":1009},"Dashboard UI","\u002Fdocs\u002Fguides\u002Fui","docs\u002F3.guides\u002F9.ui",{"title":1092,"path":1093,"stem":1094,"navigationTitle":1009},"Deploy to Cloudflare","\u002Fdocs\u002Fdeploy","docs\u002F4.deploy",{"title":1096,"path":1097,"stem":1098,"navigationTitle":1009},"Upgrading","\u002Fdocs\u002Fupgrade","docs\u002F5.upgrade",{"title":1100,"path":1101,"stem":1102,"children":1103,"page":1038},"Reference","\u002Fdocs\u002Freference","docs\u002F6.reference",[1104,1108,1112,1116,1120,1124],{"title":1105,"path":1106,"stem":1107,"navigationTitle":1009},"Configuration","\u002Fdocs\u002Freference\u002Fconfiguration","docs\u002F6.reference\u002F1.configuration",{"title":1109,"path":1110,"stem":1111,"navigationTitle":1009},"Composables","\u002Fdocs\u002Freference\u002Fcomposables","docs\u002F6.reference\u002F2.composables",{"title":1113,"path":1114,"stem":1115,"navigationTitle":1009},"Server utilities","\u002Fdocs\u002Freference\u002Fserver-utils","docs\u002F6.reference\u002F3.server-utils",{"title":1117,"path":1118,"stem":1119,"navigationTitle":1009},"Services","\u002Fdocs\u002Freference\u002Fservices","docs\u002F6.reference\u002F4.services",{"title":1121,"path":1122,"stem":1123,"navigationTitle":1009},"REST API","\u002Fdocs\u002Freference\u002Frest-api","docs\u002F6.reference\u002F5.rest-api",{"title":1125,"path":1126,"stem":1127,"navigationTitle":1009},"CLI","\u002Fdocs\u002Freference\u002Fcli","docs\u002F6.reference\u002F6.cli",{"title":1129,"path":1130,"stem":1131,"navigationTitle":1009},"Licensing & FAQ","\u002Fdocs\u002Flicensing","docs\u002F8.licensing",[1133,1135],{"title":1065,"path":1066,"stem":1067,"description":1134,"children":-1},"Give agents typed functions with defineAgentTool, and hold risky calls for approval.",{"title":1070,"path":1071,"stem":1072,"description":1136,"children":-1},"Your tables become safe agent tools in one definition. REST, services, tools, prompt and dashboard views from a Drizzle table.",1792672479673]