{"version":3,"sources":["../../node_modules/@ai-sdk/deepseek/src/chat/convert-to-deepseek-chat-messages.ts","../../node_modules/@ai-sdk/deepseek/src/chat/convert-to-deepseek-usage.ts","../../node_modules/@ai-sdk/deepseek/src/chat/deepseek-chat-api-types.ts","../../node_modules/@ai-sdk/deepseek/src/chat/deepseek-chat-options.ts","../../node_modules/@ai-sdk/deepseek/src/chat/deepseek-prepare-tools.ts","../../node_modules/@ai-sdk/deepseek/src/chat/get-response-metadata.ts","../../node_modules/@ai-sdk/deepseek/src/chat/map-deepseek-finish-reason.ts","../../node_modules/@ai-sdk/deepseek/src/chat/deepseek-chat-language-model.ts","../../node_modules/@ai-sdk/deepseek/src/version.ts","../../node_modules/@ai-sdk/deepseek/src/deepseek-provider.ts"],"names":["z","lazySchema","zodSchema","createJsonErrorResponseHandler","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","toolCall","isParsableJson","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError"],"mappings":";;;;;AAOO,SAAS,6BAAA,CAA8B;AAC5C,EAAA,MAAA;AACA,EAAA,cAAA;AACA,EAAA;AACF,CAAA,EAOE;AAlBF,EAAA,IAAA,EAAA;AAmBE,EAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,QAAA,CAAS,aAAa,CAAA;AACnD,EAAA,MAAM,WAA+B,EAAC;AACtC,EAAA,MAAM,WAAmC,EAAC;AAG1C,EAAA,IAAA,CAAI,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,UAAS,MAAA,EAAQ;AACnC,IAAA,IAAI,cAAA,CAAe,UAAU,IAAA,EAAM;AACjC,MAAA,QAAA,CAAS,IAAA,CAAK;QACZ,IAAA,EAAM,QAAA;QACN,OAAA,EAAS;OACV,CAAA;IACH,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,IAAA,CAAK;QACZ,IAAA,EAAM,QAAA;AACN,QAAA,OAAA,EACE,qDAAA,GACA,IAAA,CAAK,SAAA,CAAU,cAAA,CAAe,MAAM;OACvC,CAAA;AACD,MAAA,QAAA,CAAS,IAAA,CAAK;QACZ,IAAA,EAAM,eAAA;QACN,OAAA,EAAS,4BAAA;QACT,OAAA,EAAS;OACV,CAAA;AACH,IAAA;AACF,EAAA;AAGA,EAAA,IAAI,oBAAA,GAAuB,EAAA;AAC3B,EAAA,KAAA,IAAS,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK;AAC3C,IAAA,IAAI,MAAA,CAAO,CAAC,CAAA,CAAE,IAAA,KAAS,MAAA,EAAQ;AAC7B,MAAA,oBAAA,GAAuB,CAAA;AACvB,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA,IAAI,KAAA,GAAQ,EAAA;AACZ,EAAA,KAAA,MAAW,EAAE,IAAA,EAAM,OAAA,EAAQ,IAAK,MAAA,EAAQ;AACtC,IAAA,KAAA,EAAA;AAEA,IAAA,QAAQ,IAAA;AACN,MAAA,KAAK,QAAA,EAAU;AACb,QAAA,QAAA,CAAS,IAAA,CAAK,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA;AACzC,QAAA;AACF,MAAA;AAEA,MAAA,KAAK,MAAA,EAAQ;AACX,QAAA,IAAI,WAAA,GAAc,EAAA;AAClB,QAAA,KAAA,MAAW,QAAQ,OAAA,EAAS;AAC1B,UAAA,IAAI,IAAA,CAAK,SAAS,MAAA,EAAQ;AACxB,YAAA,WAAA,IAAe,IAAA,CAAK,IAAA;UACtB,CAAA,MAAO;AACL,YAAA,QAAA,CAAS,IAAA,CAAK;cACZ,IAAA,EAAM,aAAA;cACN,OAAA,EAAS,CAAA,wBAAA,EAA2B,KAAK,IAAI,CAAA;aAC9C,CAAA;AACH,UAAA;AACF,QAAA;AAEA,QAAA,QAAA,CAAS,IAAA,CAAK;UACZ,IAAA,EAAM,MAAA;UACN,OAAA,EAAS;SACV,CAAA;AAED,QAAA;AACF,MAAA;AACA,MAAA,KAAK,WAAA,EAAa;AAChB,QAAA,IAAI,IAAA,GAAO,EAAA;AACX,QAAA,IAAI,SAAA;AAEJ,QAAA,MAAM,YAID,EAAC;AAEN,QAAA,KAAA,MAAW,QAAQ,OAAA,EAAS;AAC1B,UAAA,QAAQ,KAAK,IAAA;AACX,YAAA,KAAK,MAAA,EAAQ;AACX,cAAA,IAAA,IAAQ,IAAA,CAAK,IAAA;AACb,cAAA;AACF,YAAA;AACA,YAAA,KAAK,WAAA,EAAa;AAEhB,cAAA,IAAI,KAAA,IAAS,oBAAA,IAAwB,CAAC,YAAA,EAAc;AAClD,gBAAA;AACF,cAAA;AAEA,cAAA,IAAI,aAAa,IAAA,EAAM;AACrB,gBAAA,SAAA,GAAY,IAAA,CAAK,IAAA;cACnB,CAAA,MAAO;AACL,gBAAA,SAAA,IAAa,IAAA,CAAK,IAAA;AACpB,cAAA;AACA,cAAA;AACF,YAAA;AACA,YAAA,KAAK,WAAA,EAAa;AAChB,cAAA,SAAA,CAAU,IAAA,CAAK;AACb,gBAAA,EAAA,EAAI,IAAA,CAAK,UAAA;gBACT,IAAA,EAAM,UAAA;gBACN,QAAA,EAAU;AACR,kBAAA,IAAA,EAAM,IAAA,CAAK,QAAA;kBACX,SAAA,EAAW,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,KAAK;AACtC;eACD,CAAA;AACD,cAAA;AACF,YAAA;AACF;AACF,QAAA;AAIA,QAAA,QAAA,CAAS,IAAA,CAAK;UACZ,IAAA,EAAM,WAAA;UACN,OAAA,EAAS,IAAA;AACT,UAAA,iBAAA,EAAmB,SAAA,IAAA,IAAA,GAAA,SAAA,GAAc,YAAA,GAAe,EAAA,GAAK,MAAA;UACrD,UAAA,EAAY,SAAA,CAAU,MAAA,GAAS,CAAA,GAAI,SAAA,GAAY;SAChD,CAAA;AAED,QAAA;AACF,MAAA;AAEA,MAAA,KAAK,MAAA,EAAQ;AACX,QAAA,KAAA,MAAW,gBAAgB,OAAA,EAAS;AAClC,UAAA,IAAI,YAAA,CAAa,SAAS,wBAAA,EAA0B;AAClD,YAAA;AACF,UAAA;AACA,UAAA,MAAM,SAAS,YAAA,CAAa,MAAA;AAE5B,UAAA,IAAI,YAAA;AACJ,UAAA,QAAQ,OAAO,IAAA;YACb,KAAK,MAAA;YACL,KAAK,YAAA;AACH,cAAA,YAAA,GAAe,MAAA,CAAO,KAAA;AACtB,cAAA;YACF,KAAK,kBAAA;AACH,cAAA,YAAA,GAAA,CAAe,EAAA,GAAA,MAAA,CAAO,MAAA,KAAP,IAAA,GAAA,EAAA,GAAiB,wBAAA;AAChC,cAAA;YACF,KAAK,SAAA;YACL,KAAK,MAAA;YACL,KAAK,YAAA;AACH,cAAA,YAAA,GAAe,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAK,CAAA;AAC1C,cAAA;AACJ;AAEA,UAAA,QAAA,CAAS,IAAA,CAAK;YACZ,IAAA,EAAM,MAAA;AACN,YAAA,YAAA,EAAc,YAAA,CAAa,UAAA;YAC3B,OAAA,EAAS;WACV,CAAA;AACH,QAAA;AACA,QAAA;AACF,MAAA;MAEA,SAAS;AACP,QAAA,QAAA,CAAS,IAAA,CAAK;UACZ,IAAA,EAAM,aAAA;AACN,UAAA,OAAA,EAAS,iBAAiB,IAAI,CAAA;SAC/B,CAAA;AACD,QAAA;AACF,MAAA;AACF;AACF,EAAA;AAEA,EAAA,OAAO,EAAE,UAAU,QAAA,EAAS;AAC9B;ACpLO,SAAS,qBACd,KAAA,EAcsB;AAjBxB,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkBE,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;MACL,WAAA,EAAa;QACX,KAAA,EAAO,MAAA;QACP,OAAA,EAAS,MAAA;QACT,SAAA,EAAW,MAAA;QACX,UAAA,EAAY;AACd,OAAA;MACA,YAAA,EAAc;QACZ,KAAA,EAAO,MAAA;QACP,IAAA,EAAM,MAAA;QACN,SAAA,EAAW;AACb,OAAA;MACA,GAAA,EAAK;AACP,KAAA;AACF,EAAA;AAEA,EAAA,MAAM,YAAA,GAAA,CAAe,EAAA,GAAA,KAAA,CAAM,aAAA,KAAN,OAAA,EAAA,GAAuB,CAAA;AAC5C,EAAA,MAAM,gBAAA,GAAA,CAAmB,EAAA,GAAA,KAAA,CAAM,iBAAA,KAAN,OAAA,EAAA,GAA2B,CAAA;AACpD,EAAA,MAAM,eAAA,GAAA,CAAkB,EAAA,GAAA,KAAA,CAAM,uBAAA,KAAN,OAAA,EAAA,GAAiC,CAAA;AACzD,EAAA,MAAM,eAAA,GAAA,CACJ,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,yBAAA,KAAN,OAAA,MAAA,GAAA,EAAA,CAAiC,gBAAA,KAAjC,IAAA,GAAA,EAAA,GAAqD,CAAA;AAEvD,EAAA,OAAO;IACL,WAAA,EAAa;MACX,KAAA,EAAO,YAAA;AACP,MAAA,OAAA,EAAS,YAAA,GAAe,eAAA;MACxB,SAAA,EAAW,eAAA;MACX,UAAA,EAAY;AACd,KAAA;IACA,YAAA,EAAc;MACZ,KAAA,EAAO,gBAAA;AACP,MAAA,IAAA,EAAM,gBAAA,GAAmB,eAAA;MACzB,SAAA,EAAW;AACb,KAAA;IACA,GAAA,EAAK;AACP,GAAA;AACF;ACKA,IAAM,gBAAA,GAAmBA,KACtB,MAAA,CAAO;EACN,aAAA,EAAeA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;EAClC,iBAAA,EAAmBA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;EACtC,uBAAA,EAAyBA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;EAC5C,wBAAA,EAA0BA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;EAC7C,YAAA,EAAcA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AACjC,EAAA,yBAAA,EAA2BA,KACxB,MAAA,CAAO;IACN,gBAAA,EAAkBA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA;AAC/B,GAAC,EACA,OAAA;AACL,CAAC,EACA,OAAA,EAAQ;AAIJ,IAAM,mBAAA,GAAsBA,KAAE,MAAA,CAAO;AAC1C,EAAA,KAAA,EAAOA,KAAE,MAAA,CAAO;AACd,IAAA,OAAA,EAASA,KAAE,MAAA,EAAO;IAClB,IAAA,EAAMA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;IACzB,KAAA,EAAOA,IAAA,CAAE,GAAA,EAAI,CAAE,OAAA,EAAQ;IACvB,IAAA,EAAMA,IAAA,CAAE,KAAA,CAAM,CAACA,IAAA,CAAE,MAAA,EAAO,EAAGA,IAAA,CAAE,MAAA,EAAQ,CAAC,CAAA,CAAE,OAAA;GACzC;AACH,CAAC,CAAA;AAMM,IAAM,0BAAA,GAA6BA,KAAE,MAAA,CAAO;EACjD,EAAA,EAAIA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;EACvB,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;EAC5B,KAAA,EAAOA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AAC1B,EAAA,OAAA,EAASA,IAAA,CAAE,KAAA;AACT,IAAAA,IAAA,CAAE,MAAA,CAAO;AACP,MAAA,OAAA,EAASA,KAAE,MAAA,CAAO;AAChB,QAAA,IAAA,EAAMA,IAAA,CAAE,OAAA,CAAQ,WAAW,CAAA,CAAE,OAAA,EAAQ;QACrC,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;QAC5B,iBAAA,EAAmBA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AACtC,QAAA,UAAA,EAAYA,IAAA,CACT,KAAA;AACC,UAAAA,IAAA,CAAE,MAAA,CAAO;YACP,EAAA,EAAIA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AACvB,YAAA,QAAA,EAAUA,KAAE,MAAA,CAAO;AACjB,cAAA,IAAA,EAAMA,KAAE,MAAA,EAAO;AACf,cAAA,SAAA,EAAWA,KAAE,MAAA;aACd;WACF;AACH,SAAA,CACC,OAAA;OACJ,CAAA;MACD,aAAA,EAAeA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA;KAC3B;AACH,GAAA;EACA,KAAA,EAAO;AACT,CAAC,CAAA;AAIM,IAAM,uBAAA,GAA0BC,4BAAA;EAAW,MAChDC,2BAAA;AACE,IAAAF,IAAA,CAAE,KAAA,CAAM;AACN,MAAAA,IAAA,CAAE,MAAA,CAAO;QACP,EAAA,EAAIA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;QACvB,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;QAC5B,KAAA,EAAOA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AAC1B,QAAA,OAAA,EAASA,IAAA,CAAE,KAAA;AACT,UAAAA,IAAA,CAAE,MAAA,CAAO;AACP,YAAA,KAAA,EAAOA,KACJ,MAAA,CAAO;AACN,cAAA,IAAA,EAAMA,KAAE,IAAA,CAAK,CAAC,WAAW,CAAC,EAAE,OAAA,EAAQ;cACpC,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;cAC5B,iBAAA,EAAmBA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AACtC,cAAA,UAAA,EAAYA,IAAA,CACT,KAAA;AACC,gBAAAA,IAAA,CAAE,MAAA,CAAO;AACP,kBAAA,KAAA,EAAOA,KAAE,MAAA,EAAO;kBAChB,EAAA,EAAIA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;AACvB,kBAAA,QAAA,EAAUA,KAAE,MAAA,CAAO;oBACjB,IAAA,EAAMA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA,EAAQ;oBACzB,SAAA,EAAWA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA;mBACvB;iBACF;AACH,eAAA,CACC,OAAA;AACL,aAAC,EACA,OAAA,EAAQ;YACX,aAAA,EAAeA,IAAA,CAAE,MAAA,EAAO,CAAE,OAAA;WAC3B;AACH,SAAA;QACA,KAAA,EAAO;OACR,CAAA;AACD,MAAA;KACD;AACH;AACF,CAAA;ACpJO,IAAM,4BAAA,GAA+BA,KAAE,MAAA,CAAO;;;;AAInD,EAAA,QAAA,EAAUA,KACP,MAAA,CAAO;AACN,IAAA,IAAA,EAAMA,KAAE,IAAA,CAAK,CAAC,WAAW,UAAU,CAAC,EAAE,QAAA;AACxC,GAAC,EACA,QAAA,EAAS;;;;AAKZ,EAAA,eAAA,EAAiBA,KAAE,IAAA,CAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,QAAA;AAC3C,CAAC,CAAA;ACbM,SAAS,YAAA,CAAa;AAC3B,EAAA,KAAA;AACA,EAAA;AACF,CAAA,EAOE;AAEA,EAAA,KAAA,GAAA,CAAQ,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,UAAS,KAAA,GAAQ,MAAA;AAEhC,EAAA,MAAM,eAAkC,EAAC;AAEzC,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO,EAAE,KAAA,EAAO,MAAA,EAAW,UAAA,EAAY,QAAW,YAAA,EAAa;AACjE,EAAA;AAEA,EAAA,MAAM,gBAA6C,EAAC;AAEpD,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,IAAA,CAAK,SAAS,UAAA,EAAY;AAC5B,MAAA,YAAA,CAAa,IAAA,CAAK;QAChB,IAAA,EAAM,aAAA;QACN,OAAA,EAAS,CAAA,sBAAA,EAAyB,KAAK,EAAE,CAAA;OAC1C,CAAA;IACH,CAAA,MAAO;AACL,MAAA,aAAA,CAAc,IAAA,CAAK;QACjB,IAAA,EAAM,UAAA;QACN,QAAA,EAAU;AACR,UAAA,IAAA,EAAM,IAAA,CAAK,IAAA;AACX,UAAA,WAAA,EAAa,IAAA,CAAK,WAAA;AAClB,UAAA,UAAA,EAAY,IAAA,CAAK,WAAA;UACjB,GAAI,IAAA,CAAK,UAAU,IAAA,GAAO,EAAE,QAAQ,IAAA,CAAK,MAAA,KAAW;AACtD;OACD,CAAA;AACH,IAAA;AACF,EAAA;AAEA,EAAA,IAAI,cAAc,IAAA,EAAM;AACtB,IAAA,OAAO,EAAE,KAAA,EAAO,aAAA,EAAe,UAAA,EAAY,QAAW,YAAA,EAAa;AACrE,EAAA;AAEA,EAAA,MAAM,IAAA,GAAO,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAY,IAAA;AAEzB,EAAA,QAAQ,IAAA;IACN,KAAK,MAAA;IACL,KAAK,MAAA;IACL,KAAK,UAAA;AACH,MAAA,OAAO,EAAE,KAAA,EAAO,aAAA,EAAe,UAAA,EAAY,MAAM,YAAA,EAAa;IAChE,KAAK,MAAA;AACH,MAAA,OAAO;QACL,KAAA,EAAO,aAAA;QACP,UAAA,EAAY;UACV,IAAA,EAAM,UAAA;UACN,QAAA,EAAU,EAAE,IAAA,EAAM,UAAA,CAAW,QAAA;AAC/B,SAAA;AACA,QAAA;AACF,OAAA;IACF,SAAS;AACP,MAAA,OAAO;QACL,KAAA,EAAO,aAAA;QACP,UAAA,EAAY,MAAA;QACZ,YAAA,EAAc;UACZ,GAAG,YAAA;AACH,UAAA;YACE,IAAA,EAAM,aAAA;AACN,YAAA,OAAA,EAAS,qBAAqB,IAAI,CAAA;AACpC;AACF;AACF,OAAA;AACF,IAAA;AACF;AACF;ACpFO,SAAS,mBAAA,CAAoB;AAClC,EAAA,EAAA;AACA,EAAA,KAAA;AACA,EAAA;AACF,CAAA,EAIG;AACD,EAAA,OAAO;IACL,EAAA,EAAI,EAAA,IAAA,OAAA,EAAA,GAAM,MAAA;IACV,OAAA,EAAS,KAAA,IAAA,OAAA,KAAA,GAAS,MAAA;AAClB,IAAA,SAAA,EAAW,WAAW,IAAA,GAAO,IAAI,IAAA,CAAK,OAAA,GAAU,GAAI,CAAA,GAAI;AAC1D,GAAA;AACF;ACZO,SAAS,wBACd,YAAA,EACwC;AACxC,EAAA,QAAQ,YAAA;IACN,KAAK,MAAA;AACH,MAAA,OAAO,MAAA;IACT,KAAK,QAAA;AACH,MAAA,OAAO,QAAA;IACT,KAAK,gBAAA;AACH,MAAA,OAAO,gBAAA;IACT,KAAK,YAAA;AACH,MAAA,OAAO,YAAA;IACT,KAAK,8BAAA;AACH,MAAA,OAAO,OAAA;AACT,IAAA;AACE,MAAA,OAAO,OAAA;AACX;AACF;AC6BO,IAAM,4BAAN,MAA2D;AAShE,EAAA,WAAA,CAAY,SAA8B,MAAA,EAA4B;AARtE,IAAA,IAAA,CAAS,oBAAA,GAAuB,IAAA;AAGhC,IAAA,IAAA,CAAS,gBAAgB,EAAC;AAMxB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAEd,IAAA,IAAA,CAAK,wBAAwBG,gDAAA,CAA+B;MAC1D,WAAA,EAAa,mBAAA;MACb,cAAA,EAAgB,CAAC,KAAA,KACf,KAAA,CAAM,KAAA,CAAM;KACf,CAAA;AACH,EAAA;AAEA,EAAA,IAAI,QAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,MAAA,CAAO,QAAA;AACrB,EAAA;AAEA,EAAA,IAAY,mBAAA,GAA8B;AACxC,IAAA,OAAO,IAAA,CAAK,OAAO,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,EAAE,IAAA,EAAK;AACjD,EAAA;AAEA,EAAA,MAAc,OAAA,CAAQ;AACpB,IAAA,MAAA;AACA,IAAA,eAAA;AACA,IAAA,WAAA;AACA,IAAA,IAAA;AACA,IAAA,IAAA;AACA,IAAA,gBAAA;AACA,IAAA,eAAA;AACA,IAAA,eAAA;AACA,IAAA,aAAA;AACA,IAAA,cAAA;AACA,IAAA,IAAA;AACA,IAAA,UAAA;AACA,IAAA;GACF,EAA+B;AA1FjC,IAAA,IAAA,EAAA,EAAA,EAAA;AA2FI,IAAA,MAAM,eAAA,GAAA,CACH,EAAA,GAAA,MAAMC,sCAAA,CAAqB;AAC1B,MAAA,QAAA,EAAU,IAAA,CAAK,mBAAA;AACf,MAAA,eAAA;MACA,MAAA,EAAQ;KACT,CAAA,KAJA,IAAA,GAAA,EAAA,GAIM,EAAC;AAEV,IAAA,MAAM,EAAE,QAAA,EAAU,QAAA,EAAS,GAAI,6BAAA,CAA8B;AAC3D,MAAA,MAAA;AACA,MAAA,cAAA;AACA,MAAA,OAAA,EAAS,IAAA,CAAK;KACf,CAAA;AAED,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA,QAAA,CAAS,KAAK,EAAE,IAAA,EAAM,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAA;AACxD,IAAA;AAEA,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA,QAAA,CAAS,KAAK,EAAE,IAAA,EAAM,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAA;AACxD,IAAA;AAEA,IAAA,MAAM;MACJ,KAAA,EAAO,aAAA;MACP,UAAA,EAAY,mBAAA;AACZ,MAAA;AACF,KAAA,GAAI,YAAA,CAAa;AACf,MAAA,KAAA;AACA,MAAA;KACD,CAAA;AAED,IAAA,MAAM,QAAA,GAAA,CAAA,CACJ,EAAA,GAAA,eAAA,CAAgB,QAAA,KAAhB,OAAA,MAAA,GAAA,EAAA,CAA0B,IAAA,KAAQ,IAAA,GAC9B,EAAE,IAAA,EAAM,eAAA,CAAgB,QAAA,CAAS,MAAK,GACtC,MAAA;AAEN,IAAA,OAAO;MACL,IAAA,EAAM;AACJ,QAAA,KAAA,EAAO,IAAA,CAAK,OAAA;QACZ,UAAA,EAAY,eAAA;AACZ,QAAA,WAAA;QACA,KAAA,EAAO,IAAA;QACP,iBAAA,EAAmB,gBAAA;QACnB,gBAAA,EAAkB,eAAA;QAClB,eAAA,EAAA,CACE,cAAA,IAAA,OAAA,MAAA,GAAA,cAAA,CAAgB,UAAS,MAAA,GAAS,EAAE,IAAA,EAAM,aAAA,EAAc,GAAI,MAAA;QAC9D,IAAA,EAAM,aAAA;AACN,QAAA,QAAA;QACA,KAAA,EAAO,aAAA;QACP,WAAA,EAAa,mBAAA;AACb,QAAA,QAAA;QACA,GAAA,CAAI,QAAA,IAAA,OAAA,MAAA,GAAA,QAAA,CAAU,UAAS,UAAA,IACrB,eAAA,CAAgB,mBAAmB,IAAA,IAAQ;AACzC,UAAA,gBAAA,EAAkB,eAAA,CAAgB;AACpC;AACJ,OAAA;AACA,MAAA,QAAA,EAAU,CAAC,GAAG,QAAA,EAAU,GAAG,YAAY;AACzC,KAAA;AACF,EAAA;AAEA,EAAA,MAAM,WACJ,OAAA,EACwC;AAxJ5C,IAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA;AAyJI,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,MAAM,KAAK,OAAA,CAAQ,EAAE,GAAG,OAAA,EAAS,CAAA;AAE5D,IAAA,MAAM;AACJ,MAAA,eAAA;MACA,KAAA,EAAO,YAAA;MACP,QAAA,EAAU;AACZ,KAAA,GAAI,MAAMC,+BAAA,CAAc;MACtB,GAAA,EAAK,IAAA,CAAK,OAAO,GAAA,CAAI;QACnB,IAAA,EAAM,mBAAA;AACN,QAAA,OAAA,EAAS,IAAA,CAAK;OACf,CAAA;AACD,MAAA,OAAA,EAASC,iCAAe,IAAA,CAAK,MAAA,CAAO,OAAA,EAAQ,EAAG,QAAQ,OAAO,CAAA;MAC9D,IAAA,EAAM,IAAA;AACN,MAAA,qBAAA,EAAuB,IAAA,CAAK,qBAAA;MAC5B,yBAAA,EAA2BC,2CAAA;AACzB,QAAA;AACF,OAAA;AACA,MAAA,WAAA,EAAa,OAAA,CAAQ,WAAA;AACrB,MAAA,KAAA,EAAO,KAAK,MAAA,CAAO;KACpB,CAAA;AAED,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,OAAA,CAAQ,CAAC,CAAA;AACrC,IAAA,MAAM,UAAyC,EAAC;AAGhD,IAAA,MAAM,SAAA,GAAY,OAAO,OAAA,CAAQ,iBAAA;AACjC,IAAA,IAAI,SAAA,IAAa,IAAA,IAAQ,SAAA,CAAU,MAAA,GAAS,CAAA,EAAG;AAC7C,MAAA,OAAA,CAAQ,IAAA,CAAK;QACX,IAAA,EAAM,WAAA;QACN,IAAA,EAAM;OACP,CAAA;AACH,IAAA;AAGA,IAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,UAAA,IAAc,IAAA,EAAM;AACrC,MAAA,KAAA,MAAW,QAAA,IAAY,MAAA,CAAO,OAAA,CAAQ,UAAA,EAAY;AAChD,QAAA,OAAA,CAAQ,IAAA,CAAK;UACX,IAAA,EAAM,WAAA;AACN,UAAA,UAAA,EAAA,CAAY,EAAA,GAAA,QAAA,CAAS,EAAA,KAAT,IAAA,GAAA,KAAeC,4BAAA,EAAW;AACtC,UAAA,QAAA,EAAU,SAAS,QAAA,CAAS,IAAA;AAC5B,UAAA,KAAA,EAAO,SAAS,QAAA,CAAS;SAC1B,CAAA;AACH,MAAA;AACF,IAAA;AAGA,IAAA,MAAM,IAAA,GAAO,OAAO,OAAA,CAAQ,OAAA;AAC5B,IAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG;AACnC,MAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,CAAA;AACrC,IAAA;AAEA,IAAA,OAAO;AACL,MAAA,OAAA;MACA,YAAA,EAAc;QACZ,OAAA,EAAS,uBAAA,CAAwB,OAAO,aAAa,CAAA;AACrD,QAAA,GAAA,EAAA,CAAK,EAAA,GAAA,MAAA,CAAO,aAAA,KAAP,IAAA,GAAA,EAAA,GAAwB;AAC/B,OAAA;MACA,KAAA,EAAO,oBAAA,CAAqB,aAAa,KAAK,CAAA;MAC9C,gBAAA,EAAkB;QAChB,CAAC,IAAA,CAAK,mBAAmB,GAAG;AAC1B,UAAA,oBAAA,EAAA,CAAsB,EAAA,GAAA,YAAA,CAAa,KAAA,KAAb,IAAA,GAAA,SAAA,EAAA,CAAoB,uBAAA;AAC1C,UAAA,qBAAA,EAAA,CAAuB,EAAA,GAAA,YAAA,CAAa,KAAA,KAAb,IAAA,GAAA,SAAA,EAAA,CAAoB;AAC7C;AACF,OAAA;MACA,OAAA,EAAS,EAAE,MAAM,IAAA,EAAK;MACtB,QAAA,EAAU;AACR,QAAA,GAAG,oBAAoB,YAAY,CAAA;QACnC,OAAA,EAAS,eAAA;QACT,IAAA,EAAM;AACR,OAAA;AACA,MAAA;AACF,KAAA;AACF,EAAA;AAEA,EAAA,MAAM,SACJ,OAAA,EACsC;AACtC,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,MAAM,KAAK,OAAA,CAAQ,EAAE,GAAG,OAAA,EAAS,CAAA;AAE5D,IAAA,MAAM,IAAA,GAAO;MACX,GAAG,IAAA;MACH,MAAA,EAAQ,IAAA;MACR,cAAA,EAAgB,EAAE,eAAe,IAAA;AACnC,KAAA;AAEA,IAAA,MAAM,EAAE,eAAA,EAAiB,KAAA,EAAO,QAAA,EAAS,GAAI,MAAMH,+BAAA,CAAc;MAC/D,GAAA,EAAK,IAAA,CAAK,OAAO,GAAA,CAAI;QACnB,IAAA,EAAM,mBAAA;AACN,QAAA,OAAA,EAAS,IAAA,CAAK;OACf,CAAA;AACD,MAAA,OAAA,EAASC,iCAAe,IAAA,CAAK,MAAA,CAAO,OAAA,EAAQ,EAAG,QAAQ,OAAO,CAAA;AAC9D,MAAA,IAAA;AACA,MAAA,qBAAA,EAAuB,IAAA,CAAK,qBAAA;MAC5B,yBAAA,EAA2BG,kDAAA;AACzB,QAAA;AACF,OAAA;AACA,MAAA,WAAA,EAAa,OAAA,CAAQ,WAAA;AACrB,MAAA,KAAA,EAAO,KAAK,MAAA,CAAO;KACpB,CAAA;AAED,IAAA,MAAM,YAQD,EAAC;AAEN,IAAA,IAAI,YAAA,GAA4C;MAC9C,OAAA,EAAS,OAAA;MACT,GAAA,EAAK;AACP,KAAA;AACA,IAAA,IAAI,KAAA,GAA4C,MAAA;AAChD,IAAA,IAAI,YAAA,GAAe,IAAA;AACnB,IAAA,MAAM,sBAAsB,IAAA,CAAK,mBAAA;AACjC,IAAA,IAAI,iBAAA,GAAoB,KAAA;AACxB,IAAA,IAAI,YAAA,GAAe,KAAA;AAEnB,IAAA,OAAO;AACL,MAAA,MAAA,EAAQ,QAAA,CAAS,WAAA;AACf,QAAA,IAAI,eAAA,CAGF;AACA,UAAA,KAAA,CAAM,UAAA,EAAY;AAChB,YAAA,UAAA,CAAW,OAAA,CAAQ,EAAE,IAAA,EAAM,cAAA,EAAgB,UAAU,CAAA;AACvD,UAAA,CAAA;AAEA,UAAA,SAAA,CAAU,OAAO,UAAA,EAAY;AA3RvC,YAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6RY,YAAA,IAAI,QAAQ,gBAAA,EAAkB;AAC5B,cAAA,UAAA,CAAW,QAAQ,EAAE,IAAA,EAAM,OAAO,QAAA,EAAU,KAAA,CAAM,UAAU,CAAA;AAC9D,YAAA;AAGA,YAAA,IAAI,CAAC,MAAM,OAAA,EAAS;AAClB,cAAA,YAAA,GAAe,EAAE,OAAA,EAAS,OAAA,EAAS,GAAA,EAAK,MAAA,EAAU;AAClD,cAAA,UAAA,CAAW,QAAQ,EAAE,IAAA,EAAM,SAAS,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AACxD,cAAA;AACF,YAAA;AACA,YAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AAGpB,YAAA,IAAI,WAAW,KAAA,EAAO;AACpB,cAAA,YAAA,GAAe,EAAE,OAAA,EAAS,OAAA,EAAS,GAAA,EAAK,MAAA,EAAU;AAClD,cAAA,UAAA,CAAW,OAAA,CAAQ,EAAE,IAAA,EAAM,OAAA,EAAS,OAAO,KAAA,CAAM,KAAA,CAAM,SAAS,CAAA;AAChE,cAAA;AACF,YAAA;AAEA,YAAA,IAAI,YAAA,EAAc;AAChB,cAAA,YAAA,GAAe,KAAA;AAEf,cAAA,UAAA,CAAW,OAAA,CAAQ;gBACjB,IAAA,EAAM,mBAAA;AACN,gBAAA,GAAG,oBAAoB,KAAK;eAC7B,CAAA;AACH,YAAA;AAEA,YAAA,IAAI,KAAA,CAAM,SAAS,IAAA,EAAM;AACvB,cAAA,KAAA,GAAQ,KAAA,CAAM,KAAA;AAChB,YAAA;AAEA,YAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAE9B,YAAA,IAAA,CAAI,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,kBAAiB,IAAA,EAAM;AACjC,cAAA,YAAA,GAAe;gBACb,OAAA,EAAS,uBAAA,CAAwB,OAAO,aAAa,CAAA;AACrD,gBAAA,GAAA,EAAK,MAAA,CAAO;AACd,eAAA;AACF,YAAA;AAEA,YAAA,IAAA,CAAI,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,UAAS,IAAA,EAAM;AACzB,cAAA;AACF,YAAA;AAEA,YAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AAGrB,YAAA,MAAM,mBAAmB,KAAA,CAAM,iBAAA;AAC/B,YAAA,IAAI,gBAAA,EAAkB;AACpB,cAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,gBAAA,UAAA,CAAW,OAAA,CAAQ;kBACjB,IAAA,EAAM,iBAAA;kBACN,EAAA,EAAI;iBACL,CAAA;AACD,gBAAA,iBAAA,GAAoB,IAAA;AACtB,cAAA;AAEA,cAAA,UAAA,CAAW,OAAA,CAAQ;gBACjB,IAAA,EAAM,iBAAA;gBACN,EAAA,EAAI,aAAA;gBACJ,KAAA,EAAO;eACR,CAAA;AACH,YAAA;AAEA,YAAA,IAAI,MAAM,OAAA,EAAS;AACjB,cAAA,IAAI,CAAC,YAAA,EAAc;AACjB,gBAAA,UAAA,CAAW,QAAQ,EAAE,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,SAAS,CAAA;AACtD,gBAAA,YAAA,GAAe,IAAA;AACjB,cAAA;AAGA,cAAA,IAAI,iBAAA,EAAmB;AACrB,gBAAA,UAAA,CAAW,OAAA,CAAQ;kBACjB,IAAA,EAAM,eAAA;kBACN,EAAA,EAAI;iBACL,CAAA;AACD,gBAAA,iBAAA,GAAoB,KAAA;AACtB,cAAA;AAEA,cAAA,UAAA,CAAW,OAAA,CAAQ;gBACjB,IAAA,EAAM,YAAA;gBACN,EAAA,EAAI,OAAA;AACJ,gBAAA,KAAA,EAAO,KAAA,CAAM;eACd,CAAA;AACH,YAAA;AAEA,YAAA,IAAI,KAAA,CAAM,cAAc,IAAA,EAAM;AAE5B,cAAA,IAAI,iBAAA,EAAmB;AACrB,gBAAA,UAAA,CAAW,OAAA,CAAQ;kBACjB,IAAA,EAAM,eAAA;kBACN,EAAA,EAAI;iBACL,CAAA;AACD,gBAAA,iBAAA,GAAoB,KAAA;AACtB,cAAA;AAEA,cAAA,KAAA,MAAW,aAAA,IAAiB,MAAM,UAAA,EAAY;AAC5C,gBAAA,MAAM,QAAQ,aAAA,CAAc,KAAA;AAE5B,gBAAA,IAAI,SAAA,CAAU,KAAK,CAAA,IAAK,IAAA,EAAM;AAC5B,kBAAA,IAAI,aAAA,CAAc,MAAM,IAAA,EAAM;AAC5B,oBAAA,MAAM,IAAIC,0CAAA,CAAyB;sBACjC,IAAA,EAAM,aAAA;sBACN,OAAA,EAAS,CAAA,6BAAA;qBACV,CAAA;AACH,kBAAA;AAEA,kBAAA,IAAA,CAAA,CAAI,KAAA,aAAA,CAAc,QAAA,KAAd,OAAA,MAAA,GAAA,EAAA,CAAwB,SAAQ,IAAA,EAAM;AACxC,oBAAA,MAAM,IAAIA,0CAAA,CAAyB;sBACjC,IAAA,EAAM,aAAA;sBACN,OAAA,EAAS,CAAA,wCAAA;qBACV,CAAA;AACH,kBAAA;AAEA,kBAAA,UAAA,CAAW,OAAA,CAAQ;oBACjB,IAAA,EAAM,kBAAA;AACN,oBAAA,EAAA,EAAI,aAAA,CAAc,EAAA;AAClB,oBAAA,QAAA,EAAU,cAAc,QAAA,CAAS;mBAClC,CAAA;AAED,kBAAA,SAAA,CAAU,KAAK,CAAA,GAAI;AACjB,oBAAA,EAAA,EAAI,aAAA,CAAc,EAAA;oBAClB,IAAA,EAAM,UAAA;oBACN,QAAA,EAAU;AACR,sBAAA,IAAA,EAAM,cAAc,QAAA,CAAS,IAAA;AAC7B,sBAAA,SAAA,EAAA,CAAW,EAAA,GAAA,aAAA,CAAc,QAAA,CAAS,SAAA,KAAvB,OAAA,EAAA,GAAoC;AACjD,qBAAA;oBACA,WAAA,EAAa;AACf,mBAAA;AAEA,kBAAA,MAAMC,SAAAA,GAAW,UAAU,KAAK,CAAA;AAEhC,kBAAA,IAAA,CAAA,CACE,EAAA,GAAAA,SAAAA,CAAS,QAAA,KAAT,IAAA,GAAA,SAAA,EAAA,CAAmB,IAAA,KAAQ,IAAA,IAAA,CAAA,CAC3B,EAAA,GAAAA,UAAS,QAAA,KAAT,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmB,cAAa,IAAA,EAChC;AAEA,oBAAA,IAAIA,SAAAA,CAAS,QAAA,CAAS,SAAA,CAAU,MAAA,GAAS,CAAA,EAAG;AAC1C,sBAAA,UAAA,CAAW,OAAA,CAAQ;wBACjB,IAAA,EAAM,kBAAA;AACN,wBAAA,EAAA,EAAIA,SAAAA,CAAS,EAAA;AACb,wBAAA,KAAA,EAAOA,UAAS,QAAA,CAAS;uBAC1B,CAAA;AACH,oBAAA;AAIA,oBAAA,IAAIC,gCAAA,CAAeD,SAAAA,CAAS,QAAA,CAAS,SAAS,CAAA,EAAG;AAC/C,sBAAA,UAAA,CAAW,OAAA,CAAQ;wBACjB,IAAA,EAAM,gBAAA;AACN,wBAAA,EAAA,EAAIA,SAAAA,CAAS;uBACd,CAAA;AAED,sBAAA,UAAA,CAAW,OAAA,CAAQ;wBACjB,IAAA,EAAM,WAAA;AACN,wBAAA,UAAA,EAAA,CAAY,EAAA,GAAAA,SAAAA,CAAS,EAAA,KAAT,IAAA,GAAA,KAAeH,4BAAA,EAAW;AACtC,wBAAA,QAAA,EAAUG,UAAS,QAAA,CAAS,IAAA;AAC5B,wBAAA,KAAA,EAAOA,UAAS,QAAA,CAAS;uBAC1B,CAAA;AACDA,sBAAAA,SAAAA,CAAS,WAAA,GAAc,IAAA;AACzB,oBAAA;AACF,kBAAA;AAEA,kBAAA;AACF,gBAAA;AAGA,gBAAA,MAAM,QAAA,GAAW,UAAU,KAAK,CAAA;AAEhC,gBAAA,IAAI,SAAS,WAAA,EAAa;AACxB,kBAAA;AACF,gBAAA;AAEA,gBAAA,IAAA,CAAA,CAAI,KAAA,aAAA,CAAc,QAAA,KAAd,OAAA,MAAA,GAAA,EAAA,CAAwB,cAAa,IAAA,EAAM;AAC7C,kBAAA,QAAA,CAAS,QAAA,CAAU,SAAA,IAAA,CACjB,EAAA,GAAA,CAAA,EAAA,GAAA,aAAA,CAAc,QAAA,KAAd,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwB,SAAA,KAAxB,IAAA,GAAA,EAAA,GAAqC,EAAA;AACzC,gBAAA;AAGA,gBAAA,UAAA,CAAW,OAAA,CAAQ;kBACjB,IAAA,EAAM,kBAAA;AACN,kBAAA,EAAA,EAAI,QAAA,CAAS,EAAA;AACb,kBAAA,KAAA,EAAA,CAAO,EAAA,GAAA,aAAA,CAAc,QAAA,CAAS,SAAA,KAAvB,OAAA,EAAA,GAAoC;iBAC5C,CAAA;AAGD,gBAAA,IAAA,CAAA,CACE,EAAA,GAAA,SAAS,QAAA,KAAT,IAAA,GAAA,SAAA,EAAA,CAAmB,IAAA,KAAQ,UAC3B,EAAA,GAAA,QAAA,CAAS,aAAT,IAAA,GAAA,MAAA,GAAA,GAAmB,SAAA,KAAa,IAAA,IAChCC,iCAAe,QAAA,CAAS,QAAA,CAAS,SAAS,CAAA,EAC1C;AACA,kBAAA,UAAA,CAAW,OAAA,CAAQ;oBACjB,IAAA,EAAM,gBAAA;AACN,oBAAA,EAAA,EAAI,QAAA,CAAS;mBACd,CAAA;AAED,kBAAA,UAAA,CAAW,OAAA,CAAQ;oBACjB,IAAA,EAAM,WAAA;AACN,oBAAA,UAAA,EAAA,CAAY,EAAA,GAAA,QAAA,CAAS,EAAA,KAAT,IAAA,GAAA,KAAeJ,4BAAA,EAAW;AACtC,oBAAA,QAAA,EAAU,SAAS,QAAA,CAAS,IAAA;AAC5B,oBAAA,KAAA,EAAO,SAAS,QAAA,CAAS;mBAC1B,CAAA;AACD,kBAAA,QAAA,CAAS,WAAA,GAAc,IAAA;AACzB,gBAAA;AACF,cAAA;AACF,YAAA;AACF,UAAA,CAAA;AAEA,UAAA,KAAA,CAAM,UAAA,EAAY;AA9e5B,YAAA,IAAA,IAAA,EAAA,EAAA,EAAA;AA+eY,YAAA,IAAI,iBAAA,EAAmB;AACrB,cAAA,UAAA,CAAW,QAAQ,EAAE,IAAA,EAAM,eAAA,EAAiB,EAAA,EAAI,eAAe,CAAA;AACjE,YAAA;AAEA,YAAA,IAAI,YAAA,EAAc;AAChB,cAAA,UAAA,CAAW,QAAQ,EAAE,IAAA,EAAM,UAAA,EAAY,EAAA,EAAI,SAAS,CAAA;AACtD,YAAA;AAGA,YAAA,KAAA,MAAW,YAAY,SAAA,CAAU,MAAA;cAC/B,CAAAG,SAAAA,KAAY,CAACA,SAAAA,CAAS;aACxB,EAAG;AACD,cAAA,UAAA,CAAW,OAAA,CAAQ;gBACjB,IAAA,EAAM,gBAAA;AACN,gBAAA,EAAA,EAAI,QAAA,CAAS;eACd,CAAA;AAED,cAAA,UAAA,CAAW,OAAA,CAAQ;gBACjB,IAAA,EAAM,WAAA;AACN,gBAAA,UAAA,EAAA,CAAY,EAAA,GAAA,QAAA,CAAS,EAAA,KAAT,IAAA,GAAA,KAAeH,4BAAA,EAAW;AACtC,gBAAA,QAAA,EAAU,SAAS,QAAA,CAAS,IAAA;AAC5B,gBAAA,KAAA,EAAO,SAAS,QAAA,CAAS;eAC1B,CAAA;AACH,YAAA;AAEA,YAAA,UAAA,CAAW,OAAA,CAAQ;cACjB,IAAA,EAAM,QAAA;AACN,cAAA,YAAA;AACA,cAAA,KAAA,EAAO,qBAAqB,KAAK,CAAA;cACjC,gBAAA,EAAkB;AAChB,gBAAA,CAAC,mBAAmB,GAAG;AACrB,kBAAA,oBAAA,EAAA,CACE,KAAA,KAAA,IAAA,IAAA,GAAA,SAAA,KAAA,CAAO,uBAAA,KAAP,OAAA,EAAA,GAAkC,MAAA;AACpC,kBAAA,qBAAA,EAAA,CACE,KAAA,KAAA,IAAA,IAAA,GAAA,SAAA,KAAA,CAAO,wBAAA,KAAP,OAAA,EAAA,GAAmC;AACvC;AACF;aACD,CAAA;AACH,UAAA;SACD;AACH,OAAA;AACA,MAAA,OAAA,EAAS,EAAE,IAAA,EAAK;MAChB,QAAA,EAAU,EAAE,SAAS,eAAA;AACvB,KAAA;AACF,EAAA;AACF,CAAA;AC1hBO,IAAM,OAAA,GAEP,QAAA;ACwDC,SAAS,cAAA,CACd,OAAA,GAAoC,EAAC,EACnB;AA9DpB,EAAA,IAAA,EAAA;AA+DE,EAAA,MAAM,OAAA,GAAUK,sCAAA;KACd,EAAA,GAAA,OAAA,CAAQ,OAAA,KAAR,IAAA,GAAA,EAAA,GAAmB;AACrB,GAAA;AAEA,EAAA,MAAM,aAAa,MACjBC,qCAAA;AACE,IAAA;AACE,MAAA,aAAA,EAAe,UAAUC,4BAAA,CAAW;AAClC,QAAA,MAAA,EAAQ,OAAA,CAAQ,MAAA;QAChB,uBAAA,EAAyB,kBAAA;QACzB,WAAA,EAAa;AACf,OAAC,CAAC,CAAA,CAAA;AACF,MAAA,GAAG,OAAA,CAAQ;AACb,KAAA;AACA,IAAA,CAAA,gBAAA,EAAmB,OAAO,CAAA;AAC5B,GAAA;AAEF,EAAA,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAiC;AAC5D,IAAA,OAAO,IAAI,0BAA0B,OAAA,EAAS;MAC5C,QAAA,EAAU,CAAA,aAAA,CAAA;AACV,MAAA,GAAA,EAAK,CAAC,EAAE,IAAA,OAAW,CAAA,EAAG,OAAO,GAAG,IAAI,CAAA,CAAA;MACpC,OAAA,EAAS,UAAA;AACT,MAAA,KAAA,EAAO,OAAA,CAAQ;KAChB,CAAA;AACH,EAAA,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,OAAA,KAChB,mBAAA,CAAoB,OAAO,CAAA;AAE7B,EAAA,QAAA,CAAS,oBAAA,GAAuB,IAAA;AAChC,EAAA,QAAA,CAAS,aAAA,GAAgB,mBAAA;AACzB,EAAA,QAAA,CAAS,IAAA,GAAO,mBAAA;AAEhB,EAAA,QAAA,CAAS,cAAA,GAAiB,CAAC,OAAA,KAAoB;AAC7C,IAAA,MAAM,IAAIC,kCAAA,CAAiB,EAAE,OAAA,EAAS,SAAA,EAAW,kBAAkB,CAAA;AACrE,EAAA,CAAA;AACA,EAAA,QAAA,CAAS,qBAAqB,QAAA,CAAS,cAAA;AACvC,EAAA,QAAA,CAAS,UAAA,GAAa,CAAC,OAAA,KAAoB;AACzC,IAAA,MAAM,IAAIA,kCAAA,CAAiB,EAAE,OAAA,EAAS,SAAA,EAAW,cAAc,CAAA;AACjE,EAAA,CAAA;AAEA,EAAA,OAAO,QAAA;AACT;AAEO,IAAM,WAAW,cAAA","file":"dist-QQFFV5JO.cjs","sourcesContent":["import type {\n  LanguageModelV3CallOptions,\n  LanguageModelV3Prompt,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport type { DeepSeekChatPrompt } from './deepseek-chat-api-types';\n\nexport function convertToDeepSeekChatMessages({\n  prompt,\n  responseFormat,\n  modelId,\n}: {\n  prompt: LanguageModelV3Prompt;\n  responseFormat: LanguageModelV3CallOptions['responseFormat'];\n  modelId: string;\n}): {\n  messages: DeepSeekChatPrompt;\n  warnings: Array<SharedV3Warning>;\n} {\n  const isDeepSeekV4 = modelId.includes('deepseek-v4');\n  const messages: DeepSeekChatPrompt = [];\n  const warnings: Array<SharedV3Warning> = [];\n\n  // Inject system message if response format is JSON\n  if (responseFormat?.type === 'json') {\n    if (responseFormat.schema == null) {\n      messages.push({\n        role: 'system',\n        content: 'Return JSON.',\n      });\n    } else {\n      messages.push({\n        role: 'system',\n        content:\n          'Return JSON that conforms to the following schema: ' +\n          JSON.stringify(responseFormat.schema),\n      });\n      warnings.push({\n        type: 'compatibility',\n        feature: 'responseFormat JSON schema',\n        details: 'JSON response schema is injected into the system message.',\n      });\n    }\n  }\n\n  // TODO use findLastIndex once we use ES2023\n  let lastUserMessageIndex = -1;\n  for (let i = prompt.length - 1; i >= 0; i--) {\n    if (prompt[i].role === 'user') {\n      lastUserMessageIndex = i;\n      break;\n    }\n  }\n\n  let index = -1;\n  for (const { role, content } of prompt) {\n    index++;\n\n    switch (role) {\n      case 'system': {\n        messages.push({ role: 'system', content });\n        break;\n      }\n\n      case 'user': {\n        let userContent = '';\n        for (const part of content) {\n          if (part.type === 'text') {\n            userContent += part.text;\n          } else {\n            warnings.push({\n              type: 'unsupported',\n              feature: `user message part type: ${part.type}`,\n            });\n          }\n        }\n\n        messages.push({\n          role: 'user',\n          content: userContent,\n        });\n\n        break;\n      }\n      case 'assistant': {\n        let text = '';\n        let reasoning: string | undefined;\n\n        const toolCalls: Array<{\n          id: string;\n          type: 'function';\n          function: { name: string; arguments: string };\n        }> = [];\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              text += part.text;\n              break;\n            }\n            case 'reasoning': {\n              // R1 must not receive prior reasoning; V4 requires it.\n              if (index <= lastUserMessageIndex && !isDeepSeekV4) {\n                break;\n              }\n\n              if (reasoning == null) {\n                reasoning = part.text;\n              } else {\n                reasoning += part.text;\n              }\n              break;\n            }\n            case 'tool-call': {\n              toolCalls.push({\n                id: part.toolCallId,\n                type: 'function',\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input),\n                },\n              });\n              break;\n            }\n          }\n        }\n\n        // V4 demands the field on every assistant turn — back-fill an empty\n        // string when the source message had no reasoning part at all.\n        messages.push({\n          role: 'assistant',\n          content: text,\n          reasoning_content: reasoning ?? (isDeepSeekV4 ? '' : undefined),\n          tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n        });\n\n        break;\n      }\n\n      case 'tool': {\n        for (const toolResponse of content) {\n          if (toolResponse.type === 'tool-approval-response') {\n            continue;\n          }\n          const output = toolResponse.output;\n\n          let contentValue: string;\n          switch (output.type) {\n            case 'text':\n            case 'error-text':\n              contentValue = output.value;\n              break;\n            case 'execution-denied':\n              contentValue = output.reason ?? 'Tool execution denied.';\n              break;\n            case 'content':\n            case 'json':\n            case 'error-json':\n              contentValue = JSON.stringify(output.value);\n              break;\n          }\n\n          messages.push({\n            role: 'tool',\n            tool_call_id: toolResponse.toolCallId,\n            content: contentValue,\n          });\n        }\n        break;\n      }\n\n      default: {\n        warnings.push({\n          type: 'unsupported',\n          feature: `message role: ${role}`,\n        });\n        break;\n      }\n    }\n  }\n\n  return { messages, warnings };\n}\n","import type { LanguageModelV3Usage } from '@ai-sdk/provider';\n\nexport function convertDeepSeekUsage(\n  usage:\n    | {\n        prompt_tokens?: number | null | undefined;\n        completion_tokens?: number | null | undefined;\n        prompt_cache_hit_tokens?: number | null | undefined;\n        completion_tokens_details?:\n          | {\n              reasoning_tokens?: number | null | undefined;\n            }\n          | null\n          | undefined;\n      }\n    | undefined\n    | null,\n): LanguageModelV3Usage {\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: undefined,\n        noCache: undefined,\n        cacheRead: undefined,\n        cacheWrite: undefined,\n      },\n      outputTokens: {\n        total: undefined,\n        text: undefined,\n        reasoning: undefined,\n      },\n      raw: undefined,\n    };\n  }\n\n  const promptTokens = usage.prompt_tokens ?? 0;\n  const completionTokens = usage.completion_tokens ?? 0;\n  const cacheReadTokens = usage.prompt_cache_hit_tokens ?? 0;\n  const reasoningTokens =\n    usage.completion_tokens_details?.reasoning_tokens ?? 0;\n\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens - cacheReadTokens,\n      cacheRead: cacheReadTokens,\n      cacheWrite: undefined,\n    },\n    outputTokens: {\n      total: completionTokens,\n      text: completionTokens - reasoningTokens,\n      reasoning: reasoningTokens,\n    },\n    raw: usage,\n  };\n}\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type DeepSeekChatPrompt = Array<DeepSeekMessage>;\n\nexport type DeepSeekMessage =\n  | DeepSeekSystemMessage\n  | DeepSeekUserMessage\n  | DeepSeekAssistantMessage\n  | DeepSeekToolMessage;\n\nexport interface DeepSeekSystemMessage {\n  role: 'system';\n  content: string;\n}\n\nexport interface DeepSeekUserMessage {\n  role: 'user';\n  content: string;\n}\n\nexport interface DeepSeekAssistantMessage {\n  role: 'assistant';\n  content?: string | null;\n  reasoning_content?: string;\n  tool_calls?: Array<DeepSeekMessageToolCall>;\n}\n\nexport interface DeepSeekMessageToolCall {\n  type: 'function';\n  id: string;\n  function: {\n    arguments: string;\n    name: string;\n  };\n}\n\nexport interface DeepSeekToolMessage {\n  role: 'tool';\n  content: string;\n  tool_call_id: string;\n}\n\nexport interface DeepSeekFunctionTool {\n  type: 'function';\n  function: {\n    name: string;\n    description: string | undefined;\n    parameters: unknown;\n    strict?: boolean;\n  };\n}\n\nexport type DeepSeekToolChoice =\n  | { type: 'function'; function: { name: string } }\n  | 'auto'\n  | 'none'\n  | 'required'\n  | undefined;\n\nconst tokenUsageSchema = z\n  .object({\n    prompt_tokens: z.number().nullish(),\n    completion_tokens: z.number().nullish(),\n    prompt_cache_hit_tokens: z.number().nullish(),\n    prompt_cache_miss_tokens: z.number().nullish(),\n    total_tokens: z.number().nullish(),\n    completion_tokens_details: z\n      .object({\n        reasoning_tokens: z.number().nullish(),\n      })\n      .nullish(),\n  })\n  .nullish();\n\nexport type DeepSeekChatTokenUsage = z.infer<typeof tokenUsageSchema>;\n\nexport const deepSeekErrorSchema = z.object({\n  error: z.object({\n    message: z.string(),\n    type: z.string().nullish(),\n    param: z.any().nullish(),\n    code: z.union([z.string(), z.number()]).nullish(),\n  }),\n});\n\nexport type DeepSeekErrorData = z.infer<typeof deepSeekErrorSchema>;\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const deepseekChatResponseSchema = z.object({\n  id: z.string().nullish(),\n  created: z.number().nullish(),\n  model: z.string().nullish(),\n  choices: z.array(\n    z.object({\n      message: z.object({\n        role: z.literal('assistant').nullish(),\n        content: z.string().nullish(),\n        reasoning_content: z.string().nullish(),\n        tool_calls: z\n          .array(\n            z.object({\n              id: z.string().nullish(),\n              function: z.object({\n                name: z.string(),\n                arguments: z.string(),\n              }),\n            }),\n          )\n          .nullish(),\n      }),\n      finish_reason: z.string().nullish(),\n    }),\n  ),\n  usage: tokenUsageSchema,\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const deepseekChatChunkSchema = lazySchema(() =>\n  zodSchema(\n    z.union([\n      z.object({\n        id: z.string().nullish(),\n        created: z.number().nullish(),\n        model: z.string().nullish(),\n        choices: z.array(\n          z.object({\n            delta: z\n              .object({\n                role: z.enum(['assistant']).nullish(),\n                content: z.string().nullish(),\n                reasoning_content: z.string().nullish(),\n                tool_calls: z\n                  .array(\n                    z.object({\n                      index: z.number(),\n                      id: z.string().nullish(),\n                      function: z.object({\n                        name: z.string().nullish(),\n                        arguments: z.string().nullish(),\n                      }),\n                    }),\n                  )\n                  .nullish(),\n              })\n              .nullish(),\n            finish_reason: z.string().nullish(),\n          }),\n        ),\n        usage: tokenUsageSchema,\n      }),\n      deepSeekErrorSchema,\n    ]),\n  ),\n);\n","import { z } from 'zod/v4';\n\n// https://api-docs.deepseek.com/quick_start/pricing\nexport type DeepSeekChatModelId =\n  | 'deepseek-chat'\n  | 'deepseek-reasoner'\n  | (string & {});\n\nexport const deepseekLanguageModelOptions = z.object({\n  /**\n   * Type of thinking to use. Defaults to `enabled`.\n   */\n  thinking: z\n    .object({\n      type: z.enum(['enabled', 'disabled']).optional(),\n    })\n    .optional(),\n\n  /**\n   * Controls the thinking strength for DeepSeek V4 reasoning models.\n   */\n  reasoningEffort: z.enum(['high', 'max']).optional(),\n});\n\nexport type DeepSeekLanguageModelOptions = z.infer<\n  typeof deepseekLanguageModelOptions\n>;\n","import type {\n  LanguageModelV3CallOptions,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport type {\n  DeepSeekFunctionTool,\n  DeepSeekToolChoice,\n} from './deepseek-chat-api-types';\n\nexport function prepareTools({\n  tools,\n  toolChoice,\n}: {\n  tools: LanguageModelV3CallOptions['tools'];\n  toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n}): {\n  tools: undefined | Array<DeepSeekFunctionTool>;\n  toolChoice: DeepSeekToolChoice;\n  toolWarnings: SharedV3Warning[];\n} {\n  // when the tools array is empty, change it to undefined to prevent errors:\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: SharedV3Warning[] = [];\n\n  if (tools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings };\n  }\n\n  const deepseekTools: Array<DeepSeekFunctionTool> = [];\n\n  for (const tool of tools) {\n    if (tool.type === 'provider') {\n      toolWarnings.push({\n        type: 'unsupported',\n        feature: `provider-defined tool ${tool.id}`,\n      });\n    } else {\n      deepseekTools.push({\n        type: 'function',\n        function: {\n          name: tool.name,\n          description: tool.description,\n          parameters: tool.inputSchema,\n          ...(tool.strict != null ? { strict: tool.strict } : {}),\n        },\n      });\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: deepseekTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice?.type;\n\n  switch (type) {\n    case 'auto':\n    case 'none':\n    case 'required':\n      return { tools: deepseekTools, toolChoice: type, toolWarnings };\n    case 'tool':\n      return {\n        tools: deepseekTools,\n        toolChoice: {\n          type: 'function',\n          function: { name: toolChoice.toolName },\n        },\n        toolWarnings,\n      };\n    default: {\n      return {\n        tools: deepseekTools,\n        toolChoice: undefined,\n        toolWarnings: [\n          ...toolWarnings,\n          {\n            type: 'unsupported',\n            feature: `tool choice type: ${type}`,\n          },\n        ],\n      };\n    }\n  }\n}\n","export function getResponseMetadata({\n  id,\n  model,\n  created,\n}: {\n  id?: string | undefined | null;\n  created?: number | undefined | null;\n  model?: string | undefined | null;\n}) {\n  return {\n    id: id ?? undefined,\n    modelId: model ?? undefined,\n    timestamp: created != null ? new Date(created * 1000) : undefined,\n  };\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapDeepSeekFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'stop':\n      return 'stop';\n    case 'length':\n      return 'length';\n    case 'content_filter':\n      return 'content-filter';\n    case 'tool_calls':\n      return 'tool-calls';\n    case 'insufficient_system_resource':\n      return 'error';\n    default:\n      return 'other';\n  }\n}\n","import {\n  InvalidResponseDataError,\n  type APICallError,\n  type LanguageModelV3,\n  type LanguageModelV3CallOptions,\n  type LanguageModelV3Content,\n  type LanguageModelV3FinishReason,\n  type LanguageModelV3GenerateResult,\n  type LanguageModelV3StreamPart,\n  type LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  isParsableJson,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n  type InferSchema,\n  type ParseResult,\n  type ResponseHandler,\n} from '@ai-sdk/provider-utils';\nimport { convertToDeepSeekChatMessages } from './convert-to-deepseek-chat-messages';\nimport { convertDeepSeekUsage } from './convert-to-deepseek-usage';\nimport {\n  deepseekChatChunkSchema,\n  deepseekChatResponseSchema,\n  deepSeekErrorSchema,\n  type DeepSeekChatTokenUsage,\n} from './deepseek-chat-api-types';\nimport {\n  deepseekLanguageModelOptions,\n  type DeepSeekChatModelId,\n} from './deepseek-chat-options';\nimport { prepareTools } from './deepseek-prepare-tools';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapDeepSeekFinishReason } from './map-deepseek-finish-reason';\n\nexport type DeepSeekChatConfig = {\n  provider: string;\n  headers: () => Record<string, string | undefined>;\n  url: (options: { modelId: string; path: string }) => string;\n  fetch?: FetchFunction;\n};\n\nexport class DeepSeekChatLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n\n  readonly modelId: DeepSeekChatModelId;\n  readonly supportedUrls = {};\n\n  private readonly config: DeepSeekChatConfig;\n  private readonly failedResponseHandler: ResponseHandler<APICallError>;\n\n  constructor(modelId: DeepSeekChatModelId, config: DeepSeekChatConfig) {\n    this.modelId = modelId;\n    this.config = config;\n\n    this.failedResponseHandler = createJsonErrorResponseHandler({\n      errorSchema: deepSeekErrorSchema,\n      errorToMessage: (error: InferSchema<typeof deepSeekErrorSchema>) =>\n        error.error.message,\n    });\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  private get providerOptionsName(): string {\n    return this.config.provider.split('.')[0].trim();\n  }\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    providerOptions,\n    stopSequences,\n    responseFormat,\n    seed,\n    toolChoice,\n    tools,\n  }: LanguageModelV3CallOptions) {\n    const deepseekOptions =\n      (await parseProviderOptions({\n        provider: this.providerOptionsName,\n        providerOptions,\n        schema: deepseekLanguageModelOptions,\n      })) ?? {};\n\n    const { messages, warnings } = convertToDeepSeekChatMessages({\n      prompt,\n      responseFormat,\n      modelId: this.modelId,\n    });\n\n    if (topK != null) {\n      warnings.push({ type: 'unsupported', feature: 'topK' });\n    }\n\n    if (seed != null) {\n      warnings.push({ type: 'unsupported', feature: 'seed' });\n    }\n\n    const {\n      tools: deepseekTools,\n      toolChoice: deepseekToolChoices,\n      toolWarnings,\n    } = prepareTools({\n      tools,\n      toolChoice,\n    });\n\n    const thinking =\n      deepseekOptions.thinking?.type != null\n        ? { type: deepseekOptions.thinking.type }\n        : undefined;\n\n    return {\n      args: {\n        model: this.modelId,\n        max_tokens: maxOutputTokens,\n        temperature,\n        top_p: topP,\n        frequency_penalty: frequencyPenalty,\n        presence_penalty: presencePenalty,\n        response_format:\n          responseFormat?.type === 'json' ? { type: 'json_object' } : undefined,\n        stop: stopSequences,\n        messages,\n        tools: deepseekTools,\n        tool_choice: deepseekToolChoices,\n        thinking,\n        ...(thinking?.type !== 'disabled' &&\n          deepseekOptions.reasoningEffort != null && {\n            reasoning_effort: deepseekOptions.reasoningEffort,\n          }),\n      },\n      warnings: [...warnings, ...toolWarnings],\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const { args, warnings } = await this.getArgs({ ...options });\n\n    const {\n      responseHeaders,\n      value: responseBody,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: '/chat/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: this.failedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        deepseekChatResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const choice = responseBody.choices[0];\n    const content: Array<LanguageModelV3Content> = [];\n\n    // reasoning content (before text):\n    const reasoning = choice.message.reasoning_content;\n    if (reasoning != null && reasoning.length > 0) {\n      content.push({\n        type: 'reasoning',\n        text: reasoning,\n      });\n    }\n\n    // tool calls:\n    if (choice.message.tool_calls != null) {\n      for (const toolCall of choice.message.tool_calls) {\n        content.push({\n          type: 'tool-call',\n          toolCallId: toolCall.id ?? generateId(),\n          toolName: toolCall.function.name,\n          input: toolCall.function.arguments!,\n        });\n      }\n    }\n\n    // text content:\n    const text = choice.message.content;\n    if (text != null && text.length > 0) {\n      content.push({ type: 'text', text });\n    }\n\n    return {\n      content,\n      finishReason: {\n        unified: mapDeepSeekFinishReason(choice.finish_reason),\n        raw: choice.finish_reason ?? undefined,\n      },\n      usage: convertDeepSeekUsage(responseBody.usage),\n      providerMetadata: {\n        [this.providerOptionsName]: {\n          promptCacheHitTokens: responseBody.usage?.prompt_cache_hit_tokens,\n          promptCacheMissTokens: responseBody.usage?.prompt_cache_miss_tokens,\n        },\n      },\n      request: { body: args },\n      response: {\n        ...getResponseMetadata(responseBody),\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      warnings,\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const { args, warnings } = await this.getArgs({ ...options });\n\n    const body = {\n      ...args,\n      stream: true,\n      stream_options: { include_usage: true },\n    };\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: this.config.url({\n        path: '/chat/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: this.failedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        deepseekChatChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const toolCalls: Array<{\n      id: string;\n      type: 'function';\n      function: {\n        name: string;\n        arguments: string;\n      };\n      hasFinished: boolean;\n    }> = [];\n\n    let finishReason: LanguageModelV3FinishReason = {\n      unified: 'other',\n      raw: undefined,\n    };\n    let usage: DeepSeekChatTokenUsage | undefined = undefined;\n    let isFirstChunk = true;\n    const providerOptionsName = this.providerOptionsName;\n    let isActiveReasoning = false;\n    let isActiveText = false;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<InferSchema<typeof deepseekChatChunkSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            // Emit raw chunk if requested (before anything else)\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = { unified: 'error', raw: undefined };\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n            const value = chunk.value;\n\n            // handle error chunks:\n            if ('error' in value) {\n              finishReason = { unified: 'error', raw: undefined };\n              controller.enqueue({ type: 'error', error: value.error.message });\n              return;\n            }\n\n            if (isFirstChunk) {\n              isFirstChunk = false;\n\n              controller.enqueue({\n                type: 'response-metadata',\n                ...getResponseMetadata(value),\n              });\n            }\n\n            if (value.usage != null) {\n              usage = value.usage;\n            }\n\n            const choice = value.choices[0];\n\n            if (choice?.finish_reason != null) {\n              finishReason = {\n                unified: mapDeepSeekFinishReason(choice.finish_reason),\n                raw: choice.finish_reason,\n              };\n            }\n\n            if (choice?.delta == null) {\n              return;\n            }\n\n            const delta = choice.delta;\n\n            // enqueue reasoning before text deltas:\n            const reasoningContent = delta.reasoning_content;\n            if (reasoningContent) {\n              if (!isActiveReasoning) {\n                controller.enqueue({\n                  type: 'reasoning-start',\n                  id: 'reasoning-0',\n                });\n                isActiveReasoning = true;\n              }\n\n              controller.enqueue({\n                type: 'reasoning-delta',\n                id: 'reasoning-0',\n                delta: reasoningContent,\n              });\n            }\n\n            if (delta.content) {\n              if (!isActiveText) {\n                controller.enqueue({ type: 'text-start', id: 'txt-0' });\n                isActiveText = true;\n              }\n\n              // end reasoning when text starts:\n              if (isActiveReasoning) {\n                controller.enqueue({\n                  type: 'reasoning-end',\n                  id: 'reasoning-0',\n                });\n                isActiveReasoning = false;\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: 'txt-0',\n                delta: delta.content,\n              });\n            }\n\n            if (delta.tool_calls != null) {\n              // end reasoning when tool calls start:\n              if (isActiveReasoning) {\n                controller.enqueue({\n                  type: 'reasoning-end',\n                  id: 'reasoning-0',\n                });\n                isActiveReasoning = false;\n              }\n\n              for (const toolCallDelta of delta.tool_calls) {\n                const index = toolCallDelta.index;\n\n                if (toolCalls[index] == null) {\n                  if (toolCallDelta.id == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'id' to be a string.`,\n                    });\n                  }\n\n                  if (toolCallDelta.function?.name == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function.name' to be a string.`,\n                    });\n                  }\n\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: toolCallDelta.id,\n                    toolName: toolCallDelta.function.name,\n                  });\n\n                  toolCalls[index] = {\n                    id: toolCallDelta.id,\n                    type: 'function',\n                    function: {\n                      name: toolCallDelta.function.name,\n                      arguments: toolCallDelta.function.arguments ?? '',\n                    },\n                    hasFinished: false,\n                  };\n\n                  const toolCall = toolCalls[index];\n\n                  if (\n                    toolCall.function?.name != null &&\n                    toolCall.function?.arguments != null\n                  ) {\n                    // send delta if the argument text has already started:\n                    if (toolCall.function.arguments.length > 0) {\n                      controller.enqueue({\n                        type: 'tool-input-delta',\n                        id: toolCall.id,\n                        delta: toolCall.function.arguments,\n                      });\n                    }\n\n                    // check if tool call is complete\n                    // (some providers send the full tool call in one chunk):\n                    if (isParsableJson(toolCall.function.arguments)) {\n                      controller.enqueue({\n                        type: 'tool-input-end',\n                        id: toolCall.id,\n                      });\n\n                      controller.enqueue({\n                        type: 'tool-call',\n                        toolCallId: toolCall.id ?? generateId(),\n                        toolName: toolCall.function.name,\n                        input: toolCall.function.arguments,\n                      });\n                      toolCall.hasFinished = true;\n                    }\n                  }\n\n                  continue;\n                }\n\n                // existing tool call, merge if not finished\n                const toolCall = toolCalls[index];\n\n                if (toolCall.hasFinished) {\n                  continue;\n                }\n\n                if (toolCallDelta.function?.arguments != null) {\n                  toolCall.function!.arguments +=\n                    toolCallDelta.function?.arguments ?? '';\n                }\n\n                // send delta\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.id,\n                  delta: toolCallDelta.function.arguments ?? '',\n                });\n\n                // check if tool call is complete\n                if (\n                  toolCall.function?.name != null &&\n                  toolCall.function?.arguments != null &&\n                  isParsableJson(toolCall.function.arguments)\n                ) {\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: toolCall.id,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: toolCall.id ?? generateId(),\n                    toolName: toolCall.function.name,\n                    input: toolCall.function.arguments,\n                  });\n                  toolCall.hasFinished = true;\n                }\n              }\n            }\n          },\n\n          flush(controller) {\n            if (isActiveReasoning) {\n              controller.enqueue({ type: 'reasoning-end', id: 'reasoning-0' });\n            }\n\n            if (isActiveText) {\n              controller.enqueue({ type: 'text-end', id: 'txt-0' });\n            }\n\n            // go through all tool calls and send the ones that are not finished\n            for (const toolCall of toolCalls.filter(\n              toolCall => !toolCall.hasFinished,\n            )) {\n              controller.enqueue({\n                type: 'tool-input-end',\n                id: toolCall.id,\n              });\n\n              controller.enqueue({\n                type: 'tool-call',\n                toolCallId: toolCall.id ?? generateId(),\n                toolName: toolCall.function.name,\n                input: toolCall.function.arguments,\n              });\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: convertDeepSeekUsage(usage),\n              providerMetadata: {\n                [providerOptionsName]: {\n                  promptCacheHitTokens:\n                    usage?.prompt_cache_hit_tokens ?? undefined,\n                  promptCacheMissTokens:\n                    usage?.prompt_cache_miss_tokens ?? undefined,\n                },\n              },\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n","import {\n  NoSuchModelError,\n  type LanguageModelV3,\n  type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport type { DeepSeekChatModelId } from './chat/deepseek-chat-options';\nimport { DeepSeekChatLanguageModel } from './chat/deepseek-chat-language-model';\nimport { VERSION } from './version';\n\nexport interface DeepSeekProviderSettings {\n  /**\n   * DeepSeek API key.\n   */\n  apiKey?: string;\n\n  /**\n   * Base URL for the API calls.\n   */\n  baseURL?: string;\n\n  /**\n   * Custom headers to include in the requests.\n   */\n  headers?: Record<string, string>;\n\n  /**\n   * Custom fetch implementation. You can use it as a middleware to intercept requests,\n   * or to provide a custom fetch implementation for e.g. testing.\n   */\n  fetch?: FetchFunction;\n}\n\nexport interface DeepSeekProvider extends ProviderV3 {\n  /**\n   * Creates a DeepSeek model for text generation.\n   */\n  (modelId: DeepSeekChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a DeepSeek model for text generation.\n   */\n  languageModel(modelId: DeepSeekChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a DeepSeek chat model for text generation.\n   */\n  chat(modelId: DeepSeekChatModelId): LanguageModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: string): never;\n}\n\nexport function createDeepSeek(\n  options: DeepSeekProviderSettings = {},\n): DeepSeekProvider {\n  const baseURL = withoutTrailingSlash(\n    options.baseURL ?? 'https://api.deepseek.com',\n  );\n\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        Authorization: `Bearer ${loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'DEEPSEEK_API_KEY',\n          description: 'DeepSeek API key',\n        })}`,\n        ...options.headers,\n      },\n      `ai-sdk/deepseek/${VERSION}`,\n    );\n\n  const createLanguageModel = (modelId: DeepSeekChatModelId) => {\n    return new DeepSeekChatLanguageModel(modelId, {\n      provider: `deepseek.chat`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n  };\n\n  const provider = (modelId: DeepSeekChatModelId) =>\n    createLanguageModel(modelId);\n\n  provider.specificationVersion = 'v3' as const;\n  provider.languageModel = createLanguageModel;\n  provider.chat = createLanguageModel;\n\n  provider.embeddingModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n  };\n  provider.textEmbeddingModel = provider.embeddingModel;\n  provider.imageModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n  };\n\n  return provider;\n}\n\nexport const deepseek = createDeepSeek();\n"]}