[{"data":1,"prerenderedAt":468},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fapi\u002Fscripts":3},{"id":4,"title":5,"body":6,"description":16,"extension":462,"meta":463,"navigation":99,"path":464,"seo":465,"stem":466,"__hash__":467},"docs\u002Fdocs\u002Fv2\u002Fapi\u002Fscripts.md","axon.scripts",{"type":7,"value":8,"toc":457},"minimark",[9,13,17,22,30,125,132,173,177,184,315,319,325,450,453],[10,11,5],"h1",{"id":12},"axonscripts",[14,15,16],"p",{},"Invoke another script from within a script or route handler. The target script runs\nin the same agent instance — same tools, same session, same thread model.",[18,19,21],"h2",{"id":20},"axonscriptsrequest","axon.scripts.request",[14,23,24,25,29],{},"Runs the script and waits for it to finish. Returns the same result shape as\n",[26,27,28],"code",{},"axon.request",".",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-ts shiki shiki-themes dark-plus","const result = await axon.scripts.request(\"close-plan\", { issueId: \"bd-yiq\" })\n\nconsole.log(result.text)\n","ts","",[26,38,39,94,101],{"__ignoreMap":36},[40,41,44,48,52,56,60,64,66,69,71,75,78,82,85,88,91],"span",{"class":42,"line":43},"line",1,[40,45,47],{"class":46},"scz_3","const",[40,49,51],{"class":50},"s9McN"," result",[40,53,55],{"class":54},"sTNBD"," = ",[40,57,59],{"class":58},"sYbnZ","await",[40,61,63],{"class":62},"s3F5K"," axon",[40,65,29],{"class":54},[40,67,68],{"class":62},"scripts",[40,70,29],{"class":54},[40,72,74],{"class":73},"sCudf","request",[40,76,77],{"class":54},"(",[40,79,81],{"class":80},"sKc5r","\"close-plan\"",[40,83,84],{"class":54},", { ",[40,86,87],{"class":62},"issueId:",[40,89,90],{"class":80}," \"bd-yiq\"",[40,92,93],{"class":54}," })\n",[40,95,97],{"class":42,"line":96},2,[40,98,100],{"emptyLinePlaceholder":99},true,"\n",[40,102,104,107,109,112,114,117,119,122],{"class":42,"line":103},3,[40,105,106],{"class":62},"console",[40,108,29],{"class":54},[40,110,111],{"class":73},"log",[40,113,77],{"class":54},[40,115,116],{"class":62},"result",[40,118,29],{"class":54},[40,120,121],{"class":62},"text",[40,123,124],{"class":54},")\n",[14,126,127,128,131],{},"Arguments become available inside the target script via ",[26,129,130],{},"defineArgs",":",[31,133,135],{"className":33,"code":134,"language":35,"meta":36,"style":36},"\u002F\u002F src\u002Fscripts\u002Fclose-plan.ts\nconst { issueId } = defineArgs\u003C{ issueId: string }>()\n",[26,136,137,143],{"__ignoreMap":36},[40,138,139],{"class":42,"line":43},[40,140,142],{"class":141},"sOLPB","\u002F\u002F src\u002Fscripts\u002Fclose-plan.ts\n",[40,144,145,147,150,153,156,158,161,163,166,170],{"class":42,"line":96},[40,146,47],{"class":46},[40,148,149],{"class":54}," { ",[40,151,152],{"class":50},"issueId",[40,154,155],{"class":54}," } = ",[40,157,130],{"class":73},[40,159,160],{"class":54},"\u003C{ ",[40,162,152],{"class":62},[40,164,165],{"class":54},": ",[40,167,169],{"class":168},"sNl3T","string",[40,171,172],{"class":54}," }>()\n",[18,174,176],{"id":175},"axonscriptsstream","axon.scripts.stream",[14,178,179,180,183],{},"Runs the script and streams entries as they arrive. Useful when the target script\nitself calls ",[26,181,182],{},"axon.stream"," and you want to forward that output incrementally.",[31,185,187],{"className":33,"code":186,"language":35,"meta":36,"style":36},"const { stream } = axon.scripts.stream(\"scout\")\n\nfor await (const entry of stream) {\n    if (entry.type === \"axon:agent:message:delta\") {\n        process.stdout.write(entry.payload.content)\n    }\n}\n",[26,188,189,218,222,247,271,303,309],{"__ignoreMap":36},[40,190,191,193,195,198,200,203,205,207,209,211,213,216],{"class":42,"line":43},[40,192,47],{"class":46},[40,194,149],{"class":54},[40,196,197],{"class":50},"stream",[40,199,155],{"class":54},[40,201,202],{"class":62},"axon",[40,204,29],{"class":54},[40,206,68],{"class":62},[40,208,29],{"class":54},[40,210,197],{"class":73},[40,212,77],{"class":54},[40,214,215],{"class":80},"\"scout\"",[40,217,124],{"class":54},[40,219,220],{"class":42,"line":96},[40,221,100],{"emptyLinePlaceholder":99},[40,223,224,227,230,233,235,238,241,244],{"class":42,"line":103},[40,225,226],{"class":58},"for",[40,228,229],{"class":58}," await",[40,231,232],{"class":54}," (",[40,234,47],{"class":46},[40,236,237],{"class":50}," entry",[40,239,240],{"class":46}," of",[40,242,243],{"class":62}," stream",[40,245,246],{"class":54},") {\n",[40,248,250,253,255,258,260,263,266,269],{"class":42,"line":249},4,[40,251,252],{"class":58},"    if",[40,254,232],{"class":54},[40,256,257],{"class":62},"entry",[40,259,29],{"class":54},[40,261,262],{"class":62},"type",[40,264,265],{"class":54}," === ",[40,267,268],{"class":80},"\"axon:agent:message:delta\"",[40,270,246],{"class":54},[40,272,274,277,279,282,284,287,289,291,293,296,298,301],{"class":42,"line":273},5,[40,275,276],{"class":62},"        process",[40,278,29],{"class":54},[40,280,281],{"class":62},"stdout",[40,283,29],{"class":54},[40,285,286],{"class":73},"write",[40,288,77],{"class":54},[40,290,257],{"class":62},[40,292,29],{"class":54},[40,294,295],{"class":62},"payload",[40,297,29],{"class":54},[40,299,300],{"class":62},"content",[40,302,124],{"class":54},[40,304,306],{"class":42,"line":305},6,[40,307,308],{"class":54},"    }\n",[40,310,312],{"class":42,"line":311},7,[40,313,314],{"class":54},"}\n",[18,316,318],{"id":317},"when-to-use-this","When to use this",[14,320,321,322,324],{},"Scripts are the primary unit of agent automation. ",[26,323,5],{}," lets you compose\nthem — a route handler can delegate to a script, a script can chain into another.",[31,326,328],{"className":33,"code":327,"language":35,"meta":36,"style":36},"\u002F\u002F server\u002Fapi\u002Fclose.ts\nexport default defineEventHandler(async (event) => {\n    const { issueId } = await readBody(event)\n\n    const { stream } = axon.scripts.stream(\"close-plan\", { issueId })\n\n    return sendStream(event, stream)\n})\n",[26,329,330,335,365,387,391,421,425,444],{"__ignoreMap":36},[40,331,332],{"class":42,"line":43},[40,333,334],{"class":141},"\u002F\u002F server\u002Fapi\u002Fclose.ts\n",[40,336,337,340,343,346,348,351,353,356,359,362],{"class":42,"line":96},[40,338,339],{"class":58},"export",[40,341,342],{"class":58}," default",[40,344,345],{"class":73}," defineEventHandler",[40,347,77],{"class":54},[40,349,350],{"class":46},"async",[40,352,232],{"class":54},[40,354,355],{"class":62},"event",[40,357,358],{"class":54},") ",[40,360,361],{"class":46},"=>",[40,363,364],{"class":54}," {\n",[40,366,367,370,372,374,376,378,381,383,385],{"class":42,"line":103},[40,368,369],{"class":46},"    const",[40,371,149],{"class":54},[40,373,152],{"class":50},[40,375,155],{"class":54},[40,377,59],{"class":58},[40,379,380],{"class":73}," readBody",[40,382,77],{"class":54},[40,384,355],{"class":62},[40,386,124],{"class":54},[40,388,389],{"class":42,"line":249},[40,390,100],{"emptyLinePlaceholder":99},[40,392,393,395,397,399,401,403,405,407,409,411,413,415,417,419],{"class":42,"line":273},[40,394,369],{"class":46},[40,396,149],{"class":54},[40,398,197],{"class":50},[40,400,155],{"class":54},[40,402,202],{"class":62},[40,404,29],{"class":54},[40,406,68],{"class":62},[40,408,29],{"class":54},[40,410,197],{"class":73},[40,412,77],{"class":54},[40,414,81],{"class":80},[40,416,84],{"class":54},[40,418,152],{"class":62},[40,420,93],{"class":54},[40,422,423],{"class":42,"line":305},[40,424,100],{"emptyLinePlaceholder":99},[40,426,427,430,433,435,437,440,442],{"class":42,"line":311},[40,428,429],{"class":58},"    return",[40,431,432],{"class":73}," sendStream",[40,434,77],{"class":54},[40,436,355],{"class":62},[40,438,439],{"class":54},", ",[40,441,197],{"class":62},[40,443,124],{"class":54},[40,445,447],{"class":42,"line":446},8,[40,448,449],{"class":54},"})\n",[14,451,452],{},"This keeps route handlers thin. The logic lives in the script; the route just\nwires the HTTP surface to it.",[454,455,456],"style",{},"html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .s9McN, html code.shiki .s9McN{--shiki-default:#4FC1FF}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}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);}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}html pre.shiki code .sNl3T, html code.shiki .sNl3T{--shiki-default:#4EC9B0}",{"title":36,"searchDepth":96,"depth":96,"links":458},[459,460,461],{"id":20,"depth":96,"text":21},{"id":175,"depth":96,"text":176},{"id":317,"depth":96,"text":318},"md",{},"\u002Fdocs\u002Fv2\u002Fapi\u002Fscripts",{"title":5,"description":16},"docs\u002Fv2\u002Fapi\u002Fscripts","foGtuuVL_S7lcSKzYjifyUV2iHrya2A7fmoec24d3qg",1785671808369]