{"version":3,"sources":["../src/schedules/worker.ts"],"names":["MastraWorker","PullTransport","RequestContext"],"mappings":";;;;;;AAoBO,IAAM,qBAAA,GAAwB;AAErC,IAAM,aAAA,GAAgB,wBAAA;AAyBf,IAAM,mBAAA,GAAN,cAAkCA,8BAAA,CAAa;AAAA,EAC3C,IAAA,GAAO,gBAAA;AAAA,EAEhB,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EAEX,WAAA,CAAY,MAAA,GAAoC,EAAC,EAAG;AAClD,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AAAA,EACjB;AAAA,EAEA,MAAM,KAAK,IAAA,EAAiC;AAC1C,IAAA,MAAM,KAAA,CAAM,KAAK,IAAI,CAAA;AAErB,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,MAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,IAChE;AAAA,EACF;AAAA,EAEA,MAAM,KAAA,GAAuB;AAC3B,IAAA,IAAI,KAAK,QAAA,EAAU;AACnB,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAOjF,IAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,cAAA,IAAkB,CAAC,MAAM,CAAA;AACxD,IAAA,IAAI,CAAC,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA,EAAG;AAC3B,MAAA,MAAM,EAAA,GAAoB,CAAC,KAAA,EAAO,GAAA,EAAK,IAAA,KAAS;AAC9C,QAAA,KAAK,IAAA,CAAK,YAAA,CAAa,KAAA,EAAO,GAAA,EAAK,IAAI,CAAA;AAAA,MACzC,CAAA;AACA,MAAA,IAAA,CAAK,OAAA,GAAU,EAAA;AACf,MAAA,MAAM,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,SAAA,CAAU,uBAAuB,EAAE,CAAA;AAC1D,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAA,IAAS,aAAA;AACpC,IAAA,IAAA,CAAK,UAAA,GAAa,IAAIC,+BAAA,CAAc;AAAA,MAClC,MAAA,EAAQ,KAAK,IAAA,CAAK,MAAA;AAAA,MAClB,KAAA;AAAA,MACA,KAAA,EAAO,qBAAA;AAAA,MACP,MAAA,EAAQ,KAAK,IAAA,CAAK;AAAA,KACnB,CAAA;AAED,IAAA,MAAM,IAAA,CAAK,WAAW,KAAA,CAAM;AAAA,MAC1B,KAAA,EAAO,CAAC,KAAA,EAAO,GAAA,EAAK,SAAS,IAAA,CAAK,YAAA,CAAa,KAAA,EAAO,GAAA,EAAK,IAAI;AAAA,KAChE,CAAA;AAED,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,IAAA,GAAsB;AAC1B,IAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AACpB,IAAA,IAAI;AACF,MAAA,IAAI,KAAK,UAAA,EAAY;AACnB,QAAA,MAAM,IAAA,CAAK,WAAW,IAAA,EAAK;AAC3B,QAAA,IAAA,CAAK,UAAA,GAAa,MAAA;AAAA,MACpB;AACA,MAAA,IAAI,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,IAAA,EAAM;AAC7B,QAAA,MAAM,KAAK,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,qBAAA,EAAuB,KAAK,OAAO,CAAA;AACtE,QAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AAAA,MACjB;AAAA,IACF,CAAA,SAAE;AACA,MAAA,IAAA,CAAK,QAAA,GAAW,KAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,IAAI,SAAA,GAAqB;AACvB,IAAA,OAAO,IAAA,CAAK,QAAA;AAAA,EACd;AAAA,EAEA,MAAM,YAAA,CAAa,KAAA,EAAc,GAAA,EAA2B,IAAA,EAA2C;AACrG,IAAA,IAAI,KAAA,CAAM,SAAS,qBAAA,EAAuB;AAExC,MAAA,MAAM,GAAA,IAAM;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AACpB,IAAA,MAAM,UAAU,KAAA,CAAM,IAAA;AACtB,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,SAAA,CAAU,MAAA,EAAQ,OAAO,CAAA;AACpC,MAAA,MAAM,GAAA,IAAM;AAAA,IACd,SAAS,GAAA,EAAK;AACZ,MAAA,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,KAAA,CAAM,2DAAA,EAA6D;AAAA,QACpF,YAAY,OAAA,EAAS,UAAA;AAAA,QACrB,SAAS,OAAA,EAAS,OAAA;AAAA,QAClB,KAAA,EAAO;AAAA,OACR,CAAA;AACD,MAAA,MAAM,IAAA,IAAO;AAAA,IACf;AAAA,EACF;AAAA,EAEA,MAAM,SAAA,CAAU,MAAA,EAAgB,IAAA,EAAiD;AAC/E,IAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,eAAA,EAAiB,QAAO,GAAI,IAAA;AACzD,IAAA,MAAM,YAAA,GAAe,KAAK,GAAA,EAAI;AAE9B,IAAA,MAAM,MAAA,GAAS,MAAM,oBAAA,CAAqB,MAAA,EAAQ,YAAY,MAAA,EAAQ;AAAA,MACpE,WAAA,EAAa,KAAK,WAAA,IAAe,eAAA;AAAA,MACjC,OAAA,EAAS,IAAI,IAAA,CAAK,YAAY,CAAA;AAAA,MAC9B,MAAA,EAAQ,KAAK,IAAA,EAAM;AAAA,KACpB,CAAA;AAED,IAAA,MAAM,KAAK,cAAA,CAAe;AAAA,MACxB,UAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,OAAO,MAAA,CAAO,MAAA;AAAA,MACd,WAAA,EAAa,KAAK,WAAA,IAAe;AAAA,KAClC,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,eAAe,IAAA,EASH;AAChB,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,IAAA,EAAM,OAAA,CAAQ,SAAS,WAAW,CAAA;AAC3D,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,aAAA,CAAc;AAAA,QACxB,YAAY,IAAA,CAAK,UAAA;AAAA,QACjB,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,OAAA;AAAA,QAC1B,iBAAiB,IAAA,CAAK,eAAA;AAAA,QACtB,cAAc,IAAA,CAAK,YAAA;AAAA,QACnB,SAAS,IAAA,CAAK,OAAA;AAAA,QACd,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,aAAa,IAAA,CAAK;AAAA,OACnB,CAAA;AAAA,IACH,SAAS,GAAA,EAAK;AACZ,MAAA,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,KAAA,CAAM,+CAAA,EAAiD;AAAA,QACxE,YAAY,IAAA,CAAK,UAAA;AAAA,QACjB,SAAS,IAAA,CAAK,OAAA;AAAA,QACd,KAAA,EAAO;AAAA,OACR,CAAA;AAAA,IACH;AAAA,EACF;AACF;AAgBA,eAAe,SAAA,CAAU,QAAgB,UAAA,EAAmC;AAC1E,EAAA,IAAI;AACF,IAAA,MAAM,QAAQ,MAAM,MAAA,CAAO,UAAA,EAAW,EAAG,SAAS,WAAW,CAAA;AAC7D,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,MAAM,KAAA,CAAM,eAAe,UAAU,CAAA;AAAA,EACvC,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,aAAY,EAAG,KAAA,GAAQ,oCAAoC,EAAE,UAAA,EAAY,OAAO,CAAA;AAAA,EACzF;AACF;AAyBA,eAAsB,qBACpB,MAAA,EACA,UAAA,EACA,MAAA,EACA,GAAA,GAAmC,EAAC,EACsE;AAC1G,EAAA,MAAM,EAAE,SAAQ,GAAI,MAAA;AACpB,EAAA,MAAM,OAAA,GAA+B;AAAA,IACnC,IAAA,EAAM,GAAA,CAAI,WAAA,KAAgB,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,IAChD,OAAA,EAAS,GAAA,CAAI,OAAA,oBAAW,IAAI,IAAA;AAAK,GACnC;AACA,EAAA,MAAM,GAAA,GAAM,GAAA,CAAI,MAAA,IAAU,MAAA,CAAO,SAAA,IAAY;AAE7C,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,IAAI;AACF,MAAA,OAAO,MAAA,CAAO,aAAa,OAAO,CAAA;AAAA,IACpC,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA,GAAG;AACH,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,SAAA,CAAU,QAAQ,UAAU,CAAA;AAClC,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,eAAA;AAAA,MACR,OAAA,EAAS,QAAA;AAAA,MACT,MAAA,EAAQ,UAAU,OAAO,CAAA,sBAAA;AAAA,KAC3B;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAEF,MAAA,CAGA,kBAAA,IAAqB,IAAK,MAAA;AAO9B,EAAA,MAAM,WAAA,GAAc,KAAA,GAChB,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAA,EAAY,MAAA,EAAQ,GAAG,CAAA,GACrD,qBAAA,CAAsB,UAAA,EAAY,MAAM,CAAA;AAE5C,EAAA,MAAM,WAAA,GAAiC,yBAAyB,MAAM,CAAA;AAGtE,EAAA,IAAI,QAAA;AACJ,EAAA,IAAI,OAAO,OAAA,EAAS;AAClB,IAAA,IAAI;AACF,MAAA,MAAM,UAAA,GAAqC;AAAA,QACzC,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,WAAA;AAAA,QACV;AAAA,OACF;AACA,MAAA,QAAA,GAAW,MAAM,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC3C,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,MAAM,OAAA,GAAU;AAAA,UACd,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,KAAA,EAAO,SAAA;AAAA,UACP,KAAA,EAAO,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,UACzD,SAAA,EAAW;AAAA,SACZ;AAAA,OACH;AACA,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,eAAA;AAAA,QACR,OAAA,EAAS,QAAA;AAAA,QACT,QAAQ,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG;AAAA,OACzD;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,aAAa,IAAA,EAAM;AAErB,IAAA,MAAM,YAAA;AAAA,MAAa,GAAA;AAAA,MAAK,MACtB,OAAO,QAAA,GAAW;AAAA,QAChB,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,WAAA;AAAA,QACV,OAAA;AAAA,QACA,OAAA,EAAS,SAAA;AAAA,QACT,SAAA,EAAW;AAAA,OACZ;AAAA,KACH;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU;AAAA,EAC/C;AAEA,EAAA,MAAM,SAAA,GAA+B,cAAA,CAAe,WAAA,EAAa,QAAQ,CAAA;AAKzE,EAAA,MAAM,eAAA,GAAkB;AAAA,IACtB,UAAA;AAAA,IACA,GAAI,UAAU,QAAA,GAAW,EAAE,UAAU,SAAA,CAAU,QAAA,KAAa;AAAC,GAC/D;AAGA,EAAA,IAAI,UAAU,QAAA,EAAU;AACtB,IAAA,IAAI,CAAC,UAAU,UAAA,EAAY;AACzB,MAAA,MAAM,MAAA,GAAS,0CAAA;AACf,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,OAAA,GAAU;AAAA,UACf,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,KAAA,EAAO,KAAA;AAAA,UACP,KAAA,EAAO,IAAI,KAAA,CAAM,MAAM,CAAA;AAAA,UACvB;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,eAAA,EAAiB,OAAA,EAAS,UAAU,MAAA,EAAO;AAAA,IAC9D;AAEA,IAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,SAAA,EAAU;AACrC,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,CAAc,EAAE,QAAA,EAAU,SAAA,CAAU,UAAU,CAAA;AAC1E,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,SAAA,CAAU,QAAQ,UAAU,CAAA;AAClC,QAAA,MAAM,MAAA,GAAS,CAAA,QAAA,EAAW,SAAA,CAAU,QAAQ,CAAA,WAAA,CAAA;AAC5C,QAAA,MAAM,YAAA;AAAA,UAAa,GAAA;AAAA,UAAK,MACtB,OAAO,OAAA,GAAU;AAAA,YACf,MAAA;AAAA,YACA,OAAA;AAAA,YACA,QAAA,EAAU,WAAA;AAAA,YACV,OAAA;AAAA,YACA,KAAA,EAAO,KAAA;AAAA,YACP,KAAA,EAAO,IAAI,KAAA,CAAM,MAAM,CAAA;AAAA,YACvB;AAAA,WACD;AAAA,SACH;AACA,QAAA,OAAO,EAAE,MAAA,EAAQ,gBAAA,EAAkB,OAAA,EAAS,UAAU,MAAA,EAAO;AAAA,MAC/D;AAAA,IACF;AAEA,IAAA,IAAI,YAAA;AACJ,IAAA,IAAI;AACF,MAAA,YAAA,GAAe,KAAA,CAAM,UAAA;AAAA,QACnB;AAAA,UACE,IAAA,EAAM,UAAU,UAAA,IAAc,cAAA;AAAA,UAC9B,OAAA,EAAS,UAAU,OAAA,IAAW,UAAA;AAAA,UAC9B,UAAU,SAAA,CAAU,MAAA;AAAA,UACpB,GAAI,UAAU,UAAA,GAAa,EAAE,YAAY,SAAA,CAAU,UAAA,KAAe,EAAC;AAAA,UACnE,eAAA,EAAiB,oBAAA,CAAqB,SAAA,CAAU,eAAA,EAAiB,eAAe;AAAA,SAClF;AAAA,QACA;AAAA,UACE,YAAY,SAAA,CAAU,UAAA;AAAA,UACtB,UAAU,SAAA,CAAU,QAAA;AAAA,UACpB,GAAI,UAAU,QAAA,GAAW,EAAE,UAAU,SAAA,CAAU,QAAA,KAAa,EAAC;AAAA,UAC7D,GAAI,SAAA,CAAU,MAAA,GAAS,EAAE,MAAA,EAAQ,mBAAmB,SAAA,CAAU,MAAM,CAAA,EAAE,GAAI;AAAC;AAC7E,OACF;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,KAAA,GAAQ,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAChE,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,OAAA,GAAU;AAAA,UACf,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,KAAA,EAAO,KAAA;AAAA,UACP,KAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,eAAA,EAAiB,SAAS,QAAA,EAAU,MAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,IAC7E;AAMA,IAAA,IAAI,OAAA;AACJ,IAAA,IAAI;AACF,MAAA,OAAA,GAAU,MAAM,YAAA,CAAa,QAAA;AAAA,IAC/B,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,KAAA,GAAQ,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAChE,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,OAAA,GAAU;AAAA,UACf,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,KAAA,EAAO,KAAA;AAAA,UACP,KAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,eAAA,EAAiB,SAAS,QAAA,EAAU,MAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,IAC7E;AAEA,IAAA,MAAM,SAAS,OAAA,CAAQ,MAAA;AAGvB,IAAA,MAAM,KAAA,GAAQ,OAAA,IAAW,OAAA,GAAU,OAAA,CAAQ,KAAA,GAAQ,MAAA;AAEnD,IAAA,IAAI,WAAW,SAAA,EAAW;AACxB,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,QAAA,GAAW;AAAA,UAChB,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,OAAA,EAAS,WAAA;AAAA,UACT,KAAA;AAAA,UACA,iBAAA,EAAmB,IAAA;AAAA,UACnB;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,iBAAA,EAAmB,OAAA,EAAS,aAAa,KAAA,EAAM;AAAA,IAClE;AACA,IAAA,IAAI,WAAW,SAAA,EAAW;AAExB,MAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,QAAA,IAAI;AACF,UAAA,MAAM,YAAA,CAAa,SAAA;AAAA,QACrB,CAAA,CAAA,MAAQ;AAAA,QAER;AAAA,MACF;AACA,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,QAAA,GAAW;AAAA,UAChB,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,OAAA,EAAS,WAAA;AAAA,UACT,KAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,iBAAA,EAAmB,OAAA,EAAS,aAAa,KAAA,EAAM;AAAA,IAClE;AACA,IAAA,IAAI,WAAW,SAAA,EAAW;AACxB,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,QAAA,GAAW;AAAA,UAChB,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,OAAA,EAAS,WAAA;AAAA,UACT,KAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,iBAAA,EAAmB,OAAA,EAAS,aAAa,KAAA,EAAM;AAAA,IAClE;AAEA,IAAA,IAAI,WAAW,SAAA,EAAW;AAGxB,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,QAAA,GAAW;AAAA,UAChB,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,OAAA,EAAS,SAAA;AAAA,UACT,KAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,wBAAA,EAA0B,OAAA,EAAS,WAAW,KAAA,EAAM;AAAA,IACvE;AAMA,IAAA,MAAM,YAAA;AAAA,MAAa,GAAA;AAAA,MAAK,MACtB,OAAO,QAAA,GAAW;AAAA,QAChB,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,WAAA;AAAA,QACV,OAAA;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QACT,KAAA;AAAA,QACA;AAAA,OACD;AAAA,KACH;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,iBAAA,EAAmB,OAAA,EAAS,aAAa,KAAA,EAAM;AAAA,EAClE;AAGA,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,QAAA,CAAS,UAAU,MAAA,EAAQ;AAAA,MACpD,eAAA,EAAiB,oBAAA,CAAqB,SAAA,CAAU,eAAA,EAAiB,eAAe;AAAA,KACjF,CAAA;AACD,IAAA,MAAM,KAAA,GAAQ,aAAa,MAAM,CAAA;AACjC,IAAA,MAAM,YAAA;AAAA,MAAa,GAAA;AAAA,MAAK,MACtB,OAAO,QAAA,GAAW;AAAA,QAChB,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,WAAA;AAAA,QACV,OAAA;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QACT,KAAA;AAAA,QACA,MAAA,EAAQ,mBAAmB,MAAM,CAAA;AAAA,QACjC;AAAA,OACD;AAAA,KACH;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS,aAAa,KAAA,EAAM;AAAA,EACxD,SAAS,GAAA,EAAK;AACZ,IAAA,MAAM,KAAA,GAAQ,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAChE,IAAA,IAAI,YAAA,CAAa,KAAK,CAAA,EAAG;AACvB,MAAA,MAAM,YAAA;AAAA,QAAa,GAAA;AAAA,QAAK,MACtB,OAAO,OAAA,GAAU;AAAA,UACf,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,WAAA;AAAA,UACV,OAAA;AAAA,UACA,KAAA,EAAO,YAAA,CAAa,KAAK,CAAA,IAAK,UAAA;AAAA,UAC9B;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU;AAAA,IAC/C;AACA,IAAA,MAAM,YAAA;AAAA,MAAa,GAAA;AAAA,MAAK,MACtB,OAAO,OAAA,GAAU;AAAA,QACf,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,WAAA;AAAA,QACV,OAAA;AAAA,QACA,KAAA,EAAO,KAAA;AAAA,QACP,KAAA;AAAA,QACA;AAAA,OACD;AAAA,KACH;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,eAAA,EAAiB,SAAS,QAAA,EAAU,MAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC7E;AACF;AAEA,SAAS,yBAAyB,MAAA,EAAuE;AACvG,EAAA,OAAO;AAAA,IACL,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,QAAQ,MAAA,CAAO,MAAA;AAAA,IACf,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,iBAAiB,MAAA,CAAO,eAAA;AAAA,IACxB,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,QAAQ,MAAA,CAAO;AAAA,GACjB;AACF;AAOA,SAAS,mBAAmB,MAAA,EAAkD;AAC5E,EAAA,MAAM,cAAA,GAAiB,OAAO,aAAA,EAAe,cAAA;AAC7C,EAAA,OAAO;AAAA,IACL,GAAI,OAAO,QAAA,GAAW,EAAE,UAAU,MAAA,CAAO,QAAA,KAAa,EAAC;AAAA,IACvD,GAAI,OAAO,UAAA,GAAa,EAAE,YAAY,MAAA,CAAO,UAAA,KAAe,EAAC;AAAA,IAC7D,GAAI,cAAA,GACA,EAAE,aAAA,EAAe,EAAE,cAAA,EAAgB,IAAIC,gCAAA,CAAe,MAAA,CAAO,QAAQ,cAAc,CAAC,CAAA,EAAE,KACtF;AAAC,GACP;AACF;AAEA,SAAS,cAAA,CAAe,MAAyB,SAAA,EAAiE;AAChH,EAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AACvB,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,GAAG;AAAA,GACL;AACF;AAEA,SAAS,oBAAA,CACP,UACA,eAAA,EACqB;AACrB,EAAA,MAAM,IAAA,GAAQ,YAAY,EAAC;AAC3B,EAAA,MAAM,UAAA,GAAc,IAAA,CAAK,MAAA,IAAU,EAAC;AACpC,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,MAAA,EAAQ;AAAA,MACN,GAAG,UAAA;AAAA,MACH,QAAA,EAAU;AAAA;AACZ,GACF;AACF;AAEA,eAAe,eAAA,CACb,MAAA,EACA,UAAA,EACA,MAAA,EACA,MAAA,EACiF;AACjF,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,SAAA,CAAU,IAAI,UAAU,CAAA;AACtD,IAAA,IAAI,QAAA,IAAY,QAAA,CAAS,OAAA,KAAY,MAAA,EAAW,OAAO,EAAE,GAAG,QAAA,EAAU,OAAA,EAAS,QAAA,CAAS,OAAA,EAAQ;AAAA,EAClG,SAAS,GAAA,EAAK;AAGZ,IAAA,MAAA,EAAQ,QAAQ,mEAAA,EAAqE,EAAE,UAAA,EAAY,KAAA,EAAO,KAAK,CAAA;AAAA,EACjH;AACA,EAAA,OAAO,qBAAA,CAAsB,YAAY,MAAM,CAAA;AACjD;AAGA,SAAS,qBAAA,CACP,YACA,MAAA,EACgD;AAChD,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,UAAA;AAAA,IACJ,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,GAAI,OAAO,IAAA,KAAS,MAAA,GAAY,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK,GAAI;AAAC,GAC3D;AACF;AAEA,eAAe,YAAA,CAAa,QAAiC,EAAA,EAAkC;AAC7F,EAAA,IAAI;AACF,IAAA,MAAM,EAAA,EAAG;AAAA,EACX,SAAS,GAAA,EAAK;AACZ,IAAA,MAAA,EAAQ,KAAA,GAAQ,2CAAA,EAA6C,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA,EAC7E;AACF;AAEA,SAAS,aAAa,GAAA,EAAuB;AAC3C,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,UAAU,OAAO,KAAA;AAC5C,EAAA,MAAM,OAAQ,GAAA,CAA2B,IAAA;AACzC,EAAA,OAAO,IAAA,KAAS,YAAA;AAClB;AAEA,SAAS,aAAa,KAAA,EAAoC;AACxD,EAAA,IAAI,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,IAAY,WAAW,KAAA,EAAO;AAC1D,IAAA,MAAM,QAAS,KAAA,CAA8B,KAAA;AAC7C,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AAAA,EACxC;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,mBACP,KAAA,EACuF;AACvF,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,UAAU,OAAO,MAAA;AAChD,EAAA,MAAM,CAAA,GAAI,KAAA;AACV,EAAA,MAAM,WAAsF,EAAC;AAC7F,EAAA,IAAI,OAAO,CAAA,CAAE,IAAA,KAAS,QAAA,EAAU,QAAA,CAAS,OAAO,CAAA,CAAE,IAAA;AAClD,EAAA,IAAI,CAAA,CAAE,SAAS,OAAO,CAAA,CAAE,UAAU,QAAA,EAAU,QAAA,CAAS,QAAQ,CAAA,CAAE,KAAA;AAC/D,EAAA,IAAI,OAAO,CAAA,CAAE,YAAA,KAAiB,QAAA,EAAU,QAAA,CAAS,eAAe,CAAA,CAAE,YAAA;AAClE,EAAA,OAAO,OAAO,IAAA,CAAK,QAAQ,CAAA,CAAE,MAAA,GAAS,IAAI,QAAA,GAAW,MAAA;AACvD","file":"worker-LDMM7GO4.cjs","sourcesContent":["import type { AgentSignalIfIdleOptions } from '../agent/types';\nimport type { Event, EventCallback } from '../events/types';\nimport type { Mastra } from '../mastra';\nimport { RequestContext } from '../request-context';\nimport type { ScheduleTarget } from '../storage/domains/schedules/base';\nimport { PullTransport } from '../worker/transport/pull-transport';\nimport type { WorkerTransport } from '../worker/transport/transport';\nimport { MastraWorker } from '../worker/worker';\nimport type { WorkerDeps } from '../worker/worker';\nimport type {\n  ScheduleEffective,\n  ScheduleHooks,\n  ScheduleIfIdle,\n  SchedulePrepareContext,\n  SchedulePrepareResult,\n  ScheduleRunStatus,\n  ScheduleTriggerInfo,\n} from './types';\n\n/** PubSub topic on which the scheduler publishes `agent-schedule.fire` events. */\nexport const TOPIC_AGENT_SCHEDULES = 'agent-schedules';\n\nconst DEFAULT_GROUP = 'mastra-agent-schedules';\n\nexport interface AgentScheduleWorkerConfig {\n  group?: string;\n}\n\nexport interface AgentScheduleFireEventData {\n  scheduleId: string;\n  claimId: string;\n  scheduledFireAt: number;\n  target: Extract<ScheduleTarget, { type: 'agent' }>;\n  /** Defaults to `'schedule-fire'`. `'manual'` for fire-now invocations. */\n  triggerKind?: 'schedule-fire' | 'manual';\n}\n\n/**\n * Consumes `agent-schedule.fire` events published by the scheduler and runs\n * the configured agent — either by `sendSignal` (threaded) or\n * `agent.generate` (threadless). Mirrors `OrchestrationWorker`'s\n * subscribe-on-start / unsubscribe-on-stop lifecycle.\n *\n * Records the schedule trigger after dispatching so the trigger row\n * carries the agent's runId (not just the scheduler's claim id),\n * letting the UI link triggers to real agent runs.\n */\nexport class AgentScheduleWorker extends MastraWorker {\n  readonly name = 'agent-schedule';\n\n  #config: AgentScheduleWorkerConfig;\n  #transport?: WorkerTransport;\n  #pushCb?: EventCallback;\n  #running = false;\n\n  constructor(config: AgentScheduleWorkerConfig = {}) {\n    super();\n    this.#config = config;\n  }\n\n  async init(deps: WorkerDeps): Promise<void> {\n    await super.init(deps);\n\n    if (!deps.mastra) {\n      throw new Error('AgentScheduleWorker requires Mastra instance');\n    }\n  }\n\n  async start(): Promise<void> {\n    if (this.#running) return;\n    if (!this.deps) throw new Error('AgentScheduleWorker: call init() before start()');\n\n    // Push-only pubsubs (EventEmitter, UnixSocketPubSub) don't support the\n    // grouped pull subscription a PullTransport requires. They deliver every\n    // event to every in-process subscriber, so subscribe directly without a\n    // group — mirroring how Mastra.startWorkers handles workflow events for\n    // push-only transports instead of running the pull-based worker.\n    const modes = this.deps.pubsub.supportedModes ?? ['pull'];\n    if (!modes.includes('pull')) {\n      const cb: EventCallback = (event, ack, nack) => {\n        void this.#handleEvent(event, ack, nack);\n      };\n      this.#pushCb = cb;\n      await this.deps.pubsub.subscribe(TOPIC_AGENT_SCHEDULES, cb);\n      this.#running = true;\n      return;\n    }\n\n    const group = this.#config.group ?? DEFAULT_GROUP;\n    this.#transport = new PullTransport({\n      pubsub: this.deps.pubsub,\n      group,\n      topic: TOPIC_AGENT_SCHEDULES,\n      logger: this.deps.logger,\n    });\n\n    await this.#transport.start({\n      route: (event, ack, nack) => this.#handleEvent(event, ack, nack),\n    });\n\n    this.#running = true;\n  }\n\n  async stop(): Promise<void> {\n    if (!this.#running) return;\n    try {\n      if (this.#transport) {\n        await this.#transport.stop();\n        this.#transport = undefined;\n      }\n      if (this.#pushCb && this.deps) {\n        await this.deps.pubsub.unsubscribe(TOPIC_AGENT_SCHEDULES, this.#pushCb);\n        this.#pushCb = undefined;\n      }\n    } finally {\n      this.#running = false;\n    }\n  }\n\n  get isRunning(): boolean {\n    return this.#running;\n  }\n\n  async #handleEvent(event: Event, ack?: () => Promise<void>, nack?: () => Promise<void>): Promise<void> {\n    if (event.type !== 'agent-schedule.fire') {\n      // Not ours — ack and ignore.\n      await ack?.();\n      return;\n    }\n\n    const mastra = this.mastra!;\n    const payload = event.data as AgentScheduleFireEventData;\n    try {\n      await this.#dispatch(mastra, payload);\n      await ack?.();\n    } catch (err) {\n      this.deps?.logger?.error('AgentScheduleWorker: error processing agent-schedule.fire', {\n        scheduleId: payload?.scheduleId,\n        claimId: payload?.claimId,\n        error: err,\n      });\n      await nack?.();\n    }\n  }\n\n  async #dispatch(mastra: Mastra, data: AgentScheduleFireEventData): Promise<void> {\n    const { scheduleId, claimId, scheduledFireAt, target } = data;\n    const actualFireAt = Date.now();\n\n    const result = await executeAgentSchedule(mastra, scheduleId, target, {\n      triggerKind: data.triggerKind ?? 'schedule-fire',\n      firedAt: new Date(actualFireAt),\n      logger: this.deps?.logger,\n    });\n\n    await this.#recordTrigger({\n      scheduleId,\n      claimId,\n      scheduledFireAt,\n      actualFireAt,\n      outcome: result.outcome,\n      runId: result.runId,\n      error: result.reason,\n      triggerKind: data.triggerKind ?? 'schedule-fire',\n    });\n  }\n\n  async #recordTrigger(args: {\n    scheduleId: string;\n    claimId: string;\n    scheduledFireAt: number;\n    actualFireAt: number;\n    outcome: ScheduleTriggerOutcome;\n    runId?: string;\n    error?: string;\n    triggerKind: 'schedule-fire' | 'manual';\n  }): Promise<void> {\n    const store = await this.deps?.storage.getStore('schedules');\n    if (!store) return;\n    try {\n      await store.recordTrigger({\n        scheduleId: args.scheduleId,\n        runId: args.runId ?? args.claimId,\n        scheduledFireAt: args.scheduledFireAt,\n        actualFireAt: args.actualFireAt,\n        outcome: args.outcome,\n        error: args.error,\n        triggerKind: args.triggerKind,\n      });\n    } catch (err) {\n      this.deps?.logger?.error('AgentScheduleWorker: failed to record trigger', {\n        scheduleId: args.scheduleId,\n        claimId: args.claimId,\n        error: err,\n      });\n    }\n  }\n}\n\n/** Outcome union written to the schedule trigger row for an agent-schedule fire. */\nexport type ScheduleTriggerOutcome =\n  | 'succeeded'\n  | 'delivered'\n  | 'persisted'\n  | 'discarded'\n  | 'skipped'\n  | 'aborted'\n  | 'failed';\n\n/**\n * Best-effort delete of the schedule row. Self-clean is best-effort —\n * an explicit `schedules.delete()` may have raced us. Swallow errors.\n */\nasync function selfClean(mastra: Mastra, scheduleId: string): Promise<void> {\n  try {\n    const store = await mastra.getStorage()?.getStore('schedules');\n    if (!store) return;\n    await store.deleteSchedule(scheduleId);\n  } catch (error) {\n    mastra.getLogger?.()?.debug?.('agent-schedule self-clean failed', { scheduleId, error });\n  }\n}\n\ntype LooseLogger = {\n  error?: (message: string, ...args: any[]) => void;\n  debug?: (message: string, ...args: any[]) => void;\n};\n\n/** Optional context the `AgentScheduleWorker` passes to `executeAgentSchedule`. */\nexport interface ExecuteAgentScheduleContext {\n  triggerKind?: 'schedule-fire' | 'manual';\n  firedAt?: Date;\n  logger?: LooseLogger;\n}\n\n/**\n * Resolves the agent, runs the user `prepare` hook (if any), applies\n * idle filters, and either `sendSignal`s into the target\n * thread or runs `agent.generate`. The returned `runId` is the agent\n * run id from the SDK call (when a run was actually started), suitable\n * for trigger-row linkability.\n *\n * `outcome` is the final outcome for the schedule trigger row and is\n * also the one that drove the `onFinish`/`onError`/`onAbort` hook\n * selection. `status` is retained for back-compat with existing tests.\n */\nexport async function executeAgentSchedule(\n  mastra: Mastra,\n  scheduleId: string,\n  target: Extract<ScheduleTarget, { type: 'agent' }>,\n  ctx: ExecuteAgentScheduleContext = {},\n): Promise<{ status: ScheduleRunStatus; outcome: ScheduleTriggerOutcome; reason?: string; runId?: string }> {\n  const { agentId } = target;\n  const trigger: ScheduleTriggerInfo = {\n    kind: ctx.triggerKind === 'manual' ? 'manual' : 'cron',\n    firedAt: ctx.firedAt ?? new Date(),\n  };\n  const log = ctx.logger ?? mastra.getLogger?.();\n\n  const agent = (() => {\n    try {\n      return mastra.getAgentById(agentId);\n    } catch {\n      return null;\n    }\n  })();\n  if (!agent) {\n    await selfClean(mastra, scheduleId);\n    return {\n      status: 'agent-missing',\n      outcome: 'failed',\n      reason: `agent \"${agentId}\" no longer registered`,\n    };\n  }\n\n  const hooks =\n    (\n      mastra as unknown as {\n        __getScheduleHooks?: () => ScheduleHooks | null | undefined;\n      }\n    ).__getScheduleHooks?.() ?? undefined;\n\n  // Build a partial `AgentSchedule` view for hook contexts. Best-effort —\n  // pulls from the live schedule row when hooks are configured (so they see\n  // fresh fields), otherwise a cheap projection from the event target. The\n  // ref is only ever passed to hooks, so hookless fires skip the extra\n  // storage round-trip entirely.\n  const scheduleRef = hooks\n    ? await loadScheduleRef(mastra, scheduleId, target, log)\n    : scheduleRefFromTarget(scheduleId, target);\n\n  const rowDefaults: ScheduleEffective = buildEffectiveFromTarget(target);\n\n  // 1. prepare hook\n  let prepared: SchedulePrepareResult | null | undefined;\n  if (hooks?.prepare) {\n    try {\n      const prepareCtx: SchedulePrepareContext = {\n        mastra,\n        agentId,\n        schedule: scheduleRef,\n        trigger,\n      };\n      prepared = await hooks.prepare(prepareCtx);\n    } catch (err) {\n      await safeHookCall(log, () =>\n        hooks.onError?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          phase: 'prepare',\n          error: err instanceof Error ? err : new Error(String(err)),\n          effective: rowDefaults,\n        }),\n      );\n      return {\n        status: 'invalid-input',\n        outcome: 'failed',\n        reason: err instanceof Error ? err.message : String(err),\n      };\n    }\n  }\n\n  if (prepared === null) {\n    // Hook explicitly asked to skip this fire.\n    await safeHookCall(log, () =>\n      hooks?.onFinish?.({\n        mastra,\n        agentId,\n        schedule: scheduleRef,\n        trigger,\n        outcome: 'skipped',\n        effective: rowDefaults,\n      }),\n    );\n    return { status: 'fired', outcome: 'skipped' };\n  }\n\n  const effective: ScheduleEffective = mergeEffective(rowDefaults, prepared);\n\n  // Run-level marker carried on the signal / agent run so consumers\n  // (typing status, UI badges) can detect that this run was\n  // schedule-driven.\n  const scheduleRunMeta = {\n    scheduleId,\n    ...(effective.threadId ? { threadId: effective.threadId } : {}),\n  };\n\n  // 2. threaded vs threadless\n  if (effective.threadId) {\n    if (!effective.resourceId) {\n      const reason = 'resourceId required when threadId is set';\n      await safeHookCall(log, () =>\n        hooks?.onError?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          phase: 'run',\n          error: new Error(reason),\n          effective,\n        }),\n      );\n      return { status: 'invalid-input', outcome: 'failed', reason };\n    }\n\n    const memory = await agent.getMemory();\n    if (memory) {\n      const thread = await memory.getThreadById({ threadId: effective.threadId });\n      if (!thread) {\n        await selfClean(mastra, scheduleId);\n        const reason = `thread \"${effective.threadId}\" not found`;\n        await safeHookCall(log, () =>\n          hooks?.onError?.({\n            mastra,\n            agentId,\n            schedule: scheduleRef,\n            trigger,\n            phase: 'run',\n            error: new Error(reason),\n            effective,\n          }),\n        );\n        return { status: 'thread-missing', outcome: 'failed', reason };\n      }\n    }\n\n    let signalResult;\n    try {\n      signalResult = agent.sendSignal(\n        {\n          type: effective.signalType ?? 'notification',\n          tagName: effective.tagName ?? 'schedule',\n          contents: effective.prompt,\n          ...(effective.attributes ? { attributes: effective.attributes } : {}),\n          providerOptions: mergeProviderOptions(effective.providerOptions, scheduleRunMeta),\n        },\n        {\n          resourceId: effective.resourceId,\n          threadId: effective.threadId,\n          ...(effective.ifActive ? { ifActive: effective.ifActive } : {}),\n          ...(effective.ifIdle ? { ifIdle: buildIfIdleOptions(effective.ifIdle) } : {}),\n        },\n      );\n    } catch (err) {\n      const error = err instanceof Error ? err : new Error(String(err));\n      await safeHookCall(log, () =>\n        hooks?.onError?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          phase: 'run',\n          error,\n          effective,\n        }),\n      );\n      return { status: 'invalid-input', outcome: 'failed', reason: error.message };\n    }\n\n    // The signal runtime resolves `accepted` at routing-decision time with the\n    // concrete action it took. It only *rejects* when the signal could not be\n    // routed at all (e.g. a misconfigured agent) — generation errors on a woken\n    // run surface through the run's own stream, never by rejecting here.\n    let settled;\n    try {\n      settled = await signalResult.accepted;\n    } catch (err) {\n      const error = err instanceof Error ? err : new Error(String(err));\n      await safeHookCall(log, () =>\n        hooks?.onError?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          phase: 'run',\n          error,\n          effective,\n        }),\n      );\n      return { status: 'invalid-input', outcome: 'failed', reason: error.message };\n    }\n\n    const action = settled.action;\n    // `runId` is present on `wake`/`deliver`/`blocked` — the actions that reference a\n    // concrete agent run. `persist`/`discard` never produce a run id.\n    const runId = 'runId' in settled ? settled.runId : undefined;\n\n    if (action === 'deliver') {\n      await safeHookCall(log, () =>\n        hooks?.onFinish?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          outcome: 'delivered',\n          runId,\n          joinedExistingRun: true,\n          effective,\n        }),\n      );\n      return { status: 'signal-accepted', outcome: 'delivered', runId };\n    }\n    if (action === 'persist') {\n      // Wait briefly for persist write so the trigger row reflects the truth.\n      if (signalResult.persisted) {\n        try {\n          await signalResult.persisted;\n        } catch {\n          // Persist write failure is surfaced via the signal's own machinery.\n        }\n      }\n      await safeHookCall(log, () =>\n        hooks?.onFinish?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          outcome: 'persisted',\n          runId,\n          effective,\n        }),\n      );\n      return { status: 'signal-accepted', outcome: 'persisted', runId };\n    }\n    if (action === 'discard') {\n      await safeHookCall(log, () =>\n        hooks?.onFinish?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          outcome: 'discarded',\n          runId,\n          effective,\n        }),\n      );\n      return { status: 'signal-accepted', outcome: 'discarded', runId };\n    }\n\n    if (action === 'blocked') {\n      // The thread was suspended and could not accept an idle wake. Nothing ran\n      // and nothing was stored; report as skipped so the trigger row is truthful.\n      await safeHookCall(log, () =>\n        hooks?.onFinish?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          outcome: 'skipped',\n          runId,\n          effective,\n        }),\n      );\n      return { status: 'skipped-thread-blocked', outcome: 'skipped', runId };\n    }\n\n    // action === 'wake' — a new run was started for this signal. The thread-stream\n    // runtime drives the run's stream to completion on its own (so the active-run\n    // record and thread lease release without requiring a consumer here); the\n    // schedule fire is fire-and-forget for trigger-row purposes.\n    await safeHookCall(log, () =>\n      hooks?.onFinish?.({\n        mastra,\n        agentId,\n        schedule: scheduleRef,\n        trigger,\n        outcome: 'succeeded',\n        runId,\n        effective,\n      }),\n    );\n    return { status: 'signal-accepted', outcome: 'succeeded', runId };\n  }\n\n  // 4. threadless path: agent.generate\n  try {\n    const result = await agent.generate(effective.prompt, {\n      providerOptions: mergeProviderOptions(effective.providerOptions, scheduleRunMeta),\n    });\n    const runId = extractRunId(result);\n    await safeHookCall(log, () =>\n      hooks?.onFinish?.({\n        mastra,\n        agentId,\n        schedule: scheduleRef,\n        trigger,\n        outcome: 'succeeded',\n        runId,\n        result: extractRunSnapshot(result),\n        effective,\n      }),\n    );\n    return { status: 'fired', outcome: 'succeeded', runId };\n  } catch (err) {\n    const error = err instanceof Error ? err : new Error(String(err));\n    if (isAbortError(error)) {\n      await safeHookCall(log, () =>\n        hooks?.onAbort?.({\n          mastra,\n          agentId,\n          schedule: scheduleRef,\n          trigger,\n          runId: extractRunId(error) ?? scheduleId,\n          effective,\n        }),\n      );\n      return { status: 'fired', outcome: 'aborted' };\n    }\n    await safeHookCall(log, () =>\n      hooks?.onError?.({\n        mastra,\n        agentId,\n        schedule: scheduleRef,\n        trigger,\n        phase: 'run',\n        error,\n        effective,\n      }),\n    );\n    return { status: 'invalid-input', outcome: 'failed', reason: error.message };\n  }\n}\n\nfunction buildEffectiveFromTarget(target: Extract<ScheduleTarget, { type: 'agent' }>): ScheduleEffective {\n  return {\n    threadId: target.threadId,\n    resourceId: target.resourceId,\n    prompt: target.prompt,\n    signalType: target.signalType,\n    tagName: target.tagName,\n    attributes: target.attributes,\n    providerOptions: target.providerOptions,\n    ifActive: target.ifActive,\n    ifIdle: target.ifIdle,\n  };\n}\n\n/**\n * Maps the stored, JSON-safe `ifIdle` config onto the signal API's\n * `AgentSignalIfIdleOptions`, rehydrating the plain `streamOptions.requestContext`\n * object into a live `RequestContext` before the wake signal runs.\n */\nfunction buildIfIdleOptions(ifIdle: ScheduleIfIdle): AgentSignalIfIdleOptions {\n  const requestContext = ifIdle.streamOptions?.requestContext;\n  return {\n    ...(ifIdle.behavior ? { behavior: ifIdle.behavior } : {}),\n    ...(ifIdle.attributes ? { attributes: ifIdle.attributes } : {}),\n    ...(requestContext\n      ? { streamOptions: { requestContext: new RequestContext(Object.entries(requestContext)) } }\n      : {}),\n  };\n}\n\nfunction mergeEffective(base: ScheduleEffective, overrides: SchedulePrepareResult | undefined): ScheduleEffective {\n  if (!overrides) return base;\n  return {\n    ...base,\n    ...overrides,\n  };\n}\n\nfunction mergeProviderOptions(\n  fromHook: Record<string, unknown> | undefined,\n  scheduleRunMeta: Record<string, unknown>,\n): Record<string, any> {\n  const base = (fromHook ?? {}) as Record<string, any>;\n  const baseMastra = (base.mastra ?? {}) as Record<string, unknown>;\n  return {\n    ...base,\n    mastra: {\n      ...baseMastra,\n      schedule: scheduleRunMeta,\n    },\n  };\n}\n\nasync function loadScheduleRef(\n  mastra: Mastra,\n  scheduleId: string,\n  target: Extract<ScheduleTarget, { type: 'agent' }>,\n  logger?: LooseLogger,\n): Promise<{ id: string; agentId: string; name?: string; [key: string]: unknown }> {\n  try {\n    const schedule = await mastra.schedules.get(scheduleId);\n    if (schedule && schedule.agentId !== undefined) return { ...schedule, agentId: schedule.agentId };\n  } catch (err) {\n    // Fall back to a minimal projection from the event target, but surface\n    // the failure so a persistently-broken schedules store isn't invisible.\n    logger?.debug?.('AgentScheduleWorker: failed to load schedule row for hook context', { scheduleId, error: err });\n  }\n  return scheduleRefFromTarget(scheduleId, target);\n}\n\n/** Minimal hook-context projection built from the fire event's target. */\nfunction scheduleRefFromTarget(\n  scheduleId: string,\n  target: Extract<ScheduleTarget, { type: 'agent' }>,\n): { id: string; agentId: string; name?: string } {\n  return {\n    id: scheduleId,\n    agentId: target.agentId,\n    ...(target.name !== undefined ? { name: target.name } : {}),\n  };\n}\n\nasync function safeHookCall(logger: LooseLogger | undefined, fn: () => unknown): Promise<void> {\n  try {\n    await fn();\n  } catch (err) {\n    logger?.error?.('AgentScheduleWorker: hook threw, ignoring', { error: err });\n  }\n}\n\nfunction isAbortError(err: unknown): boolean {\n  if (!err || typeof err !== 'object') return false;\n  const name = (err as { name?: unknown }).name;\n  return name === 'AbortError';\n}\n\nfunction extractRunId(value: unknown): string | undefined {\n  if (value && typeof value === 'object' && 'runId' in value) {\n    const runId = (value as { runId?: unknown }).runId;\n    if (typeof runId === 'string') return runId;\n  }\n  return undefined;\n}\n\nfunction extractRunSnapshot(\n  value: unknown,\n): { text?: string; usage?: Record<string, unknown>; finishReason?: string } | undefined {\n  if (!value || typeof value !== 'object') return undefined;\n  const v = value as { text?: unknown; usage?: unknown; finishReason?: unknown };\n  const snapshot: { text?: string; usage?: Record<string, unknown>; finishReason?: string } = {};\n  if (typeof v.text === 'string') snapshot.text = v.text;\n  if (v.usage && typeof v.usage === 'object') snapshot.usage = v.usage as Record<string, unknown>;\n  if (typeof v.finishReason === 'string') snapshot.finishReason = v.finishReason;\n  return Object.keys(snapshot).length > 0 ? snapshot : undefined;\n}\n"]}