[{"data":1,"prerenderedAt":434},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fapi\u002Fthread\u002Fpathway":3},{"id":4,"title":5,"body":6,"description":426,"extension":427,"meta":428,"navigation":429,"path":430,"seo":431,"stem":432,"__hash__":433},"docs\u002Fdocs\u002Fv2\u002Fapi\u002Fthread\u002Fpathway.md","Pathway entries",{"type":7,"value":8,"toc":419},"minimark",[9,13,30,35,38,113,117,120,195,199,202,255,259,262,314,318,329,415],[10,11,5],"h1",{"id":12},"pathway-entries",[14,15,16,17,21,22,25,26,29],"p",{},"One pathway invocation wraps each call to ",[18,19,20],"code",{},"axon.request()"," or ",[18,23,24],{},"axon.stream()",".\nAll pathway entries share an ",[18,27,28],{},"invocationId"," that links them together.",[31,32,34],"h2",{"id":33},"pathwaystart","pathway:start",[14,36,37],{},"Emitted before the pathway handler runs.",[39,40,45],"pre",{"className":41,"code":42,"language":43,"meta":44,"style":44},"language-ts shiki shiki-themes dark-plus","type PathwayStart = ThreadEntry\u003C\"pathway:start\", {\n    pathway: string       \u002F\u002F route name e.g. \"api\u002Fchat\"\n    invocationId: string  \u002F\u002F stable ID linking all events from this invocation\n}>\n","ts","",[18,46,47,77,94,107],{"__ignoreMap":44},[48,49,52,56,60,64,67,70,74],"span",{"class":50,"line":51},"line",1,[48,53,55],{"class":54},"scz_3","type",[48,57,59],{"class":58},"sNl3T"," PathwayStart",[48,61,63],{"class":62},"sTNBD"," = ",[48,65,66],{"class":58},"ThreadEntry",[48,68,69],{"class":62},"\u003C",[48,71,73],{"class":72},"sKc5r","\"pathway:start\"",[48,75,76],{"class":62},", {\n",[48,78,80,84,87,90],{"class":50,"line":79},2,[48,81,83],{"class":82},"s3F5K","    pathway",[48,85,86],{"class":62},": ",[48,88,89],{"class":58},"string",[48,91,93],{"class":92},"sOLPB","       \u002F\u002F route name e.g. \"api\u002Fchat\"\n",[48,95,97,100,102,104],{"class":50,"line":96},3,[48,98,99],{"class":82},"    invocationId",[48,101,86],{"class":62},[48,103,89],{"class":58},[48,105,106],{"class":92},"  \u002F\u002F stable ID linking all events from this invocation\n",[48,108,110],{"class":50,"line":109},4,[48,111,112],{"class":62},"}>\n",[31,114,116],{"id":115},"pathwaycomplete","pathway:complete",[14,118,119],{},"Emitted after the handler returns successfully.",[39,121,123],{"className":41,"code":122,"language":43,"meta":44,"style":44},"type PathwayComplete = ThreadEntry\u003C\"pathway:complete\", {\n    pathway: string\n    invocationId: string\n    durationMs: number\n    billing: BillingTotal | null  \u002F\u002F null if no engine was called\n}>\n",[18,124,125,143,152,160,170,190],{"__ignoreMap":44},[48,126,127,129,132,134,136,138,141],{"class":50,"line":51},[48,128,55],{"class":54},[48,130,131],{"class":58}," PathwayComplete",[48,133,63],{"class":62},[48,135,66],{"class":58},[48,137,69],{"class":62},[48,139,140],{"class":72},"\"pathway:complete\"",[48,142,76],{"class":62},[48,144,145,147,149],{"class":50,"line":79},[48,146,83],{"class":82},[48,148,86],{"class":62},[48,150,151],{"class":58},"string\n",[48,153,154,156,158],{"class":50,"line":96},[48,155,99],{"class":82},[48,157,86],{"class":62},[48,159,151],{"class":58},[48,161,162,165,167],{"class":50,"line":109},[48,163,164],{"class":82},"    durationMs",[48,166,86],{"class":62},[48,168,169],{"class":58},"number\n",[48,171,173,176,178,181,184,187],{"class":50,"line":172},5,[48,174,175],{"class":82},"    billing",[48,177,86],{"class":62},[48,179,180],{"class":58},"BillingTotal",[48,182,183],{"class":62}," | ",[48,185,186],{"class":58},"null",[48,188,189],{"class":92},"  \u002F\u002F null if no engine was called\n",[48,191,193],{"class":50,"line":192},6,[48,194,112],{"class":62},[31,196,198],{"id":197},"pathwayabort","pathway:abort",[14,200,201],{},"Emitted when the client cancels the request (e.g. user presses Escape).",[39,203,205],{"className":41,"code":204,"language":43,"meta":44,"style":44},"type PathwayAbort = ThreadEntry\u003C\"pathway:abort\", {\n    pathway: string\n    invocationId: string\n    reason?: string\n}>\n",[18,206,207,225,233,241,251],{"__ignoreMap":44},[48,208,209,211,214,216,218,220,223],{"class":50,"line":51},[48,210,55],{"class":54},[48,212,213],{"class":58}," PathwayAbort",[48,215,63],{"class":62},[48,217,66],{"class":58},[48,219,69],{"class":62},[48,221,222],{"class":72},"\"pathway:abort\"",[48,224,76],{"class":62},[48,226,227,229,231],{"class":50,"line":79},[48,228,83],{"class":82},[48,230,86],{"class":62},[48,232,151],{"class":58},[48,234,235,237,239],{"class":50,"line":96},[48,236,99],{"class":82},[48,238,86],{"class":62},[48,240,151],{"class":58},[48,242,243,246,249],{"class":50,"line":109},[48,244,245],{"class":82},"    reason",[48,247,248],{"class":62},"?: ",[48,250,151],{"class":58},[48,252,253],{"class":50,"line":172},[48,254,112],{"class":62},[31,256,258],{"id":257},"pathwayerror","pathway:error",[14,260,261],{},"Emitted when the pathway handler throws an unhandled error.",[39,263,265],{"className":41,"code":264,"language":43,"meta":44,"style":44},"type PathwayError = ThreadEntry\u003C\"pathway:error\", {\n    pathway: string\n    invocationId: string\n    error: string\n}>\n",[18,266,267,285,293,301,310],{"__ignoreMap":44},[48,268,269,271,274,276,278,280,283],{"class":50,"line":51},[48,270,55],{"class":54},[48,272,273],{"class":58}," PathwayError",[48,275,63],{"class":62},[48,277,66],{"class":58},[48,279,69],{"class":62},[48,281,282],{"class":72},"\"pathway:error\"",[48,284,76],{"class":62},[48,286,287,289,291],{"class":50,"line":79},[48,288,83],{"class":82},[48,290,86],{"class":62},[48,292,151],{"class":58},[48,294,295,297,299],{"class":50,"line":96},[48,296,99],{"class":82},[48,298,86],{"class":62},[48,300,151],{"class":58},[48,302,303,306,308],{"class":50,"line":109},[48,304,305],{"class":82},"    error",[48,307,86],{"class":62},[48,309,151],{"class":58},[48,311,312],{"class":50,"line":172},[48,313,112],{"class":62},[31,315,317],{"id":316},"engineretry","engine:retry",[14,319,320,321,324,325,328],{},"Emitted each time an LLM call fails with a transient error and is being retried.\nA final ",[18,322,323],{},"axon:agent:error"," with kind ",[18,326,327],{},"\"engine:error\""," follows if all attempts are exhausted.",[39,330,332],{"className":41,"code":331,"language":43,"meta":44,"style":44},"type EngineRetry = ThreadEntry\u003C\"engine:retry\", {\n    engine: string       \u002F\u002F which engine is retrying\n    attempt: number      \u002F\u002F 1-based retry index\n    maxAttempts: number\n    status?: number      \u002F\u002F HTTP status that triggered the retry\n    delayMs: number      \u002F\u002F wait before next attempt\n}>\n",[18,333,334,352,364,377,386,398,410],{"__ignoreMap":44},[48,335,336,338,341,343,345,347,350],{"class":50,"line":51},[48,337,55],{"class":54},[48,339,340],{"class":58}," EngineRetry",[48,342,63],{"class":62},[48,344,66],{"class":58},[48,346,69],{"class":62},[48,348,349],{"class":72},"\"engine:retry\"",[48,351,76],{"class":62},[48,353,354,357,359,361],{"class":50,"line":79},[48,355,356],{"class":82},"    engine",[48,358,86],{"class":62},[48,360,89],{"class":58},[48,362,363],{"class":92},"       \u002F\u002F which engine is retrying\n",[48,365,366,369,371,374],{"class":50,"line":96},[48,367,368],{"class":82},"    attempt",[48,370,86],{"class":62},[48,372,373],{"class":58},"number",[48,375,376],{"class":92},"      \u002F\u002F 1-based retry index\n",[48,378,379,382,384],{"class":50,"line":109},[48,380,381],{"class":82},"    maxAttempts",[48,383,86],{"class":62},[48,385,169],{"class":58},[48,387,388,391,393,395],{"class":50,"line":172},[48,389,390],{"class":82},"    status",[48,392,248],{"class":62},[48,394,373],{"class":58},[48,396,397],{"class":92},"      \u002F\u002F HTTP status that triggered the retry\n",[48,399,400,403,405,407],{"class":50,"line":192},[48,401,402],{"class":82},"    delayMs",[48,404,86],{"class":62},[48,406,373],{"class":58},[48,408,409],{"class":92},"      \u002F\u002F wait before next attempt\n",[48,411,413],{"class":50,"line":412},7,[48,414,112],{"class":62},[416,417,418],"style",{},"html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .sNl3T, html code.shiki .sNl3T{--shiki-default:#4EC9B0}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}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":44,"searchDepth":79,"depth":79,"links":420},[421,422,423,424,425],{"id":33,"depth":79,"text":34},{"id":115,"depth":79,"text":116},{"id":197,"depth":79,"text":198},{"id":257,"depth":79,"text":258},{"id":316,"depth":79,"text":317},"One pathway invocation wraps each call to axon.request() or axon.stream().\nAll pathway entries share an invocationId that links them together.","md",{},true,"\u002Fdocs\u002Fv2\u002Fapi\u002Fthread\u002Fpathway",{"title":5,"description":426},"docs\u002Fv2\u002Fapi\u002Fthread\u002Fpathway","TBx4JOV47IujNUtmeZQD45ntC3ckAjeDRQu51h-aGJY",1785671808413]