{"version":3,"sources":["../../../../../src/agents/bee/runners/default/runner.ts"],"names":["DefaultRunner","BaseRunner","defaultTemplates","system","BeeSystemPrompt","assistant","BeeAssistantPrompt","user","BeeUserPrompt","schemaError","BeeSchemaErrorPrompt","toolNotFoundError","BeeToolNotFoundPrompt","toolError","BeeToolErrorPrompt","toolInputError","BeeToolInputErrorPrompt","userEmpty","BeeUserEmptyPrompt","toolNoResultError","BeeToolNoResultsPrompt","register","llm","signal","meta","emitter","tempMessageKey","Retryable","onRetry","emit","onError","error","failedAttemptsCounter","use","LinePrefixParserError","reason","Reason","NoDataReceived","memory","add","BaseMessage","of","role","Role","ASSISTANT","text","USER","templates","render","executor","tools","input","slice","parser","parserRegex","createParser","llmOutput","generate","messages","stream","guided","regex","source","observe","llmEmitter","on","value","key","field","isDone","data","finalState","update","raw","parsedValue","success","delta","callbacks","abort","getTextContent","partialState","tool_output","undefined","end","deleteMany","filter","msg","getProp","state","config","maxRetries","options","execution","maxRetriesPerStep","get","tool","console","log","find","t","name","tool_name","AgentError","available_tools","map","tool_input","parsedInput","parse","parseError","errorMessage","Error","message","String","validationErrors","keyword","instancePath","schemaPath","params","ToolInputValidationError","output","run","error_message","validation_errors","renderers","self","prompt","isEmpty","createdAt","Date","variables","Promise","all","description","replaceAll","replace","concat","schema","JSON","stringify","getInputJsonSchema","ignoredKeys","Set","has","SYSTEM","instructions","toISOString","initMemory","history","prevConversation","isTruthy","trim","TokenMemory","capacityThreshold","syncThreshold","handlers","removalSelector","curMessages","prevConversationMessage","includes","last","lastMessage","length","addMany","RegExp","join","LinePrefixParser","thought","prefix","next","isStart","ZodParserField","z","string","min","pipeline","enum","isEnd","JSONParserField","object","passthrough","base","matchPair","final_answer","waitForStartNode","endOnRepeat","fallback","stash","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;AAcC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AA8BM,MAAMA,sBAAsBC,mBAAAA,CAAAA;EA5CnC;;;AA6CE,EAAA,IACWC,gBAAmB,GAAA;AAC5B,IAAO,OAAA;MACLC,MAAQC,EAAAA,2BAAAA;MACRC,SAAWC,EAAAA,8BAAAA;MACXC,IAAMC,EAAAA,yBAAAA;MACNC,WAAaC,EAAAA,gCAAAA;MACbC,iBAAmBC,EAAAA,iCAAAA;MACnBC,SAAWC,EAAAA,8BAAAA;MACXC,cAAgBC,EAAAA,mCAAAA;MAChBC,SAAWC,EAAAA,8BAAAA;MACXC,iBAAmBC,EAAAA;AACrB,KAAA;AACF;EAEA;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;AAEA,EAAA,MAAMC,GAAI,CAAA,EAAEC,MAAQC,EAAAA,IAAAA,EAAMC,SAA6D,EAAA;AACrF,IAAA,MAAMC,cAAiB,GAAA,aAAA;AAEvB,IAAA,OAAO,IAAIC,uBAAU,CAAA;MACnBC,OAAS,kBAAA,MAAA,CAAA,MAAMH,OAAQI,CAAAA,IAAAA,CAAK,OAAS,EAAA;AAAEL,QAAAA;AAAK,OAAA,CAAnC,EAAA,SAAA,CAAA;AACTM,MAAAA,OAAAA,gCAAgBC,KAAAA,KAAAA;AACd,QAAMN,MAAAA,OAAAA,CAAQI,KAAK,OAAS,EAAA;AAAEE,UAAAA,KAAAA;AAAOP,UAAAA;SAAK,CAAA;AAC1C,QAAKQ,IAAAA,CAAAA,qBAAAA,CAAsBC,IAAIF,KAAAA,CAAAA;AAE/B,QAAA,IAAIA,iBAAiBG,oCAAuB,EAAA;AAE1C,UAAA,IAAIH,KAAMI,CAAAA,MAAAA,KAAWD,oCAAsBE,CAAAA,MAAAA,CAAOC,cAAgB,EAAA;AAChE,YAAA,MAAM,IAAKC,CAAAA,MAAAA,CAAOC,GAChBC,CAAAA,uBAAAA,CAAYC,EAAG,CAAA;AACbC,cAAAA,IAAAA,EAAMC,gBAAKC,CAAAA,SAAAA;cACXC,IAAM,EAAA,IAAA;cACNrB,IAAM,EAAA;AACJ,gBAAA,CAACE,cAAAA,GAAiB;AACpB;AACF,aAAA,CAAA,CAAA;WAEG,MAAA;AACL,YAAA,MAAM,IAAKY,CAAAA,MAAAA,CAAOC,GAChBC,CAAAA,uBAAAA,CAAYC,EAAG,CAAA;AACbC,cAAAA,IAAAA,EAAMC,gBAAKG,CAAAA,IAAAA;AACXD,cAAAA,IAAAA,EAAM,IAAKE,CAAAA,SAAAA,CAAUtC,WAAYuC,CAAAA,MAAAA,CAAO,EAAC,CAAA;cACzCxB,IAAM,EAAA;AACJ,gBAAA,CAACE,cAAAA,GAAiB;AACpB;AACF,aAAA,CAAA,CAAA;AAEJ;AACF;OA3BO,EAAA,SAAA,CAAA;AA6BTuB,MAAAA,QAAAA,kBAAU,MAAA,CAAA,YAAA;AACR,QAAA,MAAMC,KAAQ,GAAA,IAAA,CAAKC,KAAMD,CAAAA,KAAAA,CAAME,KAAK,EAAA;AACpC,QAAM3B,MAAAA,OAAAA,CAAQI,KAAK,OAAS,EAAA;AAAEL,UAAAA,IAAAA;AAAM0B,UAAAA,KAAAA;AAAOZ,UAAAA,MAAAA,EAAQ,IAAKA,CAAAA;SAAO,CAAA;AAE/D,QAAA,MAAM,EAAEe,MAAQC,EAAAA,WAAAA,EAAgB,GAAA,IAAA,CAAKC,aAAaL,KAAAA,CAAAA;AAClD,QAAMM,MAAAA,SAAAA,GAAY,MAAM,IAAA,CAAKL,KAAM7B,CAAAA,GAAAA,CAChCmC,SAAS,IAAKnB,CAAAA,MAAAA,CAAOoB,QAASN,CAAAA,KAAAA,EAAS,EAAA;AACtC7B,UAAAA,MAAAA;UACAoC,MAAQ,EAAA,IAAA;UACRC,MAAQ,EAAA;AACNC,YAAAA,KAAAA,EAAOP,WAAYQ,CAAAA;AACrB;SACF,CAAA,CACCC,OAAQ,CAAA,CAACC,UAAAA,KAAAA;AACRX,UAAO5B,MAAAA,CAAAA,OAAAA,CAAQwC,GAAG,QAAU,EAAA,OAAO,EAAEC,KAAOC,EAAAA,GAAAA,EAAKC,OAAO,KAAA;AACtD,YAAID,IAAAA,GAAAA,KAAQ,aAAiBd,IAAAA,MAAAA,CAAOgB,MAAQ,EAAA;AAC1C,cAAA;AACF;AACA,YAAM5C,MAAAA,OAAAA,CAAQI,KAAK,QAAU,EAAA;AAC3ByC,cAAAA,IAAAA,EAAMjB,MAAOkB,CAAAA,UAAAA;cACbC,MAAQ,EAAA;AAAEL,gBAAAA,GAAAA;AAAKD,gBAAAA,KAAAA,EAAOE,KAAMK,CAAAA,GAAAA;gBAAKC,WAAaR,EAAAA;AAAM,eAAA;cACpD1C,IAAM,EAAA;gBAAEmD,OAAS,EAAA,IAAA;gBAAM,GAAGnD;AAAK,eAAA;AAC/Bc,cAAAA,MAAAA,EAAQ,IAAKA,CAAAA;aACf,CAAA;WACF,CAAA;AACAe,UAAO5B,MAAAA,CAAAA,OAAAA,CAAQwC,GAAG,eAAiB,EAAA,OAAO,EAAEE,GAAKS,EAAAA,KAAAA,EAAOV,OAAO,KAAA;AAC7D,YAAMzC,MAAAA,OAAAA,CAAQI,KAAK,eAAiB,EAAA;AAClCyC,cAAAA,IAAAA,EAAMjB,MAAOkB,CAAAA,UAAAA;cACbC,MAAQ,EAAA;AAAEL,gBAAAA,GAAAA;gBAAKD,KAAOU,EAAAA,KAAAA;gBAAOF,WAAaR,EAAAA;AAAM,eAAA;cAChD1C,IAAM,EAAA;gBAAEmD,OAAS,EAAA,IAAA;gBAAM,GAAGnD;AAAK;aACjC,CAAA;WACF,CAAA;AAEAwC,UAAAA,UAAAA,CAAWC,GAAG,UAAY,EAAA,OAAO,EAAEC,KAAAA,EAAOW,WAAW,KAAA;AACnD,YAAA,IAAIxB,OAAOgB,MAAQ,EAAA;AACjBQ,cAAAA,SAAAA,CAAUC,KAAK,EAAA;AACf,cAAA;AACF;AAEA,YAAA,MAAMzB,MAAOd,CAAAA,GAAAA,CAAI2B,KAAMa,CAAAA,cAAAA,EAAc,CAAA;AACrC,YAAI1B,IAAAA,MAAAA,CAAO2B,YAAaC,CAAAA,WAAAA,KAAgBC,MAAW,EAAA;AACjDL,cAAAA,SAAAA,CAAUC,KAAK,EAAA;AACjB;WACF,CAAA;SACF,CAAA;AAEF,QAAA,MAAMzB,OAAO8B,GAAG,EAAA;AAChB,QAAM,MAAA,IAAA,CAAK7C,MAAO8C,CAAAA,UAAAA,CAChB,IAAK9C,CAAAA,MAAAA,CAAOoB,QAAS2B,CAAAA,MAAAA,CAAO,CAACC,GAAAA,KAAQC,kBAAQD,CAAAA,GAAAA,CAAI9D,IAAM,EAAA;AAACE,UAAAA;AAAe,SAAA,CAAA,KAAM,IAAA,CAAA,CAAA;AAG/E,QAAO,OAAA;AACL8D,UAAAA,KAAAA,EAAOnC,MAAOkB,CAAAA,UAAAA;UACdE,GAAKjB,EAAAA;AACP,SAAA;OAtDQ,EAAA,UAAA,CAAA;MAwDViC,MAAQ,EAAA;QACNC,UAAY,EAAA,IAAA,CAAKC,QAAQC,SAAWC,EAAAA,iBAAAA;AACpCtE,QAAAA;AACF;AACF,KAAA,EAAGuE,GAAG,EAAA;AACR;AAEA,EAAA,MAAMC,KAAK,EAAEP,KAAAA,EAAOjE,MAAQC,EAAAA,IAAAA,EAAMC,SAA+B,EAAA;AAC/DuE,IAAQC,OAAAA,CAAAA,GAAAA,CAAI,yCAAyCT,KAAAA,CAAAA;AAErD,IAAMO,MAAAA,IAAAA,GAAO,IAAK5C,CAAAA,KAAAA,CAAMD,KAAMgD,CAAAA,IAAAA,CAAK,CAACC,CAAMA,KAAAA,CAAAA,CAAEC,IAASZ,KAAAA,KAAAA,CAAMa,SAAS,CAAA;AACpE,IAAA,IAAI,CAACN,IAAM,EAAA;AACTC,MAAQC,OAAAA,CAAAA,GAAAA,CAAI,iBAAmBT,EAAAA,KAAAA,CAAMa,SAAS,CAAA;AAC9C,MAAA,MAAM,IAAIC,qBACR,CAAA,MAAM,IAAKpG,CAAAA,gBAAAA,CAAiBS,kBAAkBqC,MAAO,CAAA;AACnDqD,QAAAA,SAAAA,EAAWb,KAAMa,CAAAA,SAAAA;AACjBE,QAAAA,eAAAA,EAAiB,KAAKpD,KAAMD,CAAAA,KAAAA,CAAMsD,IAAI,CAACL,CAAAA,KAAMA,EAAEC,IAAI;AACrD,OAAA,CAAA,CAAA;AAEJ;AACAJ,IAAQC,OAAAA,CAAAA,GAAAA,CAAI,aAAeF,EAAAA,IAAAA,CAAKK,IAAI,CAAA;AAEpC,IAAI,IAAA;AACFJ,MAAQC,OAAAA,CAAAA,GAAAA,CAAI,iCAAmCT,EAAAA,KAAAA,CAAMiB,UAAU,CAAA;AAC/D,MAAIC,IAAAA,WAAAA;AACJ,MAAI,IAAA;AACFA,QAAAA,WAAAA,GAAc,MAAMX,IAAAA,CAAKY,KAAMnB,CAAAA,KAAAA,CAAMiB,UAAU,CAAA;AAC/CT,QAAQC,OAAAA,CAAAA,GAAAA,CAAI,sBAAsBS,WAAAA,CAAAA;AACpC,OAAA,CAAA,OAASE,UAAY,EAAA;AACnBZ,QAAQjE,OAAAA,CAAAA,KAAAA,CAAM,8BAA8B6E,UAAAA,CAAAA;AAC5C,QAAMC,MAAAA,YAAAA,GAAe,CAAkCd,+BAAAA,EAAAA,IAAAA,CAAKK,IAAI,CAAA,EAAA,EAAKQ,UAAsBE,YAAAA,KAAAA,GAAQF,UAAWG,CAAAA,OAAAA,GAAUC,MAAOJ,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA;AAC/H,QAAMK,MAAAA,gBAAAA,GAAmBL,sBAAsBE,KAAQ,GAAA;AAAC,UAAA;YACtDI,OAAS,EAAA,QAAA;YACTC,YAAc,EAAA,EAAA;YACdC,UAAY,EAAA,UAAA;AACZC,YAAAA,MAAAA,EAAQ,EAAC;AACTN,YAAAA,OAAAA,EAASH,UAAWG,CAAAA;AACtB;AAAK7B,SAAAA,GAAAA,KAAAA,CAAAA;AACL,QAAM,MAAA,IAAIoC,mCAAyBT,CAAAA,YAAAA,EAAcI,gBAAAA,CAAAA;AACnD;AAEAjB,MAAAA,OAAAA,CAAQC,IAAI,gBAAA,CAAA;AACZ,MAAA,MAAMsB,MAAS,GAAA,MAAMxB,IAAKyB,CAAAA,GAAAA,CAAId,WAAa,EAAA;AAAEnF,QAAAA;OAAO,CAAA;AACpDyE,MAAQC,OAAAA,CAAAA,GAAAA,CAAI,8BAA8BsB,MAAAA,CAAAA;AAE1C,MAAM9F,MAAAA,OAAAA,CAAQI,KAAK,QAAU,EAAA;QAC3ByC,IAAMkB,EAAAA,KAAAA;QACNhB,MAAQ,EAAA;UACNL,GAAK,EAAA,aAAA;AACLD,UAAAA,KAAAA,EAAOqD,OAAOxC,cAAc,EAAA;UAC5BL,WAAa6C,EAAAA;AACf,SAAA;QACA/F,IAAM,EAAA;UAAE,GAAGA,IAAAA;UAAMmD,OAAS,EAAA;AAAK,SAAA;AAC/BrC,QAAAA,MAAAA,EAAQ,IAAKA,CAAAA;OACf,CAAA;AAEA,MAAO,OAAA;AACLiF,QAAAA,MAAAA,EAAQA,OAAOxC,cAAc,EAAA;QAC7BJ,OAAS,EAAA;AACX,OAAA;AACF,KAAA,CAAA,OAAS5C,KAAO,EAAA;AACdiE,MAAQjE,OAAAA,CAAAA,KAAAA,CAAM,0BAA0BA,KAAAA,CAAAA;AACxC,MAAA,IAAIA,iBAAiBuF,mCAA0B,EAAA;AAC7CtB,QAAAA,OAAAA,CAAQC,IAAI,wBAAA,CAAA;AACZ,QAAA,MAAM,IAAIK,qBACR,CAAA,MAAM,IAAKpG,CAAAA,gBAAAA,CAAiBa,eAAeiC,MAAO,CAAA;AAChDqD,UAAAA,SAAAA,EAAWN,IAAKK,CAAAA,IAAAA;AAChBqB,UAAAA,aAAAA,EAAe1F,KAAMgF,CAAAA,OAAAA;AACrBW,UAAAA,iBAAAA,EAAmB3F,KAAMkF,CAAAA;AAC3B,SAAA,CAAA,CAAA;AAEJ;AAEA,MAAA,MAAM,IAAIX,qBACR,CAAA,MAAM,IAAKpG,CAAAA,gBAAAA,CAAiBW,UAAUmC,MAAO,CAAA;AAC3CqD,QAAAA,SAAAA,EAAWN,IAAKK,CAAAA,IAAAA;AAChBqB,QAAAA,aAAAA,EAAe1F,KAAiB+E,YAAAA,KAAAA,GAAQ/E,KAAMgF,CAAAA,OAAAA,GAAUC,OAAOjF,KAAAA;AACjE,OAAA,CAAA,CAAA;AAEJ;AACF;AAEA,EAAA,IACc4F,SAAY,GAAA;AACxB,IAAA,MAAMC,IAAO,GAAA;MACXrH,IAAM,EAAA;AACJwG,QAAAA,OAAAA,kBAAU,MAAA,CAAA,CAAA,EAAEc,MAAM,EAAA,KAChBA,MAAW,KAAA,IAAA,IAAQ,IAAK1E,CAAAA,KAAAA,CAAMb,MAAOwF,CAAAA,OAAAA,EACjCtF,GAAAA,uBAAAA,CAAYC,EAAG,CAAA;AACbC,UAAAA,IAAAA,EAAMC,gBAAKG,CAAAA,IAAAA;AACXD,UAAAA,IAAAA,EAAMgF,UAAU,IAAK3H,CAAAA,gBAAAA,CAAiBe,SAAU+B,CAAAA,MAAAA,CAAO,EAAC,CAAA;UACxDxB,IAAM,EAAA;AACJuG,YAAAA,SAAAA,sBAAeC,IAAAA;AACjB;AACF,SAAA,IACA9C,MATG,EAAA,SAAA;AAUX,OAAA;MACA/E,MAAQ,EAAA;QACN8H,SAAW,EAAA;AACT/E,UAAAA,KAAAA,kBAAO,MAAA,CAAA,YAAA;AACL,YAAO,OAAA,MAAMgF,QAAQC,GACnB,CAAA,IAAA,CAAKhF,MAAMD,KAAMsD,CAAAA,GAAAA,CAAI,OAAOT,IAAU,MAAA;AACpCK,cAAAA,IAAAA,EAAML,IAAKK,CAAAA,IAAAA;cACXgC,WAAarC,EAAAA,IAAAA,CAAKqC,WAAYC,CAAAA,UAAAA,CAAW,IAAM,EAAA,GAAA,CAAKC,CAAAA,OAAAA,CAAQ,KAAO,EAAA,EAAA,CAAIC,CAAAA,MAAAA,CAAO,GAAA,CAAA;AAC9EC,cAAAA,MAAAA,EAAQC,KAAKC,SACX,CAAA,MAAM3C,IAAK4C,CAAAA,kBAAAA,oBACV,CAAA,MAAA;AACC,gBAAMC,MAAAA,WAAAA,uBAAkBC,GAAI,CAAA;AAAC,kBAAA,WAAA;AAAa,kBAAA,WAAA;AAAa,kBAAA;AAAU,iBAAA,CAAA;AACjE,gBAAA,OAAO,CAAC1E,GAAKD,EAAAA,KAAAA,KAAW0E,YAAYE,GAAI3E,CAAAA,GAAAA,IAAOe,MAAYhB,GAAAA,KAAAA;AAC7D,eAAA,GAAA;AAEJ,aAAA,CAAA,CAAA,CAAA;WAZG,EAAA,OAAA;AAeT,SAAA;QACA6C,OAAS,kBAAA,MAAA,CAAA,YACPvE,wBAAYC,EAAG,CAAA;AACbC,UAAAA,IAAAA,EAAMC,gBAAKoG,CAAAA,MAAAA;UACXlG,IAAM,EAAA,IAAA,CAAK3C,gBAAiBC,CAAAA,MAAAA,CAAO6C,MAAO,CAAA;AACxCE,YAAAA,KAAAA,EAAO,MAAM0E,IAAAA,CAAKzH,MAAO8H,CAAAA,SAAAA,CAAU/E,KAAK,EAAA;YACxC8F,YAAc9D,EAAAA,MAAAA;YACd6C,SAAW,EAAA,iBAAA,IAAIC,IAAAA,EAAAA,EAAOiB,WAAW;WACnC,CAAA;UACAzH,IAAM,EAAA;AACJuG,YAAAA,SAAAA,sBAAeC,IAAAA;AACjB;AACF,SAAA,CAXO,EAAA,SAAA;AAYX;AACF,KAAA;AACA,IAAOJ,OAAAA,IAAAA;AACT;EAEA,MAAgBsB,UAAAA,CAAW,EAAErB,MAAAA,EAA4C,EAAA;AACvE,IAAA,MAAM,EAAEvF,MAAAA,EAAQ6G,OAAS7H,EAAAA,GAAAA,KAAQ,IAAK6B,CAAAA,KAAAA;AAEtC,IAAA,MAAMiG,gBAAmB,GAAA;SAAID,OAAQzF,CAAAA,QAAAA;MAAU,IAAKiE,CAAAA,SAAAA,CAAUpH,KAAKwG,OAAQ,CAAA;AAAEc,QAAAA;OAAO;AACjFxC,KAAAA,CAAAA,MAAAA,CAAOgE,eAAAA,CAAAA,CACP7C,GAAI,CAAA,CAACO,OAAAA,KAAAA;AACJ,MAAIA,IAAAA,OAAAA,CAAQrE,IAASC,KAAAA,gBAAAA,CAAKG,IAAM,EAAA;AAC9B,QAAA,MAAMgF,QAAU,GAAA,CAACf,OAAQlE,CAAAA,IAAAA,CAAKyG,IAAI,EAAA;AAClC,QAAA,MAAMzG,IAAOiF,GAAAA,QAAAA,GAAAA,CACR,IAAK5H,CAAAA,gBAAAA,EAAkBe,aAAaC,8BAAoB8B,EAAAA,MAAAA,CAAO,EAAC,CAChE,GAAA,CAAA,IAAA,CAAK9C,gBAAkBK,EAAAA,IAAAA,IAAQC,2BAAewC,MAAO,CAAA;AACpDG,UAAAA,KAAAA,EAAO4D,OAAQlE,CAAAA,IAAAA;UACfrB,IAAM,EAAA;AACJ,YAAA,GAAGuF,OAASvF,EAAAA,IAAAA;YACZuG,SAAWhB,EAAAA,OAAAA,EAASvF,IAAMuG,EAAAA,SAAAA,EAAWkB,WAAAA;AACvC;SACF,CAAA;AAEJ,QAAA,OAAOzG,wBAAYC,EAAG,CAAA;AACpBC,UAAAA,IAAAA,EAAMC,gBAAKG,CAAAA,IAAAA;AACXD,UAAAA,IAAAA;AACArB,UAAAA,IAAAA,EAAMuF,OAAQvF,CAAAA;SAChB,CAAA;AACF;AACA,MAAOuF,OAAAA,OAAAA;KACT,CAAA;AAEF,IAAMzE,MAAAA,MAAAA,GAAS,IAAIiH,2BAAY,CAAA;AAC7BjI,MAAAA,GAAAA;MACAkI,iBAAmB,EAAA,IAAA;MACnBC,aAAe,EAAA,GAAA;MACfC,QAAU,EAAA;AACRC,QAAAA,eAAAA,CAAgBC,WAAW,EAAA;AAEzB,UAAMC,MAAAA,uBAAAA,GAA0BD,YAAY1D,IAAK,CAAA,CAACZ,QAAQ8D,gBAAiBU,CAAAA,QAAAA,CAASxE,GAAAA,CAAAA,CAAAA;AACpF,UAAA,IAAIuE,uBAA2BA,IAAAA,uBAAAA,KAA4BE,WAAKX,CAAAA,gBAAAA,CAAmB,EAAA;AACjF,YAAOS,OAAAA,uBAAAA;AACT;AAEA,UAAA,MAAMG,WACJJ,GAAAA,WAAAA,CAAYK,MAAS,GAAA,CAAA,GAChBL,WAAY1D,CAAAA,IAAAA,CACX,CAACZ,GAAAA,KACCA,GAAI5C,CAAAA,IAAAA,KAASC,gBAAKC,CAAAA,SAAAA,IAAa2C,mBAAQD,GAAK,EAAA;AAAC,YAAA,KAAA;AAAO,YAAA;WAAU,CAAM,KAAA,KAAA,CACnEsE,IAAAA,WAAAA,CAAY1D,IAAK,CAAA,CAACZ,QAAQA,GAAI5C,CAAAA,IAAAA,KAASC,gBAAKC,CAAAA,SAAS,CAC1D,GAAA,IAAA;AAEN,UAAA,IAAI,CAACoH,WAAa,EAAA;AAChB,YAAM,MAAA,IAAI1D,sBAAW,8DAAA,CAAA;AACvB;AACA,UAAO0D,OAAAA,WAAAA;AACT;AACF;KACF,CAAA;AACA,IAAA,MAAM1H,OAAO4H,OAAQ,CAAA;MAAC,MAAM,IAAA,CAAKvC,SAAUxH,CAAAA,MAAAA,CAAO4G,OAAO,EAAA;AAAOqC,MAAAA,GAAAA;AAAiB,KAAA,CAAA;AACjF,IAAO9G,OAAAA,MAAAA;AACT;AAEUiB,EAAAA,YAAAA,CAAaL,KAAkB,EAAA;AACvC,IAAMI,MAAAA,WAAAA,GAAcwE,eAAQ5E,KAAAA,CAAAA,GACxB,IAAIiH,MAAO,CAAA,CAAA,qCAAA,CAAuC,IAClD,IAAIA,MAAAA,CACF,4DAA4DjH,KAAMsD,CAAAA,GAAAA,CAAI,CAACT,IAASA,KAAAA,IAAAA,CAAKK,IAAI,CAAEgE,CAAAA,IAAAA,CAAK,GAAA,CAAA,CAAsD,gDAAA,CAAA,CAAA;AAG5J,IAAM/G,MAAAA,MAAAA,GAAS,IAAIgH,+BACjB,CAAA;MACEC,OAAS,EAAA;QACPC,MAAQ,EAAA,UAAA;QACRC,IAAM,EAAA;AAAC,UAAA,WAAA;AAAa,UAAA;;QACpBC,OAAS,EAAA,IAAA;AACTrG,QAAAA,KAAAA,EAAO,IAAIsG,wBAAeC,CAAAA,KAAAA,CAAEC,QAASC,CAAAA,GAAAA,CAAI,CAAA,CAAA;AAC3C,OAAA;MACAxE,SAAW,EAAA;QACTkE,MAAQ,EAAA,gBAAA;QACRC,IAAM,EAAA;AAAC,UAAA;;AACPpG,QAAAA,KAAAA,EAAO,IAAIsG,wBACTC,CAAAA,KAAAA,CAAEG,SACAH,KAAEC,CAAAA,MAAAA,GAAStB,IAAI,EAAA,EACfqB,MAAEI,IAAK7H,CAAAA,KAAAA,CAAMsD,IAAI,CAACT,IAAAA,KAASA,KAAKK,IAAI,CAAA,CAAA,CAAA;AAG1C,OAAA;MACAK,UAAY,EAAA;QACV8D,MAAQ,EAAA,iBAAA;QACRC,IAAM,EAAA;AAAC,UAAA;;QACPQ,KAAO,EAAA,IAAA;AACP5G,QAAAA,KAAAA,EAAO,IAAI6G,yBAAgB,CAAA;AACzBzC,UAAAA,MAAAA,EAAQmC,KAAEO,CAAAA,MAAAA,CAAO,EAAC,EAAGC,WAAW,EAAA;AAChCC,UAAAA,IAAAA,EAAM,EAAC;UACPC,SAAW,EAAA;AAAC,YAAA,GAAA;AAAK,YAAA;;SACnB;AACF,OAAA;MACApG,WAAa,EAAA;QACXsF,MAAQ,EAAA,kBAAA;QACRC,IAAM,EAAA;AAAC,UAAA;;QACPQ,KAAO,EAAA,IAAA;AACP5G,QAAAA,KAAAA,EAAO,IAAIsG,wBAAAA,CAAeC,KAAEC,CAAAA,MAAAA,EAAM;AACpC,OAAA;MACAU,YAAc,EAAA;QACZf,MAAQ,EAAA,eAAA;AACRC,QAAAA,IAAAA,EAAM,EAAA;QACNC,OAAS,EAAA,IAAA;QACTO,KAAO,EAAA,IAAA;AACP5G,QAAAA,KAAAA,EAAO,IAAIsG,wBAAeC,CAAAA,KAAAA,CAAEC,QAASC,CAAAA,GAAAA,CAAI,CAAA,CAAA;AAC3C;KAEF,EAAA;MACEU,gBAAkB,EAAA,IAAA;MAClBC,WAAa,EAAA,IAAA;MACbC,QAAU,kBAAA,MAAA,CAAA,CAACC,UACTA,KACI,GAAA;AACE,QAAA;UAAEvH,GAAK,EAAA,SAAA;UAAWD,KAAO,EAAA;AAA+B,SAAA;AACxD,QAAA;UAAEC,GAAK,EAAA,cAAA;UAAgBD,KAAOwH,EAAAA;AAAM;AAEtC,OAAA,GAAA,EANI,EAAA,UAAA;KAOZ,CAAA;AAGF,IAAO,OAAA;AACLrI,MAAAA,MAAAA;AACAC,MAAAA;AACF,KAAA;AACF;AACF;;;IA9WWqI,UAAY,EAAA;;;;;;;IA+LZA,UAAY,EAAA","file":"runner.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseRunner, BeeRunnerLLMInput, BeeRunnerToolInput } from \"@/agents/bee/runners/base.js\";\nimport type { BeeAgentRunIteration, BeeParserInput, BeeRunInput } from \"@/agents/bee/types.js\";\nimport { Retryable } from \"@/internals/helpers/retryable.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport {\n  BeeAssistantPrompt,\n  BeeSchemaErrorPrompt,\n  BeeSystemPrompt,\n  BeeToolErrorPrompt,\n  BeeToolInputErrorPrompt,\n  BeeToolNoResultsPrompt,\n  BeeToolNotFoundPrompt,\n  BeeUserEmptyPrompt,\n  BeeUserPrompt,\n} from \"@/agents/bee/prompts.js\";\nimport { AnyTool, Tool, ToolError, ToolInputValidationError, ToolOutput } from \"@/tools/base.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { isEmpty, isTruthy, last } from \"remeda\";\nimport { LinePrefixParser, LinePrefixParserError } from \"@/agents/parsers/linePrefix.js\";\nimport { JSONParserField, ZodParserField } from \"@/agents/parsers/field.js\";\nimport { z } from \"zod\";\nimport { BaseMessage, Role } from \"@/llms/primitives/message.js\";\nimport { TokenMemory } from \"@/memory/tokenMemory.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\n\nexport class DefaultRunner extends BaseRunner {\n  @Cache({ enumerable: false })\n  public get defaultTemplates() {\n    return {\n      system: BeeSystemPrompt,\n      assistant: BeeAssistantPrompt,\n      user: BeeUserPrompt,\n      schemaError: BeeSchemaErrorPrompt,\n      toolNotFoundError: BeeToolNotFoundPrompt,\n      toolError: BeeToolErrorPrompt,\n      toolInputError: BeeToolInputErrorPrompt,\n      userEmpty: BeeUserEmptyPrompt,\n      toolNoResultError: BeeToolNoResultsPrompt,\n    };\n  }\n\n  static {\n    this.register();\n  }\n\n  async llm({ signal, meta, emitter }: BeeRunnerLLMInput): Promise<BeeAgentRunIteration> {\n    const tempMessageKey = \"tempMessage\" as const;\n\n    return new Retryable({\n      onRetry: () => emitter.emit(\"retry\", { meta }),\n      onError: async (error) => {\n        await emitter.emit(\"error\", { error, meta });\n        this.failedAttemptsCounter.use(error);\n\n        if (error instanceof LinePrefixParserError) {\n          // Prevent hanging on EOT\n          if (error.reason === LinePrefixParserError.Reason.NoDataReceived) {\n            await this.memory.add(\n              BaseMessage.of({\n                role: Role.ASSISTANT,\n                text: \"\\n\",\n                meta: {\n                  [tempMessageKey]: true,\n                },\n              }),\n            );\n          } else {\n            await this.memory.add(\n              BaseMessage.of({\n                role: Role.USER,\n                text: this.templates.schemaError.render({}),\n                meta: {\n                  [tempMessageKey]: true,\n                },\n              }),\n            );\n          }\n        }\n      },\n      executor: async () => {\n        const tools = this.input.tools.slice();\n        await emitter.emit(\"start\", { meta, tools, memory: this.memory });\n\n        const { parser, parserRegex } = this.createParser(tools);\n        const llmOutput = await this.input.llm\n          .generate(this.memory.messages.slice(), {\n            signal,\n            stream: true,\n            guided: {\n              regex: parserRegex.source,\n            },\n          })\n          .observe((llmEmitter) => {\n            parser.emitter.on(\"update\", async ({ value, key, field }) => {\n              if (key === \"tool_output\" && parser.isDone) {\n                return;\n              }\n              await emitter.emit(\"update\", {\n                data: parser.finalState,\n                update: { key, value: field.raw, parsedValue: value },\n                meta: { success: true, ...meta },\n                memory: this.memory,\n              });\n            });\n            parser.emitter.on(\"partialUpdate\", async ({ key, delta, value }) => {\n              await emitter.emit(\"partialUpdate\", {\n                data: parser.finalState,\n                update: { key, value: delta, parsedValue: value },\n                meta: { success: true, ...meta },\n              });\n            });\n\n            llmEmitter.on(\"newToken\", async ({ value, callbacks }) => {\n              if (parser.isDone) {\n                callbacks.abort();\n                return;\n              }\n\n              await parser.add(value.getTextContent());\n              if (parser.partialState.tool_output !== undefined) {\n                callbacks.abort();\n              }\n            });\n          });\n\n        await parser.end();\n        await this.memory.deleteMany(\n          this.memory.messages.filter((msg) => getProp(msg.meta, [tempMessageKey]) === true),\n        );\n\n        return {\n          state: parser.finalState,\n          raw: llmOutput,\n        };\n      },\n      config: {\n        maxRetries: this.options.execution?.maxRetriesPerStep,\n        signal,\n      },\n    }).get();\n  }\n\n  async tool({ state, signal, meta, emitter }: BeeRunnerToolInput) {\n    console.log('DefaultRunner.tool called with state:', state);\n    \n    const tool = this.input.tools.find((t) => t.name === state.tool_name);\n    if (!tool) {\n      console.log('Tool not found:', state.tool_name);\n      throw new AgentError(\n        await this.defaultTemplates.toolNotFoundError.render({\n          tool_name: state.tool_name,\n          available_tools: this.input.tools.map((t) => t.name),\n        }),\n      );\n    }\n    console.log('Found tool:', tool.name);\n\n    try {\n      console.log('Attempting to parse tool input:', state.tool_input);\n      let parsedInput;\n      try {\n        parsedInput = await tool.parse(state.tool_input);\n        console.log('Parsed tool input:', parsedInput);\n      } catch (parseError) {\n        console.error('Tool input parsing failed:', parseError);\n        const errorMessage = `Failed to parse input for tool ${tool.name}: ${parseError instanceof Error ? parseError.message : String(parseError)}`;\n        const validationErrors = parseError instanceof Error ? [{\n          keyword: 'custom',\n          instancePath: '',\n          schemaPath: '#/custom',\n          params: {},\n          message: parseError.message\n        }] : undefined;\n        throw new ToolInputValidationError(errorMessage, validationErrors);\n      }\n\n      console.log('Executing tool');\n      const output = await tool.run(parsedInput, { signal });\n      console.log('Tool execution successful:', output);\n\n      await emitter.emit(\"update\", {\n        data: state,\n        update: {\n          key: \"tool_output\",\n          value: output.getTextContent(),\n          parsedValue: output,\n        },\n        meta: { ...meta, success: true },\n        memory: this.memory,\n      });\n\n      return {\n        output: output.getTextContent(),\n        success: true,\n      };\n    } catch (error) {\n      console.error('Tool execution failed:', error);\n      if (error instanceof ToolInputValidationError) {\n        console.log('Input validation error');\n        throw new AgentError(\n          await this.defaultTemplates.toolInputError.render({\n            tool_name: tool.name,\n            error_message: error.message,\n            validation_errors: error.validationErrors,\n          }),\n        );\n      }\n\n      throw new AgentError(\n        await this.defaultTemplates.toolError.render({\n          tool_name: tool.name,\n          error_message: error instanceof Error ? error.message : String(error),\n        }),\n      );\n    }\n  }\n\n  @Cache({ enumerable: false })\n  protected get renderers() {\n    const self = {\n      user: {\n        message: ({ prompt }: BeeRunInput) =>\n          prompt !== null || this.input.memory.isEmpty()\n            ? BaseMessage.of({\n                role: Role.USER,\n                text: prompt || this.defaultTemplates.userEmpty.render({}),\n                meta: {\n                  createdAt: new Date(),\n                },\n              })\n            : undefined,\n      },\n      system: {\n        variables: {\n          tools: async () => {\n            return await Promise.all(\n              this.input.tools.map(async (tool) => ({\n                name: tool.name,\n                description: tool.description.replaceAll(\"\\n\", \".\").replace(/\\.$/, \"\").concat(\".\"),\n                schema: JSON.stringify(\n                  await tool.getInputJsonSchema(),\n                  (() => {\n                    const ignoredKeys = new Set([\"minLength\", \"maxLength\", \"$schema\"]);\n                    return (key, value) => (ignoredKeys.has(key) ? undefined : value);\n                  })(),\n                ),\n              })),\n            );\n          },\n        },\n        message: async () =>\n          BaseMessage.of({\n            role: Role.SYSTEM,\n            text: this.defaultTemplates.system.render({\n              tools: await self.system.variables.tools(),\n              instructions: undefined,\n              createdAt: new Date().toISOString(),\n            }),\n            meta: {\n              createdAt: new Date(),\n            },\n          }),\n      },\n    };\n    return self;\n  }\n\n  protected async initMemory({ prompt }: BeeRunInput): Promise<BaseMemory> {\n    const { memory: history, llm } = this.input;\n\n    const prevConversation = [...history.messages, this.renderers.user.message({ prompt })]\n      .filter(isTruthy)\n      .map((message) => {\n        if (message.role === Role.USER) {\n          const isEmpty = !message.text.trim();\n          const text = isEmpty\n            ? (this.defaultTemplates?.userEmpty ?? BeeUserEmptyPrompt).render({})\n            : (this.defaultTemplates?.user ?? BeeUserPrompt).render({\n                input: message.text,\n                meta: {\n                  ...message?.meta,\n                  createdAt: message?.meta?.createdAt?.toISOString?.(),\n                },\n              });\n\n          return BaseMessage.of({\n            role: Role.USER,\n            text,\n            meta: message.meta,\n          });\n        }\n        return message;\n      });\n\n    const memory = new TokenMemory({\n      llm,\n      capacityThreshold: 0.85,\n      syncThreshold: 0.5,\n      handlers: {\n        removalSelector(curMessages) {\n          // First we remove messages from the past conversations\n          const prevConversationMessage = curMessages.find((msg) => prevConversation.includes(msg));\n          if (prevConversationMessage && prevConversationMessage !== last(prevConversation)) {\n            return prevConversationMessage;\n          }\n\n          const lastMessage =\n            curMessages.length > 3\n              ? (curMessages.find(\n                  (msg) =>\n                    msg.role === Role.ASSISTANT && getProp(msg, [\"ctx\", \"success\"]) === false,\n                ) ?? curMessages.find((msg) => msg.role === Role.ASSISTANT))\n              : null;\n\n          if (!lastMessage) {\n            throw new AgentError(\"Cannot fit the current conversation into the context window!\");\n          }\n          return lastMessage;\n        },\n      },\n    });\n    await memory.addMany([await this.renderers.system.message(), ...prevConversation]);\n    return memory;\n  }\n\n  protected createParser(tools: AnyTool[]) {\n    const parserRegex = isEmpty(tools)\n      ? new RegExp(`Thought: .+\\\\nFinal Answer: [\\\\s\\\\S]+`)\n      : new RegExp(\n          `Thought: .+\\\\n(?:Final Answer: [\\\\s\\\\S]+|Function Name: (${tools.map((tool) => tool.name).join(\"|\")})\\\\nFunction Input: \\\\{.*\\\\}\\\\nFunction Output:)`,\n        );\n\n    const parser = new LinePrefixParser<BeeParserInput>(\n      {\n        thought: {\n          prefix: \"Thought:\",\n          next: [\"tool_name\", \"final_answer\"],\n          isStart: true,\n          field: new ZodParserField(z.string().min(1)),\n        },\n        tool_name: {\n          prefix: \"Function Name:\",\n          next: [\"tool_input\"],\n          field: new ZodParserField(\n            z.pipeline(\n              z.string().trim(),\n              z.enum(tools.map((tool) => tool.name) as [string, ...string[]]),\n            ),\n          ),\n        },\n        tool_input: {\n          prefix: \"Function Input:\",\n          next: [\"tool_output\"],\n          isEnd: true,\n          field: new JSONParserField({\n            schema: z.object({}).passthrough(),\n            base: {},\n            matchPair: [\"{\", \"}\"],\n          }),\n        },\n        tool_output: {\n          prefix: \"Function Output:\",\n          next: [\"final_answer\"],\n          isEnd: true,\n          field: new ZodParserField(z.string()),\n        },\n        final_answer: {\n          prefix: \"Final Answer:\",\n          next: [],\n          isStart: true,\n          isEnd: true,\n          field: new ZodParserField(z.string().min(1)),\n        },\n      },\n      {\n        waitForStartNode: true,\n        endOnRepeat: true,\n        fallback: (stash) =>\n          stash\n            ? [\n                { key: \"thought\", value: \"I now know the final answer.\" },\n                { key: \"final_answer\", value: stash },\n              ]\n            : [],\n      },\n    );\n\n    return {\n      parser,\n      parserRegex,\n    } as const;\n  }\n}\n"]}