[{"data":1,"prerenderedAt":302},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Frecipes":3},{"id":4,"title":5,"body":6,"description":16,"extension":295,"meta":296,"navigation":297,"path":298,"seo":299,"stem":300,"__hash__":301},"docs\u002Fdocs\u002Fv2\u002Frecipes\u002Findex.md","Recipes",{"type":7,"value":8,"toc":291},"minimark",[9,13,17,20,28,220,225,233,273,277,280,287],[10,11,5],"h1",{"id":12},"recipes",[14,15,16],"p",{},"Full agent examples you can read like real projects.",[14,18,19],{},"Recipes are not isolated snippets. Each recipe is an agent folder with identity, prompts, policy, routes, tools, and knowledge working together.",[14,21,22,23,27],{},"The same pattern appears in every production Axon route: gather the request, render the relevant prompts, call ",[24,25,26],"code",{},"axon.stream()"," with task context and any narrowed policy. Routes prepare the task state — they don't implement the loop.",[29,30,35],"pre",{"className":31,"code":32,"language":33,"meta":34,"style":34},"language-ts shiki shiki-themes dark-plus","export default defineEventHandler(async event => {\n    const { repo, branch } = await readBody(event)\n    const prompt = await axon.prompt(\"repo-review\", { repo, branch })\n    const { stream } = axon.stream({ prompt, policy: { network: { allow: [\"api.github.com\"] } } })\n    return sendStream(event, stream)\n})\n","ts","",[24,36,37,71,107,147,195,214],{"__ignoreMap":34},[38,39,42,46,49,53,57,61,65,68],"span",{"class":40,"line":41},"line",1,[38,43,45],{"class":44},"sYbnZ","export",[38,47,48],{"class":44}," default",[38,50,52],{"class":51},"sCudf"," defineEventHandler",[38,54,56],{"class":55},"sTNBD","(",[38,58,60],{"class":59},"scz_3","async",[38,62,64],{"class":63},"s3F5K"," event",[38,66,67],{"class":59}," =>",[38,69,70],{"class":55}," {\n",[38,72,74,77,80,84,87,90,93,96,99,101,104],{"class":40,"line":73},2,[38,75,76],{"class":59},"    const",[38,78,79],{"class":55}," { ",[38,81,83],{"class":82},"s9McN","repo",[38,85,86],{"class":55},", ",[38,88,89],{"class":82},"branch",[38,91,92],{"class":55}," } = ",[38,94,95],{"class":44},"await",[38,97,98],{"class":51}," readBody",[38,100,56],{"class":55},[38,102,103],{"class":63},"event",[38,105,106],{"class":55},")\n",[38,108,110,112,115,118,120,123,126,129,131,135,138,140,142,144],{"class":40,"line":109},3,[38,111,76],{"class":59},[38,113,114],{"class":82}," prompt",[38,116,117],{"class":55}," = ",[38,119,95],{"class":44},[38,121,122],{"class":63}," axon",[38,124,125],{"class":55},".",[38,127,128],{"class":51},"prompt",[38,130,56],{"class":55},[38,132,134],{"class":133},"sKc5r","\"repo-review\"",[38,136,137],{"class":55},", { ",[38,139,83],{"class":63},[38,141,86],{"class":55},[38,143,89],{"class":63},[38,145,146],{"class":55}," })\n",[38,148,150,152,154,157,159,162,164,166,169,171,173,176,178,181,183,186,189,192],{"class":40,"line":149},4,[38,151,76],{"class":59},[38,153,79],{"class":55},[38,155,156],{"class":82},"stream",[38,158,92],{"class":55},[38,160,161],{"class":63},"axon",[38,163,125],{"class":55},[38,165,156],{"class":51},[38,167,168],{"class":55},"({ ",[38,170,128],{"class":63},[38,172,86],{"class":55},[38,174,175],{"class":63},"policy:",[38,177,79],{"class":55},[38,179,180],{"class":63},"network:",[38,182,79],{"class":55},[38,184,185],{"class":63},"allow:",[38,187,188],{"class":55}," [",[38,190,191],{"class":133},"\"api.github.com\"",[38,193,194],{"class":55},"] } } })\n",[38,196,198,201,204,206,208,210,212],{"class":40,"line":197},5,[38,199,200],{"class":44},"    return",[38,202,203],{"class":51}," sendStream",[38,205,56],{"class":55},[38,207,103],{"class":63},[38,209,86],{"class":55},[38,211,156],{"class":63},[38,213,106],{"class":55},[38,215,217],{"class":40,"line":216},6,[38,218,219],{"class":55},"})\n",[221,222,224],"h2",{"id":223},"first-recipe","First recipe",[14,226,227,232],{},[228,229,231],"a",{"href":230},"\u002Fdocs\u002Fv2\u002Frecipes\u002Fcoding-partner","Coding Partner"," is a small custom coding assistant. It shows the core production pattern:",[234,235,236,243,249,255,261,267],"ul",{},[237,238,239,242],"li",{},[24,240,241],{},"src\u002Fboot.vue"," defines identity and operating rules.",[237,244,245,248],{},[24,246,247],{},"src\u002Fprompts\u002F*.vue"," define reusable task framing with props.",[237,250,251,254],{},[24,252,253],{},"server\u002Fapi\u002Fchat.post.ts"," handles interactive TUI messages.",[237,256,257,260],{},[24,258,259],{},"server\u002Fapi\u002Frepo-review.post.ts"," exposes a headless review endpoint.",[237,262,263,266],{},[24,264,265],{},"data\u002Fknowledge\u002Frepo-guidelines.md"," gives the agent durable project rules.",[237,268,269,272],{},[24,270,271],{},"axon.config.ts"," and route policy keep the agent inside clear operating bounds.",[221,274,276],{"id":275},"why-recipes-are-folders","Why recipes are folders",[14,278,279],{},"The folder is the abstraction. A useful agent is not one endpoint or one prompt. It is the shape of the whole project: behavior, context, policy, tools, ingress, and durable data.",[14,281,282,283,286],{},"Start with ",[228,284,285],{"href":230},"coding-partner\u002F",", then open each file in the sidebar.",[288,289,290],"style",{},"html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .s9McN, html code.shiki .s9McN{--shiki-default:#4FC1FF}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}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);}",{"title":34,"searchDepth":73,"depth":73,"links":292},[293,294],{"id":223,"depth":73,"text":224},{"id":275,"depth":73,"text":276},"md",{},true,"\u002Fdocs\u002Fv2\u002Frecipes",{"title":5,"description":16},"docs\u002Fv2\u002Frecipes\u002Findex","YIYSgM0Qi5TugSzY96XHVx34mBgyydwLK1HWtysi_No",1785671807153]