guideai-app 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GuideAI.js +1 -1
- package/GuideAI.js.map +1 -1
- package/README.md +39 -1
- package/dist/GuideAI.js +1 -1
- package/dist/GuideAI.js.map +1 -1
- package/dist/components/TextInput.d.ts +8 -0
- package/dist/components/TranscriptBox.d.ts +17 -0
- package/dist/index.d.ts +2 -0
- package/dist/metric/event-listner.d.ts +113 -0
- package/dist/metric/index.d.ts +4 -0
- package/dist/metric/metadata-tracker.d.ts +33 -0
- package/dist/styles/GuideAI.styles.d.ts +1 -1
- package/dist/types/GuideAI.types.d.ts +18 -0
- package/dist/types/metadata.types.d.ts +46 -0
- package/dist/utils/api.d.ts +4 -0
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/messageStorage.d.ts +1 -1
- package/metadata-tracking-example.md +324 -0
- package/package.json +1 -1
- package/text-input-usage.md +321 -0
- package/transcript-toggle-usage.md +267 -0
- package/dist/GuideAI.js.LICENSE.txt +0 -16
- package/dist/components/Styles.d.ts +0 -3
- package/dist/components/Styles.js +0 -6
- package/dist/components/Styles.js.map +0 -1
- package/dist/hooks/useConversation.d.ts +0 -11
- package/dist/hooks/useConversation.js +0 -286
- package/dist/hooks/useConversation.js.map +0 -1
- package/dist/hooks/useRecording.d.ts +0 -12
- package/dist/hooks/useRecording.js +0 -362
- package/dist/hooks/useRecording.js.map +0 -1
- package/dist/index.esm.js +0 -1
- package/dist/index.esm.js.map +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +0 -1
- package/dist/messageStorageUtils.d.ts +0 -26
- package/dist/types/index.d.ts +0 -20
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/workflow.d.ts +0 -24
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/api-services.d.ts +0 -5
- package/dist/utils/api-services.js +0 -203
- package/dist/utils/api-services.js.map +0 -1
- package/dist/utils/dom-interaction.d.ts +0 -2
- package/dist/utils/dom-interaction.js +0 -195
- package/dist/utils/dom-interaction.js.map +0 -1
- package/dist/utils/dom.d.ts +0 -1
- package/dist/utils/messageStorageUtils.d.ts +0 -26
- package/dist/utils/react-hooks.d.ts +0 -9
- package/dist/utils/react-hooks.js +0 -19
- package/dist/utils/react-hooks.js.map +0 -1
- package/dist/utils/storage.d.ts +0 -14
- package/dist/utils/storage.js +0 -27
- package/dist/utils/storage.js.map +0 -1
- package/dist/utils/webrtc.d.ts +0 -3
- package/dist/utils/webrtc.js +0 -135
- package/dist/utils/webrtc.js.map +0 -1
- package/dist/utils/workflowUtils.d.ts +0 -17
- package/dist/utils/workflowValidator.d.ts +0 -17
- package/dist/workflows/certificateWorkflow.d.ts +0 -7
- package/dist/workflows/index.d.ts +0 -6
- package/todo.md +0 -2
package/GuideAI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GuideAI.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,UACR,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,SAAUJ,GACQ,iBAAZC,QACdA,QAAiB,QAAID,EAAQG,QAAQ,UAErCJ,EAAc,QAAIC,EAAQD,EAAY,MACvC,CATD,CASGO,MAAOC,IACV,O,wBCVAL,EAAOD,QAAUM,C,6BCCjBC,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQU,eAAY,EACpB,MAAMC,EAAU,EAAQ,MAClBC,EAAY,EAAQ,MACpBC,EAAMN,OAAOO,UAAUC,eACvBC,EAA0B,CAC5BC,SAASC,GACEC,OAAOD,GAAU,KAE5BE,MAAO,QACPC,QAAO,CAACH,EAAQI,IACLH,OAAOD,GAAU,IAAMI,EAAM,IAExCC,OAAOL,GACIC,OAAOD,IAGhBM,EAAWC,MAAMC,QACjBC,EAAOF,MAAMX,UAAUa,KACvBC,EAAgB,SAAUC,EAAKC,GACjCH,EAAKI,MAAMF,EAAKL,EAASM,GAAkBA,EAAiB,CAACA,GACjE,EACME,EAASC,KAAKnB,UAAUoB,YACxBC,EAAW,CACbC,gBAAgB,EAChBC,WAAW,EACXC,kBAAkB,EAClBC,YAAa,UACbC,QAAS,QACTC,iBAAiB,EACjBC,UAAW,IACXC,QAAQ,EACRC,iBAAiB,EACjBC,QAASlC,EAAQgC,OACjBG,kBAAkB,EAClBC,OAAQnC,EAAUoC,eAClBC,UAAWrC,EAAUsC,WAAWtC,EAAUoC,gBAE1C3B,SAAS,EACT8B,cAAcC,GACHpB,EAAOqB,KAAKD,GAEvBE,WAAW,EACXC,oBAAoB,GASlBC,EAAW,CAAC,EAClB,SAASC,EAAgBC,EAAQxC,EAAQyC,EAAqBC,EAAgBtB,EAAkBiB,EAAoBD,EAAWV,EAAiBC,EAASgB,EAAQC,EAAMzB,EAAWc,EAAeJ,EAAQE,EAAWH,EAAkBN,EAASuB,GAC3O,IAAIC,EAAMN,EACNO,EAASF,EACTG,EAAO,EACPC,GAAY,EAChB,UAA2C,KAAnCF,EAASA,EAAOG,IAAIZ,MAAkCW,GAAW,CAErE,MAAME,EAAMJ,EAAOG,IAAIV,GAEvB,GADAQ,GAAQ,OACW,IAARG,EAAqB,CAC5B,GAAIA,IAAQH,EACR,MAAM,IAAII,WAAW,uBAGrBH,GAAY,CAEpB,MACoC,IAAzBF,EAAOG,IAAIZ,KAClBU,EAAO,EAEf,CAeA,GAdsB,mBAAXL,EACPG,EAAMH,EAAO3C,EAAQ8C,GAEhBA,aAAe/B,KACpB+B,EAAMb,IAAgBa,GAEO,UAAxBL,GAAmCnC,EAASwC,KACjDA,GAAM,EAAIrD,EAAQ4D,WAAWP,GAAK,SAAUvD,GACxC,OAAIA,aAAiBwB,KACVkB,IAAgB1C,GAEpBA,CACX,KAEQ,OAARuD,EAAc,CACd,GAAIT,EACA,OAAOV,IAAYC,EAEfD,EAAQ3B,EAAQiB,EAASU,QAASL,EAAS,MAAOO,GAChD7B,EAEV8C,EAAM,EACV,CACA,GAnDqB,iBADSQ,EAoDDR,IAlDZ,iBAANQ,GACM,kBAANA,GACM,iBAANA,GACM,iBAANA,IA+C0B,EAAI7D,EAAQ8D,WAAWT,GAAM,CAC9D,GAAInB,EAAS,CACT,MAAM6B,EAAY5B,EAAmB5B,EAE/B2B,EAAQ3B,EAAQiB,EAASU,QAASL,EAAS,MAAOO,GACxD,MAAO,CACHE,IAAYyB,GACR,IAEAzB,IAAYJ,EAAQmB,EAAK7B,EAASU,QAASL,EAAS,QAASO,IAEzE,CACA,MAAO,CAACE,IAAY/B,GAAU,IAAM+B,IAAY9B,OAAO6C,IAC3D,CAjEJ,IAAkCQ,EAkE9B,MAAMG,EAAS,GACf,QAAmB,IAARX,EACP,OAAOW,EAEX,IAAIC,EACJ,GAA4B,UAAxBjB,GAAmCnC,EAASwC,GAExClB,GAAoBD,IAEpBmB,GAAM,EAAIrD,EAAQ4D,WAAWP,EAAKnB,IAEtC+B,EAAW,CAAC,CAAEnE,MAAOuD,EAAIa,OAAS,EAAIb,EAAIc,KAAK,MAAQ,UAAO,SAE7D,GAAItD,EAASqC,GACde,EAAWf,MAEV,CACD,MAAMkB,EAAOxE,OAAOwE,KAAKf,GACzBY,EAAWd,EAAOiB,EAAKjB,KAAKA,GAAQiB,CACxC,CACA,MAAMC,EAAiBpC,EAAkBzB,OAAOD,GAAQ+D,QAAQ,MAAO,OAAS9D,OAAOD,GACjFgE,EAAkBtB,GAAkBpC,EAASwC,IAAuB,IAAfA,EAAIa,OAAeG,EAAiB,KAAOA,EACtG,GAAI1C,GAAoBd,EAASwC,IAAuB,IAAfA,EAAIa,OACzC,OAAOK,EAAkB,KAE7B,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAASC,SAAUM,EAAG,CACtC,MAAM7D,EAAMsD,EAASO,GACf1E,EAES,iBAARa,QAAyC,IAAdA,EAAIb,MAAwBa,EAAIb,MAAQuD,EAAI1C,GAC9E,GAAIgC,GAAuB,OAAV7C,EACb,SAGJ,MAAM2E,EAAc/C,GAAaO,EAAkBtB,EAAI2D,QAAQ,MAAO,OAAS3D,EACzE+D,EAAa7D,EAASwC,GACO,mBAAxBL,EACHA,EAAoBuB,EAAiBE,GACnCF,EACJA,GAAmB7C,EAAY,IAAM+C,EAAc,IAAMA,EAAc,KAC7ErB,EAAYuB,IAAI5B,EAAQQ,GACxB,MAAMqB,EAAmB,IAAIC,QAC7BD,EAAiBD,IAAI9B,EAAUO,GAC/BnC,EAAc+C,EAAQlB,EAAgBhD,EAAO4E,EAAY1B,EAAqBC,EAAgBtB,EAAkBiB,EAAoBD,EAAWV,EAEvH,UAAxBe,GAAmCb,GAAoBtB,EAASwC,GAAO,KAAOnB,EAASgB,EAAQC,EAAMzB,EAAWc,EAAeJ,EAAQE,EAAWH,EAAkBN,EAAS+C,GACjL,CACA,OAAOZ,CACX,CAsHA3E,EAAQU,UAjDR,SAAmBgD,EAAQ+B,EAAO,CAAC,GAC/B,IAAIzB,EAAMN,EACV,MAAMgC,EAtEV,SAAqCD,EAAOtD,GACxC,QAAqC,IAA1BsD,EAAKnD,kBAAqE,kBAA1BmD,EAAKnD,iBAC5D,MAAM,IAAIqD,UAAU,0EAExB,QAAoC,IAAzBF,EAAK7C,iBAAmE,kBAAzB6C,EAAK7C,gBAC3D,MAAM,IAAI+C,UAAU,yEAExB,GAAqB,OAAjBF,EAAK5C,cAA4C,IAAjB4C,EAAK5C,SAAmD,mBAAjB4C,EAAK5C,QAC5E,MAAM,IAAI8C,UAAU,iCAExB,MAAMnD,EAAUiD,EAAKjD,SAAWL,EAASK,QACzC,QAA4B,IAAjBiD,EAAKjD,SAA4C,UAAjBiD,EAAKjD,SAAwC,eAAjBiD,EAAKjD,QACxE,MAAM,IAAImD,UAAU,qEAExB,IAAI5C,EAASnC,EAAUoC,eACvB,QAA2B,IAAhByC,EAAK1C,OAAwB,CACpC,IAAKlC,EAAIwC,KAAKzC,EAAUsC,WAAYuC,EAAK1C,QACrC,MAAM,IAAI4C,UAAU,mCAExB5C,EAAS0C,EAAK1C,MAClB,CACA,MAAME,EAAYrC,EAAUsC,WAAWH,GACvC,IAIIR,EAJAsB,EAAS1B,EAAS0B,OActB,IAb2B,mBAAhB4B,EAAK5B,QAAyBrC,EAASiE,EAAK5B,WACnDA,EAAS4B,EAAK5B,QAIdtB,EADAkD,EAAKlD,aAAekD,EAAKlD,eAAevB,EAC1ByE,EAAKlD,YAEd,YAAakD,EACJA,EAAKpE,QAAU,UAAY,SAG3Bc,EAASI,YAEvB,mBAAoBkD,GAAuC,kBAAxBA,EAAK7B,eACxC,MAAM,IAAI+B,UAAU,iDAExB,MAAMtD,OAAsC,IAAnBoD,EAAKpD,UACC,KAAzBoD,EAAK7C,iBAEDT,EAASE,YACXoD,EAAKpD,UACb,MAAO,CACHD,eAA+C,kBAAxBqD,EAAKrD,eAA+BqD,EAAKrD,eAAiBD,EAASC,eAE1FC,UAAWA,EACXC,iBAAmD,kBAA1BmD,EAAKnD,mBAAmCmD,EAAKnD,iBAAmBH,EAASG,iBAClGC,YAAaA,EACbC,QAASA,EACTC,gBAAiD,kBAAzBgD,EAAKhD,gBAAgCgD,EAAKhD,gBAAkBN,EAASM,gBAC7FmB,iBAAkB6B,EAAK7B,eACvBlB,eAAqC,IAAnB+C,EAAK/C,UAA4BP,EAASO,UAAY+C,EAAK/C,UAC7EC,OAA+B,kBAAhB8C,EAAK9C,OAAuB8C,EAAK9C,OAASR,EAASQ,OAClEC,gBAAiD,kBAAzB6C,EAAK7C,gBAAgC6C,EAAK7C,gBAAkBT,EAASS,gBAC7FC,QAAiC,mBAAjB4C,EAAK5C,QAAyB4C,EAAK5C,QAAUV,EAASU,QACtEC,iBAAmD,kBAA1B2C,EAAK3C,iBAAiC2C,EAAK3C,iBAAmBX,EAASW,iBAChGe,OAAQA,EACRd,OAAQA,EACRE,UAAWA,EACXE,cAA6C,mBAAvBsC,EAAKtC,cAA+BsC,EAAKtC,cAAgBhB,EAASgB,cACxFG,UAAqC,kBAAnBmC,EAAKnC,UAA0BmC,EAAKnC,UAAYnB,EAASmB,UAE3EQ,KAA2B,mBAAd2B,EAAK3B,KAAsB2B,EAAK3B,KAAO,KACpDP,mBAAuD,kBAA5BkC,EAAKlC,mBAAmCkC,EAAKlC,mBAAqBpB,EAASoB,mBAE9G,CAGoBqC,CAA4BH,GAC5C,IAAIb,EACAf,EAC0B,mBAAnB6B,EAAQ7B,QACfA,EAAS6B,EAAQ7B,OACjBG,EAAMH,EAAO,GAAIG,IAEZxC,EAASkE,EAAQ7B,UACtBA,EAAS6B,EAAQ7B,OACjBe,EAAWf,GAEf,MAAMkB,EAAO,GACb,GAAmB,iBAARf,GAA4B,OAARA,EAC3B,MAAO,GAEX,MAAML,EAAsB3C,EAAwB0E,EAAQnD,aACtDqB,EAAyC,UAAxBD,GAAmC+B,EAAQ9B,eAC7DgB,IACDA,EAAWrE,OAAOwE,KAAKf,IAEvB0B,EAAQ5B,MACRc,EAASd,KAAK4B,EAAQ5B,MAE1B,MAAMC,EAAc,IAAIyB,QACxB,IAAK,IAAIK,EAAI,EAAGA,EAAIjB,EAASC,SAAUgB,EAAG,CACtC,MAAMvE,EAAMsD,EAASiB,GACjBH,EAAQpC,WAA0B,OAAbU,EAAI1C,IAG7BM,EAAcmD,EAAMtB,EAAgBO,EAAI1C,GAAMA,EAE9CqC,EAAqBC,EAAgB8B,EAAQpD,iBAAkBoD,EAAQnC,mBAAoBmC,EAAQpC,UAAWoC,EAAQ9C,gBAAiB8C,EAAQ/C,OAAS+C,EAAQ7C,QAAU,KAAM6C,EAAQ7B,OAAQ6B,EAAQ5B,KAAM4B,EAAQrD,UAAWqD,EAAQvC,cAAeuC,EAAQ3C,OAAQ2C,EAAQzC,UAAWyC,EAAQ5C,iBAAkB4C,EAAQlD,QAASuB,GAC1U,CACA,MAAM+B,EAASf,EAAKD,KAAKY,EAAQhD,WACjC,IAAIxB,GAAoC,IAA3BwE,EAAQtD,eAA0B,IAAM,GAWrD,OAVIsD,EAAQjD,kBACgB,eAApBiD,EAAQlD,QAERtB,GAAU,uBAIVA,GAAU,mBAGX4E,EAAOjB,OAAS,EAAI3D,EAAS4E,EAAS,EACjD,C,6BCpRAvF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ+F,gBAAa,EAIrB,MAAMC,EAAkB,EAAQ,MAsEhChG,EAAQ+F,WArER,UAAoB,iBAAEE,GAAqB,CAAC,GACxC,MAAMC,EAAiBD,EACnB,gCACE,gLAIN,IAAIE,EAAQC,EAAUC,EAAWC,EACjC,IAEIH,EAASI,MAETH,EAAWI,QAEXH,EAAYI,SAEZH,EAAWI,OACf,CACA,MAAOC,GACH,MAAM,IAAIC,MAAM,iEAAiED,EAAME,YAAYX,IACvG,CACA,MAAO,CACHY,KAAM,MACNP,MAAOJ,EACPK,QAASJ,EACTK,SAAUJ,EACVK,QAASJ,EACTS,SAEoB,oBAAbA,SAA2BA,SAAW,MAEzC,WAAAC,GACI,MAAM,IAAIJ,MAAM,qFAAqFV,IACzG,GAEJe,KAAsB,oBAATA,KAAuBA,KAAO,MACvC,WAAAD,GACI,MAAM,IAAIJ,MAAM,iFAAiFV,IACrG,GAEJgB,KAEgB,oBAATA,KAAuBA,KAAO,MAEjC,WAAAF,GACI,MAAM,IAAIJ,MAAM,iFAAiFV,IACrG,GAEJiB,eAE0B,oBAAnBA,eAAiCA,eAAiB,MAErD,WAAAH,GACI,MAAM,IAAIJ,MAAM,uFAAuFV,IAC3G,GAEJkB,2BAA4BC,MAE5BC,EAAM7B,KAAS,IACRA,EACH8B,KAAM,IAAIvB,EAAgBwB,cAAcF,KAE5CG,gBAAkBC,IAAiB,EACnCC,aAAc,KACV,MAAM,IAAIf,MAAM,iJAAiJ,EAErKgB,eAAiBnH,IAAU,EAEnC,C,mCC1EA,IAWIoH,EAAwBC,EAA+BC,EAAsCC,EAAqCC,EAAyBC,EAAgCC,EAA+BC,EAAwBC,EAAoBC,EAAsBC,EAAsBC,EAAqCC,EAXvVC,EAA0BrI,MAAQA,KAAKqI,wBAA2B,SAAUC,EAAUC,EAAOnI,EAAOqG,EAAM+B,GAC1G,GAAa,MAAT/B,EAAc,MAAM,IAAInB,UAAU,kCACtC,GAAa,MAATmB,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,2EACvG,MAAiB,MAATmB,EAAe+B,EAAExF,KAAKsF,EAAUlI,GAASoI,EAAIA,EAAEpI,MAAQA,EAAQmI,EAAMtD,IAAIqD,EAAUlI,GAASA,CACxG,EACIqI,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EAEApI,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ+I,iBAAc,EACtB,MAAMC,EAAU,EAAQ,MAmKxBhJ,EAAQ+I,YAlKR,MACI,WAAA/B,GACIa,EAAuBoB,IAAI5I,MAC3BA,KAAK6I,WAAa,IAAIC,gBACtBrB,EAA8BxC,IAAIjF,UAAM,GACxC0H,EAAqCzC,IAAIjF,MAAM,SAC/C2H,EAAoC1C,IAAIjF,MAAM,SAC9C4H,EAAwB3C,IAAIjF,UAAM,GAClC6H,EAA+B5C,IAAIjF,MAAM,SACzC8H,EAA8B7C,IAAIjF,MAAM,SACxC+H,EAAuB9C,IAAIjF,KAAM,CAAC,GAClCgI,EAAmB/C,IAAIjF,MAAM,GAC7BiI,EAAqBhD,IAAIjF,MAAM,GAC/BkI,EAAqBjD,IAAIjF,MAAM,GAC/BmI,EAAoClD,IAAIjF,MAAM,GAC9CqI,EAAuBrI,KAAMyH,EAA+B,IAAIsB,SAAQ,CAACC,EAASC,KAC9EZ,EAAuBrI,KAAM0H,EAAsCsB,EAAS,KAC5EX,EAAuBrI,KAAM2H,EAAqCsB,EAAQ,IAAI,IAC9E,KACJZ,EAAuBrI,KAAM4H,EAAyB,IAAImB,SAAQ,CAACC,EAASC,KACxEZ,EAAuBrI,KAAM6H,EAAgCmB,EAAS,KACtEX,EAAuBrI,KAAM8H,EAA+BmB,EAAQ,IAAI,IACxE,KAKJR,EAAuBzI,KAAMyH,EAA+B,KAAKyB,OAAM,SACvET,EAAuBzI,KAAM4H,EAAyB,KAAKsB,OAAM,QACrE,CACA,IAAAC,CAAKC,GAGDC,YAAW,KACPD,IAAWE,MAAK,KACZtJ,KAAKuJ,aACLvJ,KAAKwJ,MAAM,MAAM,GAClBf,EAAuBzI,KAAMwH,EAAwB,IAAKY,GAA0BqB,KAAKzJ,MAAM,GACnG,EACP,CACA,UAAA0J,GACQ1J,KAAK2J,QAETlB,EAAuBzI,KAAM0H,EAAsC,KAAK1E,KAAKhD,MAC7EA,KAAKwJ,MAAM,WACf,CACA,SAAIG,GACA,OAAOlB,EAAuBzI,KAAMgI,EAAoB,IAC5D,CACA,WAAI4B,GACA,OAAOnB,EAAuBzI,KAAMiI,EAAsB,IAC9D,CACA,WAAI4B,GACA,OAAOpB,EAAuBzI,KAAMkI,EAAsB,IAC9D,CACA,KAAA4B,GACI9J,KAAK6I,WAAWiB,OACpB,CAQA,EAAAC,CAAGC,EAAOC,GAGN,OAFkBxB,EAAuBzI,KAAM+H,EAAwB,KAAKiC,KAAWvB,EAAuBzI,KAAM+H,EAAwB,KAAKiC,GAAS,KAChJ1I,KAAK,CAAE2I,aACVjK,IACX,CAQA,GAAAkK,CAAIF,EAAOC,GACP,MAAME,EAAY1B,EAAuBzI,KAAM+H,EAAwB,KAAKiC,GAC5E,IAAKG,EACD,OAAOnK,KACX,MAAMoK,EAAQD,EAAUE,WAAWC,GAAMA,EAAEL,WAAaA,IAGxD,OAFIG,GAAS,GACTD,EAAUI,OAAOH,EAAO,GACrBpK,IACX,CAMA,IAAAwK,CAAKR,EAAOC,GAGR,OAFkBxB,EAAuBzI,KAAM+H,EAAwB,KAAKiC,KAAWvB,EAAuBzI,KAAM+H,EAAwB,KAAKiC,GAAS,KAChJ1I,KAAK,CAAE2I,WAAUO,MAAM,IAC1BxK,IACX,CAYA,OAAAyK,CAAQT,GACJ,OAAO,IAAIjB,SAAQ,CAACC,EAASC,KACzBZ,EAAuBrI,KAAMmI,GAAqC,EAAM,KAC1D,UAAV6B,GACAhK,KAAKwK,KAAK,QAASvB,GACvBjJ,KAAKwK,KAAKR,EAAOhB,EAAQ,GAEjC,CACA,UAAM0B,GACFrC,EAAuBrI,KAAMmI,GAAqC,EAAM,WAClEM,EAAuBzI,KAAM4H,EAAyB,IAChE,CACA,KAAA4B,CAAMQ,KAAUW,GAEZ,GAAIlC,EAAuBzI,KAAMgI,EAAoB,KACjD,OAEU,QAAVgC,IACA3B,EAAuBrI,KAAMgI,GAAoB,EAAM,KACvDS,EAAuBzI,KAAM6H,EAAgC,KAAK7E,KAAKhD,OAE3E,MAAMmK,EAAY1B,EAAuBzI,KAAM+H,EAAwB,KAAKiC,GAK5E,GAJIG,IACA1B,EAAuBzI,KAAM+H,EAAwB,KAAKiC,GAASG,EAAU3G,QAAQ8G,IAAOA,EAAEE,OAC9FL,EAAUS,SAAQ,EAAGX,cAAeA,KAAYU,MAEtC,UAAVX,EAAmB,CACnB,MAAM1D,EAAQqE,EAAK,GAOnB,OANKlC,EAAuBzI,KAAMmI,EAAqC,MAASgC,GAAW3F,QACvFuE,QAAQE,OAAO3C,GAEnBmC,EAAuBzI,KAAM2H,EAAqC,KAAK3E,KAAKhD,KAAMsG,GAClFmC,EAAuBzI,KAAM8H,EAA+B,KAAK9E,KAAKhD,KAAMsG,QAC5EtG,KAAKwJ,MAAM,MAEf,CACA,GAAc,UAAVQ,EAAmB,CAEnB,MAAM1D,EAAQqE,EAAK,GACdlC,EAAuBzI,KAAMmI,EAAqC,MAASgC,GAAW3F,QAOvFuE,QAAQE,OAAO3C,GAEnBmC,EAAuBzI,KAAM2H,EAAqC,KAAK3E,KAAKhD,KAAMsG,GAClFmC,EAAuBzI,KAAM8H,EAA+B,KAAK9E,KAAKhD,KAAMsG,GAC5EtG,KAAKwJ,MAAM,MACf,CACJ,CACA,UAAAD,GAAe,GAGnB9B,EAAgC,IAAItC,QAAWuC,EAAuC,IAAIvC,QAAWwC,EAAsC,IAAIxC,QAAWyC,EAA0B,IAAIzC,QAAW0C,EAAiC,IAAI1C,QAAW2C,EAAgC,IAAI3C,QAAW4C,EAAyB,IAAI5C,QAAW6C,EAAqB,IAAI7C,QAAW8C,EAAuB,IAAI9C,QAAW+C,EAAuB,IAAI/C,QAAWgD,EAAsC,IAAIhD,QAAWqC,EAAyB,IAAIqD,QAAWzC,EAA2B,SAAkC9B,GAKhlB,GAJA+B,EAAuBrI,KAAMiI,GAAsB,EAAM,KACrD3B,aAAiBC,OAAwB,eAAfD,EAAMwE,OAChCxE,EAAQ,IAAIqC,EAAQoC,mBAEpBzE,aAAiBqC,EAAQoC,kBAEzB,OADA1C,EAAuBrI,KAAMkI,GAAsB,EAAM,KAClDlI,KAAKwJ,MAAM,QAASlD,GAE/B,GAAIA,aAAiBqC,EAAQqC,YACzB,OAAOhL,KAAKwJ,MAAM,QAASlD,GAE/B,GAAIA,aAAiBC,MAAO,CACxB,MAAM0E,EAAc,IAAItC,EAAQqC,YAAY1E,EAAME,SAGlD,OADAyE,EAAYC,MAAQ5E,EACbtG,KAAKwJ,MAAM,QAASyB,EAC/B,CACA,OAAOjL,KAAKwJ,MAAM,QAAS,IAAIb,EAAQqC,YAAYlK,OAAOwF,IAC9D,C,mCCpMA,IAAI6E,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQyM,kBAAoBzM,EAAQ0M,eAAY,EAChD,MAAMC,EAAoB,EAAQ,MAC5BC,EAAS,EAAQ,MACjBC,EAAa,EAAQ,MACrBC,EAAgBR,EAAa,EAAQ,OACrCS,EAAgB,EAAQ,MACxBC,EAAmB,EAAQ,MAC3BC,EAAe,EAAQ,MAC7B,MAAMP,UAAkBG,EAAWK,YAC/B,WAAAlG,GACImG,SAASC,WACT/M,KAAKgN,WAAa,IAAIP,EAAcQ,WAAWjN,KAAKkN,QACxD,CACA,MAAA9B,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,aAAc,CAAEjG,UAAS7B,EAAS+H,OAAQlG,EAAKkG,SAAU,IAASC,aAAaC,IAChG,WAAYA,GAAsB,aAAfA,EAAIjK,SACvB,EAAIiJ,EAAkBiB,eAAeD,GAElCA,IAEf,CACA,QAAAE,CAASC,EAAYC,EAAQ,CAAC,EAAGrI,GAC7B,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAKwN,SAASC,EAAY,CAAC,EAAGC,GAElC1N,KAAKkN,QAAQnJ,IAAI,cAAc0J,IAAc,CAAEC,WAAUrI,GACpE,CAIA,GAAAuI,CAAIH,EAAYpI,GACZ,OAAOrF,KAAKkN,QAAQW,OAAO,cAAcJ,IAAc,IAChDpI,EACHyI,QAAS,CAAEC,OAAQ,SAAU1I,GAASyI,UAE9C,CACA,KAAAE,CAAM9G,EAAM7B,GACR,OAAOrF,KAAKkN,QAAQe,UACf7C,OAAOlE,EAAM7B,GACbgI,aAAaa,IAAa,EAAI5B,EAAkB6B,eAAeD,EAAUhH,IAClF,CAIA,MAAAkG,CAAOlG,EAAM7B,GACT,OAAOsH,EAAiByB,eAAeC,eAAerO,KAAKkN,QAAShG,EAAM7B,EAC9E,EAEJ1F,EAAQ0M,UAAYA,EACpB,MAAMD,UAA0BQ,EAAa0B,YAE7C3O,EAAQyM,kBAAoBA,EAC5BC,EAAUY,WAAaP,EAAcO,U,oCC7ErC,IAKIsB,EAAyCC,EAA+CC,EAA+CC,EAAoDC,EAA0DC,EAAmDC,EAA8CC,EALtVrG,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EAEApI,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoP,kCAA+B,EACvC,MAAMpG,EAAU,EAAQ,MAClBqG,EAAqB,EAAQ,MAC7BC,EAAwB,EAAQ,MAChCC,EAAgB,EAAQ,KACxBC,EAAW,EAAQ,MACnBC,EAA+B,GACrC,MAAML,UAAqCG,EAAcxG,YACrD,WAAA/B,GACImG,SAASC,WACTwB,EAAwC3F,IAAI5I,MAC5CA,KAAKqP,iBAAmB,GACxBrP,KAAKsP,SAAW,EACpB,CACA,kBAAAC,CAAmBC,GACfxP,KAAKqP,iBAAiB/N,KAAKkO,GAC3BxP,KAAKwJ,MAAM,iBAAkBgG,GAC7B,MAAMhJ,EAAUgJ,EAAeC,QAAQ,IAAIjJ,QAG3C,OAFIA,GACAxG,KAAK0P,YAAYlJ,GACdgJ,CACX,CACA,WAAAE,CAAYlJ,EAASmJ,GAAO,GAIxB,GAHM,YAAanJ,IACfA,EAAQoJ,QAAU,MACtB5P,KAAKsP,SAAShO,KAAKkF,GACfmJ,EAEA,GADA3P,KAAKwJ,MAAM,UAAWhD,KACjB,EAAIyI,EAAsBY,mBAAmBrJ,KAAY,EAAIyI,EAAsBa,eAAetJ,KAAaA,EAAQoJ,QAExH5P,KAAKwJ,MAAM,qBAAsBhD,EAAQoJ,cAExC,IAAI,EAAIX,EAAsBc,oBAAoBvJ,IAAYA,EAAQwJ,cACvEhQ,KAAKwJ,MAAM,eAAgBhD,EAAQwJ,oBAElC,IAAI,EAAIf,EAAsBc,oBAAoBvJ,IAAYA,EAAQyJ,WACvE,IAAK,MAAMC,KAAa1J,EAAQyJ,WACL,aAAnBC,EAAUC,MACVnQ,KAAKwJ,MAAM,eAAgB0G,EAAUE,SAKzD,CAKA,yBAAMC,SACIrQ,KAAK0K,OACX,MAAM4F,EAAatQ,KAAKqP,iBAAiBrP,KAAKqP,iBAAiB7K,OAAS,GACxE,IAAK8L,EACD,MAAM,IAAI3H,EAAQqC,YAAY,mDAClC,OAAOsF,CACX,CAKA,kBAAMC,GAEF,aADMvQ,KAAK0K,OACJjC,EAAuBzI,KAAMuO,EAAyC,IAAKC,GAA+CxL,KAAKhD,KAC1I,CAKA,kBAAMwQ,GAEF,aADMxQ,KAAK0K,OACJjC,EAAuBzI,KAAMuO,EAAyC,IAAKE,GAA+CzL,KAAKhD,KAC1I,CAKA,uBAAMyQ,GAEF,aADMzQ,KAAK0K,OACJjC,EAAuBzI,KAAMuO,EAAyC,IAAKG,GAAoD1L,KAAKhD,KAC/I,CACA,6BAAM0Q,GAEF,aADM1Q,KAAK0K,OACJjC,EAAuBzI,KAAMuO,EAAyC,IAAKI,GAA0D3L,KAAKhD,KACrJ,CACA,gBAAM2Q,GAEF,aADM3Q,KAAK0K,OACJjC,EAAuBzI,KAAMuO,EAAyC,IAAKK,GAAmD5L,KAAKhD,KAC9I,CACA,kBAAA4Q,GACI,MAAO,IAAI5Q,KAAKqP,iBACpB,CACA,UAAA9F,GACI,MAAM+G,EAAatQ,KAAKqP,iBAAiBrP,KAAKqP,iBAAiB7K,OAAS,GACpE8L,GACAtQ,KAAKwJ,MAAM,sBAAuB8G,GACtC,MAAME,EAAe/H,EAAuBzI,KAAMuO,EAAyC,IAAKE,GAA+CzL,KAAKhD,MAChJwQ,GACAxQ,KAAKwJ,MAAM,eAAgBgH,GAC/B,MAAMD,EAAe9H,EAAuBzI,KAAMuO,EAAyC,IAAKC,GAA+CxL,KAAKhD,MAChJuQ,GACAvQ,KAAKwJ,MAAM,eAAgB+G,GAC/B,MAAME,EAAoBhI,EAAuBzI,KAAMuO,EAAyC,IAAKG,GAAoD1L,KAAKhD,MAC1JyQ,GACAzQ,KAAKwJ,MAAM,oBAAqBiH,GACpC,MAAMC,EAA0BjI,EAAuBzI,KAAMuO,EAAyC,IAAKI,GAA0D3L,KAAKhD,MAC3I,MAA3B0Q,GACA1Q,KAAKwJ,MAAM,0BAA2BkH,GACtC1Q,KAAKqP,iBAAiBwB,MAAMC,GAAMA,EAAEC,SACpC/Q,KAAKwJ,MAAM,aAAcf,EAAuBzI,KAAMuO,EAAyC,IAAKK,GAAmD5L,KAAKhD,MAEpK,CACA,2BAAMgR,CAAsBC,EAAQC,EAAQ7L,GACxC,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3DrB,EAAuBzI,KAAMuO,EAAyC,IAAKM,GAA8C7L,KAAKhD,KAAMkR,GACpI,MAAM1B,QAAuByB,EAAOI,KAAKC,YAAYlG,OAAO,IAAK8F,EAAQ9D,QAAQ,GAAS,IAAK/H,EAAS8L,OAAQnR,KAAK6I,WAAWsI,SAEhI,OADAnR,KAAK0J,aACE1J,KAAKuP,oBAAmB,EAAIJ,EAASoC,qBAAqB/B,EAAgB0B,GACrF,CACA,wBAAMM,CAAmBP,EAAQC,EAAQ7L,GACrC,IAAK,MAAMmB,KAAW0K,EAAO5B,SACzBtP,KAAK0P,YAAYlJ,GAAS,GAE9B,aAAaxG,KAAKgR,sBAAsBC,EAAQC,EAAQ7L,EAC5D,CACA,mBAAMoM,CAAcR,EAAQC,EAAQ7L,GAChC,MAAMqM,EAAO,YACP,cAAE1B,EAAgB,OAAM,OAAE5C,KAAWuE,GAAeT,EACpDU,EAAgD,iBAAlB5B,GAA8BA,GAAelF,MAC3E,mBAAE+G,EAAqBzC,GAAiC/J,GAAW,CAAC,EACpEyM,EAAkB,CAAC,EACzB,IAAK,MAAMtJ,KAAK0I,EAAOa,UACnBD,EAAgBtJ,EAAEsC,MAAQtC,EAAE4H,SAAStF,MAAQtC,EAEjD,MAAMuJ,EAAYb,EAAOa,UAAUC,KAAKxJ,IAAM,CAC1CsC,KAAMtC,EAAEsC,MAAQtC,EAAE4H,SAAStF,KAC3BmH,WAAYzJ,EAAEyJ,WACdC,YAAa1J,EAAE0J,gBAEnB,IAAK,MAAM1L,KAAW0K,EAAO5B,SACzBtP,KAAK0P,YAAYlJ,GAAS,GAE9B,IAAK,IAAIhB,EAAI,EAAGA,EAAIqM,IAAsBrM,EAAG,CACzC,MAAMgK,QAAuBxP,KAAKgR,sBAAsBC,EAAQ,IACzDU,EACH3B,gBACA+B,YACAzC,SAAU,IAAItP,KAAKsP,WACpBjK,GACGmB,EAAUgJ,EAAeC,QAAQ,IAAIjJ,QAC3C,IAAKA,EACD,MAAM,IAAImC,EAAQqC,YAAY,8CAElC,IAAKxE,EAAQwJ,cACT,OACJ,MAAM,KAAElF,EAAMiC,UAAWpC,GAASnE,EAAQwJ,cACpCmC,EAAKL,EAAgBhH,GAC3B,IAAKqH,EAAI,CACL,MAAMvC,EAAU,0BAA0BwC,KAAK/R,UAAUyK,8BAAiCiH,EACrFC,KAAKxJ,GAAM4J,KAAK/R,UAAUmI,EAAEsC,QAC5BrG,KAAK,0BACVzE,KAAK0P,YAAY,CAAEgC,OAAM5G,OAAM8E,YAC/B,QACJ,CACK,GAAIgC,GAAwBA,IAAyB9G,EAAM,CAC5D,MAAM8E,EAAU,0BAA0BwC,KAAK/R,UAAUyK,OAAUsH,KAAK/R,UAAUuR,iCAClF5R,KAAK0P,YAAY,CAAEgC,OAAM5G,OAAM8E,YAC/B,QACJ,CACA,IAAIyC,EACJ,IACIA,GAAS,EAAIrD,EAAmBsD,6BAA6BH,SAAYA,EAAGnE,MAAMrD,GAAQA,CAC9F,CACA,MAAOrE,GACHtG,KAAK0P,YAAY,CACbgC,OACA5G,OACA8E,QAAStJ,aAAiBC,MAAQD,EAAME,QAAU1F,OAAOwF,KAE7D,QACJ,CAEA,MAAMiM,QAAmBJ,EAAG/B,SAASiC,EAAQrS,MACvC4P,EAAUnH,EAAuBzI,KAAMuO,EAAyC,IAAKO,GAA2D9L,KAAKhD,KAAMuS,GAEjK,GADAvS,KAAK0P,YAAY,CAAEgC,OAAM5G,OAAM8E,YAC3BgC,EACA,MACR,CACJ,CACA,eAAMY,CAAUvB,EAAQC,EAAQ7L,GAC5B,MAAMqM,EAAO,QACP,YAAEe,EAAc,OAAM,OAAErF,KAAWuE,GAAeT,EAClDU,EAA8C,iBAAhBa,GAA4BA,GAAarC,UAAUtF,MACjF,mBAAE+G,EAAqBzC,GAAiC/J,GAAW,CAAC,EAEpEqN,EAAaxB,EAAOyB,MAAMX,KAAKY,IACjC,IAAI,EAAIzD,EAAS0D,oBAAoBD,GAAO,CACxC,IAAKA,EAAKE,UACN,MAAM,IAAInK,EAAQqC,YAAY,yEAElC,MAAO,CACHmF,KAAM,WACNC,SAAU,CACNA,SAAUwC,EAAKE,UACfhI,KAAM8H,EAAKxC,SAAStF,KACpBoH,YAAaU,EAAKxC,SAAS8B,aAAe,GAC1CD,WAAYW,EAAKxC,SAAS6B,WAC1BjE,MAAO4E,EAAKG,UACZC,QAAQ,GAGpB,CACA,OAAOJ,CAAI,IAETd,EAAkB,CAAC,EACzB,IAAK,MAAMtJ,KAAKkK,EACG,aAAXlK,EAAE2H,OACF2B,EAAgBtJ,EAAE4H,SAAStF,MAAQtC,EAAE4H,SAASA,SAAStF,MAAQtC,EAAE4H,UAGzE,MAAMuC,EAAQ,UAAWzB,EACrBwB,EAAWV,KAAKiB,GAAiB,aAAXA,EAAE9C,KACpB,CACIA,KAAM,WACNC,SAAU,CACNtF,KAAMmI,EAAE7C,SAAStF,MAAQmI,EAAE7C,SAASA,SAAStF,KAC7CmH,WAAYgB,EAAE7C,SAAS6B,WACvBC,YAAae,EAAE7C,SAAS8B,YACxBc,OAAQC,EAAE7C,SAAS4C,SAGzBC,SACJxH,EACN,IAAK,MAAMjF,KAAW0K,EAAO5B,SACzBtP,KAAK0P,YAAYlJ,GAAS,GAE9B,IAAK,IAAIhB,EAAI,EAAGA,EAAIqM,IAAsBrM,EAAG,CACzC,MAAMgK,QAAuBxP,KAAKgR,sBAAsBC,EAAQ,IACzDU,EACHc,cACAE,QACArD,SAAU,IAAItP,KAAKsP,WACpBjK,GACGmB,EAAUgJ,EAAeC,QAAQ,IAAIjJ,QAC3C,IAAKA,EACD,MAAM,IAAImC,EAAQqC,YAAY,8CAElC,IAAKxE,EAAQyJ,YAAYzL,OACrB,OAEJ,IAAK,MAAM0L,KAAa1J,EAAQyJ,WAAY,CACxC,GAAuB,aAAnBC,EAAUC,KACV,SACJ,MAAM+C,EAAehD,EAAUiD,IACzB,KAAErI,EAAMiC,UAAWpC,GAASuF,EAAUE,SACtC+B,EAAKL,EAAgBhH,GAC3B,IAAKqH,EAAI,CACL,MAAMvC,EAAU,sBAAsBwC,KAAK/R,UAAUyK,8BAAiC5K,OAAOwE,KAAKoN,GAC7FE,KAAKlH,GAASsH,KAAK/R,UAAUyK,KAC7BrG,KAAK,0BACVzE,KAAK0P,YAAY,CAAEgC,OAAMwB,eAActD,YACvC,QACJ,CACK,GAAIgC,GAAwBA,IAAyB9G,EAAM,CAC5D,MAAM8E,EAAU,sBAAsBwC,KAAK/R,UAAUyK,OAAUsH,KAAK/R,UAAUuR,iCAC9E5R,KAAK0P,YAAY,CAAEgC,OAAMwB,eAActD,YACvC,QACJ,CACA,IAAIyC,EACJ,IACIA,GAAS,EAAIrD,EAAmBsD,6BAA6BH,SAAYA,EAAGnE,MAAMrD,GAAQA,CAC9F,CACA,MAAOrE,GACH,MAAMsJ,EAAUtJ,aAAiBC,MAAQD,EAAME,QAAU1F,OAAOwF,GAChEtG,KAAK0P,YAAY,CAAEgC,OAAMwB,eAActD,YACvC,QACJ,CAEA,MAAM2C,QAAmBJ,EAAG/B,SAASiC,EAAQrS,MACvC4P,EAAUnH,EAAuBzI,KAAMuO,EAAyC,IAAKO,GAA2D9L,KAAKhD,KAAMuS,GAEjK,GADAvS,KAAK0P,YAAY,CAAEgC,OAAMwB,eAActD,YACnCgC,EACA,MAER,CACJ,CAEJ,EAEJjS,EAAQoP,6BAA+BA,EACvCR,EAA0C,IAAI1D,QAAW2D,EAAgD,WACrG,OAAO/F,EAAuBzI,KAAMuO,EAAyC,IAAKE,GAA+CzL,KAAKhD,MAAM4P,SAAW,IAC3J,EAAGnB,EAAgD,WAC/C,IAAIjJ,EAAIxF,KAAKsP,SAAS9K,OACtB,KAAOgB,KAAM,GAAG,CACZ,MAAMgB,EAAUxG,KAAKsP,SAAS9J,GAC9B,IAAI,EAAIyJ,EAAsBc,oBAAoBvJ,GAAU,CACxD,MAAM,cAAEwJ,KAAkBoD,GAAS5M,EAE7B6M,EAAM,IACLD,EACHxD,QAASpJ,EAAQoJ,SAAW,KAC5B0D,QAAS9M,EAAQ8M,SAAW,MAKhC,OAHItD,IACAqD,EAAIrD,cAAgBA,GAEjBqD,CACX,CACJ,CACA,MAAM,IAAI1K,EAAQqC,YAAY,6EAClC,EAAG0D,EAAqD,WACpD,IAAK,IAAIlJ,EAAIxF,KAAKsP,SAAS9K,OAAS,EAAGgB,GAAK,EAAGA,IAAK,CAChD,MAAMgB,EAAUxG,KAAKsP,SAAS9J,GAC9B,IAAI,EAAIyJ,EAAsBc,oBAAoBvJ,IAAYA,GAASwJ,cACnE,OAAOxJ,EAAQwJ,cAEnB,IAAI,EAAIf,EAAsBc,oBAAoBvJ,IAAYA,GAASyJ,YAAYzL,OAC/E,OAAOgC,EAAQyJ,WAAWsD,IAAI,IAAInD,QAE1C,CAEJ,EAAGzB,EAA2D,WAC1D,IAAK,IAAInJ,EAAIxF,KAAKsP,SAAS9K,OAAS,EAAGgB,GAAK,EAAGA,IAAK,CAChD,MAAMgB,EAAUxG,KAAKsP,SAAS9J,GAC9B,IAAI,EAAIyJ,EAAsBY,mBAAmBrJ,IAA+B,MAAnBA,EAAQoJ,QACjE,OAAOpJ,EAAQoJ,QAEnB,IAAI,EAAIX,EAAsBa,eAAetJ,IACtB,MAAnBA,EAAQoJ,SACmB,iBAApBpJ,EAAQoJ,SACf5P,KAAKsP,SAASuB,MAAM2C,GAAiB,cAAXA,EAAE9B,MACxB8B,EAAEvD,YAAYY,MAAM4C,GAAiB,aAAXA,EAAEtD,MAAuBsD,EAAEN,KAAO3M,EAAQ0M,iBACxE,OAAO1M,EAAQoJ,OAEvB,CAEJ,EAAGhB,EAAoD,WACnD,MAAM8E,EAAQ,CACVC,kBAAmB,EACnBC,cAAe,EACfC,aAAc,GAElB,IAAK,MAAM,MAAE9C,KAAW/Q,KAAKqP,iBACrB0B,IACA2C,EAAMC,mBAAqB5C,EAAM4C,kBACjCD,EAAME,eAAiB7C,EAAM6C,cAC7BF,EAAMG,cAAgB9C,EAAM8C,cAGpC,OAAOH,CACX,EAAG7E,EAA+C,SAAsDqC,GACpG,GAAgB,MAAZA,EAAO4C,GAAa5C,EAAO4C,EAAI,EAC/B,MAAM,IAAInL,EAAQqC,YAAY,+HAEtC,EAAG8D,EAA4D,SAAmEyD,GAC9H,MAA8B,iBAAfA,EAA0BA,OACpB9G,IAAf8G,EAA2B,YACvBH,KAAK/R,UAAUkS,EAC7B,C,8BChXArS,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoU,gBAAa,EACrB,MAAMvH,EAAa,EAAQ,MAC3B,MAAMuH,UAAmBvH,EAAWK,YAIhC,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,cAAe,CAAEjG,UAAS7B,GACvD,EAEJ1F,EAAQoU,WAAaA,C,oCCXrB,IAAI5I,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQqU,WAAQ,EAChB,MAAMxH,EAAa,EAAQ,MACrByH,EAAYhI,EAAa,EAAQ,OACjCiI,EAAW,EAAQ,MACnBC,EAAoBlI,EAAa,EAAQ,OACzCmI,EAAmB,EAAQ,MAC3BC,EAAkBpI,EAAa,EAAQ,OACvCqI,EAAiB,EAAQ,MAC/B,MAAMN,UAAcxH,EAAWK,YAC3B,WAAAlG,GACImG,SAASC,WACT/M,KAAKuU,eAAiB,IAAIJ,EAAkBK,eAAexU,KAAKkN,SAChElN,KAAKyU,aAAe,IAAIJ,EAAgBK,aAAa1U,KAAKkN,SAC1DlN,KAAK2U,OAAS,IAAIV,EAAUW,OAAO5U,KAAKkN,QAC5C,EAEJvN,EAAQqU,MAAQA,EAChBA,EAAMQ,eAAiBJ,EAAiBI,eACxCR,EAAMU,aAAeJ,EAAeI,aACpCV,EAAMY,OAASV,EAASU,M,oCC3CxB,IAAIzJ,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQkV,UAAO,EACf,MAAMrI,EAAa,EAAQ,MACrBsI,EAAiB7I,EAAa,EAAQ,OAC5C,MAAM4I,UAAarI,EAAWK,YAC1B,WAAAlG,GACImG,SAASC,WACT/M,KAAKsR,YAAc,IAAIwD,EAAeC,YAAY/U,KAAKkN,QAC3D,EAEJvN,EAAQkV,KAAOA,EACf,SAAWA,GACPA,EAAKE,YAAcD,EAAeC,WACrC,CAFD,CAEGF,EAAOlV,EAAQkV,OAASlV,EAAQkV,KAAO,CAAC,G,8BCrC3C3U,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQqV,QAAUrV,EAAQU,eAAY,EACtC,MAAME,EAAY,EAAQ,MACpByU,EAAU,CACZnS,WAAYtC,EAAUsC,WACtBoS,QAAS1U,EAAU0U,QACnBC,QAAS3U,EAAU2U,QACnBC,QAAS5U,EAAUoC,gBAEvBhD,EAAQqV,QAAUA,EAClB,IAAII,EAAc,EAAQ,KAC1BlV,OAAOC,eAAeR,EAAS,YAAa,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOqR,EAAY/U,SAAW,G,oCCVjH,IAAI8K,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ0V,gBAAkB1V,EAAQ2V,WAAQ,EAC1C,MAAM9I,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBgJ,EAAS,EAAQ,MACjB5M,EAAU,EAAQ,MAClB6M,EAAOvJ,EAAa,EAAQ,OAC5BW,EAAe,EAAQ,MAC7B,MAAM0I,UAAc9I,EAAWK,YAwB3B,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,SAAUqI,EAAKC,4BAA4B,CAAEvO,UAAS7B,IACnF,CAIA,QAAAmI,CAASkI,EAAQrQ,GACb,OAAOrF,KAAKkN,QAAQnJ,IAAI,UAAU2R,IAAUrQ,EAChD,CACA,IAAAsQ,CAAKjI,EAAQ,CAAC,EAAGrI,GACb,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAK,CAAC,EAAGjI,GAElB1N,KAAKkN,QAAQ0I,WAAW,SAAUP,EAAiB,CAAE3H,WAAUrI,GAC1E,CAIA,GAAAuI,CAAI8H,EAAQrQ,GACR,OAAOrF,KAAKkN,QAAQW,OAAO,UAAU6H,IAAUrQ,EACnD,CAIA,OAAAuK,CAAQ8F,EAAQrQ,GACZ,OAAOrF,KAAKkN,QAAQnJ,IAAI,UAAU2R,YAAkB,IAC7CrQ,EACHyI,QAAS,CAAEC,OAAQ,wBAAyB1I,GAASyI,SACrD+H,kBAAkB,GAE1B,CAMA,eAAAC,CAAgBJ,EAAQrQ,GACpB,OAAOrF,KAAKkN,QAAQnJ,IAAI,UAAU2R,YAAkBrQ,EACxD,CAIA,uBAAM0Q,CAAkB5C,GAAI,aAAE6C,EAAe,IAAI,QAAEC,EAAU,MAAmB,CAAC,GAC7E,MAAMC,EAAkB,IAAIC,IAAI,CAAC,YAAa,QAAS,YACjDC,EAAQxU,KAAKyU,MACnB,IAAIC,QAAatW,KAAKwN,SAAS2F,GAC/B,MAAQmD,EAAKC,SAAWL,EAAgB1V,IAAI8V,EAAKC,SAG7C,SAFM,EAAIhB,EAAOiB,OAAOR,GACxBM,QAAatW,KAAKwN,SAAS2F,GACvBvR,KAAKyU,MAAQD,EAAQH,EACrB,MAAM,IAAItN,EAAQ8N,0BAA0B,CACxCjQ,QAAS,iCAAiC2M,gCAAiC8C,oBAIvF,OAAOK,CACX,EAEJ3W,EAAQ2V,MAAQA,EAChB,MAAMD,UAAwBzI,EAAa0B,YAE3C3O,EAAQ0V,gBAAkBA,EAC1BC,EAAMD,gBAAkBA,C,oCCrHxB,IAAIlK,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ+W,wBAA0B/W,EAAQgX,mBAAqBhX,EAAQiX,UAAO,EAC9E,MAAMpK,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBsK,EAAiB5K,EAAa,EAAQ,OACtC6K,EAAgB,EAAQ,MACxBlK,EAAe,EAAQ,MAC7B,MAAMgK,UAAapK,EAAWK,YAC1B,WAAAlG,GACImG,SAASC,WACT/M,KAAK+W,YAAc,IAAIF,EAAeG,YAAYhX,KAAKkN,QAC3D,CAUA,MAAA9B,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,oBAAqB,CAAEjG,UAAS7B,GAC7D,CAMA,QAAAmI,CAASyJ,EAAiB5R,GACtB,OAAOrF,KAAKkN,QAAQnJ,IAAI,qBAAqBkT,IAAmB5R,EACpE,CACA,IAAAsQ,CAAKjI,EAAQ,CAAC,EAAGrI,GACb,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAK,CAAC,EAAGjI,GAElB1N,KAAKkN,QAAQ0I,WAAW,oBAAqBe,EAAoB,CAAEjJ,WAAUrI,GACxF,CAIA,MAAA6R,CAAOD,EAAiB5R,GACpB,OAAOrF,KAAKkN,QAAQC,KAAK,qBAAqB8J,WAA0B5R,EAC5E,CACA,UAAA8R,CAAWF,EAAiBvJ,EAAQ,CAAC,EAAGrI,GACpC,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAKmX,WAAWF,EAAiB,CAAC,EAAGvJ,GAEzC1N,KAAKkN,QAAQ0I,WAAW,qBAAqBqB,WAA0BP,EAAyB,CACnGhJ,WACGrI,GAEX,EAEJ1F,EAAQiX,KAAOA,EACf,MAAMD,UAA2B/J,EAAa0B,YAE9C3O,EAAQgX,mBAAqBA,EAC7B,MAAMD,UAAgC9J,EAAa0B,YAEnD3O,EAAQ+W,wBAA0BA,EAClCE,EAAKD,mBAAqBA,EAC1BC,EAAKF,wBAA0BA,EAC/BE,EAAKI,YAAcF,EAAcE,YACjCJ,EAAKQ,6BAA+BN,EAAcM,4B,oCCvFlD,IAAIjM,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ0X,SAAW1X,EAAQ2X,UAAO,EAClC,MAAM9K,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBgL,EAAoB,EAAQ,MAC5BhC,EAAS,EAAQ,MACjBiC,EAAWvL,EAAa,EAAQ,OAChCwL,EAAU,EAAQ,MAClB7K,EAAe,EAAQ,MAC7B,MAAM0K,UAAa9K,EAAWK,YAC1B,WAAAlG,GACImG,SAASC,WACT/M,KAAK0X,MAAQ,IAAIF,EAASG,MAAM3X,KAAKkN,QACzC,CACA,MAAA9B,CAAOwM,EAAU1G,EAAQ7L,GACrB,MAAM,QAAEwS,KAAY3Q,GAASgK,EAC7B,OAAOlR,KAAKkN,QAAQC,KAAK,YAAYyK,SAAiB,CAClDlK,MAAO,CAAEmK,WACT3Q,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,SACvDV,OAAQ8D,EAAO9D,SAAU,GAEjC,CAIA,QAAAI,CAASoK,EAAUE,EAAOzS,GACtB,OAAOrF,KAAKkN,QAAQnJ,IAAI,YAAY6T,UAAiBE,IAAS,IACvDzS,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAiK,CAAOH,EAAUE,EAAO5Q,EAAM7B,GAC1B,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYyK,UAAiBE,IAAS,CAC3D5Q,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,IAAA6H,CAAKiC,EAAUlK,EAAQ,CAAC,EAAGrI,GACvB,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKiC,EAAU,CAAC,EAAGlK,GAE5B1N,KAAKkN,QAAQ0I,WAAW,YAAYgC,SAAiBP,EAAU,CAClE3J,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAoJ,CAAOU,EAAUE,EAAOzS,GACpB,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYyK,UAAiBE,WAAgB,IAC/DzS,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAMA,mBAAMkK,CAAcJ,EAAU1Q,EAAM7B,GAChC,MAAM4S,QAAYjY,KAAKoL,OAAOwM,EAAU1Q,EAAM7B,GAC9C,aAAarF,KAAKkY,KAAKN,EAAUK,EAAI9E,GAAI9N,EAC7C,CAMA,eAAA8S,CAAgBP,EAAU1Q,EAAM7B,GAC5B,OAAOkS,EAAkBa,gBAAgBC,sBAAsBT,EAAU5X,KAAKkN,QAAQoL,KAAKC,QAAQC,KAAMtR,EAAM7B,EACnH,CAMA,UAAM6S,CAAKN,EAAUE,EAAOzS,GACxB,MAAMyI,EAAU,IAAKzI,GAASyI,QAAS,0BAA2B,QAIlE,IAHIzI,GAASoT,iBACT3K,EAAQ,oCAAsCzI,EAAQoT,eAAeC,cAE5D,CACT,MAAQC,KAAMV,EAAG,SAAE/J,SAAmBlO,KAAKwN,SAASoK,EAAUE,EAAO,IAC9DzS,EACHyI,QAAS,IAAKzI,GAASyI,WAAYA,KACpC8K,eACH,OAAQX,EAAI1B,QAER,IAAK,SACL,IAAK,cACL,IAAK,aACD,IAAIsC,EAAgB,IACpB,GAAIxT,GAASoT,eACTI,EAAgBxT,EAAQoT,mBAEvB,CACD,MAAMK,EAAiB5K,EAASJ,QAAQ/J,IAAI,wBAC5C,GAAI+U,EAAgB,CAChB,MAAMC,EAAmBC,SAASF,GAC7BG,MAAMF,KACPF,EAAgBE,EAExB,CACJ,OACM,EAAIxD,EAAOiB,OAAOqC,GACxB,MAEJ,IAAK,kBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,SACL,IAAK,UACD,OAAOZ,EAEnB,CACJ,CAIA,MAAA7K,CAAOwK,EAAU1Q,EAAM7B,GACnB,OAAOkS,EAAkBa,gBAAgBC,sBAAsBT,EAAU5X,KAAKkN,QAAQoL,KAAKC,QAAQC,KAAMtR,EAAM7B,EACnH,CACA,iBAAA6T,CAAkBtB,EAAUE,EAAO5Q,EAAM7B,GACrC,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYyK,UAAiBE,wBAA6B,CAC/E5Q,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,SACvDV,OAAQlG,EAAKkG,SAAU,GAE/B,CAMA,8BAAM+L,CAAyBvB,EAAUE,EAAO5Q,EAAM7B,GAClD,MAAM4S,QAAYjY,KAAKkZ,kBAAkBtB,EAAUE,EAAO5Q,EAAM7B,GAChE,aAAarF,KAAKkY,KAAKN,EAAUK,EAAI9E,GAAI9N,EAC7C,CAMA,uBAAA+T,CAAwBxB,EAAUE,EAAO5Q,EAAM7B,GAC3C,OAAOkS,EAAkBa,gBAAgBiB,0BAA0BzB,EAAUE,EAAO9X,KAAKkN,QAAQoL,KAAKC,QAAQC,KAAMtR,EAAM7B,EAC9H,EAEJ1F,EAAQ2X,KAAOA,EACf,MAAMD,UAAiBzK,EAAa0B,YAEpC3O,EAAQ0X,SAAWA,EACnBC,EAAKD,SAAWA,EAChBC,EAAKK,MAAQF,EAAQE,MACrBL,EAAKgC,aAAe7B,EAAQ6B,Y,oCC1L5B,IAuBIC,EAvBApO,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EAEAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ6Z,yBAA2B7Z,EAAQ8Z,sBAAwB9Z,EAAQ+Z,oBAAsB/Z,EAAQga,oBAAsBha,EAAQia,gBAAkBja,EAAQka,eAAiBla,EAAQma,cAAgBna,EAAQoa,cAAgBpa,EAAQoL,kBAAoBpL,EAAQ8W,0BAA4B9W,EAAQqa,mBAAqBra,EAAQsa,SAAWta,EAAQqL,YAAcrL,EAAQ2H,aAAe3H,EAAQua,OAASva,EAAQwa,YAAcxa,EAAQya,YAAS,EACvb,MAAMC,EAAKpO,EAAa,EAAQ,OAC1BuJ,EAAOvJ,EAAa,EAAQ,OAC5BqO,EAASrO,EAAa,EAAQ,OAE9BsO,GADatO,EAAa,EAAQ,OACxBA,EAAa,EAAQ,QAC/BuO,EAAMvO,EAAa,EAAQ,OAC3BwO,EAAY,EAAQ,MACpBC,EAAgB,EAAQ,MACxBC,EAAe,EAAQ,MACvBC,EAAU,EAAQ,MAClBC,EAAW,EAAQ,MACnBC,EAAW,EAAQ,MACnBC,EAAgB,EAAQ,MACxBC,EAAU,EAAQ,MAClBC,EAAS,EAAQ,MACjBC,EAAS,EAAQ,MACjBC,EAAgB,EAAQ,MACxBC,EAAc,EAAQ,KACtBC,EAAY,EAAQ,MACpBC,EAAkB,EAAQ,MAC1BC,EAAgB,EAAQ,MAI9B,MAAMnB,UAAe5E,EAAKgG,UAgBtB,WAAA7U,EAAY,QAAE8U,EAAUjG,EAAKkG,QAAQ,mBAAkB,OAAEC,EAASnG,EAAKkG,QAAQ,kBAAiB,aAAEE,EAAepG,EAAKkG,QAAQ,kBAAoB,KAAI,QAAEG,EAAUrG,EAAKkG,QAAQ,sBAAwB,QAAStW,GAAS,CAAC,GACtN,QAAeqG,IAAXkQ,EACA,MAAM,IAAIrB,EAAOtP,YAAY,sLAEjC,MAAM3F,EAAU,CACZsW,SACAC,eACAC,aACGzW,EACHqW,QAASA,GAAW,6BAExB,IAAKpW,EAAQyW,yBAA2BtG,EAAKuG,qBACzC,MAAM,IAAIzB,EAAOtP,YAAY,sbAEjC8B,MAAM,CACF2O,QAASpW,EAAQoW,QACjBO,QAAS3W,EAAQ2W,SAAW,IAC5BC,UAAW5W,EAAQ4W,UACnBC,WAAY7W,EAAQ6W,WACpBhW,MAAOb,EAAQa,QAEnBlG,KAAKsR,YAAc,IAAIkJ,EAAIzF,YAAY/U,MACvCA,KAAKqR,KAAO,IAAImJ,EAAI3F,KAAK7U,MACzBA,KAAKmc,WAAa,IAAI3B,EAAIzG,WAAW/T,MACrCA,KAAKoc,MAAQ,IAAI5B,EAAIlF,MAAMtV,MAC3BA,KAAKqc,OAAS,IAAI7B,EAAI8B,OAAOtc,MAC7BA,KAAKuc,MAAQ,IAAI/B,EAAIxG,MAAMhU,MAC3BA,KAAKwc,YAAc,IAAIhC,EAAIiC,YAAYzc,MACvCA,KAAK0c,OAAS,IAAIlC,EAAImC,OAAO3c,MAC7BA,KAAK4c,WAAa,IAAIpC,EAAIqC,WAAW7c,MACrCA,KAAK8c,aAAe,IAAItC,EAAIuC,aAAa/c,MACzCA,KAAKsY,KAAO,IAAIkC,EAAIwC,KAAKhd,MACzBA,KAAKid,QAAU,IAAIzC,EAAI0C,QAAQld,MAC/BA,KAAKmd,QAAU,IAAI3C,EAAID,QAAQva,MAC/BA,KAAKiO,UAAY,IAAIuM,EAAInO,UAAUrM,MACnCA,KAAKod,SAAW/X,EAChBrF,KAAK2b,OAASA,EACd3b,KAAK4b,aAAeA,EACpB5b,KAAK6b,QAAUA,CACnB,CACA,YAAAwB,GACI,OAAOrd,KAAKod,SAASC,YACzB,CACA,cAAAC,CAAelY,GACX,MAAO,IACA0H,MAAMwQ,eAAelY,GACxB,sBAAuBpF,KAAK4b,aAC5B,iBAAkB5b,KAAK6b,WACpB7b,KAAKod,SAASE,eAEzB,CACA,WAAAC,CAAYnY,GACR,MAAO,CAAEoY,cAAe,UAAUxd,KAAK2b,SAC3C,CACA,cAAA8B,CAAe/P,GACX,OAAO2M,EAAGha,UAAUqN,EAAO,CAAExL,YAAa,YAC9C,EAEJvC,EAAQya,OAASA,EACjBb,EAAKa,EACLA,EAAOA,OAASb,EAChBa,EAAOsD,gBAAkB,IACzBtD,EAAOpP,YAAcsP,EAAOtP,YAC5BoP,EAAOH,SAAWK,EAAOL,SACzBG,EAAOJ,mBAAqBM,EAAON,mBACnCI,EAAO3D,0BAA4B6D,EAAO7D,0BAC1C2D,EAAOrP,kBAAoBuP,EAAOvP,kBAClCqP,EAAOL,cAAgBO,EAAOP,cAC9BK,EAAON,cAAgBQ,EAAOR,cAC9BM,EAAOP,eAAiBS,EAAOT,eAC/BO,EAAOR,gBAAkBU,EAAOV,gBAChCQ,EAAOT,oBAAsBW,EAAOX,oBACpCS,EAAOV,oBAAsBY,EAAOZ,oBACpCU,EAAOX,sBAAwBa,EAAOb,sBACtCW,EAAOZ,yBAA2Bc,EAAOd,yBACzCY,EAAOF,OAASK,EAAQL,OACxBE,EAAO9S,aAAeiT,EAAQjT,aAC9B8S,EAAOrF,YAAc2F,EAAc3F,YACnCqF,EAAOvF,KAAOqG,EAAOrG,KACrBuF,EAAOuD,oBAAsBpC,EAAcoC,oBAC3CvD,EAAOrG,WAAa4G,EAAa5G,WACjCqG,EAAO9E,MAAQsF,EAAQtF,MACvB8E,EAAO/E,gBAAkBuF,EAAQvF,gBACjC+E,EAAOkC,OAASzB,EAASyB,OACzBlC,EAAOpG,MAAQgH,EAAQhH,MACvBoG,EAAOqC,YAAc1B,EAAc0B,YACnCrC,EAAOuC,OAAS7B,EAAS6B,OACzBvC,EAAOwD,WAAa9C,EAAS8C,WAC7BxD,EAAOyC,WAAa1B,EAAc0B,WAClCzC,EAAO2C,aAAezB,EAAgByB,aACtC3C,EAAOyD,iBAAmBvC,EAAgBuC,iBAC1CzD,EAAO0D,+BAAiCxC,EAAgBwC,+BACxD1D,EAAO4C,KAAO/B,EAAO+B,KACrB5C,EAAO8C,QAAUzC,EAAUyC,QAC3B9C,EAAO2D,YAActD,EAAUsD,YAC/B3D,EAAOG,QAAUc,EAAUd,QAC3BH,EAAO/N,UAAY+O,EAAY/O,UAE/B,MAAM8N,UAAoBC,EAkBtB,WAAAzT,EAAY,QAAE8U,EAAUjG,EAAKkG,QAAQ,mBAAkB,OAAEC,EAASnG,EAAKkG,QAAQ,wBAAuB,WAAEsC,EAAaxI,EAAKkG,QAAQ,sBAAqB,SAAEuC,EAAQ,WAAEC,EAAU,qBAAEC,EAAoB,wBAAErC,KAA4B1W,GAAS,CAAC,GACvO,IAAK4Y,EACD,MAAM,IAAI1D,EAAOtP,YAAY,gNAKjC,GAHoC,mBAAzBmT,IACPrC,GAA0B,IAEzBqC,IAAyBxC,EAC1B,MAAM,IAAIrB,EAAOtP,YAAY,wIAEjC,GAAImT,GAAwBxC,EACxB,MAAM,IAAIrB,EAAOtP,YAAY,+GAKjC,GAFA2Q,IAAWA,EAASyC,GACpBhZ,EAAKiY,aAAe,IAAKjY,EAAKiY,aAAc,cAAeW,GACtDvC,GAUD,GAAIwC,EACA,MAAM,IAAI3D,EAAOtP,YAAY,mDAXvB,CAIV,GAHKiT,IACDA,EAAWI,QAAQC,IAA2B,wBAE7CL,EACD,MAAM,IAAI3D,EAAOtP,YAAY,kHAEjCyQ,EAAU,GAAGwC,UACjB,CAMAnR,MAAM,CACF6O,SACAF,aACGrW,UAC6BqG,IAA5BqQ,EAAwC,CAAEA,2BAA4B,CAAC,IAE/E9b,KAAKge,WAAa,GAClBhe,KAAKue,sBAAwBJ,EAC7Bne,KAAKge,WAAaA,EAClBhe,KAAKwe,eAAiBN,CAC1B,CACA,YAAAO,CAAapZ,EAASqZ,EAAQ,CAAC,GAC3B,GAAIC,EAAuBne,IAAI6E,EAAQuZ,OAA4B,SAAnBvZ,EAAQwZ,aAAsCpT,IAAjBpG,EAAQ6B,KAAoB,CACrG,IAAKsO,EAAKsJ,MAAMzZ,EAAQ6B,MACpB,MAAM,IAAIX,MAAM,yCAEpB,MAAMwY,EAAQ/e,KAAKwe,gBAAkBnZ,EAAQ6B,KAAY,OAAK7B,EAAQ2Z,YAAoB,WAC5EvT,IAAVsT,GAAwB/e,KAAKyb,QAAQwD,SAAS,kBAC9C5Z,EAAQuZ,KAAO,gBAAgBG,IAAQ1Z,EAAQuZ,OAEvD,CACA,OAAO9R,MAAM2R,aAAapZ,EAASqZ,EACvC,CACA,sBAAMQ,GACF,GAA0C,mBAA/Blf,KAAKue,sBAAsC,CAClD,MAAMY,QAAcnf,KAAKue,wBACzB,IAAKY,GAA0B,iBAAVA,EACjB,MAAM,IAAI7E,EAAOtP,YAAY,+EAA+EmU,KAEhH,OAAOA,CACX,CAEJ,CACA,WAAA5B,CAAYnY,GACR,MAAO,CAAC,CACZ,CACA,oBAAMga,CAAeha,GAOjB,GAAIA,EAAK0I,UAAU,WACf,OAAOhB,MAAMsS,eAAeha,GAEhC,MAAM+Z,QAAcnf,KAAKkf,mBAEzB,GADA9Z,EAAK0I,UAAY1I,EAAK0I,QAAU,CAAC,GAC7BqR,EACA/Z,EAAK0I,QAAuB,cAAI,UAAUqR,QAEzC,IAAInf,KAAK2b,SAAWyC,EAIrB,MAAM,IAAI9D,EAAOtP,YAAY,yBAH7B5F,EAAK0I,QAAQ,WAAa9N,KAAK2b,MAInC,CACA,OAAO7O,MAAMsS,eAAeha,EAChC,EAEJzF,EAAQwa,YAAcA,EACtB,MAAMwE,EAAyB,IAAIxI,IAAI,CACnC,eACA,oBACA,cACA,wBACA,sBACA,gBACA,wBAEEiI,EAAmB,gBAEzB,IAAIiB,EAAY,EAAQ,MACxBnf,OAAOC,eAAeR,EAAS,SAAU,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOsb,EAAUnF,MAAQ,IACzGha,OAAOC,eAAeR,EAAS,eAAgB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOsb,EAAU/X,YAAc,IACrH,IAAIqB,EAAU,EAAQ,MACtBzI,OAAOC,eAAeR,EAAS,cAAe,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQqC,WAAa,IACjH9K,OAAOC,eAAeR,EAAS,WAAY,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQsR,QAAU,IAC3G/Z,OAAOC,eAAeR,EAAS,qBAAsB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQqR,kBAAoB,IAC/H9Z,OAAOC,eAAeR,EAAS,4BAA6B,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQ8N,yBAA2B,IAC7IvW,OAAOC,eAAeR,EAAS,oBAAqB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQoC,iBAAmB,IAC7H7K,OAAOC,eAAeR,EAAS,gBAAiB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQoR,aAAe,IACrH7Z,OAAOC,eAAeR,EAAS,gBAAiB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQmR,aAAe,IACrH5Z,OAAOC,eAAeR,EAAS,iBAAkB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQkR,cAAgB,IACvH3Z,OAAOC,eAAeR,EAAS,kBAAmB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQiR,eAAiB,IACzH1Z,OAAOC,eAAeR,EAAS,sBAAuB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQgR,mBAAqB,IACjIzZ,OAAOC,eAAeR,EAAS,sBAAuB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQ+Q,mBAAqB,IACjIxZ,OAAOC,eAAeR,EAAS,wBAAyB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQ8Q,qBAAuB,IACrIvZ,OAAOC,eAAeR,EAAS,2BAA4B,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4E,EAAQ6Q,wBAA0B,IAC3I7Z,EAAUC,EAAOD,QAAUya,EAC3Bxa,EAAOD,QAAQwa,YAAcA,EAC7Bxa,EAAA,QAAkBya,C,iBC9SlB,MAAMkF,EAAQ,EAAQ,MAChBC,EAAO,EAAQ,MAChBD,EAAM7Y,MAAM6Y,EAAME,SAASD,EAAK7Z,aAAc,CAAE6Z,MAAM,IAC3D,IAAK,MAAME,KAAYvf,OAAOwE,KAAK4a,GACjCpf,OAAOC,eAAeR,EAAS8f,EAAU,CACvC1b,IAAG,IACMub,EAAMG,I,8BCPnBvf,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ2O,WAAa3O,EAAQ+f,UAAO,EACpC,MAAMnT,EAAS,EAAQ,MAIvB,MAAMmT,UAAanT,EAAOoT,aACtB,WAAAhZ,CAAYsK,EAAQ/C,EAAUhH,EAAM7B,GAChCyH,MAAMmE,EAAQ/C,EAAUhH,EAAM7B,GAC9BrF,KAAK2Y,KAAOzR,EAAKyR,MAAQ,GACzB3Y,KAAKqD,OAAS6D,EAAK7D,MACvB,CACA,iBAAAuc,GACI,OAAO5f,KAAK2Y,MAAQ,EACxB,CAMA,cAAAkH,GACI,OAAO,IACX,CACA,YAAAC,GACI,OAAO,IACX,EAEJngB,EAAQ+f,KAAOA,EACf,MAAMpR,UAAmB/B,EAAOoT,aAC5B,WAAAhZ,CAAYsK,EAAQ/C,EAAUhH,EAAM7B,GAChCyH,MAAMmE,EAAQ/C,EAAUhH,EAAM7B,GAC9BrF,KAAK2Y,KAAOzR,EAAKyR,MAAQ,GACzB3Y,KAAK+f,SAAW7Y,EAAK6Y,WAAY,CACrC,CACA,iBAAAH,GACI,OAAO5f,KAAK2Y,MAAQ,EACxB,CACA,WAAAqH,GACI,OAAsB,IAAlBhgB,KAAK+f,UAGFjT,MAAMkT,aACjB,CAEA,cAAAH,GACI,MAAMI,EAAOjgB,KAAK8f,eAClB,IAAKG,EACD,OAAO,KACX,GAAI,WAAYA,EACZ,OAAOA,EAAK/O,OAChB,MAAMA,EAAShR,OAAOggB,YAAYD,EAAK5Y,IAAI8Y,cAC3C,OAAKjgB,OAAOwE,KAAKwM,GAAQ1M,OAElB0M,EADI,IAEf,CACA,YAAA4O,GACI,MAAMnH,EAAO3Y,KAAK4f,oBAClB,IAAKjH,EAAKnU,OACN,OAAO,KAEX,MAAM2O,EAAKwF,EAAKA,EAAKnU,OAAS,IAAI2O,GAClC,OAAKA,EAGE,CAAEjC,OAAQ,CAAEkP,MAAOjN,IAFf,IAGf,EAEJxT,EAAQ2O,WAAaA,C,8BCnErBpO,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoe,YAAcpe,EAAQud,aAAU,EACxC,MAAM1Q,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBK,EAAe,EAAQ,MAC7B,MAAMsQ,UAAgB1Q,EAAWK,YAI7B,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,WAAY,CAAEjG,UAAS7B,GACpD,CAIA,QAAAmI,CAAS6S,EAAShb,GACd,OAAOrF,KAAKkN,QAAQnJ,IAAI,YAAYsc,IAAWhb,EACnD,CACA,IAAAsQ,CAAKjI,EAAQ,CAAC,EAAGrI,GACb,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAK,CAAC,EAAGjI,GAElB1N,KAAKkN,QAAQ0I,WAAW,WAAYmI,EAAa,CAAErQ,WAAUrI,GACxE,CAMA,MAAA6R,CAAOmJ,EAAShb,GACZ,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYkT,WAAkBhb,EAC3D,EAEJ1F,EAAQud,QAAUA,EAClB,MAAMa,UAAoBnR,EAAa0B,YAEvC3O,EAAQoe,YAAcA,EACtBb,EAAQa,YAAcA,C,oCCrCtB,IAAI5S,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ2gB,aAAU,EAClB,MAAM9T,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBgL,EAAoB,EAAQ,MAC5BgJ,EAActU,EAAa,EAAQ,OACnCuU,EAAa,EAAQ,MACrBC,EAAUxU,EAAa,EAAQ,OAC/ByU,EAAS,EAAQ,MACvB,MAAMJ,UAAgB9T,EAAWK,YAC7B,WAAAlG,GACImG,SAASC,WACT/M,KAAKwY,KAAO,IAAIiI,EAAQnJ,KAAKtX,KAAKkN,SAClClN,KAAKsP,SAAW,IAAIiR,EAAYI,SAAS3gB,KAAKkN,QAClD,CACA,MAAA9B,CAAOlE,EAAO,CAAC,EAAG7B,GACd,OAAI,EAAIkH,EAAOoB,kBAAkBzG,GACtBlH,KAAKoL,OAAO,CAAC,EAAGlE,GAEpBlH,KAAKkN,QAAQC,KAAK,WAAY,CACjCjG,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,QAAAN,CAASoK,EAAUvS,GACf,OAAOrF,KAAKkN,QAAQnJ,IAAI,YAAY6T,IAAY,IACzCvS,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAiK,CAAOH,EAAU1Q,EAAM7B,GACnB,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYyK,IAAY,CAC7C1Q,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,GAAAF,CAAIgK,EAAUvS,GACV,OAAOrF,KAAKkN,QAAQW,OAAO,YAAY+J,IAAY,IAC5CvS,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,YAAA8S,CAAa1Z,EAAM7B,GACf,OAAOrF,KAAKkN,QAAQC,KAAK,gBAAiB,CACtCjG,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,SACvDV,OAAQlG,EAAKkG,SAAU,GAE/B,CAMA,sBAAMyT,CAAiB3Z,EAAM7B,GACzB,MAAM4S,QAAYjY,KAAK4gB,aAAa1Z,EAAM7B,GAC1C,aAAarF,KAAKwY,KAAKN,KAAKD,EAAI6I,UAAW7I,EAAI9E,GAAI9N,EACvD,CAIA,kBAAA0b,CAAmB7Z,EAAM7B,GACrB,OAAOkS,EAAkBa,gBAAgB4I,4BAA4B9Z,EAAMlH,KAAKkN,QAAQoL,KAAKC,QAASlT,EAC1G,EAEJ1F,EAAQ2gB,QAAUA,EAClBA,EAAQhJ,KAAOoJ,EAAOpJ,KACtBgJ,EAAQjJ,SAAWqJ,EAAOrJ,SAC1BiJ,EAAQK,SAAWH,EAAWG,SAC9BL,EAAQW,aAAeT,EAAWS,Y,8BCxGlC/gB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQghB,SAAWhhB,EAAQoV,YAAcpV,EAAQge,oBAAsBhe,EAAQuhB,qCAAkC,EACjH,IAAIxG,EAAgB,EAAQ,MAC5Bxa,OAAOC,eAAeR,EAAS,kCAAmC,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO2W,EAAcwG,+BAAiC,IAC/JhhB,OAAOC,eAAeR,EAAS,sBAAuB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO2W,EAAciD,mBAAqB,IACvIzd,OAAOC,eAAeR,EAAS,cAAe,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO2W,EAAc3F,WAAa,IACvH,IAAIyL,EAAa,EAAQ,MACzBtgB,OAAOC,eAAeR,EAAS,WAAY,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOyc,EAAWG,QAAU,G,4BCP9GzgB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQkN,iBAAc,EAMtBlN,EAAQkN,YALR,MACI,WAAAlG,CAAYsK,GACRjR,KAAKkN,QAAU+D,CACnB,E,8BCLJ/Q,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQwhB,eAAiBxhB,EAAQyhB,gBAAa,EAC9C,MAAM5U,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBK,EAAe,EAAQ,MAC7B,MAAMwU,UAAmB5U,EAAWK,YAIhC,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,cAAe,CACpCjG,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,QAAAN,CAAS6T,EAAahc,GAClB,OAAOrF,KAAKkN,QAAQnJ,IAAI,eAAesd,IAAe,IAC/Chc,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAiK,CAAOsJ,EAAana,EAAM7B,GACtB,OAAOrF,KAAKkN,QAAQC,KAAK,eAAekU,IAAe,CACnDna,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,IAAA6H,CAAKjI,EAAQ,CAAC,EAAGrI,GACb,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAK,CAAC,EAAGjI,GAElB1N,KAAKkN,QAAQ0I,WAAW,cAAeuL,EAAgB,CAC1DzT,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,GAAAF,CAAIyT,EAAahc,GACb,OAAOrF,KAAKkN,QAAQW,OAAO,eAAewT,IAAe,IAClDhc,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,EAEJnO,EAAQyhB,WAAaA,EACrB,MAAMD,UAAuBvU,EAAa0B,YAE1C3O,EAAQwhB,eAAiBA,EACzBC,EAAWD,eAAiBA,C,oCC3D5B,IAAIhW,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ4a,aAAU,EAClB,MAAM/N,EAAa,EAAQ,MACrB8U,EAAWrV,EAAa,EAAQ,OAChCsV,EAAU,EAAQ,MACxB,MAAMhH,UAAgB/N,EAAWK,YAC7B,WAAAlG,GACImG,SAASC,WACT/M,KAAKwhB,MAAQ,IAAIF,EAASG,MAAMzhB,KAAKkN,QACzC,CAsBA,MAAA9B,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,WAAY,CAAEjG,UAAS7B,GACpD,CAIA,MAAA6R,CAAOwK,EAAUrc,GACb,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYuU,WAAmBrc,EAC5D,CAgBA,QAAAsc,CAASD,EAAUxa,EAAM7B,GACrB,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYuU,aAAqB,CAAExa,UAAS7B,GACzE,EAEJ1F,EAAQ4a,QAAUA,EAClBA,EAAQkH,MAAQF,EAAQE,K,oCCnFxB,IAAItW,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQuhB,gCAAkCvhB,EAAQge,oBAAsBhe,EAAQoV,iBAAc,EAC9F,MAAMvI,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBgU,EAActU,EAAa,EAAQ,OACnCuU,EAAa,EAAQ,MACrB5T,EAAe,EAAQ,MAC7B,MAAMmI,UAAoBvI,EAAWK,YACjC,WAAAlG,GACImG,SAASC,WACT/M,KAAKsP,SAAW,IAAIiR,EAAYI,SAAS3gB,KAAKkN,QAClD,CACA,MAAA9B,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,oBAAqB,CAAEjG,UAAS7B,EAAS+H,OAAQlG,EAAKkG,SAAU,GAC7F,CAKA,QAAAI,CAASoU,EAAcvc,GACnB,OAAOrF,KAAKkN,QAAQnJ,IAAI,qBAAqB6d,IAAgBvc,EACjE,CAMA,MAAA0S,CAAO6J,EAAc1a,EAAM7B,GACvB,OAAOrF,KAAKkN,QAAQC,KAAK,qBAAqByU,IAAgB,CAAE1a,UAAS7B,GAC7E,CACA,IAAAsQ,CAAKjI,EAAQ,CAAC,EAAGrI,GACb,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAK,CAAC,EAAGjI,GAElB1N,KAAKkN,QAAQ0I,WAAW,oBAAqB+H,EAAqB,CAAEjQ,WAAUrI,GACzF,CAKA,GAAAuI,CAAIgU,EAAcvc,GACd,OAAOrF,KAAKkN,QAAQW,OAAO,qBAAqB+T,IAAgBvc,EACpE,EAEJ1F,EAAQoV,YAAcA,EACtB,MAAM4I,UAA4B/Q,EAAa0B,YAE/C3O,EAAQge,oBAAsBA,EAC9B,MAAMuD,UAAwCtU,EAAa0B,YAE3D3O,EAAQuhB,gCAAkCA,EAC1CnM,EAAY4I,oBAAsBA,EAClC5I,EAAY4L,SAAWH,EAAWG,Q,oCC3ElC,IAAIxV,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ8hB,WAAQ,EAChB,MAAMjV,EAAa,EAAQ,MACrBgJ,EAAOvJ,EAAa,EAAQ,OAClC,MAAMwV,UAAcjV,EAAWK,YAc3B,MAAAzB,CAAOsW,EAAUxa,EAAM7B,GACnB,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYuU,UAAkBlM,EAAKC,4BAA4B,CAAEvO,UAAS7B,IACvG,EAEJ1F,EAAQ8hB,MAAQA,C,4BC9ChBvhB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ6f,SAAW7f,EAAQ4H,eAAiB5H,EAAQ2H,aAAe3H,EAAQyH,gBAAkBzH,EAAQoH,2BAA6BpH,EAAQmH,eAAiBnH,EAAQkH,KAAOlH,EAAQiH,KAAOjH,EAAQ+G,SAAW/G,EAAQ0G,QAAU1G,EAAQyG,SAAWzG,EAAQwG,QAAUxG,EAAQuG,MAAQvG,EAAQ8G,KAAO9G,EAAQ4f,UAAO,EACjT5f,EAAQ4f,MAAO,EACf5f,EAAQ8G,UAAOgF,EACf9L,EAAQuG,WAAQuF,EAChB9L,EAAQwG,aAAUsF,EAClB9L,EAAQyG,cAAWqF,EACnB9L,EAAQ0G,aAAUoF,EAClB9L,EAAQ+G,cAAW+E,EACnB9L,EAAQiH,UAAO6E,EACf9L,EAAQkH,UAAO4E,EACf9L,EAAQmH,oBAAiB2E,EACzB9L,EAAQoH,gCAA6B0E,EACrC9L,EAAQyH,qBAAkBqE,EAC1B9L,EAAQ2H,kBAAemE,EACvB9L,EAAQ4H,oBAAiBkE,EAuBzB9L,EAAQ6f,SAtBR,SAAkBF,EAAOja,EAAU,CAAEka,MAAM,IACvC,GAAI5f,EAAQ4f,KACR,MAAM,IAAIhZ,MAAM,mCAAmC+Y,EAAM7Y,sDAE7D,GAAI9G,EAAQ8G,KACR,MAAM,IAAIF,MAAM,gCAAgC+Y,EAAM7Y,wCAAwC9G,EAAQ8G,WAE1G9G,EAAQ4f,KAAOla,EAAQka,KACvB5f,EAAQ8G,KAAO6Y,EAAM7Y,KACrB9G,EAAQuG,MAAQoZ,EAAMpZ,MACtBvG,EAAQwG,QAAUmZ,EAAMnZ,QACxBxG,EAAQyG,SAAWkZ,EAAMlZ,SACzBzG,EAAQ0G,QAAUiZ,EAAMjZ,QACxB1G,EAAQ+G,SAAW4Y,EAAM5Y,SACzB/G,EAAQiH,KAAO0Y,EAAM1Y,KACrBjH,EAAQkH,KAAOyY,EAAMzY,KACrBlH,EAAQmH,eAAiBwY,EAAMxY,eAC/BnH,EAAQoH,2BAA6BuY,EAAMvY,2BAC3CpH,EAAQyH,gBAAkBkY,EAAMlY,gBAChCzH,EAAQ2H,aAAegY,EAAMhY,aAC7B3H,EAAQ4H,eAAiB+X,EAAM/X,cACnC,C,8BCpCArH,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQkiB,qBAAuBliB,EAAQmiB,iBAAc,EACrD,MAAMtV,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBgJ,EAAS,EAAQ,MACjBwM,EAAS,EAAQ,MACjBnH,EAAU,EAAQ,MACxB1a,OAAOC,eAAeR,EAAS,uBAAwB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO6W,EAAQiH,oBAAsB,IACnI,MAAMC,UAAoBtV,EAAWK,YAIjC,MAAAzB,CAAO4W,EAAe9a,EAAM7B,GACxB,OAAOrF,KAAKkN,QAAQC,KAAK,kBAAkB6U,iBAA8B,CACrE9a,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,QAAAN,CAASwU,EAAe3B,EAAShb,GAC7B,OAAOrF,KAAKkN,QAAQnJ,IAAI,kBAAkBie,kBAA8B3B,IAAW,IAC5Ehb,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAKA,MAAAoJ,CAAO8K,EAAe3B,EAAShb,GAC3B,OAAOrF,KAAKkN,QAAQC,KAAK,kBAAkB6U,kBAA8B3B,WAAkB,IACpFhb,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,mBAAMkK,CAAcgK,EAAe9a,EAAM7B,GACrC,MAAM4c,QAAcjiB,KAAKoL,OAAO4W,EAAe9a,GAC/C,aAAalH,KAAKkY,KAAK8J,EAAeC,EAAM9O,GAAI9N,EACpD,CACA,SAAA6c,CAAUF,EAAe3B,EAAS3S,EAAQ,CAAC,EAAGrI,GAC1C,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAKkiB,UAAUF,EAAe3B,EAAS,CAAC,EAAG3S,GAE/C1N,KAAKkN,QAAQ0I,WAAW,kBAAkBoM,kBAA8B3B,UAAiBzF,EAAQiH,qBAAsB,CAAEnU,WAAUrI,EAASyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAC9M,CAOA,UAAMoK,CAAK8J,EAAe3B,EAAShb,GAC/B,MAAMyI,EAAU,IAAKzI,GAASyI,QAAS,0BAA2B,QAIlE,IAHIzI,GAASoT,iBACT3K,EAAQ,oCAAsCzI,EAAQoT,eAAeC,cAE5D,CACT,MAAQC,KAAMsJ,EAAK,SAAE/T,SAAmBlO,KAAKwN,SAASwU,EAAe3B,EAAS,IACvEhb,EACHyI,YACD8K,eACH,OAAQqJ,EAAM1L,QACV,IAAK,cACD,IAAIsC,EAAgB,IACpB,GAAIxT,GAASoT,eACTI,EAAgBxT,EAAQoT,mBAEvB,CACD,MAAMK,EAAiB5K,EAASJ,QAAQ/J,IAAI,wBAC5C,GAAI+U,EAAgB,CAChB,MAAMC,EAAmBC,SAASF,GAC7BG,MAAMF,KACPF,EAAgBE,EAExB,CACJ,OACM,EAAIxD,EAAOiB,OAAOqC,GACxB,MACJ,IAAK,SACL,IAAK,YACL,IAAK,YACD,OAAOoJ,EAEnB,CACJ,CAMA,mBAAME,CAAcH,GAAe,MAAE5F,EAAK,QAAEgG,EAAU,IAAM/c,GACxD,GAAa,MAAT+W,GAAiC,GAAhBA,EAAM5X,OACvB,MAAM,IAAI+B,MAAM,8GAEpB,MAAM8b,EAAwBhd,GAASid,gBAAkB,EAEnDC,EAAmBC,KAAKC,IAAIJ,EAAuBjG,EAAM5X,QACzDyM,EAASjR,KAAKkN,QACdwV,EAAetG,EAAM9X,SACrBqe,EAAa,IAAIP,GAUjBQ,EAAUxhB,MAAMmhB,GAAkBM,KAAKH,GAAc1Q,KAP3DhL,eAA4B8b,GACxB,IAAK,IAAIC,KAAQD,EAAU,CACvB,MAAME,QAAgB/R,EAAOmL,MAAMhR,OAAO,CAAEkL,KAAMyM,EAAME,QAAS,cAAgB5d,GACjFsd,EAAWrhB,KAAK0hB,EAAQ7P,GAC5B,CACJ,IAKA,aADM,EAAI4O,EAAOmB,qBAAqBN,SACzB5iB,KAAKgY,cAAcgK,EAAe,CAC3CmB,SAAUR,GAElB,EAEJhjB,EAAQmiB,YAAcA,C,4BC5HtB5hB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQujB,yBAAsB,EAsB9BvjB,EAAQujB,oBAlBoBlc,MAAOoc,IAC/B,MAAMC,QAAgBta,QAAQua,WAAWF,GACnCG,EAAWF,EAAQ7f,QAAQ2I,GAA6B,aAAlBA,EAAOoK,SACnD,GAAIgN,EAAS/e,OAAQ,CACjB,IAAK,MAAM2H,KAAUoX,EACjBC,QAAQld,MAAM6F,EAAOsX,QAEzB,MAAM,IAAIld,MAAM,GAAGgd,EAAS/e,kDAChC,CAEA,MAAMF,EAAS,GACf,IAAK,MAAM6H,KAAUkX,EACK,cAAlBlX,EAAOoK,QACPjS,EAAOhD,KAAK6K,EAAO/L,OAG3B,OAAOkE,CAAM,C,8BCrBjBpE,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ+jB,mBAAqB/jB,EAAQgkB,sBAAwBhkB,EAAQikB,oBAAsBjkB,EAAQ4R,oBAAsB5R,EAAQkkB,yBAA2BlkB,EAAQkT,mBAAqBlT,EAAQmkB,kBAAoBnkB,EAAQokB,6BAA+BpkB,EAAQqkB,wBAA0BrkB,EAAQskB,iCAA8B,EACpU,MAAMtb,EAAU,EAAQ,MA+BxB,SAASob,EAA6BG,GAClC,MAAuC,mCAAhCA,GAA0B,MACrC,CAqBA,SAASrR,EAAmBD,GACxB,MAA4B,wBAArBA,GAAe,MAC1B,CAuBA,SAASrB,EAAoBjB,EAAYY,GACrC,MAAMzB,EAAUa,EAAWb,QAAQuC,KAAKmS,IACpC,GAA6B,WAAzBA,EAAOC,cACP,MAAM,IAAIzb,EAAQ0b,wBAEtB,GAA6B,mBAAzBF,EAAOC,cACP,MAAM,IAAIzb,EAAQ2b,+BAEtB,MAAO,IACAH,EACH3d,QAAS,IACF2d,EAAO3d,WACN2d,EAAO3d,QAAQyJ,WACf,CACIA,WAAYkU,EAAO3d,QAAQyJ,YAAY+B,KAAKuS,GAyBpE,SAAuBrT,EAAQqT,GAC3B,MAAMC,EAAYtT,EAAOyB,OAAO8R,MAAMD,GAAcA,EAAUpU,UAAUtF,OAASyZ,EAASnU,SAAStF,OACnG,MAAO,IACAyZ,EACHnU,SAAU,IACHmU,EAASnU,SACZsU,iBAAkB7R,EAAmB2R,GAAaA,EAAUzR,UAAUwR,EAASnU,SAASrD,WAClFyX,GAAWpU,SAAS4C,OAASZ,KAAKpE,MAAMuW,EAASnU,SAASrD,WACtD,MAGtB,CApCiF4X,CAAczT,EAAQqT,WAAc9Y,QAE/FA,EACN4G,OAAQ8R,EAAO3d,QAAQoJ,UAAYuU,EAAO3d,QAAQ8M,QAC9CsR,EAAoB1T,EAAQiT,EAAO3d,QAAQoJ,SACzC,MAEb,IAEL,MAAO,IAAKU,EAAYb,UAC5B,CAEA,SAASmV,EAAoB1T,EAAQtB,GACjC,MAAqC,gBAAjCsB,EAAOgT,iBAAiB/T,KACjB,KAE0B,gBAAjCe,EAAOgT,iBAAiB/T,KACpB,cAAee,EAAOgT,gBACEhT,EAAOgT,gBACRnR,UAAUnD,GAE9BwC,KAAKpE,MAAM4B,GAEf,IACX,CAqBA,SAAS+T,EAAsBzS,GAC3B,QAAI6S,EAA6B7S,EAAOgT,mBAGhChT,EAAOyB,OAAO9B,MAAMoC,GAAMJ,EAAmBI,IAAkB,aAAXA,EAAE9C,OAA6C,IAAtB8C,EAAE7C,SAAS4C,WAAqB,EACzH,CAhIArT,EAAQskB,4BAdR,SAAqCC,EAAiBW,GAClD,MAAMlhB,EAAM,IAAKugB,GAWjB,OAVAhkB,OAAO4kB,iBAAiBnhB,EAAK,CACzBohB,OAAQ,CACJ3kB,MAAO,iCACP2L,YAAY,GAEhBgH,UAAW,CACP3S,MAAOykB,EACP9Y,YAAY,KAGbpI,CACX,EAgBAhE,EAAQqkB,wBAdR,SAAiCE,EAAiBW,GAC9C,MAAMlhB,EAAM,IAAKugB,GAWjB,OAVAhkB,OAAO4kB,iBAAiBnhB,EAAK,CACzBohB,OAAQ,CACJ3kB,MAAO,iCACP2L,YAAY,GAEhBgH,UAAW,CACP3S,MAAOykB,EACP9Y,YAAY,KAGbpI,CACX,EAKAhE,EAAQokB,6BAA+BA,EAmBvCpkB,EAAQmkB,kBAlBR,SAA2BlR,GAAM,OAAEiS,EAAM,SAAEG,IACvC,MAAMrhB,EAAM,IAAKiP,GAejB,OAdA1S,OAAO4kB,iBAAiBnhB,EAAK,CACzBohB,OAAQ,CACJ3kB,MAAO,sBACP2L,YAAY,GAEhBgH,UAAW,CACP3S,MAAOykB,EACP9Y,YAAY,GAEhB+G,UAAW,CACP1S,MAAO4kB,EACPjZ,YAAY,KAGbpI,CACX,EAKAhE,EAAQkT,mBAAqBA,EAqB7BlT,EAAQkkB,yBApBR,SAAkCvT,EAAYY,GAC1C,OAAKA,GAAWyS,EAAsBzS,GAiB/BK,EAAoBjB,EAAYY,GAhB5B,IACAZ,EACHb,QAASa,EAAWb,QAAQuC,KAAKmS,IAAW,IACrCA,EACH3d,QAAS,IACF2d,EAAO3d,QACV6L,OAAQ,QACJ8R,EAAO3d,QAAQyJ,WACf,CACIA,WAAYkU,EAAO3d,QAAQyJ,iBAE7BxE,OAM1B,EA2BA9L,EAAQ4R,oBAAsBA,EAiC9B5R,EAAQikB,oBAPR,SAA6B1S,EAAQqT,GACjC,IAAKrT,EACD,OAAO,EAEX,MAAMsT,EAAYtT,EAAOyB,OAAO8R,MAAMD,GAAcA,EAAUpU,UAAUtF,OAASyZ,EAASnU,SAAStF,OACnG,OAAO+H,EAAmB2R,IAAcA,GAAWpU,SAAS4C,SAAU,CAC1E,EAQArT,EAAQgkB,sBAAwBA,EAWhChkB,EAAQ+jB,mBAVR,SAA4B/Q,GACxB,IAAK,MAAMC,KAAQD,GAAS,GAAI,CAC5B,GAAkB,aAAdC,EAAKzC,KACL,MAAM,IAAIxH,EAAQqC,YAAY,2EAA2E4H,EAAKzC,UAElH,IAA6B,IAAzByC,EAAKxC,SAAS4C,OACd,MAAM,IAAIrK,EAAQqC,YAAY,SAAS4H,EAAKxC,SAAStF,iGAE7D,CACJ,C,oCC3JA,IAAIK,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQkd,gBAAa,EACrB,MAAMrQ,EAAa,EAAQ,MACrByY,EAAUhZ,EAAa,EAAQ,OAC/BiZ,EAAS,EAAQ,MACvB,MAAMrI,UAAmBrQ,EAAWK,YAChC,WAAAlG,GACImG,SAASC,WACT/M,KAAKmlB,KAAO,IAAIF,EAAQrO,KAAK5W,KAAKkN,QACtC,EAEJvN,EAAQkd,WAAaA,EACrBA,EAAWjG,KAAOsO,EAAOtO,KACzBiG,EAAWlG,mBAAqBuO,EAAOvO,mBACvCkG,EAAWnG,wBAA0BwO,EAAOxO,uB,4BCtC5CxW,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQylB,cAAgBzlB,EAAQ0lB,YAAc1lB,EAAQ2lB,kBAAe,EAgCrE,MAAMD,UAAoB9e,OAE1B5G,EAAQ0lB,YAAcA,EACtB,MAAMD,UAAsB7e,OAE5B5G,EAAQylB,cAAgBA,EA6MxBzlB,EAAQ2lB,aADcC,GAnMtB,SAAmBC,EAAYC,EAhCnBC,KAiCR,GAA0B,iBAAfF,EACP,MAAM,IAAIlgB,UAAU,6BAA6BkgB,GAErD,IAAKA,EAAWG,OACZ,MAAM,IAAIpf,MAAM,GAAGif,cAEvB,MAEe,EAACA,EAAYI,KAC5B,MAAMphB,EAASghB,EAAWhhB,OAC1B,IAAI4F,EAAQ,EACZ,MAAMyb,EAAmBC,IACrB,MAAM,IAAIT,EAAY,GAAGS,iBAAmB1b,IAAQ,EAElD2b,EAAuBD,IACzB,MAAM,IAAIV,EAAc,GAAGU,iBAAmB1b,IAAQ,EAEpD4b,EAAW,KACbC,IACI7b,GAAS5F,GACTqhB,EAAgB,2BACM,MAAtBL,EAAWpb,GACJ8b,IACe,MAAtBV,EAAWpb,GACJ+b,IACe,MAAtBX,EAAWpb,GACJgc,IACoC,SAA3CZ,EAAWa,UAAUjc,EAAOA,EAAQ,IArEnC,GAsEawb,GAASphB,EAAS4F,EAAQ,GAAK,OAAOkc,WAAWd,EAAWa,UAAUjc,KACpFA,GAAS,EACF,MAEoC,SAA3Cob,EAAWa,UAAUjc,EAAOA,EAAQ,IAzEnC,GA0Eawb,GAASphB,EAAS4F,EAAQ,GAAK,OAAOkc,WAAWd,EAAWa,UAAUjc,KACpFA,GAAS,GACF,GAEoC,UAA3Cob,EAAWa,UAAUjc,EAAOA,EAAQ,IA9EnC,GA+Eawb,GAASphB,EAAS4F,EAAQ,GAAK,QAAQkc,WAAWd,EAAWa,UAAUjc,KACrFA,GAAS,GACF,GAEoC,aAA3Cob,EAAWa,UAAUjc,EAAOA,EAAQ,IAjF/B,IAkFawb,GAASphB,EAAS4F,EAAQ,GAAK,WAAWkc,WAAWd,EAAWa,UAAUjc,KAC5FA,GAAS,EACFmc,KAEoC,cAA3Cf,EAAWa,UAAUjc,EAAOA,EAAQ,IArFzB,IAsFawb,GACpB,EAAIphB,EAAS4F,GACb5F,EAAS4F,EAAQ,GACjB,YAAYkc,WAAWd,EAAWa,UAAUjc,KAChDA,GAAS,GACF,KAEoC,QAA3Cob,EAAWa,UAAUjc,EAAOA,EAAQ,IA/FpC,GAgGawb,GAASphB,EAAS4F,EAAQ,GAAK,MAAMkc,WAAWd,EAAWa,UAAUjc,KAClFA,GAAS,EACFoc,KAEJC,KAELP,EAAW,KACb,MAAM9P,EAAQhM,EACd,IAAIsc,GAAS,EAEb,IADAtc,IACOA,EAAQ5F,IAAiC,MAAtBghB,EAAWpb,IAAmBsc,GAAoC,OAA1BlB,EAAWpb,EAAQ,KACjFsc,EAA+B,OAAtBlB,EAAWpb,KAAmBsc,EACvCtc,IAEJ,GAAgC,KAA5Bob,EAAWmB,OAAOvc,GAClB,IACI,OAAOgI,KAAKpE,MAAMwX,EAAWa,UAAUjQ,IAAShM,EAAQwc,OAAOF,IACnE,CACA,MAAOG,GACHd,EAAoBjlB,OAAO+lB,GAC/B,MAEC,GA5HD,EA4HiBjB,EACjB,IACI,OAAOxT,KAAKpE,MAAMwX,EAAWa,UAAUjQ,EAAOhM,EAAQwc,OAAOF,IAAW,IAC5E,CACA,MAAOG,GAEH,OAAOzU,KAAKpE,MAAMwX,EAAWa,UAAUjQ,EAAOoP,EAAWsB,YAAY,OAAS,IAClF,CAEJjB,EAAgB,8BAA8B,EAE5CM,EAAW,KACb/b,IACA6b,IACA,MAAMtiB,EAAM,CAAC,EACb,IACI,KAA6B,MAAtB6hB,EAAWpb,IAAgB,CAE9B,GADA6b,IACI7b,GAAS5F,GA3IjB,EA2IuCohB,EAC/B,OAAOjiB,EACX,MAAM1C,EAAMilB,IACZD,IACA7b,IACA,IACI,MAAMhK,EAAQ4lB,IACd9lB,OAAOC,eAAewD,EAAK1C,EAAK,CAAEb,QAAOyL,UAAU,EAAME,YAAY,EAAMD,cAAc,GAC7F,CACA,MAAO+a,GACH,GArJR,EAqJwBjB,EACZ,OAAOjiB,EAEP,MAAMkjB,CACd,CACAZ,IAC0B,MAAtBT,EAAWpb,IACXA,GACR,CACJ,CACA,MAAOyc,GACH,GAhKA,EAgKgBjB,EACZ,OAAOjiB,EAEPkiB,EAAgB,gCACxB,CAEA,OADAzb,IACOzG,CAAG,EAERyiB,EAAW,KACbhc,IACA,MAAM5I,EAAM,GACZ,IACI,KAA6B,MAAtBgkB,EAAWpb,IACd5I,EAAIF,KAAK0kB,KACTC,IAC0B,MAAtBT,EAAWpb,IACXA,GAGZ,CACA,MAAOyc,GACH,GAtLA,EAsLgBjB,EACZ,OAAOpkB,EAEXqkB,EAAgB,+BACpB,CAEA,OADAzb,IACO5I,CAAG,EAERilB,EAAW,KACb,GAAc,IAAVrc,EAAa,CACM,MAAfob,GAjMJ,EAiMsCI,GAClCC,EAAgB,wBACpB,IACI,OAAOzT,KAAKpE,MAAMwX,EACtB,CACA,MAAOqB,GACH,GAvMJ,EAuMoBjB,EACZ,IACI,MAAI,MAAQJ,EAAWA,EAAWhhB,OAAS,GAChC4N,KAAKpE,MAAMwX,EAAWa,UAAU,EAAGb,EAAWsB,YAAY,OAC9D1U,KAAKpE,MAAMwX,EAAWa,UAAU,EAAGb,EAAWsB,YAAY,MACrE,CACA,MAAOD,GAAK,CAEhBd,EAAoBjlB,OAAO+lB,GAC/B,CACJ,CACA,MAAMzQ,EAAQhM,EAGd,IAF0B,MAAtBob,EAAWpb,IACXA,IACGob,EAAWpb,KAAW,MAAM6U,SAASuG,EAAWpb,KACnDA,IACAA,GAAS5F,GAvNT,EAuNiCohB,GACjCC,EAAgB,+BACpB,IACI,OAAOzT,KAAKpE,MAAMwX,EAAWa,UAAUjQ,EAAOhM,GAClD,CACA,MAAOyc,GACwC,MAAvCrB,EAAWa,UAAUjQ,EAAOhM,IA7NhC,EA6N8Dwb,GAC1DC,EAAgB,wBACpB,IACI,OAAOzT,KAAKpE,MAAMwX,EAAWa,UAAUjQ,EAAOoP,EAAWsB,YAAY,MACzE,CACA,MAAOD,GACHd,EAAoBjlB,OAAO+lB,GAC/B,CACJ,GAEEZ,EAAY,KACd,KAAO7b,EAAQ5F,GAAU,UAAUya,SAASuG,EAAWpb,KACnDA,GACJ,EAEJ,OAAO4b,GAAU,EAzLVe,CAAWvB,EAAWG,OAAQF,EACzC,CA2LgCuB,CAAUzB,EAAO0B,I,oCCjPjD,IAAI9b,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ6U,oBAAiB,EACzB,MAAMhI,EAAa,EAAQ,MACrBgJ,EAAOvJ,EAAa,EAAQ,OAClC,MAAMuI,UAAuBhI,EAAWK,YACpC,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,wBAAyBqI,EAAKC,4BAA4B,CAAEvO,UAAS7B,EAAS2Z,WAAY,CAAED,MAAO7X,EAAK6X,SACrI,EAEJpf,EAAQ6U,eAAiBA,C,oCChCzB,IAAIrJ,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQunB,cAAW,EACnB,MAAM1a,EAAa,EAAQ,MACrB2a,EAAclb,EAAa,EAAQ,OACnCmb,EAAa,EAAQ,MAC3B,MAAMF,UAAiB1a,EAAWK,YAC9B,WAAAlG,GACImG,SAASC,WACT/M,KAAKqnB,SAAW,IAAIF,EAAYG,SAAStnB,KAAKkN,QAClD,EAEJvN,EAAQunB,SAAWA,EACnBA,EAASI,SAAWF,EAAWE,Q,8BCnC/BpnB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ4nB,yBAA2B5nB,EAAQkiB,qBAAuBliB,EAAQ2V,WAAQ,EAClF,MAAM9I,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBK,EAAe,EAAQ,MAC7B,MAAM0I,UAAc9I,EAAWK,YAM3B,MAAAzB,CAAO4W,EAAe9a,EAAM7B,GACxB,OAAOrF,KAAKkN,QAAQC,KAAK,kBAAkB6U,UAAuB,CAC9D9a,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,QAAAN,CAASwU,EAAetM,EAAQrQ,GAC5B,OAAOrF,KAAKkN,QAAQnJ,IAAI,kBAAkBie,WAAuBtM,IAAU,IACpErQ,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAiK,CAAOiK,EAAetM,EAAQxO,EAAM7B,GAChC,OAAOrF,KAAKkN,QAAQC,KAAK,kBAAkB6U,WAAuBtM,IAAU,CACxExO,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,IAAA6H,CAAKqM,EAAetU,EAAQ,CAAC,EAAGrI,GAC5B,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKqM,EAAe,CAAC,EAAGtU,GAEjC1N,KAAKkN,QAAQ0I,WAAW,kBAAkBoM,UAAuBH,EAAsB,CAC1FnU,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAOA,GAAAF,CAAIoU,EAAetM,EAAQrQ,GACvB,OAAOrF,KAAKkN,QAAQW,OAAO,kBAAkBmU,WAAuBtM,IAAU,IACvErQ,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,mBAAMkK,CAAcgK,EAAe9a,EAAM7B,GACrC,MAAMiR,QAAatW,KAAKoL,OAAO4W,EAAe9a,EAAM7B,GACpD,aAAarF,KAAKkY,KAAK8J,EAAe1L,EAAKnD,GAAI9N,EACnD,CAOA,UAAM6S,CAAK8J,EAAetM,EAAQrQ,GAC9B,MAAMyI,EAAU,IAAKzI,GAASyI,QAAS,0BAA2B,QAIlE,IAHIzI,GAASoT,iBACT3K,EAAQ,oCAAsCzI,EAAQoT,eAAeC,cAE5D,CACT,MAAM8O,QAAqBxnB,KAAKwN,SAASwU,EAAetM,EAAQ,IACzDrQ,EACHyI,YACD8K,eACGtC,EAAOkR,EAAa7O,KAC1B,OAAQrC,EAAKC,QACT,IAAK,cACD,IAAIsC,EAAgB,IACpB,GAAIxT,GAASoT,eACTI,EAAgBxT,EAAQoT,mBAEvB,CACD,MAAMK,EAAiB0O,EAAatZ,SAASJ,QAAQ/J,IAAI,wBACzD,GAAI+U,EAAgB,CAChB,MAAMC,EAAmBC,SAASF,GAC7BG,MAAMF,KACPF,EAAgBE,EAExB,CACJ,OACM,EAAIxM,EAAOiK,OAAOqC,GACxB,MACJ,IAAK,SACL,IAAK,YACD,OAAOvC,EAEnB,CACJ,CAOA,YAAMmR,CAAOzF,EAAe1L,EAAMjR,GAC9B,MAAMqiB,QAAiB1nB,KAAKkN,QAAQkP,MAAMhR,OAAO,CAAEkL,KAAMA,EAAM2M,QAAS,cAAgB5d,GACxF,OAAOrF,KAAKoL,OAAO4W,EAAe,CAAE2F,QAASD,EAASvU,IAAM9N,EAChE,CAIA,mBAAM8c,CAAcH,EAAe1L,EAAMjR,GACrC,MAAMqiB,QAAiB1nB,KAAKynB,OAAOzF,EAAe1L,EAAMjR,GACxD,aAAarF,KAAKkY,KAAK8J,EAAe0F,EAASvU,GAAI9N,EACvD,CAIA,OAAAuK,CAAQoS,EAAetM,EAAQrQ,GAC3B,OAAOrF,KAAKkN,QAAQ0I,WAAW,kBAAkBoM,WAAuBtM,YAAkB6R,EAA0B,IAAKliB,EAASyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAC7L,EAEJnO,EAAQ2V,MAAQA,EAChB,MAAMuM,UAA6BjV,EAAa0B,YAEhD3O,EAAQkiB,qBAAuBA,EAI/B,MAAM0F,UAAiC3a,EAAa8S,MAEpD/f,EAAQ4nB,yBAA2BA,EACnCjS,EAAMuM,qBAAuBA,EAC7BvM,EAAMiS,yBAA2BA,C,8BC7IjCrnB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ2nB,cAAW,EACnB,MAAM9a,EAAa,EAAQ,MAC3B,MAAM8a,UAAiB9a,EAAWK,YAU9B,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,qBAAsB,CAC3CjG,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,EAEJnO,EAAQ2nB,SAAWA,C,oCCrBnB,IAAInc,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGqc,EAAgB5nB,MAAQA,KAAK4nB,cAAiB,SAAStc,EAAG3L,GAC1D,IAAK,IAAIkoB,KAAKvc,EAAa,YAANuc,GAAoB3nB,OAAOO,UAAUC,eAAesC,KAAKrD,EAASkoB,IAAI1c,EAAgBxL,EAAS2L,EAAGuc,EAC3H,EACA3nB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQod,aAAepd,EAAQme,+BAAiCne,EAAQke,iBAAmBle,EAAQ4a,QAAU5a,EAAQ0M,UAAY1M,EAAQ8c,YAAc9c,EAAQgd,OAAShd,EAAQie,WAAaje,EAAQ2c,OAAS3c,EAAQkd,WAAald,EAAQ2V,MAAQ3V,EAAQ0V,gBAAkB1V,EAAQoU,WAAapU,EAAQoV,YAAcpV,EAAQqd,KAAOrd,EAAQud,QAAUvd,EAAQoe,YAAcpe,EAAQqU,WAAQ,EAC/X4T,EAAa,EAAQ,MAAoBjoB,GACzCioB,EAAa,EAAQ,MAAgBjoB,GACrC,IAAIqb,EAAU,EAAQ,MACtB9a,OAAOC,eAAeR,EAAS,QAAS,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOiX,EAAQhH,KAAO,IACrG,IAAIyG,EAAY,EAAQ,MACxBva,OAAOC,eAAeR,EAAS,cAAe,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO0W,EAAUsD,WAAa,IACnH7d,OAAOC,eAAeR,EAAS,UAAW,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO0W,EAAUyC,OAAS,IAC3G,IAAIjC,EAAS,EAAQ,MACrB/a,OAAOC,eAAeR,EAAS,OAAQ,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOkX,EAAO+B,IAAM,IAClG,IAAItC,EAAgB,EAAQ,MAC5Bxa,OAAOC,eAAeR,EAAS,cAAe,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO2W,EAAc3F,WAAa,IACvH,IAAI4F,EAAe,EAAQ,MAC3Bza,OAAOC,eAAeR,EAAS,aAAc,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4W,EAAa5G,UAAY,IACpH,IAAI6G,EAAU,EAAQ,MACtB1a,OAAOC,eAAeR,EAAS,kBAAmB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO6W,EAAQvF,eAAiB,IACzHnV,OAAOC,eAAeR,EAAS,QAAS,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO6W,EAAQtF,KAAO,IACrG,IAAI6F,EAAgB,EAAQ,MAC5Bjb,OAAOC,eAAeR,EAAS,aAAc,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOoX,EAAc0B,UAAY,IACrH,IAAIhC,EAAW,EAAQ,MACvB3a,OAAOC,eAAeR,EAAS,SAAU,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO8W,EAASyB,MAAQ,IACxG,IAAIxB,EAAW,EAAQ,MACvB5a,OAAOC,eAAeR,EAAS,aAAc,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO+W,EAAS8C,UAAY,IAChH1d,OAAOC,eAAeR,EAAS,SAAU,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO+W,EAAS6B,MAAQ,IACxG,IAAI5B,EAAgB,EAAQ,MAC5B7a,OAAOC,eAAeR,EAAS,cAAe,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOgX,EAAc0B,WAAa,IACvH,IAAIrB,EAAc,EAAQ,KAC1Blb,OAAOC,eAAeR,EAAS,YAAa,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOqX,EAAY/O,SAAW,IACjH,IAAIgP,EAAY,EAAQ,MACxBnb,OAAOC,eAAeR,EAAS,UAAW,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOsX,EAAUd,OAAS,IAC3G,IAAIe,EAAkB,EAAQ,MAC9Bpb,OAAOC,eAAeR,EAAS,mBAAoB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOuX,EAAgBuC,gBAAkB,IACnI3d,OAAOC,eAAeR,EAAS,iCAAkC,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOuX,EAAgBwC,8BAAgC,IAC/J5d,OAAOC,eAAeR,EAAS,eAAgB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOuX,EAAgByB,YAAc,G,8BChD3H7c,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQyX,6BAA+BzX,EAAQqX,iBAAc,EAC7D,MAAMxK,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBK,EAAe,EAAQ,MAC7B,MAAMoK,UAAoBxK,EAAWK,YACjC,IAAA8I,CAAKsB,EAAiBvJ,EAAQ,CAAC,EAAGrI,GAC9B,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKsB,EAAiB,CAAC,EAAGvJ,GAEnC1N,KAAKkN,QAAQ0I,WAAW,qBAAqBqB,gBAA+BG,EAA8B,CAAE1J,WAAUrI,GACjI,EAEJ1F,EAAQqX,YAAcA,EACtB,MAAMI,UAAqCxK,EAAa0B,YAExD3O,EAAQyX,6BAA+BA,EACvCJ,EAAYI,6BAA+BA,C,8BClB3ClX,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQmoB,WAAanoB,EAAQ8V,4BAA8B9V,EAAQooB,iCAAmCpoB,EAAQqoB,gBAAkBroB,EAAQua,OAASva,EAAQsoB,aAAetoB,EAAQuoB,WAAavoB,EAAQwoB,WAAaxoB,EAAQyoB,eAAiBzoB,EAAQ2H,kBAAe,EAClQ,MAAM+gB,EAAU,EAAQ,MACxB,IAAIC,EAAU,EAAQ,MAsCtBthB,eAAekT,EAAO9Z,EAAO0K,EAAMzF,GAI/B,GAFAjF,QAAcA,GAEV,EAAIT,EAAQwoB,YAAY/nB,GACxB,OAAOA,EAEX,IAAI,EAAIT,EAAQyoB,gBAAgBhoB,GAAQ,CACpC,MAAMmoB,QAAanoB,EAAMmoB,OACzBzd,IAASA,EAAO,IAAI0d,IAAIpoB,EAAMiH,KAAKohB,SAASC,MAAM,SAASC,OAAS,gBAIpE,MAAMhQ,GAAO,EAAIhZ,EAAQuoB,YAAYK,GAAQ,OAAQA,EAAKK,eAAkB,CAACL,GAC7E,OAAO,IAAIF,EAAQxhB,KAAK8R,EAAM7N,EAAMzF,EACxC,CACA,MAAMwjB,QAWV7hB,eAAwB5G,GACpB,IAAIohB,EAAQ,GACZ,GAAqB,iBAAVphB,GACP0oB,YAAYC,OAAO3oB,IACnBA,aAAiB0oB,YACjBtH,EAAMlgB,KAAKlB,QAEV,IAAI,EAAIT,EAAQuoB,YAAY9nB,GAC7BohB,EAAMlgB,WAAWlB,EAAMwoB,mBAEtB,KAAII,EAAwB5oB,GAO7B,MAAM,IAAImG,MAAM,gCAAgCnG,mBAAuBA,GAAOuG,aACxEmE,gBAId,SAAuB1K,GAEnB,MAAO,IADOF,OAAO+oB,oBAAoB7oB,GACxB4R,KAAK6V,GAAM,IAAIA,OAAMpjB,KAAK,QAC/C,CAP8BykB,CAAc9oB,MANpC,UAAW,MAAM+oB,KAAS/oB,EACtBohB,EAAMlgB,KAAK6nB,EAMnB,CACA,OAAO3H,CACX,CAhCuB4H,CAAShpB,GAE5B,GADA0K,IAASA,EAoCb,SAAiB1K,GACb,OAAQipB,EAAyBjpB,EAAM0K,OACnCue,EAAyBjpB,EAAMkpB,WAE/BD,EAAyBjpB,EAAMwe,OAAO8J,MAAM,SAASC,KAC7D,CAzCoBY,CAAQnpB,IAAU,iBAC7BiF,GAAS8K,KAAM,CAChB,MAAMA,EAAO0Y,EAAK,IAAI1Y,KACF,iBAATA,IACP9K,EAAU,IAAKA,EAAS8K,QAEhC,CACA,OAAO,IAAIkY,EAAQxhB,KAAKgiB,EAAM/d,EAAMzF,EACxC,CA9DAnF,OAAOC,eAAeR,EAAS,eAAgB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOukB,EAAQhhB,YAAc,IAKnH3H,EAAQyoB,eAJgBhoB,GAAmB,MAATA,GACb,iBAAVA,GACc,iBAAdA,EAAMiH,KACS,mBAAfjH,EAAMmoB,KAOjB5oB,EAAQwoB,WALY/nB,GAAmB,MAATA,GACT,iBAAVA,GACe,iBAAfA,EAAM0K,MACiB,iBAAvB1K,EAAMopB,eACb,EAAI7pB,EAAQuoB,YAAY9nB,GAa5BT,EAAQuoB,WAPY9nB,GAAmB,MAATA,GACT,iBAAVA,GACe,iBAAfA,EAAMqpB,MACS,iBAAfrpB,EAAM+P,MACS,mBAAf/P,EAAMspB,MACU,mBAAhBtpB,EAAMupB,OACgB,mBAAtBvpB,EAAMwoB,YAKjBjpB,EAAQsoB,aAHc7nB,IACX,EAAIT,EAAQwoB,YAAY/nB,KAAU,EAAIT,EAAQyoB,gBAAgBhoB,KAAU,EAAIioB,EAAQ9gB,gBAAgBnH,GAsC/GT,EAAQua,OAASA,EAiCjB,MAAMmP,EAA4B7V,GACb,iBAANA,EACAA,EACW,oBAAXoW,QAA0BpW,aAAaoW,OACvC9oB,OAAO0S,QADlB,EAIEwV,EAA2B5oB,GAAmB,MAATA,GAAkC,iBAAVA,GAA6D,mBAAhCA,EAAMypB,OAAOC,eAE7GnqB,EAAQqoB,gBADiB9gB,GAASA,GAAwB,iBAATA,GAAqBA,EAAKA,MAAqC,kBAA7BA,EAAK2iB,OAAOE,aAY/FpqB,EAAQooB,iCANiC/gB,MAAO5B,IAC5C,IAAK4kB,EAAmB5kB,EAAK8B,MACzB,OAAO9B,EACX,MAAM6B,QAAa,EAAItH,EAAQmoB,YAAY1iB,EAAK8B,MAChD,OAAO,EAAImhB,EAAQthB,4BAA4BE,EAAM7B,EAAK,EAO9DzF,EAAQ8V,4BAJ4BzO,MAAO5B,IACvC,MAAM6B,QAAa,EAAItH,EAAQmoB,YAAY1iB,EAAK8B,MAChD,OAAO,EAAImhB,EAAQthB,4BAA4BE,EAAM7B,EAAK,EAQ9DzF,EAAQmoB,WALW9gB,MAAOE,IACtB,MAAMD,EAAO,IAAIohB,EAAQ3hB,SAEzB,aADMqC,QAAQkhB,IAAI/pB,OAAOgqB,QAAQhjB,GAAQ,CAAC,GAAG8K,KAAI,EAAE/Q,EAAKb,KAAW+pB,EAAaljB,EAAMhG,EAAKb,MACpF6G,CAAI,EAGf,MAAM+iB,EAAsB5pB,IACxB,IAAI,EAAIT,EAAQsoB,cAAc7nB,GAC1B,OAAO,EACX,GAAIgB,MAAMC,QAAQjB,GACd,OAAOA,EAAMyQ,KAAKmZ,GACtB,GAAI5pB,GAA0B,iBAAVA,EAChB,IAAK,MAAMmL,KAAKnL,EACZ,GAAI4pB,EAAmB5pB,EAAMmL,IACzB,OAAO,EAGnB,OAAO,CAAK,EAEV4e,EAAenjB,MAAOC,EAAMhG,EAAKb,KACnC,QAAcqL,IAAVrL,EAAJ,CAEA,GAAa,MAATA,EACA,MAAM,IAAIkF,UAAU,sBAAsBrE,gEAG9C,GAAqB,iBAAVb,GAAuC,iBAAVA,GAAuC,kBAAVA,EACjE6G,EAAKmjB,OAAOnpB,EAAKH,OAAOV,SAEvB,IAAI,EAAIT,EAAQsoB,cAAc7nB,GAAQ,CACvC,MAAMkW,QAAa4D,EAAO9Z,GAC1B6G,EAAKmjB,OAAOnpB,EAAKqV,EACrB,MACK,GAAIlV,MAAMC,QAAQjB,SACb2I,QAAQkhB,IAAI7pB,EAAM4R,KAAKqY,GAAUF,EAAaljB,EAAMhG,EAAM,KAAMopB,UAErE,IAAqB,iBAAVjqB,EAIZ,MAAM,IAAIkF,UAAU,wGAAwGlF,mBAHtH2I,QAAQkhB,IAAI/pB,OAAOgqB,QAAQ9pB,GAAO4R,KAAI,EAAElH,EAAMwf,KAAUH,EAAaljB,EAAM,GAAGhG,KAAO6J,KAASwf,KAIxG,CApBU,CAoBV,C,oCCtKJ,IAAInf,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQme,+BAAiCne,EAAQke,iBAAmBle,EAAQod,kBAAe,EAC3F,MAAMvQ,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBge,EAAiBte,EAAa,EAAQ,OACtCue,EAAiB,EAAQ,MACzBC,EAAWxe,EAAa,EAAQ,OAChC2O,EAAU,EAAQ,MAClBhO,EAAe,EAAQ,MAC7B,MAAMmQ,UAAqBvQ,EAAWK,YAClC,WAAAlG,GACImG,SAASC,WACT/M,KAAKoc,MAAQ,IAAIqO,EAASnV,MAAMtV,KAAKkN,SACrClN,KAAK0qB,YAAc,IAAIH,EAAezI,YAAY9hB,KAAKkN,QAC3D,CAIA,MAAA9B,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,iBAAkB,CACvCjG,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,QAAAN,CAASwU,EAAe3c,GACpB,OAAOrF,KAAKkN,QAAQnJ,IAAI,kBAAkBie,IAAiB,IACpD3c,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAiK,CAAOiK,EAAe9a,EAAM7B,GACxB,OAAOrF,KAAKkN,QAAQC,KAAK,kBAAkB6U,IAAiB,CACxD9a,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,IAAA6H,CAAKjI,EAAQ,CAAC,EAAGrI,GACb,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAK,CAAC,EAAGjI,GAElB1N,KAAKkN,QAAQ0I,WAAW,iBAAkBiI,EAAkB,CAC/DnQ,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,GAAAF,CAAIoU,EAAe3c,GACf,OAAOrF,KAAKkN,QAAQW,OAAO,kBAAkBmU,IAAiB,IACvD3c,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAKA,MAAA6c,CAAO3I,EAAe9a,EAAM7B,GACxB,OAAOrF,KAAKkN,QAAQ0I,WAAW,kBAAkBoM,WAAwBlE,EAAgC,CACrG5W,OACA2X,OAAQ,UACLxZ,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,EAEJnO,EAAQod,aAAeA,EACvB,MAAMc,UAAyBjR,EAAa0B,YAE5C3O,EAAQke,iBAAmBA,EAI3B,MAAMC,UAAuClR,EAAa8S,MAE1D/f,EAAQme,+BAAiCA,EACzCf,EAAac,iBAAmBA,EAChCd,EAAae,+BAAiCA,EAC9Cf,EAAazH,MAAQsF,EAAQtF,MAC7ByH,EAAa8E,qBAAuBjH,EAAQiH,qBAC5C9E,EAAawK,yBAA2B3M,EAAQ2M,yBAChDxK,EAAa+E,YAAc0I,EAAe1I,W,4BCnH1C5hB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQwH,mBAAgB,EAIxB,MAAMA,EACF,WAAAR,CAAYO,GACRlH,KAAKkH,KAAOA,CAChB,CACA,IAAK2iB,OAAOE,eACR,MAAO,eACX,EAEJpqB,EAAQwH,cAAgBA,C,8BCbxBjH,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQirB,0BAAuB,EAC/B,MAAMC,EAAiC,EAAQ,MACzC5b,EAAwB,EAAQ,MACtC,MAAM2b,UAA6BC,EAA+B9b,6BAE9D,mBAAO+b,CAAa7Z,EAAQC,EAAQ7L,GAChC,MAAM0lB,EAAS,IAAIH,EACbxlB,EAAO,IACNC,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,iBAGjE,OADAid,EAAO5hB,MAAK,IAAM4hB,EAAOtZ,cAAcR,EAAQC,EAAQ9L,KAChD2lB,CACX,CACA,eAAOC,CAAS/Z,EAAQC,EAAQ7L,GAC5B,MAAM0lB,EAAS,IAAIH,EACbxlB,EAAO,IACNC,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,aAGjE,OADAid,EAAO5hB,MAAK,IAAM4hB,EAAOvY,UAAUvB,EAAQC,EAAQ9L,KAC5C2lB,CACX,CACA,WAAArb,CAAYlJ,EAASmJ,GAAO,GACxB7C,MAAM4C,YAAYlJ,EAASmJ,IACvB,EAAIV,EAAsBc,oBAAoBvJ,IAAYA,EAAQoJ,SAClE5P,KAAKwJ,MAAM,UAAWhD,EAAQoJ,QAEtC,EAEJjQ,EAAQirB,qBAAuBA,C,4BC/B/B1qB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQsrB,oBAAsBtrB,EAAQurB,gBAAkBvrB,EAAQ2S,iCAA8B,EAI9F3S,EAAQ2S,4BAHR,SAAqCH,GACjC,MAA2B,mBAAbA,EAAGnE,KACrB,EAiBArO,EAAQurB,gBATR,MACI,WAAAvkB,CAAY4e,GACRvlB,KAAKoQ,SAAWmV,EAAMnV,SACtBpQ,KAAKgO,MAAQuX,EAAMvX,MACnBhO,KAAKiS,WAAasT,EAAMtT,WACxBjS,KAAKkS,YAAcqT,EAAMrT,YACzBlS,KAAK8K,KAAOya,EAAMza,IACtB,GAaJnL,EAAQsrB,oBANR,MACI,WAAAtkB,CAAY4e,GACRvlB,KAAKmQ,KAAO,WACZnQ,KAAKoQ,SAAWmV,CACpB,E,8BC7BJrlB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ8c,iBAAc,EACtB,MAAMjQ,EAAa,EAAQ,MAC3B,MAAMiQ,UAAoBjQ,EAAWK,YAKjC,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,eAAgB,CAAEjG,UAAS7B,GACxD,EAEJ1F,EAAQ8c,YAAcA,C,8BCZtBvc,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQiV,YAAS,EACjB,MAAMpI,EAAa,EAAQ,MAC3B,MAAMoI,UAAepI,EAAWK,YAI5B,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,gBAAiB,CACtCjG,UACG7B,EACHyI,QAAS,CAAEC,OAAQ,8BAA+B1I,GAASyI,SAC3D+H,kBAAkB,GAE1B,EAEJlW,EAAQiV,OAASA,C,oCCjBjB,IAWIuW,EAAiCC,EAA8BC,EAAyCC,EAAqDC,EAAoCC,EAA2CC,EAAgCC,EAA6CC,EAA6CC,EAAkCC,EAAsDC,EAX9bzjB,EAA0BrI,MAAQA,KAAKqI,wBAA2B,SAAUC,EAAUC,EAAOnI,EAAOqG,EAAM+B,GAC1G,GAAa,MAAT/B,EAAc,MAAM,IAAInB,UAAU,kCACtC,GAAa,MAATmB,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,2EACvG,MAAiB,MAATmB,EAAe+B,EAAExF,KAAKsF,EAAUlI,GAASoI,EAAIA,EAAEpI,MAAQA,EAAQmI,EAAMtD,IAAIqD,EAAUlI,GAASA,CACxG,EACIqI,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EAEApI,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQosB,0BAAuB,EAC/B,MAAMpjB,EAAU,EAAQ,MAClBkiB,EAAiC,EAAQ,MACzCmB,EAAc,EAAQ,MACtB7c,EAAW,EAAQ,MACnB8c,EAAW,EAAQ,MACzB,MAAMF,UAA6BlB,EAA+B9b,6BAC9D,WAAApI,CAAYuK,GACRpE,QACAqe,EAAgCviB,IAAI5I,MACpCorB,EAA6BnmB,IAAIjF,UAAM,GACvCqrB,EAAwCpmB,IAAIjF,UAAM,GAClDsrB,EAAoDrmB,IAAIjF,UAAM,GAC9DqI,EAAuBrI,KAAMorB,EAA8Bla,EAAQ,KACnE7I,EAAuBrI,KAAMqrB,EAAyC,GAAI,IAC9E,CACA,iCAAIa,GACA,OAAOzjB,EAAuBzI,KAAMsrB,EAAqD,IAC7F,CAQA,yBAAOa,CAAmB/e,GACtB,MAAM2d,EAAS,IAAIgB,EAAqB,MAExC,OADAhB,EAAO5hB,MAAK,IAAM4hB,EAAOqB,oBAAoBhf,KACtC2d,CACX,CACA,2BAAOsB,CAAqBpb,EAAQC,EAAQ7L,GACxC,MAAM0lB,EAAS,IAAIgB,EAAqB7a,GAExC,OADA6Z,EAAO5hB,MAAK,IAAM4hB,EAAOvZ,mBAAmBP,EAAQ,IAAKC,EAAQ9D,QAAQ,GAAQ,IAAK/H,EAASyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,cACrJid,CACX,CACA,2BAAM/Z,CAAsBC,EAAQC,EAAQ7L,GACxCyH,MAAMkE,sBACN,MAAMG,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3DrB,EAAuBzI,KAAMmrB,EAAiC,IAAKI,GAAoCvoB,KAAKhD,MAC5G,MAAMoN,QAAe6D,EAAOI,KAAKC,YAAYlG,OAAO,IAAK8F,EAAQ9D,QAAQ,GAAQ,IAAK/H,EAAS8L,OAAQnR,KAAK6I,WAAWsI,SACvHnR,KAAK0J,aACL,UAAW,MAAMyf,KAAS/b,EACtB3E,EAAuBzI,KAAMmrB,EAAiC,IAAKM,GAAgCzoB,KAAKhD,KAAMmpB,GAElH,GAAI/b,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAO/K,KAAKuP,mBAAmB9G,EAAuBzI,KAAMmrB,EAAiC,IAAKS,GAAkC5oB,KAAKhD,MAC7I,CACA,yBAAMosB,CAAoBE,EAAgBjnB,GACtC,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3DrB,EAAuBzI,KAAMmrB,EAAiC,IAAKI,GAAoCvoB,KAAKhD,MAC5GA,KAAK0J,aACL,MAAM0D,EAAS4e,EAAYO,OAAOJ,mBAAmBG,EAAgBtsB,KAAK6I,YAC1E,IAAI2jB,EACJ,UAAW,MAAMrD,KAAS/b,EAClBof,GAAUA,IAAWrD,EAAMhW,IAE3BnT,KAAKuP,mBAAmB9G,EAAuBzI,KAAMmrB,EAAiC,IAAKS,GAAkC5oB,KAAKhD,OAEtIyI,EAAuBzI,KAAMmrB,EAAiC,IAAKM,GAAgCzoB,KAAKhD,KAAMmpB,GAC9GqD,EAASrD,EAAMhW,GAEnB,GAAI/F,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAO/K,KAAKuP,mBAAmB9G,EAAuBzI,KAAMmrB,EAAiC,IAAKS,GAAkC5oB,KAAKhD,MAC7I,CACA,EAAEorB,EAA+B,IAAIjmB,QAAWkmB,EAA0C,IAAIlmB,QAAWmmB,EAAsD,IAAInmB,QAAWgmB,EAAkC,IAAItgB,QAAW0gB,EAAqC,WAC5PvrB,KAAK2J,OAETtB,EAAuBrI,KAAMsrB,OAAqD7f,EAAW,IACjG,EAAG+f,EAA4C,SAAmDrH,GAC9F,IAAI5b,EAAQE,EAAuBzI,KAAMqrB,EAAyC,KAAKlH,EAAO/Z,OAC9F,OAAI7B,IAGJA,EAAQ,CACJkkB,cAAc,EACdC,cAAc,EACdC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,IAAI1W,IACrB2W,wBAAyB,MAE7BrkB,EAAuBzI,KAAMqrB,EAAyC,KAAKlH,EAAO/Z,OAAS7B,EACpFA,EACX,EAAGkjB,EAAiC,SAAwCtC,GACxE,GAAInpB,KAAK2J,MACL,OACJ,MAAM2G,EAAa7H,EAAuBzI,KAAMmrB,EAAiC,IAAKW,GAAgD9oB,KAAKhD,KAAMmpB,GACjJnpB,KAAKwJ,MAAM,QAAS2f,EAAO7Y,GAC3B,IAAK,MAAM6T,KAAUgF,EAAM1Z,QAAS,CAChC,MAAMsd,EAAiBzc,EAAWb,QAAQ0U,EAAO/Z,OACrB,MAAxB+Z,EAAO6I,MAAMpd,SACoB,cAAjCmd,EAAevmB,SAASkL,MACxBqb,EAAevmB,SAASoJ,UACxB5P,KAAKwJ,MAAM,UAAW2a,EAAO6I,MAAMpd,QAASmd,EAAevmB,QAAQoJ,SACnE5P,KAAKwJ,MAAM,gBAAiB,CACxBwjB,MAAO7I,EAAO6I,MAAMpd,QACpBqd,SAAUF,EAAevmB,QAAQoJ,QACjCyC,OAAQ0a,EAAevmB,QAAQ6L,UAGX,MAAxB8R,EAAO6I,MAAM1Z,SACoB,cAAjCyZ,EAAevmB,SAASkL,MACxBqb,EAAevmB,SAAS8M,SACxBtT,KAAKwJ,MAAM,gBAAiB,CACxBwjB,MAAO7I,EAAO6I,MAAM1Z,QACpB2Z,SAAUF,EAAevmB,QAAQ8M,UAGT,MAA5B6Q,EAAO+I,UAAUtd,SAAoD,cAAjCmd,EAAevmB,SAASkL,MAC5D1R,KAAKwJ,MAAM,yBAA0B,CACjCoG,QAASuU,EAAO+I,UAAUtd,QAC1Bqd,SAAUF,EAAeG,UAAUtd,SAAW,KAGtB,MAA5BuU,EAAO+I,UAAU5Z,SAAoD,cAAjCyZ,EAAevmB,SAASkL,MAC5D1R,KAAKwJ,MAAM,yBAA0B,CACjC8J,QAAS6Q,EAAO+I,UAAU5Z,QAC1B2Z,SAAUF,EAAeG,UAAU5Z,SAAW,KAGtD,MAAM/K,EAAQE,EAAuBzI,KAAMmrB,EAAiC,IAAKK,GAA2CxoB,KAAKhD,KAAM+sB,GACnIA,EAAe3I,gBACf3b,EAAuBzI,KAAMmrB,EAAiC,IAAKQ,GAA6C3oB,KAAKhD,KAAM+sB,GACtF,MAAjCxkB,EAAMukB,yBACNrkB,EAAuBzI,KAAMmrB,EAAiC,IAAKO,GAA6C1oB,KAAKhD,KAAM+sB,EAAgBxkB,EAAMukB,0BAGzJ,IAAK,MAAMvI,KAAYJ,EAAO6I,MAAM/c,YAAc,GAC1C1H,EAAMukB,0BAA4BvI,EAASna,QAC3C3B,EAAuBzI,KAAMmrB,EAAiC,IAAKQ,GAA6C3oB,KAAKhD,KAAM+sB,GAEtF,MAAjCxkB,EAAMukB,yBACNrkB,EAAuBzI,KAAMmrB,EAAiC,IAAKO,GAA6C1oB,KAAKhD,KAAM+sB,EAAgBxkB,EAAMukB,0BAGzJvkB,EAAMukB,wBAA0BvI,EAASna,MAE7C,IAAK,MAAM+iB,KAAiBhJ,EAAO6I,MAAM/c,YAAc,GAAI,CACvD,MAAMmd,EAAmBL,EAAevmB,QAAQyJ,aAAakd,EAAc/iB,OACtEgjB,GAAkBjd,MAGQ,aAA3Bid,GAAkBjd,MAClBnQ,KAAKwJ,MAAM,sCAAuC,CAC9CsB,KAAMsiB,EAAiBhd,UAAUtF,KACjCV,MAAO+iB,EAAc/iB,MACrB2C,UAAWqgB,EAAiBhd,SAASrD,UACrC2X,iBAAkB0I,EAAiBhd,SAASsU,iBAC5C2I,gBAAiBF,EAAc/c,UAAUrD,WAAa,IAMlE,CACJ,CACJ,EAAG2e,EAA8C,SAAqDqB,EAAgBO,GAElH,GADc7kB,EAAuBzI,KAAMmrB,EAAiC,IAAKK,GAA2CxoB,KAAKhD,KAAM+sB,GAC7HF,gBAAgBrsB,IAAI8sB,GAE1B,OAEJ,MAAMF,EAAmBL,EAAevmB,QAAQyJ,aAAaqd,GAC7D,IAAKF,EACD,MAAM,IAAI7mB,MAAM,yBAEpB,IAAK6mB,EAAiBjd,KAClB,MAAM,IAAI5J,MAAM,qCAEpB,GAA8B,aAA1B6mB,EAAiBjd,KAAqB,CACtC,MAAMqU,EAAY/b,EAAuBzI,KAAMorB,EAA8B,MAAMzY,OAAO8R,MAAM7R,GAAuB,aAAdA,EAAKzC,MAAuByC,EAAKxC,SAAStF,OAASsiB,EAAiBhd,SAAStF,OACtL9K,KAAKwJ,MAAM,qCAAsC,CAC7CsB,KAAMsiB,EAAiBhd,SAAStF,KAChCV,MAAOkjB,EACPvgB,UAAWqgB,EAAiBhd,SAASrD,UACrC2X,kBAAkB,EAAIvV,EAAS0D,oBAAoB2R,GAAaA,EAAUzR,UAAUqa,EAAiBhd,SAASrD,WACxGyX,GAAWpU,SAAS4C,OAASZ,KAAKpE,MAAMof,EAAiBhd,SAASrD,WAC9D,MAElB,MAEgBqgB,EAAiBjd,IAErC,EAAGwb,EAA8C,SAAqDoB,GAClG,MAAMxkB,EAAQE,EAAuBzI,KAAMmrB,EAAiC,IAAKK,GAA2CxoB,KAAKhD,KAAM+sB,GACvI,GAAIA,EAAevmB,QAAQoJ,UAAYrH,EAAMkkB,aAAc,CACvDlkB,EAAMkkB,cAAe,EACrB,MAAMc,EAAiB9kB,EAAuBzI,KAAMmrB,EAAiC,IAAKU,GAAsD7oB,KAAKhD,MACrJA,KAAKwJ,MAAM,eAAgB,CACvBoG,QAASmd,EAAevmB,QAAQoJ,QAChCyC,OAAQkb,EAAiBA,EAAexa,UAAUga,EAAevmB,QAAQoJ,SAAW,MAE5F,CACImd,EAAevmB,QAAQ8M,UAAY/K,EAAMmkB,eACzCnkB,EAAMmkB,cAAe,EACrB1sB,KAAKwJ,MAAM,eAAgB,CAAE8J,QAASyZ,EAAevmB,QAAQ8M,WAE7DyZ,EAAeG,UAAUtd,UAAYrH,EAAMokB,wBAC3CpkB,EAAMokB,uBAAwB,EAC9B3sB,KAAKwJ,MAAM,wBAAyB,CAAEoG,QAASmd,EAAeG,SAAStd,WAEvEmd,EAAeG,UAAU5Z,UAAY/K,EAAMqkB,wBAC3CrkB,EAAMqkB,uBAAwB,EAC9B5sB,KAAKwJ,MAAM,wBAAyB,CAAE8J,QAASyZ,EAAeG,SAAS5Z,UAE/E,EAAGsY,EAAmC,WAClC,GAAI5rB,KAAK2J,MACL,MAAM,IAAIhB,EAAQqC,YAAY,2CAElC,MAAMiiB,EAAWxkB,EAAuBzI,KAAMsrB,EAAqD,KACnG,IAAK2B,EACD,MAAM,IAAItkB,EAAQqC,YAAY,4CAIlC,OAFA3C,EAAuBrI,KAAMsrB,OAAqD7f,EAAW,KAC7FpD,EAAuBrI,KAAMqrB,EAAyC,GAAI,KAsKlF,SAAgC4B,EAAU/b,GACtC,MAAM,GAAEiC,EAAE,QAAE1D,EAAO,QAAE+d,EAAO,MAAEzO,EAAK,mBAAE0O,KAAuBra,GAAS6Z,EAC/D3c,EAAa,IACZ8C,EACHD,KACA1D,QAASA,EAAQuC,KAAI,EAAGxL,UAAS4d,gBAAeha,QAAO8iB,cAAaQ,MAChE,IAAKtJ,EACD,MAAM,IAAIzb,EAAQqC,YAAY,oCAAoCZ,KAEtE,MAAM,QAAEwF,EAAU,KAAI,cAAEI,EAAa,WAAEC,KAAe0d,GAAgBnnB,EAChEkL,EAAOlL,EAAQkL,KACrB,IAAKA,EACD,MAAM,IAAI/I,EAAQqC,YAAY,2BAA2BZ,KAE7D,GAAI4F,EAAe,CACf,MAAQjD,UAAWpC,EAAI,KAAEG,GAASkF,EAClC,GAAY,MAARrF,EACA,MAAM,IAAIhC,EAAQqC,YAAY,8CAA8CZ,KAEhF,IAAKU,EACD,MAAM,IAAInC,EAAQqC,YAAY,yCAAyCZ,KAE3E,MAAO,IACAsjB,EACHlnB,QAAS,CACLoJ,UACAI,cAAe,CAAEjD,UAAWpC,EAAMG,QAClC4G,OACA4B,QAAS9M,EAAQ8M,SAAW,MAEhC8Q,gBACAha,QACA8iB,WAER,CACA,OAAIjd,EACO,IACAyd,EACHtjB,QACAga,gBACA8I,WACA1mB,QAAS,IACFmnB,EACHjc,OACA9B,UACA0D,QAAS9M,EAAQ8M,SAAW,KAC5BrD,WAAYA,EAAW+B,KAAI,CAAC9B,EAAW1K,KACnC,MAAQ4K,SAAU+B,EAAE,KAAEhC,EAAI,GAAEgD,KAAOya,GAAa1d,GACxCnD,UAAWpC,EAAI,KAAEG,KAAS+iB,GAAW1b,GAAM,CAAC,EACpD,GAAU,MAANgB,EACA,MAAM,IAAIxK,EAAQqC,YAAY,mBAAmBZ,iBAAqB5E,UAAUsoB,EAAIb,MAExF,GAAY,MAAR9c,EACA,MAAM,IAAIxH,EAAQqC,YAAY,mBAAmBZ,iBAAqB5E,YAAYsoB,EAAIb,MAE1F,GAAY,MAARniB,EACA,MAAM,IAAInC,EAAQqC,YAAY,mBAAmBZ,iBAAqB5E,qBAAqBsoB,EAAIb,MAEnG,GAAY,MAARtiB,EACA,MAAM,IAAIhC,EAAQqC,YAAY,mBAAmBZ,iBAAqB5E,0BAA0BsoB,EAAIb,MAExG,MAAO,IAAKW,EAAUza,KAAIhD,OAAMC,SAAU,IAAKyd,EAAQ/iB,OAAMiC,UAAWpC,GAAQ,MAKzF,IACA+iB,EACHlnB,QAAS,IAAKmnB,EAAa/d,UAAS8B,OAAM4B,QAAS9M,EAAQ8M,SAAW,MACtE8Q,gBACAha,QACA8iB,WACH,IAELM,UACAzO,QACA1b,OAAQ,qBACJoqB,EAAqB,CAAEA,sBAAuB,CAAC,GAEvD,OAAO,EAAIte,EAAS0U,0BAA0BvT,EAAYY,EAC9D,CArPe6c,CAAuBd,EAAUxkB,EAAuBzI,KAAMorB,EAA8B,KACvG,EAAGS,EAAuD,WACtD,MAAM0B,EAAiB9kB,EAAuBzI,KAAMorB,EAA8B,MAAMlH,gBACxF,OAAI,EAAI/U,EAAS4U,8BAA8BwJ,GACpCA,EAEJ,IACX,EAAGzB,EAAiD,SAAwD3C,GACxG,IAAI5P,EAAIyU,EAAIC,EAAIC,EAChB,IAAIjB,EAAWxkB,EAAuBzI,KAAMsrB,EAAqD,KACjG,MAAM,QAAE7b,KAAY2D,GAAS+V,EACxB8D,EAOD/sB,OAAOiuB,OAAOlB,EAAU7Z,GANxB6Z,EAAW5kB,EAAuBrI,KAAMsrB,EAAqD,IACtFlY,EACH3D,QAAS,IACV,KAKP,IAAK,MAAM,MAAEud,EAAK,cAAE5I,EAAa,MAAEha,EAAK,SAAE8iB,EAAW,QAASkB,KAAWjF,EAAM1Z,QAAS,CACpF,IAAI0U,EAAS8I,EAASxd,QAAQrF,GAI9B,GAHK+Z,IACDA,EAAS8I,EAASxd,QAAQrF,GAAS,CAAEga,gBAAeha,QAAO5D,QAAS,CAAC,EAAG0mB,cAAakB,IAErFlB,EACA,GAAK/I,EAAO+I,SAGP,CACD,MAAM,QAAEtd,EAAO,QAAE0D,KAAYF,GAAS8Z,EAEtChtB,OAAOiuB,OAAOhK,EAAO+I,SAAU9Z,GAC3BxD,KACC2J,EAAK4K,EAAO+I,UAAUtd,UAAY2J,EAAG3J,QAAU,IAChDuU,EAAO+I,SAAStd,QAAQtO,QAAQsO,IAEhC0D,KACC0a,EAAK7J,EAAO+I,UAAU5Z,UAAY0a,EAAG1a,QAAU,IAChD6Q,EAAO+I,SAAS5Z,QAAQhS,QAAQgS,GAExC,MAdI6Q,EAAO+I,SAAWhtB,OAAOiuB,OAAO,CAAC,EAAGjB,GAgB5C,GAAI9I,IACAD,EAAOC,cAAgBA,EACnB3b,EAAuBzI,KAAMorB,EAA8B,OAAQ,EAAIjc,EAASwU,uBAAuBlb,EAAuBzI,KAAMorB,EAA8B,OAAO,CACzK,GAAsB,WAAlBhH,EACA,MAAM,IAAIzb,EAAQ0b,wBAEtB,GAAsB,mBAAlBD,EACA,MAAM,IAAIzb,EAAQ2b,8BAE1B,CAGJ,GADApkB,OAAOiuB,OAAOhK,EAAQiK,IACjBpB,EACD,SACJ,MAAM,QAAEpd,EAAO,QAAE0D,EAAO,cAAEtD,EAAa,KAAE0B,EAAI,WAAEzB,KAAemD,GAAS4Z,EA2BvE,GAzBA9sB,OAAOiuB,OAAOhK,EAAO3d,QAAS4M,GAC1BE,IACA6Q,EAAO3d,QAAQ8M,SAAW6Q,EAAO3d,QAAQ8M,SAAW,IAAMA,GAE1D5B,IACAyS,EAAO3d,QAAQkL,KAAOA,GACtB1B,IACKmU,EAAO3d,QAAQwJ,eAIZA,EAAclF,OACdqZ,EAAO3d,QAAQwJ,cAAclF,KAAOkF,EAAclF,MAClDkF,EAAcjD,aACbkhB,EAAK9J,EAAO3d,QAAQwJ,eAAejD,YAAckhB,EAAGlhB,UAAY,IACjEoX,EAAO3d,QAAQwJ,cAAcjD,WAAaiD,EAAcjD,YAP5DoX,EAAO3d,QAAQwJ,cAAgBA,GAWnCJ,IACAuU,EAAO3d,QAAQoJ,SAAWuU,EAAO3d,QAAQoJ,SAAW,IAAMA,GACrDuU,EAAO3d,QAAQ8M,SAAW7K,EAAuBzI,KAAMmrB,EAAiC,IAAKU,GAAsD7oB,KAAKhD,QACzJmkB,EAAO3d,QAAQ6L,QAAS,EAAI4Z,EAAS3G,cAAcnB,EAAO3d,QAAQoJ,WAGtEK,EAAY,CACPkU,EAAO3d,QAAQyJ,aAChBkU,EAAO3d,QAAQyJ,WAAa,IAChC,IAAK,MAAM,MAAE7F,EAAK,GAAE+I,EAAE,KAAEhD,EAAMC,SAAU+B,KAAOiB,KAAUnD,EAAY,CACjE,MAAMC,GAAcge,EAAK/J,EAAO3d,QAAQyJ,YAAY7F,KAAW8jB,EAAG9jB,GAAS,CAAC,GAC5ElK,OAAOiuB,OAAOje,EAAWkD,GACrBD,IACAjD,EAAUiD,GAAKA,GACfhD,IACAD,EAAUC,KAAOA,GACjBgC,IACAjC,EAAUE,WAAaF,EAAUE,SAAW,CAAEtF,KAAMqH,EAAGrH,MAAQ,GAAIiC,UAAW,MAC9EoF,GAAIrH,OACJoF,EAAUE,SAAStF,KAAOqH,EAAGrH,MAC7BqH,GAAIpF,YACJmD,EAAUE,SAASrD,WAAaoF,EAAGpF,WAC/B,EAAIoC,EAASyU,qBAAqBnb,EAAuBzI,KAAMorB,EAA8B,KAAMlb,KACnGA,EAAUE,SAASsU,kBAAmB,EAAIuH,EAAS3G,cAAcpV,EAAUE,SAASrD,YAGhG,CACJ,CACJ,CACA,OAAOkgB,CACX,EAAGpD,OAAOC,kBACN,MAAMuE,EAAY,GACZC,EAAY,GAClB,IAAI5jB,GAAO,EA+BX,OA9BA1K,KAAK+J,GAAG,SAAUof,IACd,MAAMoF,EAASD,EAAUE,QACrBD,EACAA,EAAOvlB,QAAQmgB,GAGfkF,EAAU/sB,KAAK6nB,EACnB,IAEJnpB,KAAK+J,GAAG,OAAO,KACXW,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOvlB,aAAQyC,GAEnB6iB,EAAU9pB,OAAS,CAAC,IAExBxE,KAAK+J,GAAG,SAAU0kB,IACd/jB,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOtlB,OAAOwlB,GAElBH,EAAU9pB,OAAS,CAAC,IAExBxE,KAAK+J,GAAG,SAAU0kB,IACd/jB,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOtlB,OAAOwlB,GAElBH,EAAU9pB,OAAS,CAAC,IAEjB,CACHkqB,KAAM1nB,SACGqnB,EAAU7pB,OAOR,CAAEpE,MADKiuB,EAAUG,QACD9jB,MAAM,GANrBA,EACO,CAAEtK,WAAOqL,EAAWf,MAAM,GAE9B,IAAI3B,SAAQ,CAACC,EAASC,IAAWqlB,EAAUhtB,KAAK,CAAE0H,UAASC,aAAWK,MAAM6f,GAAWA,EAAQ,CAAE/oB,MAAO+oB,EAAOze,MAAM,GAAU,CAAEtK,WAAOqL,EAAWf,MAAM,KAKxKikB,OAAQ3nB,UACJhH,KAAK8J,QACE,CAAE1J,WAAOqL,EAAWf,MAAM,IAG7C,CACA,gBAAAkkB,GAEI,OADe,IAAI5C,EAAYO,OAAOvsB,KAAK6pB,OAAOC,eAAergB,KAAKzJ,MAAOA,KAAK6I,YACpE+lB,kBAClB,EAoFJ,SAASd,EAAIta,GACT,OAAOpB,KAAK/R,UAAUmT,EAC1B,CApFA7T,EAAQosB,qBAAuBA,C,4BCvZ/B7rB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQuV,QAAUvV,EAAQsV,QAAUtV,EAAQkD,WAAalD,EAAQgD,oBAAiB,EAClFhD,EAAQgD,eAAiB,UACzBhD,EAAQkD,WAAa,CACjBoS,QAAU9Q,GAAMrD,OAAOqD,GAAGS,QAAQ,OAAQ,KAC1CsQ,QAAU/Q,GAAMrD,OAAOqD,IAE3BxE,EAAQsV,QAAU,UAClBtV,EAAQuV,QAAU,S,4BCRlBhV,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQkvB,aAAU,EAClBlvB,EAAQkvB,QAAU,Q,4BCDlB3uB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,G,8BCAtDF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQyM,kBAAoBzM,EAAQsN,gBAAa,EACjD,MAAMT,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjB6O,EAAc,EAAQ,KAC5Blb,OAAOC,eAAeR,EAAS,oBAAqB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOqX,EAAYhP,iBAAmB,IACjI,MAAMa,UAAmBT,EAAWK,YAChC,IAAA8I,CAAKlI,EAAYC,EAAQ,CAAC,EAAGrI,GACzB,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKlI,EAAY,CAAC,EAAGC,GAE9B1N,KAAKkN,QAAQ0I,WAAW,cAAcnI,gBAA0B2N,EAAYhP,kBAAmB,CAClGsB,WACGrI,GAEX,EAEJ1F,EAAQsN,WAAaA,C,8BCjBrB/M,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQshB,aAAethB,EAAQghB,cAAW,EAC1C,MAAMnU,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBK,EAAe,EAAQ,MAC7B,MAAM+T,UAAiBnU,EAAWK,YAI9B,MAAAzB,CAAOwM,EAAU1Q,EAAM7B,GACnB,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYyK,aAAqB,CACtD1Q,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,QAAAN,CAASoK,EAAUkX,EAAWzpB,GAC1B,OAAOrF,KAAKkN,QAAQnJ,IAAI,YAAY6T,cAAqBkX,IAAa,IAC/DzpB,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,MAAAiK,CAAOH,EAAUkX,EAAW5nB,EAAM7B,GAC9B,OAAOrF,KAAKkN,QAAQC,KAAK,YAAYyK,cAAqBkX,IAAa,CACnE5nB,UACG7B,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,IAAA6H,CAAKiC,EAAUlK,EAAQ,CAAC,EAAGrI,GACvB,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKiC,EAAU,CAAC,EAAGlK,GAE5B1N,KAAKkN,QAAQ0I,WAAW,YAAYgC,aAAqBqJ,EAAc,CAC1EvT,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CAIA,GAAAF,CAAIgK,EAAUkX,EAAWzpB,GACrB,OAAOrF,KAAKkN,QAAQW,OAAO,YAAY+J,cAAqBkX,IAAa,IAClEzpB,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,EAEJnO,EAAQghB,SAAWA,EACnB,MAAMM,UAAqBrU,EAAa0B,YAExC3O,EAAQshB,aAAeA,EACvBN,EAASM,aAAeA,C,oCC3DxB,IAAI9V,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQkV,UAAO,EACf,MAAMrI,EAAa,EAAQ,MACrBsI,EAAiB7I,EAAa,EAAQ,OACtCyO,EAAgB,EAAQ,MAC9B,MAAM7F,UAAarI,EAAWK,YAC1B,WAAAlG,GACImG,SAASC,WACT/M,KAAKsR,YAAc,IAAIwD,EAAeC,YAAY/U,KAAKkN,QAC3D,EAEJvN,EAAQkV,KAAOA,EACfA,EAAKE,YAAc2F,EAAc3F,YACjCF,EAAK8I,oBAAsBjD,EAAciD,mB,oCCpCzC,IAAIxS,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQqd,UAAO,EACf,MAAMxQ,EAAa,EAAQ,MACrBuiB,EAAgB9iB,EAAa,EAAQ,OACrC+iB,EAAU/iB,EAAa,EAAQ,OAC/BgjB,EAAe,EAAQ,MACvBC,EAAcjjB,EAAa,EAAQ,OACnCkjB,EAAa,EAAQ,MACrBC,EAAanjB,EAAa,EAAQ,OAClCojB,EAAY,EAAQ,MACX,EAAQ,MACvB,MAAMrS,UAAaxQ,EAAWK,YAC1B,WAAAlG,GACImG,SAASC,WACT/M,KAAKsvB,SAAW,IAAIJ,EAAYhI,SAASlnB,KAAKkN,SAC9ClN,KAAKqR,KAAO,IAAI2d,EAAQna,KAAK7U,KAAKkN,SAClClN,KAAKuvB,WAAa,IAAIR,EAAc3N,WAAWphB,KAAKkN,SACpDlN,KAAKuY,QAAU,IAAI6W,EAAW9O,QAAQtgB,KAAKkN,QAC/C,EAEJvN,EAAQqd,KAAOA,EACfA,EAAKkK,SAAWiI,EAAWjI,SAC3BlK,EAAKoE,WAAa6N,EAAa7N,WAC/BpE,EAAKmE,eAAiB8N,EAAa9N,eACnCnE,EAAKsD,QAAU+O,EAAU/O,O,4BChDzBpgB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ6vB,UAAY7vB,EAAQmQ,cAAgBnQ,EAAQkQ,kBAAoBlQ,EAAQoQ,wBAAqB,EAIrGpQ,EAAQoQ,mBAHoBvJ,GACC,cAAlBA,GAASkL,KAMpB/R,EAAQkQ,kBAHmBrJ,GACE,aAAlBA,GAASkL,KAMpB/R,EAAQmQ,cAHetJ,GACM,SAAlBA,GAASkL,KAMpB/R,EAAQ6vB,UAHR,SAAmB7rB,GACf,OAAc,MAAPA,CACX,C,oCChBA,IAWI8rB,EAA2BC,EAAwBC,EAAyCC,EAA+BC,EAA8BC,EAA0BC,EAA4BC,EAX/M3nB,EAA0BrI,MAAQA,KAAKqI,wBAA2B,SAAUC,EAAUC,EAAOnI,EAAOqG,EAAM+B,GAC1G,GAAa,MAAT/B,EAAc,MAAM,IAAInB,UAAU,kCACtC,GAAa,MAATmB,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,2EACvG,MAAiB,MAATmB,EAAe+B,EAAExF,KAAKsF,EAAUlI,GAASoI,EAAIA,EAAEpI,MAAQA,EAAQmI,EAAMtD,IAAIqD,EAAUlI,GAASA,CACxG,EACIqI,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EAEApI,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQyO,oBAAiB,EACzB,MAAMzF,EAAU,EAAQ,MAClBuG,EAAgB,EAAQ,KACxB5C,EAAoB,EAAQ,MAClC,MAAM8B,UAAuBc,EAAcxG,YACvC,WAAA/B,CAAYuK,GACRpE,QACA2iB,EAA0B7mB,IAAI5I,MAC9B0vB,EAAuBzqB,IAAIjF,UAAM,GACjC2vB,EAAwC1qB,IAAIjF,UAAM,GAClD4vB,EAA8B3qB,IAAIjF,UAAM,GACxCqI,EAAuBrI,KAAM0vB,EAAwBxe,EAAQ,IACjE,CACA,qBAAO7C,CAAe4C,EAAQC,EAAQ7L,GAClC,MAAM0lB,EAAS,IAAI3c,EAAe8C,GAKlC,OAJA6Z,EAAO5hB,MAAK,IAAM4hB,EAAOkF,gBAAgBhf,EAAQC,EAAQ,IAClD7L,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,cAE1Did,CACX,CACA,qBAAMkF,CAAgBhf,EAAQC,EAAQ7L,GAClC,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3DrB,EAAuBzI,KAAMyvB,EAA2B,IAAKI,GAA8B7sB,KAAKhD,MAChG,MAAMoN,QAAe6D,EAAOhD,UAAU7C,OAAO,IAAK8F,EAAQ9D,QAAQ,GAAQ,IAAK/H,EAAS8L,OAAQnR,KAAK6I,WAAWsI,SAChHnR,KAAK0J,aACL,UAAW,MAAMM,KAASoD,EACtB3E,EAAuBzI,KAAMyvB,EAA2B,IAAKK,GAA0B9sB,KAAKhD,KAAMgK,GAEtG,GAAIoD,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAOtC,EAAuBzI,KAAMyvB,EAA2B,IAAKM,GAA4B/sB,KAAKhD,KACzG,CACA,EAAE0vB,EAAyB,IAAIvqB,QAAWwqB,EAA0C,IAAIxqB,QAAWyqB,EAAgC,IAAIzqB,QAAWsqB,EAA4B,IAAI5kB,QAAWglB,EAA+B,WACpN7vB,KAAK2J,OAETtB,EAAuBrI,KAAM2vB,OAAyClkB,EAAW,IACrF,EAAGqkB,EAA2B,SAAkC9lB,GAC5D,GAAIhK,KAAK2J,MACL,OACJ,MAAMuE,EAAWzF,EAAuBzI,KAAMyvB,EAA2B,IAAKO,GAAoChtB,KAAKhD,KAAMgK,GAE7H,OADAhK,KAAKwJ,MAAM,QAASQ,GACZA,EAAMmG,MACV,IAAK,6BAA8B,CAC/B,MAAM+f,EAAShiB,EAASgiB,OAAOlmB,EAAMmmB,cACrC,IAAKD,EACD,MAAM,IAAIvnB,EAAQqC,YAAY,2BAA2BhB,EAAMmmB,gBAEnE,GAAoB,YAAhBD,EAAO/f,KAAoB,CAC3B,MAAMP,EAAUsgB,EAAOtgB,QAAQ5F,EAAMomB,eACrC,IAAKxgB,EACD,MAAM,IAAIjH,EAAQqC,YAAY,4BAA4BhB,EAAMomB,iBAEpE,GAAqB,gBAAjBxgB,EAAQO,KACR,MAAM,IAAIxH,EAAQqC,YAAY,6CAA6C4E,EAAQO,QAEvFnQ,KAAKwJ,MAAM,6BAA8B,IAClCQ,EACHijB,SAAUrd,EAAQ8Z,MAE1B,CACA,KACJ,CACA,IAAK,yCAA0C,CAC3C,MAAMwG,EAAShiB,EAASgiB,OAAOlmB,EAAMmmB,cACrC,IAAKD,EACD,MAAM,IAAIvnB,EAAQqC,YAAY,2BAA2BhB,EAAMmmB,gBAE/C,kBAAhBD,EAAO/f,MACPnQ,KAAKwJ,MAAM,yCAA0C,IAC9CQ,EACHijB,SAAUiD,EAAOnjB,YAGzB,KACJ,CACA,QAEI/M,KAAKwJ,MAAMQ,EAAMmG,KAAMnG,GAGnC,EAAG+lB,EAA6B,WAC5B,GAAI/vB,KAAK2J,MACL,MAAM,IAAIhB,EAAQqC,YAAY,2CAElC,MAAMiiB,EAAWxkB,EAAuBzI,KAAM2vB,EAAyC,KACvF,IAAK1C,EACD,MAAM,IAAItkB,EAAQqC,YAAY,4CAElC3C,EAAuBrI,KAAM2vB,OAAyClkB,EAAW,KACjF,MAAM4kB,EA4Hd,SAA0BpD,EAAU/b,GAChC,OAAO,EAAI5E,EAAkBgkB,oBAAoBrD,EAAU/b,EAC/D,CA9H+Bqf,CAAiBtD,EAAUxkB,EAAuBzI,KAAM0vB,EAAwB,MAEvG,OADArnB,EAAuBrI,KAAM4vB,EAA+BS,EAAgB,KACrEA,CACX,EAAGL,EAAqC,SAA4ChmB,GAChF,IAAIijB,EAAWxkB,EAAuBzI,KAAM2vB,EAAyC,KACrF,IAAK1C,EAAU,CACX,GAAmB,qBAAfjjB,EAAMmG,KACN,MAAM,IAAIxH,EAAQqC,YAAY,6EAA6EhB,EAAMmG,QAGrH,OADA8c,EAAW5kB,EAAuBrI,KAAM2vB,EAAyC3lB,EAAMkE,SAAU,KAC1F+e,CACX,CACA,OAAQjjB,EAAMmG,MACV,IAAK,6BACD8c,EAASiD,OAAO5uB,KAAK0I,EAAM+Y,MAC3B,MAEJ,IAAK,8BAA+B,CAChC,MAAMmN,EAASjD,EAASiD,OAAOlmB,EAAMmmB,cACrC,IAAKD,EACD,MAAM,IAAIvnB,EAAQqC,YAAY,2BAA2BhB,EAAMmmB,gBAE/C,YAAhBD,EAAO/f,MACP+f,EAAOtgB,QAAQtO,KAAK0I,EAAMwmB,MAE9B,KACJ,CACA,IAAK,6BAA8B,CAC/B,MAAMN,EAASjD,EAASiD,OAAOlmB,EAAMmmB,cACrC,IAAKD,EACD,MAAM,IAAIvnB,EAAQqC,YAAY,2BAA2BhB,EAAMmmB,gBAEnE,GAAoB,YAAhBD,EAAO/f,KAAoB,CAC3B,MAAMP,EAAUsgB,EAAOtgB,QAAQ5F,EAAMomB,eACrC,IAAKxgB,EACD,MAAM,IAAIjH,EAAQqC,YAAY,4BAA4BhB,EAAMomB,iBAEpE,GAAqB,gBAAjBxgB,EAAQO,KACR,MAAM,IAAIxH,EAAQqC,YAAY,6CAA6C4E,EAAQO,QAEvFP,EAAQ8Z,MAAQ1f,EAAMgjB,KAC1B,CACA,KACJ,CACA,IAAK,yCAA0C,CAC3C,MAAMkD,EAASjD,EAASiD,OAAOlmB,EAAMmmB,cACrC,IAAKD,EACD,MAAM,IAAIvnB,EAAQqC,YAAY,2BAA2BhB,EAAMmmB,gBAE/C,kBAAhBD,EAAO/f,OACP+f,EAAOnjB,WAAa/C,EAAMgjB,OAE9B,KACJ,CACA,IAAK,qBACD3kB,EAAuBrI,KAAM2vB,EAAyC3lB,EAAMkE,SAAU,KAI9F,OAAO+e,CACX,EAAGpD,OAAOC,kBACN,MAAMuE,EAAY,GACZC,EAAY,GAClB,IAAI5jB,GAAO,EA+BX,OA9BA1K,KAAK+J,GAAG,SAAUC,IACd,MAAMukB,EAASD,EAAUE,QACrBD,EACAA,EAAOvlB,QAAQgB,GAGfqkB,EAAU/sB,KAAK0I,EACnB,IAEJhK,KAAK+J,GAAG,OAAO,KACXW,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOvlB,aAAQyC,GAEnB6iB,EAAU9pB,OAAS,CAAC,IAExBxE,KAAK+J,GAAG,SAAU0kB,IACd/jB,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOtlB,OAAOwlB,GAElBH,EAAU9pB,OAAS,CAAC,IAExBxE,KAAK+J,GAAG,SAAU0kB,IACd/jB,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOtlB,OAAOwlB,GAElBH,EAAU9pB,OAAS,CAAC,IAEjB,CACHkqB,KAAM1nB,SACGqnB,EAAU7pB,OAOR,CAAEpE,MADKiuB,EAAUG,QACD9jB,MAAM,GANrBA,EACO,CAAEtK,WAAOqL,EAAWf,MAAM,GAE9B,IAAI3B,SAAQ,CAACC,EAASC,IAAWqlB,EAAUhtB,KAAK,CAAE0H,UAASC,aAAWK,MAAMU,GAAWA,EAAQ,CAAE5J,MAAO4J,EAAOU,MAAM,GAAU,CAAEtK,WAAOqL,EAAWf,MAAM,KAKxKikB,OAAQ3nB,UACJhH,KAAK8J,QACE,CAAE1J,WAAOqL,EAAWf,MAAM,IAG7C,CAKA,mBAAM+lB,SACIzwB,KAAK0K,OACX,MAAMwD,EAAWzF,EAAuBzI,KAAM4vB,EAA+B,KAC7E,IAAK1hB,EACD,MAAM,IAAIvF,EAAQqC,YAAY,mDAClC,OAAOkD,CACX,EAEJvO,EAAQyO,eAAiBA,C,4BCxOzBlO,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ+wB,mCAAgC,EAmCxC/wB,EAAQ+wB,8BA5BR,SAAuCtjB,GACnC,GAAIA,EAAOyc,OAAOC,eACd,OAAO1c,EACX,MAAMmhB,EAASnhB,EAAOujB,YACtB,MAAO,CACH,UAAMjC,GACF,IACI,MAAMviB,QAAeoiB,EAAOqC,OAG5B,OAFIzkB,GAAQzB,MACR6jB,EAAOsC,cACJ1kB,CACX,CACA,MAAO0a,GAEH,MADA0H,EAAOsC,cACDhK,CACV,CACJ,EACA,YAAM,GACF,MAAMiK,EAAgBvC,EAAOrX,SAG7B,OAFAqX,EAAOsC,oBACDC,EACC,CAAEpmB,MAAM,EAAMtK,WAAOqL,EAChC,EACA,CAACoe,OAAOC,iBACJ,OAAO9pB,IACX,EAER,C,8BCnCAE,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoxB,iBAAmBpxB,EAAQ4sB,YAAS,EAC5C,MAAMlE,EAAU,EAAQ,MAClB1f,EAAU,EAAQ,MAClBqoB,EAAS,EAAQ,MACjBC,EAAiB,EAAQ,MACzBC,EAAU,EAAQ,MACxB,MAAM3E,EACF,WAAA5lB,CAAYmc,EAAUja,GAClB7I,KAAK8iB,SAAWA,EAChB9iB,KAAK6I,WAAaA,CACtB,CACA,sBAAOsoB,CAAgBjjB,EAAUrF,GAC7B,IAAIuoB,GAAW,EA6Df,OAAO,IAAI7E,GA5DXvlB,kBACI,GAAIoqB,EACA,MAAM,IAAI7qB,MAAM,4EAEpB6qB,GAAW,EACX,IAAI1mB,GAAO,EACX,IACI,UAAW,MAAM2mB,KAAON,EAAiB7iB,EAAUrF,GAC/C,IAAI6B,EAEJ,GAAI2mB,EAAI1Y,KAAK2N,WAAW,UACpB5b,GAAO,OAGX,GAAkB,OAAd2mB,EAAIrnB,OAAkBqnB,EAAIrnB,MAAMsc,WAAW,aAAc,CACzD,IAAI3N,EACJ,IACIA,EAAOvG,KAAKpE,MAAMqjB,EAAI1Y,KAC1B,CACA,MAAOkO,GAGH,MAFArD,QAAQld,MAAM,qCAAsC+qB,EAAI1Y,MACxD6K,QAAQld,MAAM,cAAe+qB,EAAIC,KAC3BzK,CACV,CACA,GAAIlO,GAAQA,EAAKrS,MACb,MAAM,IAAI4qB,EAAQjX,cAASxO,EAAWkN,EAAKrS,WAAOmF,OAAWA,SAE3DkN,CACV,KACK,CACD,IAAIA,EACJ,IACIA,EAAOvG,KAAKpE,MAAMqjB,EAAI1Y,KAC1B,CACA,MAAOkO,GAGH,MAFArD,QAAQld,MAAM,qCAAsC+qB,EAAI1Y,MACxD6K,QAAQld,MAAM,cAAe+qB,EAAIC,KAC3BzK,CACV,CAEA,GAAiB,SAAbwK,EAAIrnB,MACJ,MAAM,IAAIknB,EAAQjX,cAASxO,EAAWkN,EAAKrS,MAAOqS,EAAKnS,aAASiF,QAE9D,CAAEzB,MAAOqnB,EAAIrnB,MAAO2O,KAAMA,EACpC,CAEJjO,GAAO,CACX,CACA,MAAOmc,GAEH,GAAIA,aAAatgB,OAAoB,eAAXsgB,EAAE/b,KACxB,OACJ,MAAM+b,CACV,CACA,QAESnc,GACD7B,EAAWiB,OACnB,CACJ,GAC4BjB,EAChC,CAKA,yBAAOsjB,CAAmBG,EAAgBzjB,GACtC,IAAIuoB,GAAW,EAwCf,OAAO,IAAI7E,GA3BXvlB,kBACI,GAAIoqB,EACA,MAAM,IAAI7qB,MAAM,4EAEpB6qB,GAAW,EACX,IAAI1mB,GAAO,EACX,IACI,UAAW,MAAM6mB,KAnBzBvqB,kBACI,MAAMwqB,EAAc,IAAIR,EAAOS,YACzBC,GAAO,EAAIT,EAAeP,+BAA+BpE,GAC/D,UAAW,MAAMnD,KAASuI,EACtB,IAAK,MAAMH,KAAQC,EAAYG,OAAOxI,SAC5BoI,EAGd,IAAK,MAAMA,KAAQC,EAAYI,cACrBL,CAEd,CAQiCM,GACjBnnB,GAEA6mB,UACMnf,KAAKpE,MAAMujB,IAEzB7mB,GAAO,CACX,CACA,MAAOmc,GAEH,GAAIA,aAAatgB,OAAoB,eAAXsgB,EAAE/b,KACxB,OACJ,MAAM+b,CACV,CACA,QAESnc,GACD7B,EAAWiB,OACnB,CACJ,GAC4BjB,EAChC,CACA,CAACghB,OAAOC,iBACJ,OAAO9pB,KAAK8iB,UAChB,CAKA,GAAAgP,GACI,MAAMC,EAAO,GACPC,EAAQ,GACRlP,EAAW9iB,KAAK8iB,WAChBmP,EAAeC,IACV,CACHxD,KAAM,KACF,GAAqB,IAAjBwD,EAAM1tB,OAAc,CACpB,MAAM2H,EAAS2W,EAAS4L,OACxBqD,EAAKzwB,KAAK6K,GACV6lB,EAAM1wB,KAAK6K,EACf,CACA,OAAO+lB,EAAM1D,OAAO,IAIhC,MAAO,CACH,IAAIjC,GAAO,IAAM0F,EAAYF,IAAO/xB,KAAK6I,YACzC,IAAI0jB,GAAO,IAAM0F,EAAYD,IAAQhyB,KAAK6I,YAElD,CAMA,gBAAA+lB,GACI,MAAMuD,EAAOnyB,KACb,IAAI0xB,EACJ,MAAMlvB,EAAU,IAAI4vB,YACpB,OAAO,IAAI/J,EAAQvhB,eAAe,CAC9B,WAAMsP,GACFsb,EAAOS,EAAKtI,OAAOC,gBACvB,EACA,UAAMuI,CAAKC,GACP,IACI,MAAM,MAAElyB,EAAK,KAAEsK,SAAegnB,EAAKhD,OACnC,GAAIhkB,EACA,OAAO4nB,EAAKC,QAChB,MAAMC,EAAQhwB,EAAQF,OAAO8P,KAAK/R,UAAUD,GAAS,MACrDkyB,EAAKG,QAAQD,EACjB,CACA,MAAO/D,GACH6D,EAAKhsB,MAAMmoB,EACf,CACJ,EACA,YAAMvX,SACIwa,EAAK/C,WACf,GAER,EAGJ3nB,eAAgB+pB,EAAiB7iB,EAAUrF,GACvC,IAAKqF,EAAShH,KAEV,MADA2B,EAAWiB,QACL,IAAInB,EAAQqC,YAAY,qDAElC,MAAM0nB,EAAa,IAAIC,EACjBnB,EAAc,IAAIR,EAAOS,YACzBC,GAAO,EAAIT,EAAeP,+BAA+BxiB,EAAShH,MACxE,UAAW,MAAM0rB,KAkBrB5rB,gBAA8B8b,GAC1B,IAAInK,EAAO,IAAIka,WACf,UAAW,MAAM1J,KAASrG,EAAU,CAChC,GAAa,MAATqG,EACA,SAEJ,MAAM2J,EAAc3J,aAAiBL,YAAc,IAAI+J,WAAW1J,GAC3C,iBAAVA,GAAqB,IAAIiJ,aAAc9vB,OAAO6mB,GACjDA,EACV,IAII4J,EAJAC,EAAU,IAAIH,WAAWla,EAAKnU,OAASsuB,EAAYtuB,QAKvD,IAJAwuB,EAAQ/tB,IAAI0T,GACZqa,EAAQ/tB,IAAI6tB,EAAana,EAAKnU,QAC9BmU,EAAOqa,GAE+D,KAA9DD,GAAe,EAAI/B,EAAOiC,wBAAwBta,WAChDA,EAAKgR,MAAM,EAAGoJ,GACpBpa,EAAOA,EAAKgR,MAAMoJ,EAE1B,CACIpa,EAAKnU,OAAS,UACRmU,EAEd,CAxCiCua,CAAcxB,GACvC,IAAK,MAAMH,KAAQC,EAAYG,OAAOiB,GAAW,CAC7C,MAAMvB,EAAMqB,EAAWf,OAAOJ,GAC1BF,UACMA,EACd,CAEJ,IAAK,MAAME,KAAQC,EAAYI,QAAS,CACpC,MAAMP,EAAMqB,EAAWf,OAAOJ,GAC1BF,UACMA,EACd,CACJ,CArBA1xB,EAAQ4sB,OAASA,EAsBjB5sB,EAAQoxB,iBAAmBA,EA4B3B,MAAM4B,EACF,WAAAhsB,GACI3G,KAAKgK,MAAQ,KACbhK,KAAK2Y,KAAO,GACZ3Y,KAAKmzB,OAAS,EAClB,CACA,MAAAxB,CAAOJ,GAIH,GAHIA,EAAK6B,SAAS,QACd7B,EAAOA,EAAKlL,UAAU,EAAGkL,EAAK/sB,OAAS,KAEtC+sB,EAAM,CAEP,IAAKvxB,KAAKgK,QAAUhK,KAAK2Y,KAAKnU,OAC1B,OAAO,KACX,MAAM6sB,EAAM,CACRrnB,MAAOhK,KAAKgK,MACZ2O,KAAM3Y,KAAK2Y,KAAKlU,KAAK,MACrB6sB,IAAKtxB,KAAKmzB,QAKd,OAHAnzB,KAAKgK,MAAQ,KACbhK,KAAK2Y,KAAO,GACZ3Y,KAAKmzB,OAAS,GACP9B,CACX,CAEA,GADArxB,KAAKmzB,OAAO7xB,KAAKiwB,GACbA,EAAKjL,WAAW,KAChB,OAAO,KAEX,IAAK+M,EAAWC,EAAGlzB,GAa3B,SAAmB0tB,GACf,MAAM1jB,EAAQ0jB,EAAIyF,QAd8B,KAehD,OAAe,IAAXnpB,EACO,CAAC0jB,EAAIzH,UAAU,EAAGjc,GAhBmB,IAgBA0jB,EAAIzH,UAAUjc,EAAQ/H,IAE/D,CAACyrB,EAAK,GAAI,GACrB,CAnBoC0F,CAAUjC,GAUtC,OATInxB,EAAMkmB,WAAW,OACjBlmB,EAAQA,EAAMimB,UAAU,IAEV,UAAdgN,EACArzB,KAAKgK,MAAQ5J,EAEM,SAAdizB,GACLrzB,KAAK2Y,KAAKrX,KAAKlB,GAEZ,IACX,E,oCC9QJ,IAAI+K,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ2c,YAAS,EACjB,MAAM9P,EAAa,EAAQ,MACrBgJ,EAAOvJ,EAAa,EAAQ,OAClC,MAAMqQ,UAAe9P,EAAWK,YAI5B,eAAA4mB,CAAgBvsB,EAAM7B,GAClB,OAAOrF,KAAKkN,QAAQC,KAAK,qBAAsBqI,EAAKC,4BAA4B,CAAEvO,UAAS7B,IAC/F,CAIA,IAAAquB,CAAKxsB,EAAM7B,GACP,OAAOrF,KAAKkN,QAAQC,KAAK,gBAAiBqI,EAAKC,4BAA4B,CAAEvO,UAAS7B,IAC1F,CAIA,QAAAsuB,CAASzsB,EAAM7B,GACX,OAAOrF,KAAKkN,QAAQC,KAAK,sBAAuB,CAAEjG,UAAS7B,GAC/D,EAEJ1F,EAAQ2c,OAASA,C,oCC/CjB,IAAInR,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACAjM,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ+U,kBAAe,EACvB,MAAMlI,EAAa,EAAQ,MACrBgJ,EAAOvJ,EAAa,EAAQ,OAClC,MAAMyI,UAAqBlI,EAAWK,YAClC,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,sBAAuBqI,EAAKC,4BAA4B,CAAEvO,UAAS7B,EAAS2Z,WAAY,CAAED,MAAO7X,EAAK6X,SACnI,EAEJpf,EAAQ+U,aAAeA,C,8BCjCvBxU,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQi0B,mCAAgC,EACxC,MAAMC,EAAyB,EAAQ,MACvC,MAAMD,UAAsCC,EAAuB9H,qBAC/D,yBAAOI,CAAmB/e,GACtB,MAAM2d,EAAS,IAAI6I,EAA8B,MAEjD,OADA7I,EAAO5hB,MAAK,IAAM4hB,EAAOqB,oBAAoBhf,KACtC2d,CACX,CAEA,mBAAOD,CAAa7Z,EAAQC,EAAQ7L,GAChC,MAAM0lB,EAAS,IAAI6I,EAA8B,MAC3CxuB,EAAO,IACNC,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,iBAGjE,OADAid,EAAO5hB,MAAK,IAAM4hB,EAAOtZ,cAAcR,EAAQC,EAAQ9L,KAChD2lB,CACX,CACA,eAAOC,CAAS/Z,EAAQC,EAAQ7L,GAC5B,MAAM0lB,EAAS,IAAI6I,EAEnB1iB,GACM9L,EAAO,IACNC,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,aAGjE,OADAid,EAAO5hB,MAAK,IAAM4hB,EAAOvY,UAAUvB,EAAQC,EAAQ9L,KAC5C2lB,CACX,EAEJprB,EAAQi0B,8BAAgCA,C,8BC9BxC1zB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ2Z,aAAe3Z,EAAQgY,WAAQ,EACvC,MAAMnL,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBK,EAAe,EAAQ,MAC7B,MAAM+K,UAAcnL,EAAWK,YAC3B,QAAAW,CAASoK,EAAUE,EAAOgc,EAAQpmB,EAAQ,CAAC,EAAGrI,GAC1C,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAKwN,SAASoK,EAAUE,EAAOgc,EAAQ,CAAC,EAAGpmB,GAE/C1N,KAAKkN,QAAQnJ,IAAI,YAAY6T,UAAiBE,WAAegc,IAAU,CAC1EpmB,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,CACA,IAAA6H,CAAKiC,EAAUE,EAAOpK,EAAQ,CAAC,EAAGrI,GAC9B,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKiC,EAAUE,EAAO,CAAC,EAAGpK,GAEnC1N,KAAKkN,QAAQ0I,WAAW,YAAYgC,UAAiBE,UAAewB,EAAc,CACrF5L,WACGrI,EACHyI,QAAS,CAAE,cAAe,mBAAoBzI,GAASyI,UAE/D,EAEJnO,EAAQgY,MAAQA,EAChB,MAAM2B,UAAqB1M,EAAa0B,YAExC3O,EAAQ2Z,aAAeA,EACvB3B,EAAM2B,aAAeA,C,8BChCrBpZ,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ4N,cAAgB5N,EAAQ+jB,mBAAqB/jB,EAAQikB,oBAAsBjkB,EAAQkT,mBAAqBlT,EAAQo0B,0BAA4Bp0B,EAAQgkB,sBAAwBhkB,EAAQwO,cAAgBxO,EAAQ2wB,wBAAqB,EACzO,MAAM3nB,EAAU,EAAQ,MAClBwG,EAAW,EAAQ,MA+BzB,SAAShB,EAAcD,EAAUgD,GAC7B,MAAMgf,EAAShiB,EAASgiB,OAAOle,KAAK+Q,IAChC,GAAkB,kBAAdA,EAAK5S,KACL,MAAO,IACA4S,EACH2B,iBAAkBC,EAAczT,EAAQ6R,IAGhD,GAAkB,YAAdA,EAAK5S,KAAoB,CACzB,MAAMP,EAAUmT,EAAKnT,QAAQoC,KAAKpC,GACT,gBAAjBA,EAAQO,KACD,IACAP,EACHyC,OAAQ2hB,EAAgB9iB,EAAQtB,EAAQ8Z,OAGzC9Z,IAEX,MAAO,IACAmT,EACHnT,UAER,CACA,OAAOmT,CAAI,IAET1Q,EAASnS,OAAOiuB,OAAO,CAAC,EAAGjgB,EAAU,CAAEgiB,WAoB7C,OAnBKhwB,OAAOyL,yBAAyBuC,EAAU,gBAC3CX,EAAc8E,GAElBnS,OAAOC,eAAekS,EAAQ,gBAAiB,CAC3CtG,YAAY,EACZ,GAAAhI,GACI,IAAK,MAAMmsB,KAAU7d,EAAO6d,OACxB,GAAoB,YAAhBA,EAAO/f,KAGX,IAAK,MAAMP,KAAWsgB,EAAOtgB,QACzB,GAAqB,gBAAjBA,EAAQO,MAA6C,OAAnBP,EAAQyC,OAC1C,OAAOzC,EAAQyC,OAI3B,OAAO,IACX,IAEGA,CACX,CAEA,SAAS2hB,EAAgB9iB,EAAQtB,GAC7B,GAAkC,gBAA9BsB,EAAOwY,MAAMhnB,QAAQyN,KACrB,OAAO,KAEX,GAAI,cAAee,EAAOwY,MAAMhnB,OAAQ,CACpC,MAAMuxB,EAAc/iB,EAAOwY,MAAMhnB,OACjC,OAAOuxB,EAAYlhB,UAAUnD,EACjC,CACA,OAAOwC,KAAKpE,MAAM4B,EACtB,CACA,SAAS+T,EAAsBzS,GAC3B,SAAI,EAAI/B,EAAS4U,8BAA8B7S,EAAOwY,MAAMhnB,OAIhE,CAqBA,SAASmQ,EAAmBD,GACxB,MAA4B,wBAArBA,GAAe,MAC1B,CAEA,SAASshB,EAAmBC,EAAarpB,GACrC,OAAOqpB,EAAY1P,MAAM7R,GAAuB,aAAdA,EAAKzC,MAAuByC,EAAK9H,OAASA,GAChF,CACA,SAAS6Z,EAAczT,EAAQqT,GAC3B,MAAMC,EAAY0P,EAAmBhjB,EAAOyB,OAAS,GAAI4R,EAASzZ,MAClE,MAAO,IACAyZ,KACAA,EACHG,iBAAkB7R,EAAmB2R,GAAaA,EAAUzR,UAAUwR,EAASxX,WACzEyX,GAAWxR,OAASZ,KAAKpE,MAAMuW,EAASxX,WACpC,KAElB,CAoBA,SAASQ,EAAcD,GACnB,MAAM8mB,EAAQ,GACd,IAAK,MAAMlE,KAAU5iB,EAAI4iB,OACrB,GAAoB,YAAhBA,EAAO/f,KAGX,IAAK,MAAMP,KAAWsgB,EAAOtgB,QACJ,gBAAjBA,EAAQO,MACRikB,EAAM9yB,KAAKsO,EAAQ8Z,MAI/Bpc,EAAI+mB,YAAcD,EAAM3vB,KAAK,GACjC,CAtIA9E,EAAQ2wB,mBA7BR,SAA4BpiB,EAAUgD,GAClC,OAAKA,GAAWyS,EAAsBzS,GA0B/B/C,EAAcD,EAAUgD,GAzBpB,IACAhD,EACHomB,cAAe,KACfpE,OAAQhiB,EAASgiB,OAAOle,KAAK+Q,GACP,kBAAdA,EAAK5S,KACE,IACA4S,EACH2B,iBAAkB,MAGR,YAAd3B,EAAK5S,KACE,IACA4S,EACHnT,QAASmT,EAAKnT,QAAQoC,KAAKpC,IAAY,IAChCA,EACHyC,OAAQ,UAKT0Q,IAM3B,EAiDApjB,EAAQwO,cAAgBA,EAiBxBxO,EAAQgkB,sBAAwBA,EAmBhChkB,EAAQo0B,0BAlBR,SAAmCnhB,GAAM,OAAEiS,EAAM,SAAEG,IAC/C,MAAMrhB,EAAM,IAAKiP,GAejB,OAdA1S,OAAO4kB,iBAAiBnhB,EAAK,CACzBohB,OAAQ,CACJ3kB,MAAO,sBACP2L,YAAY,GAEhBgH,UAAW,CACP3S,MAAOykB,EACP9Y,YAAY,GAEhB+G,UAAW,CACP1S,MAAO4kB,EACPjZ,YAAY,KAGbpI,CACX,EAKAhE,EAAQkT,mBAAqBA,EAqB7BlT,EAAQikB,oBAPR,SAA6B1S,EAAQqT,GACjC,IAAKrT,EACD,OAAO,EAEX,MAAMsT,EAAY0P,EAAmBhjB,EAAOyB,OAAS,GAAI4R,EAASzZ,MAClE,OAAO+H,EAAmB2R,IAAcA,GAAWxR,SAAU,CACjE,EAYArT,EAAQ+jB,mBAVR,SAA4B/Q,GACxB,IAAK,MAAMC,KAAQD,GAAS,GAAI,CAC5B,GAAkB,aAAdC,EAAKzC,KACL,MAAM,IAAIxH,EAAQqC,YAAY,2EAA2E4H,EAAKzC,UAElH,IAA6B,IAAzByC,EAAKxC,SAAS4C,OACd,MAAM,IAAIrK,EAAQqC,YAAY,SAAS4H,EAAKxC,SAAStF,iGAE7D,CACJ,EAgBAnL,EAAQ4N,cAAgBA,C,8BCvKxBrN,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoV,YAAcpV,EAAQge,oBAAsBhe,EAAQuhB,gCAAkCvhB,EAAQkV,UAAO,EAC7G,IAAIqG,EAAS,EAAQ,MACrBhb,OAAOC,eAAeR,EAAS,OAAQ,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOmX,EAAOrG,IAAM,IAClG,IAAIwT,EAAU,EAAQ,MACtBnoB,OAAOC,eAAeR,EAAS,kCAAmC,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOskB,EAAQnH,+BAAiC,IACzJhhB,OAAOC,eAAeR,EAAS,sBAAuB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOskB,EAAQ1K,mBAAqB,IACjIzd,OAAOC,eAAeR,EAAS,cAAe,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOskB,EAAQtT,WAAa,G,8BCPjH7U,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoV,YAAcpV,EAAQirB,qBAAuBjrB,EAAQosB,qBAAuBpsB,EAAQsrB,oBAAsBtrB,EAAQurB,gBAAkBvrB,EAAQi0B,mCAAgC,EACpL,MAAMpnB,EAAa,EAAQ,MACrB+nB,EAAyB,EAAQ,MACjCC,EAAkC,EAAQ,MAC1CX,EAAyB,EAAQ,MACjC1kB,EAAW,EAAQ,MACzB,IAAIslB,EAAkC,EAAQ,MAC9Cv0B,OAAOC,eAAeR,EAAS,gCAAiC,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO0wB,EAAgCb,6BAA+B,IAC7K,IAAI5kB,EAAqB,EAAQ,MACjC9O,OAAOC,eAAeR,EAAS,kBAAmB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOiL,EAAmBkc,eAAiB,IACpIhrB,OAAOC,eAAeR,EAAS,sBAAuB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOiL,EAAmBic,mBAAqB,IAC5I,IAAIyJ,EAAyB,EAAQ,MACrCx0B,OAAOC,eAAeR,EAAS,uBAAwB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO2wB,EAAuB3I,oBAAsB,IAClJ,IAAI4I,EAAyB,EAAQ,MACrCz0B,OAAOC,eAAeR,EAAS,uBAAwB,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO4wB,EAAuB/J,oBAAsB,IAClJ,MAAM7V,UAAoBvI,EAAWK,YACjC,KAAAmB,CAAM9G,EAAM7B,GAER,OADA,EAAI8J,EAASuU,oBAAoBxc,EAAKyL,OAC/B3S,KAAKkN,QAAQmE,KAAKC,YACpBlG,OAAOlE,EAAM,IACX7B,EACHyI,QAAS,IACFzI,GAASyI,QACZ,4BAA6B,iCAGhCT,aAAaiD,IAAe,EAAInB,EAASoC,qBAAqBjB,EAAYpJ,IACnF,CACA,YAAA4jB,CAAa5jB,EAAM7B,GACf,OAAI6B,EAAKkG,OACEonB,EAAgCZ,8BAA8B9I,aAAa9qB,KAAKkN,QAAShG,EAAM7B,GAEnGkvB,EAAuB3J,qBAAqBE,aAAa9qB,KAAKkN,QAAShG,EAAM7B,EACxF,CACA,QAAA2lB,CAAS9jB,EAAM7B,GACX,OAAI6B,EAAKkG,OACEonB,EAAgCZ,8BAA8B5I,SAAShrB,KAAKkN,QAAShG,EAAM7B,GAE/FkvB,EAAuB3J,qBAAqBI,SAAShrB,KAAKkN,QAAShG,EAAM7B,EACpF,CAIA,MAAA+H,CAAOlG,EAAM7B,GACT,OAAOwuB,EAAuB9H,qBAAqBM,qBAAqBrsB,KAAKkN,QAAShG,EAAM7B,EAChG,EAEJ1F,EAAQoV,YAAcA,C,u2DCjDtB,gBACA,aAQM6f,EAAgB,WAEpB,MAAsB,oBAAXC,QAA2BA,OAAeC,MAC5C,CACLC,SAAWF,OAAeC,MAAMC,SAChCC,UAAYH,OAAeC,MAAME,UACjCC,OAASJ,OAAeC,MAAMG,QAI3B,CACLF,SAAU,UAAMA,SAChBC,UAAW,UAAMA,UACjBC,OAAQ,UAAMA,OAElB,EAIMC,EAAc,SAAOC,GAAc,0C,kDACtB,SAAMjvB,MAAM,uIAAwI,CACnK2Y,OAAQ,OACR/Q,QAAS,CACP,eAAgB,oBAElB5G,KAAMkL,KAAK/R,UAAU,CACnB+0B,SAAU,CACR,CACE5T,MAAO,CACL,CACEkI,KAAMyL,W,OAOG,SAjBJ,SAiBmBE,Q,OAGpC,MAAO,CAAP,EAHqB,SACQC,WAAW,GAAG1lB,QACd4R,MAAM,GAAGkI,M,QAiBlC6L,EAAiB,whBAonCvB,UA9mCgB,SAAC7W,GAEb,IAAA/C,EAIE+C,EAAK,OAHP8W,EAGE9W,EAAK,gBAFP,EAEEA,EAAK,SAFP+W,OAAQ,IAAG,GAAEC,OAAQ,OAAQ1D,MAAO,QAAQ,EAC5C,EACEtT,EAAK,QADPiX,OAAO,IAAG,EAAAnS,QAAQld,MAAK,EAGnB,EAAsBsuB,IAAgBG,SAA0B,QAA/Dxe,EAAM,KAAEqf,EAAS,KAClB,EAA0BhB,IAAgBG,UAAS,GAAlDc,EAAQ,KAAEC,EAAW,KACrBC,EAAqBnB,IAAgBG,SAASU,GAAS,GACxD,EAAsCb,IAAgBG,UAAS,GAA9DiB,EAAc,KAAEC,EAAiB,KAClC,EAAoCrB,IAAgBG,UAAS,GAA5DmB,EAAa,KAAEC,EAAgB,KAChC,EAAsBvB,IAAgBG,SAAwB,MAArDqB,GAAF,KAAW,MAClB,EAAsCxB,IAAgBG,UAAS,GAA9DsB,EAAc,KAAEC,EAAiB,KAClC,EAAkC1B,IAAgBG,UAAS,GAA1DwB,EAAY,KAAEC,EAAe,KAC9B,EAAsC5B,IAAgBG,UAAS,GAA9D0B,EAAc,KAAEC,EAAiB,KAClC,EAAsC9B,IAAgBG,SAAS,GAA9D4B,EAAc,KAAEC,EAAiB,KAClCC,EAAoBjC,IAAgBK,OAAsB,MAE1D6B,EAAelC,IAAgBK,OAAuB,MACtD8B,EAAkBnC,IAAgBK,OAAsB,MACxD+B,EAAoBpC,IAAgBK,OAAiC,MACrEgC,EAAiBrC,IAAgBK,OAA8B,MAC/DiC,EAA4BtC,IAAgBK,QAAO,GACnDkC,EAAiBvC,IAAgBK,OAA2B,MAC5DmC,EAAkBxC,IAAgBK,OAAgC,MAClE,EAAsCL,IAAgBG,SAAwB,MAA7EsC,EAAc,KAAEC,EAAiB,KAClCC,EAAoB3C,IAAgBK,QAAO,GAC3C,GAAkDL,IAAgBG,UAAS,GAA1EyC,GAAoB,MAAEC,GAAuB,MA+B9CC,GAAa,SAAO9nB,EAAiB+nB,GAA2B,0C,0DACpE,IAAKd,EAAkBe,QAAS,U,iBAEb,O,sBAAA,GAAM1xB,MAAM,oDAA6C2wB,EAAkBe,QAAO,aAAa,CAC9G/Y,OAAQ,OACR/Q,QAAS,CACP,eAAgB,oBAElB5G,KAAMkL,KAAK/R,UAAU,CAAEuP,QAAO,EAAE+nB,OAAM,O,OAGxC,KARMzpB,EAAW,UAQH2pB,GACZ,MAAM,IAAItxB,MAAM,iCAA0B2H,EAASqI,OAAM,YAAIrI,EAAS4pB,a,qCAGxEtU,QAAQld,MAAM,yBAA0B,GACxCqvB,EAAQ,EAAgB,mB,+BAItBoC,GAAsB,qD,iGAEpBC,EAAczC,GAEdC,EAAA,Y,iBAEuB,O,sBAAA,GAAMtvB,MAAM,8CAAuCsvB,K,cAApEyC,EAAiB,UACJJ,GACE,GAAMI,EAAe5C,QADtC,M,cACI6C,EAAa,SACnBF,EAAcE,EAAW/C,QAAUI,E,aACA,MAA1B0C,EAAe1hB,QACxBiN,QAAQld,MAAM,kCAA2B2xB,EAAeH,a,sDAG1DtU,QAAQld,MAAM,yBAA0B,G,aAQ3B,OAJjB8vB,EAAU4B,GAIO,GAAM9xB,MAFD,uCAEsB,CAC1C2Y,OAAQ,OACR/Q,QAAS,CACP,eAAgB,oBAElB5G,KAAMkL,KAAK/R,UAAU,CACnB80B,OAAQ6C,O,cANN9pB,EAAW,UAUH2pB,GAAV,OACgB,GAAM3pB,EAASwb,OAAOxgB,OAAM,WAAM,uC,OAEpD,MAFMivB,EAAY,SAClB3U,QAAQld,MAAM,yCAAkC4H,EAASqI,OAAM,KAAK4hB,GAC9D,IAAI5xB,MAAM,iCAA0B2H,EAASqI,OAAM,cAAM4hB,I,QAGpD,SAAMjqB,EAASmnB,Q,QAG5B,KAHM1c,EAAO,UAGHyf,gBAAkBzf,EAAKyf,cAAch4B,MAE7C,MADAojB,QAAQld,MAAM,oCAAqC8L,KAAK/R,UAAUsY,IAC5D,IAAIpS,MAAM,gDAIlB,OADA+wB,EAAkB3e,EAAKyf,cAAch4B,OAC9B,CAAP,EAAOuY,EAAKyf,cAAch4B,O,QAI1B,O,WAFAojB,QAAQld,MAAM,kCAAmC,GACjDqvB,EAAQ,EAAgB,4BACjB,CAAP,EAAO,M,0BAIL0C,GAAc,SAAC7xB,G,MACwB,UAAjB,QAAtB,EAAAywB,EAAeW,eAAO,eAAEU,YAE1BrB,EAAeW,QAAQW,KAAKnmB,KAAK/R,UAAUmG,KAE3Cgd,QAAQld,MAAM,8CACdsvB,EAAU,QAEd,EAEM4C,GAAgB,WAChBrB,EAAeS,UAEjBT,EAAeS,QAAQa,iBAAiB7tB,SAAQ,SAAA8tB,GAC9CA,EAAMC,MACR,IACAxB,EAAeS,QAAU,MAGvBX,EAAeW,UACjBX,EAAeW,QAAQrF,QACvB0E,EAAeW,QAAU,MAGvBZ,EAAkBY,UACpBZ,EAAkBY,QAAQrF,QAC1ByE,EAAkBY,QAAU,MAG1BR,EAAgBQ,UAClBR,EAAgBQ,QAAQgB,UAAY,MAItCtC,GAAkB,EACpB,EAGA1B,IAAgBI,WAAU,WACxB,IAAIuC,EAAkBK,QAAtB,CACAL,EAAkBK,SAAU,EAE5B9B,GAAY,GACZ,IAAM+C,EAAsBC,aAAaC,QAAQ,yBAqBjD,OAnBE5C,IADE0C,GApJwB,mC,4DAC5B,GAAI3B,EAA0BU,QAAS,UACvCV,EAA0BU,SAAU,E,iBAIjB,O,sBADXvhB,EAAM,IAAIzU,KACC,GAAMsE,MAAM,4CAA6C,CACxE2Y,OAAQ,OACR/Q,QAAS,CACP,eAAgB,oBAElB5G,KAAMkL,KAAK/R,UAAU,CACnB8S,GAAI6lB,OAAOC,aACXC,OAAQ,YACRn2B,KAAMsT,EAAIxU,cAAc6mB,MAAM,KAAK,GACnCyQ,KAAM9iB,EAAI+iB,eAAe1Q,MAAM,KAAK,GACpCpZ,SAAU,GACVsM,aAAc4Z,O,OAGG,SAdJ,SAcmBH,Q,cAA9BgE,EAAe,SACrB7V,QAAQ8V,IAAI,wBAAyBD,GACrCxC,EAAkBe,QAAUyB,EAAalmB,G,+BAEzCqQ,QAAQld,MAAM,+BAAgC,GAC9CqvB,EAAQ,EAAgB,yB,8BAkI1BoC,KAAsBzuB,MAAK,SAAA6V,GACrBA,GACFmY,EAAkBnY,EAEtB,IAEIxD,IACFob,EAAgBa,QAAU,IAAI,UAAO,CACnCjc,OAAM,EACNG,yBAAyB,KAItB,WACL0c,KAEIpB,EAAgBQ,UAClBR,EAAgBQ,QAAQgB,UAAY,KACpCxB,EAAgBQ,QAAQ2B,SACxBnC,EAAgBQ,QAAU,KAE9B,CAjCqC,CAkCvC,GAAG,CAACpC,EAAiB7Z,IAErB,IAAM6d,GAAe,SAAOC,EAAkBC,GAAa,0C,2BACzD,MAAO,CAAP,EAAO,IAAI3wB,SAAc,SAACC,GACxBK,YAAW,WACT,IAAMswB,EAAuBC,SAASC,cAAc,OACpDF,EAAqBG,MAAMC,QAAU,wDAE3BL,EAAK3H,KAAO2H,EAAKM,MAAQ,EAAC,+BAC3BN,EAAKO,IAAMP,EAAKQ,OAAS,EAAC,0KAOnCN,SAAS1yB,KAAKizB,YAAYR,GAE1B,IAAK,IAAI70B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAMs1B,EAAcR,SAASC,cAAc,OAC3CO,EAAYN,MAAMC,QAAU,iMAMY,GAAW,GAAJj1B,EAAQ,6LAIC,IAAJA,EAAQ,oFAG5D60B,EAAqBQ,YAAYC,EACnC,CAEA,IAAMC,EAAWT,SAASC,cAAc,OACxCQ,EAASP,MAAMC,QAAU,qYAYzBJ,EAAqBQ,YAAYE,GAEjC,IAAMC,EAAa,IAAIC,WAAW,QAAS,CACzCC,KAAM3F,OACN4F,SAAS,EACTC,YAAY,IAIRC,EAAoBlB,EAAQmB,iBAAiB,yDAC7CC,EAAmBF,EAAkBn2B,OAAS,EAAIm2B,EAAkB,GAAoBlB,EAC9FjW,QAAQ8V,IAAI,oBAAqBuB,GACjCA,EAAiBC,cAAcR,GAE/B,IAAMS,EAAoBF,EAAiBf,MAAMkB,UAC3CC,EAAqBJ,EAAiBf,MAAMoB,WAC5CC,EAAiBN,EAAiBf,MAAMsB,OAE9CP,EAAiBf,MAAMoB,WAAa,oBACpCL,EAAiBf,MAAMkB,UAAY,oEACnCH,EAAiBf,MAAMsB,OAAS,MAEhC/xB,YAAW,WACTwxB,EAAiBf,MAAMkB,UAAYD,EACnCF,EAAiBf,MAAMoB,WAAaD,EACpCJ,EAAiBf,MAAMsB,OAASD,EAEhCxB,EAAqBJ,SACrBvwB,GACF,GAAG,IAEL,GAAG,KACL,I,QA4GIqyB,GAAmB,SAAOC,EAA0BC,GAA0B,0C,4GAE9D,EAAAA,GAAclE,GAAd,MAAgC,GAAMU,M,SAAN,S,iBAClD,OADMyD,EAAY,IAOZ,EAAK,IAAIC,kBACfzE,EAAkBY,QAAU,EAE5B0D,EAAY7C,iBAAiB7tB,SAAQ,SAAA8tB,GACnC,EAAGgD,SAAShD,EAAO4C,EACrB,IAEKlE,EAAgBQ,WACb+D,EAAU/B,SAASC,cAAc,UAC/B+B,UAAW,EACnBhC,SAAS1yB,KAAKizB,YAAYwB,GAC1BvE,EAAgBQ,QAAU+D,GAG5B,EAAGE,QAAU,SAAChV,GACZ,GAAIuQ,EAAgBQ,SAA4B,UAAjB/Q,EAAE6R,MAAMjyB,KAAkB,CACvD,IAAM2G,EAAS,IAAI0uB,YAAY,CAACjV,EAAE6R,QAClCtB,EAAgBQ,QAAQgB,UAAYxrB,CACtC,CACF,EAEM2uB,EAAK,EAAGC,kBAAkB,cAChC/E,EAAeW,QAAUmE,EAEzBA,EAAGE,OAAS,WACV5D,GAAY,CACVloB,KAAM,iBACN+rB,QAAS,CACPvpB,MAAO,CAAC,CACNxC,KAAM,WACNrF,KAAM,YACNoH,YAAa,wEACbD,WAAY,CACV9B,KAAM,SACNgsB,WAAY,CACVC,SAAU,CACRC,MAAO,CACL,CACElsB,KAAM,SACN+B,YAAa,4EAEf,CACE/B,KAAM,QACNmsB,MAAO,CACLnsB,KAAM,UAER+B,YAAa,yGAGjBA,YAAa,mJAGjBqqB,SAAU,CAAC,eAGf9pB,YAAa,OACb+pB,eAAgB,CACdrsB,KAAM,aACNssB,iBAAiB,EACjBC,oBAAoB,GAEtBC,0BAA2B,CACzB5d,MAAO,yBACP6d,SAAU,KACVzH,OAAQ,qEAIhB,EAEA4G,EAAGc,UAAY,SAAChW,GACd,IACE,IAAM,EAAUzU,KAAKpE,MAAM6Y,EAAElO,MAM7B,OAAQ,EAAQxI,MACd,IAAK,kBAEHmmB,GAAkB,GAClBE,GAAgB,GAChB,MAEF,IAAK,qBACC,EAAQ9M,MACVgO,GAAW,EAAQhO,KAAM,SAE3B,MAEF,IAAK,wDACHlG,QAAQ8V,IAAI,mBAAoB,EAAQwD,YACxCpF,GAAW,EAAQoF,WAAY,SAC/B,MAEF,IAAK,iCACHtZ,QAAQ8V,IAAI,qBAAsB,EAAQwD,YAC1CpF,GAAW,EAAQoF,WAAY,WAC/B,MAEF,IAAK,4BAsFL,IAAK,yCAIL,IAAK,wCAEH,MAxFF,IAAK,oCA8FL,IAAK,8BAEHlH,EAAU,aAEV,MA7FF,IAAK,oCAEHA,EAAU,cACV,MAEF,IAAK,gBAEH,IAAkB,YAAQ1nB,SAASgiB,OAAjB,eAAyB,CAAtC,IAAM6M,EAAG,KACZ,OAAQA,EAAI5sB,MACV,IAAK,UAEH,MAEF,IAAK,gBAEH,GAAiB,cAAb4sB,EAAIjyB,MAAwBiyB,EAAIhwB,UAElC,IACE,IAAIiwB,EAAYD,EAAIhwB,UASZ,EAAS,s5BAYXiwB,EAAS,gCAEb9H,EAAY,GAAQ5rB,MAAK,SAAA4E,GACvBA,EAAWA,EAAStJ,QAAQ,UAAW,IAAIA,QAAQ,MAAO,IAAI+gB,OAE9D,IA5QMyW,EA4QAa,EAAa7qB,KAAKpE,MAAME,GA5QxBkuB,EA6QWa,EAAWb,SA7QK,mC,gEACzD,GAAIpG,EAAgB,MAAO,CAAP,GAAO,GAG3B,GAAyB,KADnBkH,EAAY97B,MAAMC,QAAQ+6B,GAAYA,EAAW,CAACA,IAC1C53B,OAAc,MAAO,CAAP,GAAO,GAEnCgf,QAAQ8V,IAAI,6BAA8B4D,GAEtCC,EAAoC,K,uCAEtClH,GAAkB,G,WAETzwB,G,yEACD43B,EAAkBF,EAAU13B,GAE9BA,EAAI,EACN,GAAM,IAAIuD,SAAQ,SAAAC,GAAW,OAAAK,WAAWL,EAAS,IAApB,KAD3B,M,OACF,S,iBAIF,GADIywB,OAAO,EACP2D,EAAgB9W,WAAW,MAAO,CAEpC,MADM+W,EAAOzD,SAAS0D,SAASF,EAAiBxD,SAAU,KAAM2D,YAAYC,wBAAyB,MAAMC,2BACrFC,S,OACpBla,QAAQ8V,IAAI,qCAAsC8D,GAClD5Z,QAAQ8V,IAAI+D,GACZ3F,GAAW,sCAAwC0F,EAAiB,W,YAGtE3D,EAAU4D,CACZ,MACE5D,EAAUG,SAAS+D,cAAcP,GAGnC,OAAK3D,GAMCC,EAAOD,EAAQmE,wBAGhBT,KACHA,EAAgBvD,SAASC,cAAc,QACzB1mB,GAAK,kBAQnBgqB,EAAcU,UANQ,0OAOtBV,EAAcrD,MAAMC,QAAU,8TAW9BH,SAAS1yB,KAAKizB,YAAYgD,GAGpBW,EAAgBjJ,OAAOkJ,WACvBC,EAAiBnJ,OAAOoJ,YAC9Bd,EAAcrD,MAAM/H,KAAO,UAAG+L,EAAgB,EAAC,MAC/CX,EAAcrD,MAAMG,IAAM,UAAG+D,EAAiB,EAAC,OAIjDb,EAAee,aAEf,GAAM,IAAIn1B,SAAc,SAAAC,GACtBK,YAAW,WACT8zB,EAAerD,MAAM/H,KAAO,UAAG2H,EAAK3H,KAAO2H,EAAKM,MAAQ,EAAC,MACzDmD,EAAerD,MAAMG,IAAM,UAAGP,EAAKO,IAAMP,EAAKQ,OAAS,EAAI,GAAE,MAE7D7wB,YAAW,WACT8zB,EAAerD,MAAMqE,UAAY,0CACjCn1B,GACF,GAAG,IACL,GAAG,IACL,OApDEwa,QAAQ8V,IAAI,qBAAsB8D,GAClC1F,GAAW,sBAAwB0F,EAAiB,W,oBAqDtD,OAZA,SAYA,GAAM5D,GAAaC,EAASC,I,cAA5B,S,SA5EOl0B,EAAI,E,wBAAGA,EAAI03B,EAAU14B,O,KAArBgB,IAA2B,M,iEAAEA,I,aAoFtC,OALA6D,YAAW,WACT8zB,SAAAA,EAAe5D,SACftD,GAAkB,EACpB,GAAG,KAEI,CAAP,GAAO,G,OAKP,O,WAHAzS,QAAQld,MAAM,uBAAwB,GACtC62B,SAAAA,EAAe5D,SACftD,GAAkB,GACX,CAAP,GAAO,G,uBAyKa,IAAG/sB,OAAM,SAAAulB,GACPjL,QAAQld,MAAM,wBAAyBmoB,EACzC,GAIJ,CAAE,MAAOnoB,GACPkd,QAAQld,MAAM,oCAAqCA,GACnDkd,QAAQ8V,IAAIyD,EAAIhwB,WAChB2qB,GAAW,qCAAuCqF,EAAIhwB,UAAW,UACnE,CAGFsrB,GAAY,CACVloB,KAAM,2BACN4S,KAAM,CACJ5S,KAAM,uBACNiuB,QAASrB,EAAIqB,QACblO,OAAQ9d,KAAK/R,WAAU,MAI3Bg4B,GAAY,CACVloB,KAAM,oBAId,CAEA,MAUF,IAAK,8BACHylB,EAAU,WACV,MAQF,IAAK,QACH,GAA2B,oBAAvB,EAAQtvB,MAAM+3B,KAA4B,CAC5C7a,QAAQld,MAAM,mBAAoB,GAClCsvB,EAAU,QACVY,GAAgB,GAChBiB,IAAwB,GACxB,KACF,CACAjU,QAAQld,MAAM,oBAAqB,GACnCqvB,EAAQ,IAAIpvB,MAAM,EAAQD,MAAME,SAAW,qBAAsB,oBACjEovB,EAAU,QACVY,GAAgB,GAChBiB,IAAwB,GACxB,MAEF,QAnJqB,CAAC,QAAS,cAAe,qBAC9C,sBAAuB,uBAAwB,wBAAyB,sBACxE,mBAAoB,mBAkJE5mB,MAAK,SAAAytB,GAAY,SAAQnuB,KAAK8O,SAASqf,EAAtB,KACnC9a,QAAQ8V,IAAI,aAAc,EAAQnpB,KAAM,GAGhD,CAAE,MAAO7J,GACPkd,QAAQld,MAAM,iCAAkCA,GAChDsvB,EAAU,QACV6B,IAAwB,EAC1B,CACF,EAGc,GAAM,EAAG8G,iBA9OrB/a,QAAQld,MAAM,kDACdkwB,GAAgB,GACT,CAAP,GAAO,I,OA6OT,OADMgI,EAAQ,SACd,GAAM,EAAGC,oBAAoBD,I,OAE7B,GAFA,UAEK,EAAGE,mBAAqB,EAAGA,iBAAiBC,IAC/C,MAAM,IAAIp4B,MAAM,oCAOE,SAAML,MAAM,UAJhB,qCAI0B,kBAH5B,sCAG+C,CAC3D2Y,OAAQ,OACR3X,KAAM,EAAGw3B,iBAAiBC,IAC1B7wB,QAAS,CACP0P,cAAe,iBAAUge,GACzB,eAAgB,sB,cALdoD,EAAc,UASH/G,GAAb,MACgB,GAAM+G,EAAYlV,OAAOxgB,OAAM,WAAM,uC,OAGvD,MAHMivB,EAAY,SAClB3U,QAAQld,MAAM,wCAAyCs4B,EAAYroB,QACnEiN,QAAQld,MAAM,iBAAkB6xB,GAC1B,IAAI5xB,MAAM,8CAAuCq4B,EAAYroB,OAAM,cAAM4hB,I,OAG/D,SAAMyG,EAAYlV,Q,OAOpC,OAPMmV,EAAY,SAEZC,EAAS,CACb3uB,KAAM,SACNwuB,IAAKE,GAGP,GAAM,EAAGE,qBAAqBD,I,OAE9B,OAFA,SAEO,CAAP,GAAO,G,QAKP,O,WAHAtb,QAAQld,MAAM,6BAA8B,GAC5CqvB,EAAQ,EAAgB,gCACxBa,GAAgB,GACT,CAAP,GAAO,G,0BAILwI,GAA2B,qD,gEAC/B,IAAKnJ,EAAU,MAAO,CAAP,GAAO,G,gDAEpBD,EAAU,cAENoB,EAAkBY,SAAkD,UAAjB,QAAtB,EAAAX,EAAeW,eAAO,eAAEU,aAAyBnB,EAAeS,SAC/FT,EAAeS,QAAQa,iBAAiB7tB,SAAQ,SAAA8tB,GAC9CA,EAAMuG,SAAU,CAClB,IACArJ,EAAU,aACH,CAAP,GAAO,IALL,M,OAOFpS,QAAQ8V,IAAI,sCACZd,K,iBAKsB,O,sBAFpBhC,GAAgB,GAEI,GAAM0I,UAAUC,aAAaC,aAAa,CAC5D7iB,MAAO,CACL8iB,kBAAkB,EAClBC,kBAAkB,EAClBC,iBAAiB,EACjBC,aAAc,EACdC,WAAY,S,cANVnE,EAAc,SAUpBnE,EAAeS,QAAU0D,GAEN,EAAAjE,GAAA,MAAkB,GAAMU,M,SAAN,S,iBAEjB,SAAMsD,GAAiBC,EAFxB,I,OAInB,OAFoB,UAapB1F,EAAU,aACH,CAAP,GAAO,KAVL0F,EAAY7C,iBAAiB7tB,SAAQ,SAAA8tB,GACnCA,EAAMC,MACR,IACAxB,EAAeS,QAAU,KACzBhC,EAAU,QACVY,GAAgB,GACT,CAAP,GAAO,I,OAUT,O,WAJAhT,QAAQld,MAAM,mCAAoC,GAClDqvB,EAAQ,EAAgB,qCACxBC,EAAU,QACVY,GAAgB,GACT,CAAP,GAAO,G,4BAOX,O,WAHAZ,EAAU,QACVY,GAAgB,GAChBb,EAAQ,EAAgB,gCACjB,CAAP,GAAO,G,0BAuDX,OAAKE,EAKH,gDACE,+BACE6J,IAAK5I,EACLgD,MAAK,KACHrE,SAAU,SACPM,GAAiB,CACpBqF,OAAQ,OAGV,+BAAKuE,UAAU,kBACXzJ,GAAiBG,GACjB,+BAAKsJ,UAAU,wBAAsB,2CAKtClJ,GACC,+BAAKkJ,UAAU,oBACb,+BAAKA,UAAU,4BACb,kCAAQA,UAAU,yBAAyBC,QA7B3B,WAC5BlJ,GAAkB,GAClBE,EAAkB,EACpB,GA0BuF,KAErD,IAAnBD,GACC,+BAAKgJ,UAAU,yBACb,+BAAKA,UAAU,qCAAmC,MAClD,yDACA,uHAIgB,IAAnBhJ,GACC,+BAAKgJ,UAAU,yBACb,+BAAKA,UAAU,kCAAgC,MAC/C,6DACA,0GAIgB,IAAnBhJ,GACC,+BAAKgJ,UAAU,yBACb,+BAAKA,UAAU,oCAAkC,KACjD,qDACA,0FAIJ,+BAAKA,UAAU,yBACb,gCAAMA,UAAW,cAA0B,IAAnBhJ,EAAuB,SAAW,MAC1D,gCAAMgJ,UAAW,cAA0B,IAAnBhJ,EAAuB,SAAW,MAC1D,gCAAMgJ,UAAW,cAA0B,IAAnBhJ,EAAuB,SAAW,OAG5D,kCAAQgJ,UAAU,wBAAwBC,QAvE3B,WACvBjJ,EAAiB,EACnBC,EAAkBD,EAAiB,IAEnCD,GAAkB,GAClBE,EAAkB,GAClBoI,KAEJ,GAgEiBrI,EAAiB,EAAI,OAAS,iBAMvC,+BACEgJ,UAAW,6BAAsBpJ,EAAe,eAAiBhgB,GACjEqpB,QAASrJ,OAAe9qB,EAvGD,qD,kDAC/B,OAAKoqB,EAEAK,EASAsB,GAAD,MACc,GAAMwH,OATtB7I,GAAiB,GACjB2C,aAAa+G,QAAQ,wBAAyB,QAG9CnJ,GAAkB,GAClB,KARa,I,cAYG,UAEde,IAAwB,G,aA3BvB5B,IAEDsB,EAAeS,SACjBT,EAAeS,QAAQa,iBAAiB7tB,SAAQ,SAAA8tB,GAC9CA,EAAMC,MACR,IAGFH,KACA5C,EAAU,SAsBR6B,IAAwB,G,mCAqFlBqC,MAAOvD,EAAe,CAAEuJ,OAAQ,gBAAcr0B,EAC9Cs0B,MAAOxJ,EAAe,kBACJ,SAAXhgB,EAAoB,gCACT,cAAXA,EAAyB,4BACd,eAAXA,EAA0B,6BAC1B,6CAENggB,GAAgB,6BAAGoJ,UAAU,6BAC5BpJ,GAA2B,SAAXhgB,GAAqB,6BAAGopB,UAAU,2BAClDpJ,GAA2B,cAAXhgB,GAA0B,6BAAGopB,UAAU,0BACvDpJ,GAA2B,eAAXhgB,GAA2B,6BAAGopB,UAAU,2BACxDpJ,GAA2B,YAAXhgB,GAAwB,6BAAGopB,UAAU,0BAM7D,qCAAQ,0wTAlFH,IA6UX,C,8BCnrCAz/B,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQuE,UAAYvE,EAAQqgC,QAAUrgC,EAAQyE,UAAYzE,EAAQsgC,UAAYtgC,EAAQugC,QAAUvgC,EAAQ2C,OAAS3C,EAAQgyB,OAAShyB,EAAQwgC,qBAAuBxgC,EAAQygC,WAAQ,EACjL,MAAM7/B,EAAY,EAAQ,MACpBC,EAAMN,OAAOO,UAAUC,eACvBS,EAAWC,MAAMC,QACjBg/B,EAAY,MACd,MAAMC,EAAQ,GACd,IAAK,IAAI96B,EAAI,EAAGA,EAAI,MAAOA,EACvB86B,EAAMh/B,KAAK,MAAQkE,EAAI,GAAK,IAAM,IAAMA,EAAEkT,SAAS,KAAK6nB,eAE5D,OAAOD,CACV,EANiB,GAyFlB3gC,EAAQygC,MAvDR,SAASA,EAAMI,EAAQC,EAAQp7B,EAAU,CAAC,GACtC,IAAKo7B,EACD,OAAOD,EAEX,GAAsB,iBAAXC,EAAqB,CAC5B,GAAIt/B,EAASq/B,GACTA,EAAOl/B,KAAKm/B,OAEX,KAAID,GAA4B,iBAAXA,EAOtB,MAAO,CAACA,EAAQC,IANXp7B,IAAYA,EAAQq7B,cAAgBr7B,EAAQs7B,mBAC5CngC,EAAIwC,KAAK9C,OAAOO,UAAWggC,MAC5BD,EAAOC,IAAU,EAKzB,CACA,OAAOD,CACX,CACA,IAAKA,GAA4B,iBAAXA,EAClB,MAAO,CAACA,GAAQI,OAAOH,GAE3B,IAAII,EAAcL,EAKlB,OAJIr/B,EAASq/B,KAAYr/B,EAASs/B,KAE9BI,EAlCR,SAAyBJ,EAAQp7B,GAC7B,MAAM1B,EAAM0B,GAAWA,EAAQq7B,aAAexgC,OAAOkL,OAAO,MAAQ,CAAC,EACrE,IAAK,IAAI5F,EAAI,EAAGA,EAAIi7B,EAAOj8B,SAAUgB,OACR,IAAdi7B,EAAOj7B,KACd7B,EAAI6B,GAAKi7B,EAAOj7B,IAGxB,OAAO7B,CACX,CA0BsBm9B,CAAgBN,EAAQn7B,IAEtClE,EAASq/B,IAAWr/B,EAASs/B,IAC7BA,EAAO71B,SAAQ,SAAUmY,EAAMvd,GAC3B,GAAIhF,EAAIwC,KAAKw9B,EAAQh7B,GAAI,CACrB,MAAMu7B,EAAaP,EAAOh7B,GACtBu7B,GAAoC,iBAAfA,GAA2Bhe,GAAwB,iBAATA,EAC/Dyd,EAAOh7B,GAAK46B,EAAMW,EAAYhe,EAAM1d,GAGpCm7B,EAAOl/B,KAAKyhB,EAEpB,MAEIyd,EAAOh7B,GAAKud,CAEpB,IACOyd,GAEJtgC,OAAOwE,KAAK+7B,GAAQO,QAAO,SAAUC,EAAKhgC,GAC7C,MAAMb,EAAQqgC,EAAOx/B,GAOrB,OANIT,EAAIwC,KAAKi+B,EAAKhgC,GACdggC,EAAIhgC,GAAOm/B,EAAMa,EAAIhgC,GAAMb,EAAOiF,GAGlC47B,EAAIhgC,GAAOb,EAER6gC,CACX,GAAGJ,EACP,EAQAlhC,EAAQwgC,qBANR,SAA8BK,EAAQC,GAClC,OAAOvgC,OAAOwE,KAAK+7B,GAAQO,QAAO,SAAUC,EAAKhgC,GAE7C,OADAggC,EAAIhgC,GAAOw/B,EAAOx/B,GACXggC,CACX,GAAGT,EACP,EAgBA7gC,EAAQgyB,OAdR,SAAgB7D,EAAKwF,EAAGnxB,GACpB,MAAM++B,EAAiBpT,EAAIlpB,QAAQ,MAAO,KAC1C,GAAgB,eAAZzC,EAEA,OAAO++B,EAAet8B,QAAQ,iBAAkBu8B,UAGpD,IACI,OAAOC,mBAAmBF,EAC9B,CACA,MAAOra,GACH,OAAOqa,CACX,CACJ,EAEA,MAAMG,EAAQ,KA8Dd1hC,EAAQ2C,OA7DO,CAACwrB,EAAKwT,EAAiBn/B,EAASo/B,EAAO7+B,KAGlD,GAAmB,IAAforB,EAAItpB,OACJ,OAAOspB,EAEX,IAAI0T,EAAS1T,EAOb,GANmB,iBAARA,EACP0T,EAAS3X,OAAOppB,UAAUiY,SAAS1V,KAAK8qB,GAEpB,iBAARA,IACZ0T,EAAS1gC,OAAOgtB,IAEJ,eAAZ3rB,EACA,OAAOukB,OAAO8a,GAAQ58B,QAAQ,mBAAmB,SAAU68B,GACvD,MAAO,SAAWzoB,SAASyoB,EAAG9X,MAAM,GAAI,IAAM,KAClD,IAEJ,IAAIoT,EAAM,GACV,IAAK,IAAIj4B,EAAI,EAAGA,EAAI08B,EAAOh9B,OAAQM,GAAKu8B,EAAO,CAC3C,MAAMK,EAAUF,EAAOh9B,QAAU68B,EAAQG,EAAO7X,MAAM7kB,EAAGA,EAAIu8B,GAASG,EAChEhgC,EAAM,GACZ,IAAK,IAAIgE,EAAI,EAAGA,EAAIk8B,EAAQl9B,SAAUgB,EAAG,CACrC,IAAIsL,EAAI4wB,EAAQC,WAAWn8B,GACjB,KAANsL,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClBpO,IAAWnC,EAAU0U,UAAkB,KAANnE,GAAoB,KAANA,GAEhDtP,EAAIA,EAAIgD,QAAUk9B,EAAQ/a,OAAOnhB,GAGjCsL,EAAI,IACJtP,EAAIA,EAAIgD,QAAU67B,EAAUvvB,GAG5BA,EAAI,KACJtP,EAAIA,EAAIgD,QAAU67B,EAAU,IAAQvvB,GAAK,GAAMuvB,EAAU,IAAY,GAAJvvB,GAGjEA,EAAI,OAAUA,GAAK,MACnBtP,EAAIA,EAAIgD,QACJ67B,EAAU,IAAQvvB,GAAK,IAAOuvB,EAAU,IAASvvB,GAAK,EAAK,IAASuvB,EAAU,IAAY,GAAJvvB,IAG9FtL,GAAK,EACLsL,EAAI,QAAiB,KAAJA,IAAc,GAA+B,KAAxB4wB,EAAQC,WAAWn8B,IACzDhE,EAAIA,EAAIgD,QACJ67B,EAAU,IAAQvvB,GAAK,IACnBuvB,EAAU,IAASvvB,GAAK,GAAM,IAC9BuvB,EAAU,IAASvvB,GAAK,EAAK,IAC7BuvB,EAAU,IAAY,GAAJvvB,GAC9B,CACAisB,GAAOv7B,EAAIiD,KAAK,GACpB,CACA,OAAOs4B,CAAG,EAuBdp9B,EAAQugC,QApBR,SAAiB9/B,GACb,MAAM8xB,EAAQ,CAAC,CAAEvuB,IAAK,CAAE0H,EAAGjL,GAASkqB,KAAM,MACpCsX,EAAO,GACb,IAAK,IAAIp8B,EAAI,EAAGA,EAAI0sB,EAAM1tB,SAAUgB,EAAG,CACnC,MAAMud,EAAOmP,EAAM1sB,GAEb7B,EAAMof,EAAKpf,IAAIof,EAAKuH,MACpB5lB,EAAOxE,OAAOwE,KAAKf,GACzB,IAAK,IAAImB,EAAI,EAAGA,EAAIJ,EAAKF,SAAUM,EAAG,CAClC,MAAM7D,EAAMyD,EAAKI,GACX+8B,EAAMl+B,EAAI1C,GACG,iBAAR4gC,GAA4B,OAARA,IAAuC,IAAvBD,EAAKrO,QAAQsO,KACxD3P,EAAM5wB,KAAK,CAAEqC,IAAKA,EAAK2mB,KAAMrpB,IAC7B2gC,EAAKtgC,KAAKugC,GAElB,CACJ,CAEA,OA1LJ,SAAuB3P,GACnB,KAAOA,EAAM1tB,OAAS,GAAG,CACrB,MAAMue,EAAOmP,EAAMvJ,MACnB,IAAK5F,EACD,SACJ,MAAMpf,EAAMof,EAAKpf,IAAIof,EAAKuH,MAC1B,GAAInpB,EAASwC,GAAM,CACf,MAAMm+B,EAAY,GAClB,IAAK,IAAIh9B,EAAI,EAAGA,EAAInB,EAAIa,SAAUM,OACR,IAAXnB,EAAImB,IACXg9B,EAAUxgC,KAAKqC,EAAImB,IAI3Bie,EAAKpf,IAAIof,EAAKuH,MAAQwX,CAC1B,CACJ,CACJ,CAwKIC,CAAc7P,GACP9xB,CACX,EAKAT,EAAQsgC,UAHR,SAAmBt8B,GACf,MAA+C,oBAAxCzD,OAAOO,UAAUiY,SAAS1V,KAAKW,EAC1C,EAQAhE,EAAQyE,UANR,SAAmBT,GACf,SAAKA,GAAsB,iBAARA,KAGTA,EAAIgD,aAAehD,EAAIgD,YAAYq7B,UAAYr+B,EAAIgD,YAAYq7B,SAASr+B,IACtF,EAKAhE,EAAQqgC,QAHR,SAAiBiC,EAAGC,GAChB,MAAO,GAAGtB,OAAOqB,EAAGC,EACxB,EAYAviC,EAAQuE,UAVR,SAAmB29B,EAAK1vB,GACpB,GAAIhR,EAAS0gC,GAAM,CACf,MAAMM,EAAS,GACf,IAAK,IAAI38B,EAAI,EAAGA,EAAIq8B,EAAIr9B,OAAQgB,GAAK,EACjC28B,EAAO7gC,KAAK6Q,EAAG0vB,EAAIr8B,KAEvB,OAAO28B,CACX,CACA,OAAOhwB,EAAG0vB,EACd,C,oCCjOA,IAWIO,EAXA/5B,EAA0BrI,MAAQA,KAAKqI,wBAA2B,SAAUC,EAAUC,EAAOnI,EAAOqG,EAAM+B,GAC1G,GAAa,MAAT/B,EAAc,MAAM,IAAInB,UAAU,kCACtC,GAAa,MAATmB,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,2EACvG,MAAiB,MAATmB,EAAe+B,EAAExF,KAAKsF,EAAUlI,GAASoI,EAAIA,EAAEpI,MAAQA,EAAQmI,EAAMtD,IAAIqD,EAAUlI,GAASA,CACxG,EACIqI,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EAEApI,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQmf,MAAQnf,EAAQ0iC,SAAW1iC,EAAQ2iC,UAAY3iC,EAAQ4iC,kBAAoB5iC,EAAQ6iC,kBAAoB7iC,EAAQoc,mBAAqBpc,EAAQ8iC,MAAQ9iC,EAAQ+iC,OAAS/iC,EAAQgjC,WAAahjC,EAAQijC,mBAAqBjjC,EAAQkjC,iBAAmBljC,EAAQmjC,mBAAqBnjC,EAAQojC,cAAgBpjC,EAAQqjC,YAAcrjC,EAAQsjC,cAAgBtjC,EAAQ+b,QAAU/b,EAAQujC,cAAgBvjC,EAAQwjC,YAAcxjC,EAAQ6W,MAAQ7W,EAAQyjC,SAAWzjC,EAAQgO,iBAAmBhO,EAAQ0jC,sBAAwB1jC,EAAQ2jC,YAAc3jC,EAAQggB,aAAehgB,EAAQ6b,UAAY7b,EAAQ4jC,WAAa5jC,EAAQmoB,WAAanoB,EAAQ8V,4BAA8B9V,EAAQooB,sCAAmC,EACvrB,MAAMyb,EAAY,EAAQ,MACpBxX,EAAc,EAAQ,MACtBrjB,EAAU,EAAQ,MAClB0f,EAAU,EAAQ,MAClBhN,EAAY,EAAQ,MAC1B,IAAIgE,EAAY,EAAQ,MAIxBrY,eAAey8B,EAAqB/kB,GAChC,MAAM,SAAExQ,GAAawQ,EACrB,GAAIA,EAAMrZ,QAAQ+H,OAId,OAHAq1B,EAAM,WAAYv0B,EAASqI,OAAQrI,EAAS7G,IAAK6G,EAASJ,QAASI,EAAShH,MAGxEwX,EAAMrZ,QAAQq+B,cACPhlB,EAAMrZ,QAAQq+B,cAAcvS,gBAAgBjjB,EAAUwQ,EAAM7V,YAEhEmjB,EAAYO,OAAO4E,gBAAgBjjB,EAAUwQ,EAAM7V,YAG9D,GAAwB,MAApBqF,EAASqI,OACT,OAAO,KAEX,GAAImI,EAAMrZ,QAAQwQ,iBACd,OAAO3H,EAEX,MAAMy1B,EAAcz1B,EAASJ,QAAQ/J,IAAI,gBACnC6/B,EAAYD,GAAajb,MAAM,KAAK,IAAI/C,OAE9C,GADeie,GAAW3kB,SAAS,qBAAuB2kB,GAAWxQ,SAAS,SAClE,CACR,MAAMiC,QAAannB,EAASmnB,OAE5B,OADAoN,EAAM,WAAYv0B,EAASqI,OAAQrI,EAAS7G,IAAK6G,EAASJ,QAASunB,GAC5DwO,EAAcxO,EAAMnnB,EAC/B,CACA,MAAMwb,QAAaxb,EAASwb,OAG5B,OAFA+Y,EAAM,WAAYv0B,EAASqI,OAAQrI,EAAS7G,IAAK6G,EAASJ,QAAS4b,GAE5DA,CACX,CACA,SAASma,EAAczjC,EAAO8N,GAC1B,OAAK9N,GAA0B,iBAAVA,GAAsBgB,MAAMC,QAAQjB,GAC9CA,EAEJF,OAAOC,eAAeC,EAAO,cAAe,CAC/CA,MAAO8N,EAASJ,QAAQ/J,IAAI,gBAC5BgI,YAAY,GAEpB,CA1CA7L,OAAOC,eAAeR,EAAS,mCAAoC,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOsb,EAAU0I,gCAAkC,IAC7J7nB,OAAOC,eAAeR,EAAS,8BAA+B,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOsb,EAAU5J,2BAA6B,IACnJvV,OAAOC,eAAeR,EAAS,aAAc,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAOsb,EAAUyI,UAAY,IA6CjH,MAAMyb,UAAmBx6B,QACrB,WAAApC,CAAYm9B,EAAiB31B,EAAgBs1B,GACzC32B,OAAO9D,IAIHA,EAAQ,KAAK,IAEjBhJ,KAAK8jC,gBAAkBA,EACvB9jC,KAAKmO,cAAgBA,CACzB,CACA,WAAAd,CAAY02B,GACR,OAAO,IAAIR,EAAWvjC,KAAK8jC,iBAAiB98B,MAAO0X,GAAUmlB,EAAcE,QAAgB/jC,KAAKmO,cAAcuQ,GAAQA,GAAQA,EAAMxQ,WACxI,CAcA,UAAA81B,GACI,OAAOhkC,KAAK8jC,gBAAgBx6B,MAAMue,GAAMA,EAAE3Z,UAC9C,CAgBA,kBAAM0K,GACF,MAAOD,EAAMzK,SAAkBnF,QAAQkhB,IAAI,CAACjqB,KAAKgO,QAAShO,KAAKgkC,eAC/D,MAAO,CAAErrB,OAAMzK,WAAU+1B,WAAY/1B,EAASJ,QAAQ/J,IAAI,gBAC9D,CACA,KAAAiK,GAII,OAHKhO,KAAKkkC,gBACNlkC,KAAKkkC,cAAgBlkC,KAAK8jC,gBAAgBx6B,KAAKtJ,KAAKmO,gBAEjDnO,KAAKkkC,aAChB,CACA,IAAA56B,CAAK66B,EAAaC,GACd,OAAOpkC,KAAKgO,QAAQ1E,KAAK66B,EAAaC,EAC1C,CACA,MAAMA,GACF,OAAOpkC,KAAKgO,QAAQ9E,MAAMk7B,EAC9B,CACA,QAAQC,GACJ,OAAOrkC,KAAKgO,QAAQs2B,QAAQD,EAChC,EAEJ1kC,EAAQ4jC,WAAaA,EA4UrB5jC,EAAQ6b,UA3UR,MACI,WAAA7U,EAAY,QAAE8U,EAAO,WAAES,EAAa,EAAC,QAAEF,EAAU,IAAM,UACvDC,EAAW/V,MAAOq+B,IACdvkC,KAAKyb,QAAUA,EACfzb,KAAKkc,WAAasoB,EAAwB,aAActoB,GACxDlc,KAAKgc,QAAUwoB,EAAwB,UAAWxoB,GAClDhc,KAAKic,UAAYA,EACjBjc,KAAKkG,MAAQq+B,GAAmBlc,EAAQniB,KAC5C,CACA,WAAAqX,CAAYnY,GACR,MAAO,CAAC,CACZ,CASA,cAAAkY,CAAelY,GACX,MAAO,CACH2I,OAAQ,mBACR,eAAgB,mBAChB,aAAc/N,KAAKykC,kBAChBC,OACA1kC,KAAKud,YAAYnY,GAE5B,CAIA,eAAAu/B,CAAgB72B,EAAS82B,GAAiB,CAC1C,qBAAAC,GACI,MAAO,wBAAwBC,KACnC,CACA,GAAA/gC,CAAI6a,EAAMxZ,GACN,OAAOpF,KAAK+kC,cAAc,MAAOnmB,EAAMxZ,EAC3C,CACA,IAAA+H,CAAKyR,EAAMxZ,GACP,OAAOpF,KAAK+kC,cAAc,OAAQnmB,EAAMxZ,EAC5C,CACA,KAAA4/B,CAAMpmB,EAAMxZ,GACR,OAAOpF,KAAK+kC,cAAc,QAASnmB,EAAMxZ,EAC7C,CACA,GAAA6/B,CAAIrmB,EAAMxZ,GACN,OAAOpF,KAAK+kC,cAAc,MAAOnmB,EAAMxZ,EAC3C,CACA,OAAOwZ,EAAMxZ,GACT,OAAOpF,KAAK+kC,cAAc,SAAUnmB,EAAMxZ,EAC9C,CACA,aAAA2/B,CAAclmB,EAAQD,EAAMxZ,GACxB,OAAOpF,KAAKklC,QAAQn8B,QAAQC,QAAQ5D,GAAMkE,MAAKtC,MAAO5B,IAClD,MAAM8B,EAAO9B,IAAQ,EAAIiW,EAAU6M,YAAY9iB,GAAM8B,MAAQ,IAAIi+B,eAAe//B,EAAK8B,KAAK0hB,eACpFxjB,GAAM8B,gBAAgBi+B,SAAW//B,EAAK8B,KAClC9B,GAAM8B,gBAAgB4hB,YAAc,IAAIqc,SAAS//B,EAAK8B,MAClD9B,GAAQ0jB,YAAYC,OAAO3jB,GAAM8B,MAAQ,IAAIi+B,SAAS//B,EAAK8B,KAAKk+B,QAC5DhgC,GAAM8B,KACxB,MAAO,CAAE2X,SAAQD,UAASxZ,EAAM8B,OAAM,IAE9C,CACA,UAAA0O,CAAWgJ,EAAMc,EAAMta,GACnB,OAAOpF,KAAKqlC,eAAe3lB,EAAM,CAAEb,OAAQ,MAAOD,UAASxZ,GAC/D,CACA,sBAAAkgC,CAAuBp+B,GACnB,GAAoB,iBAATA,EAAmB,CAC1B,GAAsB,oBAAX0iB,OACP,OAAOA,OAAO2b,WAAWr+B,EAAM,QAAQwR,WAE3C,GAA2B,oBAAhB0Z,YAGP,OAFgB,IAAIA,aACI9vB,OAAO4E,GAChB1C,OAAOkU,UAE9B,MACK,GAAIoQ,YAAYC,OAAO7hB,GACxB,OAAOA,EAAKq+B,WAAW7sB,WAE3B,OAAO,IACX,CACA,YAAA+F,CAAapZ,GAAS,WAAEmgC,EAAa,GAAM,CAAC,GACxCngC,EAAU,IAAKA,GACf,MAAM,OAAEwZ,EAAM,KAAED,EAAI,MAAElR,EAAOI,QAASA,EAAU,CAAC,GAAMzI,EACjD6B,EAAO4hB,YAAYC,OAAO1jB,EAAQ6B,OAAU7B,EAAQogC,iBAA2C,iBAAjBpgC,EAAQ6B,KACxF7B,EAAQ6B,MACN,EAAImU,EAAU2M,iBAAiB3iB,EAAQ6B,MAAQ7B,EAAQ6B,KAAKA,KACxD7B,EAAQ6B,KAAOkL,KAAK/R,UAAUgF,EAAQ6B,KAAM,KAAM,GAC9C,KACRw+B,EAAgB1lC,KAAKslC,uBAAuBp+B,GAC5CG,EAAMrH,KAAK2lC,SAAS/mB,EAAMlR,GAC5B,YAAarI,GACbm/B,EAAwB,UAAWn/B,EAAQ2W,SAC/C3W,EAAQ2W,QAAU3W,EAAQ2W,SAAWhc,KAAKgc,QAC1C,MAAMC,EAAY5W,EAAQ4W,WAAajc,KAAKic,YAAa,EAAIoM,EAAQjhB,iBAAiBC,GAChFu+B,EAAkBvgC,EAAQ2W,QAAU,IAwB1C,MAvB2C,iBAAhCC,GAAW5W,SAAS2W,SAC3B4pB,GAAmB3pB,EAAU5W,QAAQ2W,SAAW,KAKhDC,EAAU5W,QAAQ2W,QAAU4pB,GAE5B5lC,KAAK6lC,mBAAgC,QAAXhnB,IACrBxZ,EAAQygC,iBACTzgC,EAAQygC,eAAiB9lC,KAAK6kC,yBAClC/2B,EAAQ9N,KAAK6lC,mBAAqBxgC,EAAQygC,gBAYvC,CAAEC,IATG,CACRlnB,YACI3X,GAAQ,CAAEA,KAAMA,GACpB4G,QAJe9N,KAAKgmC,aAAa,CAAE3gC,UAASyI,UAAS43B,gBAAeF,kBAKhEvpB,GAAa,CAAEgqB,MAAOhqB,GAG1B9K,OAAQ9L,EAAQ8L,QAAU,MAEhB9J,MAAK2U,QAAS3W,EAAQ2W,QACxC,CACA,YAAAgqB,EAAa,QAAE3gC,EAAO,QAAEyI,EAAO,cAAE43B,EAAa,WAAEF,IAC5C,MAAMU,EAAa,CAAC,EAChBR,IACAQ,EAAW,kBAAoBR,GAEnC,MAAMpoB,EAAiBtd,KAAKsd,eAAejY,GAoB3C,OAnBA8gC,EAAgBD,EAAY5oB,GAC5B6oB,EAAgBD,EAAYp4B,IAExB,EAAIuN,EAAU2M,iBAAiB3iB,EAAQ6B,OAA0B,SAAjBmhB,EAAQ5hB,aACjDy/B,EAAW,qBAKoDz6B,KAAtE,EAAI9L,EAAQ2iC,WAAWhlB,EAAgB,iCACwB7R,KAA/D,EAAI9L,EAAQ2iC,WAAWx0B,EAAS,6BAChCo4B,EAAW,2BAA6BplC,OAAO0kC,SAEmB/5B,KAAlE,EAAI9L,EAAQ2iC,WAAWhlB,EAAgB,6BACoB7R,KAA3D,EAAI9L,EAAQ2iC,WAAWx0B,EAAS,wBAChCzI,EAAQ2W,UACRkqB,EAAW,uBAAyBplC,OAAOuE,EAAQ2W,UAEvDhc,KAAK2kC,gBAAgBuB,EAAYp4B,GAC1Bo4B,CACX,CAIA,oBAAM9mB,CAAe/Z,GAAW,CAOhC,oBAAM+gC,CAAelB,GAAS,IAAE79B,EAAG,QAAEhC,IAAa,CAClD,YAAAghC,CAAav4B,GACT,OAASA,EACH+b,OAAO/G,YAAYhV,EACjB5N,OAAOggB,YAAY9e,MAAMklC,KAAKx4B,GAASkE,KAAKu0B,GAAW,IAAIA,MACzD,IAAKz4B,GAHI,CAAC,CAIxB,CACA,eAAA04B,CAAgBjwB,EAAQjQ,EAAOE,EAASsH,GACpC,OAAOnF,EAAQsR,SAAS0Z,SAASpd,EAAQjQ,EAAOE,EAASsH,EAC7D,CACA,OAAAo3B,CAAQ7/B,EAASohC,EAAmB,MAChC,OAAO,IAAIlD,EAAWvjC,KAAK0mC,YAAYrhC,EAASohC,GACpD,CACA,iBAAMC,CAAYC,EAAcC,GAC5B,MAAMvhC,QAAgBshC,EAChBzqB,EAAa7W,EAAQ6W,YAAclc,KAAKkc,WACtB,MAApB0qB,IACAA,EAAmB1qB,SAEjBlc,KAAKof,eAAe/Z,GAC1B,MAAM,IAAE0gC,EAAG,IAAE1+B,EAAG,QAAE2U,GAAYhc,KAAKye,aAAapZ,EAAS,CAAEmgC,WAAYtpB,EAAa0qB,IAGpF,SAFM5mC,KAAKomC,eAAeL,EAAK,CAAE1+B,MAAKhC,YACtCo9B,EAAM,UAAWp7B,EAAKhC,EAAS0gC,EAAIj4B,SAC/BzI,EAAQ8L,QAAQtH,QAChB,MAAM,IAAIlB,EAAQoC,kBAEtB,MAAMlC,EAAa,IAAIC,gBACjBoF,QAAiBlO,KAAK6mC,iBAAiBx/B,EAAK0+B,EAAK/pB,EAASnT,GAAYK,MAAMvJ,EAAQwjC,aAC1F,GAAIj1B,aAAoB3H,MAAO,CAC3B,GAAIlB,EAAQ8L,QAAQtH,QAChB,MAAM,IAAIlB,EAAQoC,kBAEtB,GAAI67B,EACA,OAAO5mC,KAAK8mC,aAAazhC,EAASuhC,GAEtC,GAAsB,eAAlB14B,EAASpD,KACT,MAAM,IAAInC,EAAQ8N,0BAEtB,MAAM,IAAI9N,EAAQqR,mBAAmB,CAAE9O,MAAOgD,GAClD,CACA,MAAM64B,GAAkB,EAAIpnC,EAAQ0jC,uBAAuBn1B,EAASJ,SACpE,IAAKI,EAAS2pB,GAAI,CACd,GAAI+O,GAAoB5mC,KAAKgnC,YAAY94B,GAGrC,OADAu0B,EAAM,8BAD4BmE,wBACS14B,EAASqI,OAAQlP,EAAK0/B,GAC1D/mC,KAAK8mC,aAAazhC,EAASuhC,EAAkBG,GAExD,MAAME,QAAgB/4B,EAASwb,OAAOxgB,OAAO2d,IAAM,EAAIlnB,EAAQwjC,aAAatc,GAAGrgB,UACzE0gC,GAAU,EAAIvnC,EAAQyjC,UAAU6D,GAChCE,EAAaD,OAAUz7B,EAAYw7B,EAIzC,MAFAxE,EAAM,oBADemE,EAAmB,gCAAkC,4BAC/B14B,EAASqI,OAAQlP,EAAK0/B,EAAiBI,GACtEnnC,KAAKwmC,gBAAgBt4B,EAASqI,OAAQ2wB,EAASC,EAAYJ,EAE3E,CACA,MAAO,CAAE74B,WAAU7I,UAASwD,aAChC,CACA,cAAAw8B,CAAe3lB,EAAMra,GACjB,MAAM6/B,EAAUllC,KAAK0mC,YAAYrhC,EAAS,MAC1C,OAAO,IAAIi+B,EAAYtjC,KAAMklC,EAASxlB,EAC1C,CACA,QAAAimB,CAAS/mB,EAAMlR,GACX,MAAMrG,EAAM+/B,EAAcxoB,GACtB,IAAI4J,IAAI5J,GACN,IAAI4J,IAAIxoB,KAAKyb,SAAWzb,KAAKyb,QAAQ2X,SAAS,MAAQxU,EAAK0H,WAAW,KAAO1H,EAAK+K,MAAM,GAAK/K,IAC7FvB,EAAerd,KAAKqd,eAO1B,OANKslB,EAAWtlB,KACZ3P,EAAQ,IAAK2P,KAAiB3P,IAEb,iBAAVA,GAAsBA,IAAUtM,MAAMC,QAAQqM,KACrDrG,EAAIsjB,OAAS3qB,KAAKyd,eAAe/P,IAE9BrG,EAAIqR,UACf,CACA,cAAA+E,CAAe/P,GACX,OAAOxN,OAAOgqB,QAAQxc,GACjBlK,QAAO,EAAE8vB,EAAGlzB,UAA4B,IAAVA,IAC9B4R,KAAI,EAAE/Q,EAAKb,MACZ,GAAqB,iBAAVA,GAAuC,iBAAVA,GAAuC,kBAAVA,EACjE,MAAO,GAAGinC,mBAAmBpmC,MAAQomC,mBAAmBjnC,KAE5D,GAAc,OAAVA,EACA,MAAO,GAAGinC,mBAAmBpmC,MAEjC,MAAM,IAAI0H,EAAQqC,YAAY,gCAAgC5K,qQAAyQ,IAEtUqE,KAAK,IACd,CACA,sBAAMoiC,CAAiBx/B,EAAKigC,EAAMC,EAAI1+B,GAClC,MAAM,OAAEsI,KAAW9L,GAAYiiC,GAAQ,CAAC,EACpCn2B,GACAA,EAAOC,iBAAiB,SAAS,IAAMvI,EAAWiB,UACtD,MAAMkS,EAAU3S,YAAW,IAAMR,EAAWiB,SAASy9B,GAC/CC,EAAe,CACjBr2B,OAAQtI,EAAWsI,UAChB9L,GAOP,OALImiC,EAAa3oB,SAGb2oB,EAAa3oB,OAAS2oB,EAAa3oB,OAAO0hB,eAI9CvgC,KAAKkG,MAAMlD,UAAKyI,EAAWpE,EAAKmgC,GAAclD,SAAQ,KAClDmD,aAAazrB,EAAQ,GAE7B,CACA,WAAAgrB,CAAY94B,GAER,MAAMw5B,EAAoBx5B,EAASJ,QAAQ/J,IAAI,kBAE/C,MAA0B,SAAtB2jC,GAEsB,UAAtBA,IAGoB,MAApBx5B,EAASqI,QAGW,MAApBrI,EAASqI,QAGW,MAApBrI,EAASqI,QAGTrI,EAASqI,QAAU,IAG3B,CACA,kBAAMuwB,CAAazhC,EAASuhC,EAAkBG,GAC1C,IAAIY,EAEJ,MAAMC,EAAyBb,IAAkB,kBACjD,GAAIa,EAAwB,CACxB,MAAMC,EAAYC,WAAWF,GACxBhhB,OAAO3N,MAAM4uB,KACdF,EAAgBE,EAExB,CAEA,MAAME,EAAmBhB,IAAkB,eAC3C,GAAIgB,IAAqBJ,EAAe,CACpC,MAAMK,EAAiBF,WAAWC,GAK9BJ,EAJC/gB,OAAO3N,MAAM+uB,GAIEpmC,KAAKoM,MAAM+5B,GAAoBnmC,KAAKyU,MAHnB,IAAjB2xB,CAKxB,CAGA,KAAML,GAAiB,GAAKA,GAAiBA,EAAgB,KAAY,CACrE,MAAMzrB,EAAa7W,EAAQ6W,YAAclc,KAAKkc,WAC9CyrB,EAAgB3nC,KAAKioC,mCAAmCrB,EAAkB1qB,EAC9E,CAEA,aADM,EAAIvc,EAAQ6W,OAAOmxB,GAClB3nC,KAAK0mC,YAAYrhC,EAASuhC,EAAmB,EACxD,CACA,kCAAAqB,CAAmCrB,EAAkB1qB,GACjD,MAEMgsB,EAAahsB,EAAa0qB,EAKhC,OAHqBpkB,KAAKC,IAJA,GAIwBD,KAAK2lB,IAAI,EAAGD,GAHxC,IAKP,EAAoB,IAAhB1lB,KAAK4lB,UACO,GACnC,CACA,YAAA3D,GACI,MAAO,GAAGzkC,KAAK2G,YAAYmE,WAAW04B,EAAU3U,SACpD,GAGJ,MAAMlP,EACF,WAAAhZ,CAAYsK,EAAQ/C,EAAUhH,EAAM7B,GAChC+8B,EAAqBn9B,IAAIjF,UAAM,GAC/BqI,EAAuBrI,KAAMoiC,EAAsBnxB,EAAQ,KAC3DjR,KAAKqF,QAAUA,EACfrF,KAAKkO,SAAWA,EAChBlO,KAAKkH,KAAOA,CAChB,CACA,WAAA8Y,GAEI,QADchgB,KAAK4f,oBACRpb,QAEmB,MAAvBxE,KAAK8f,cAChB,CACA,iBAAMuoB,GACF,MAAMC,EAAWtoC,KAAK8f,eACtB,IAAKwoB,EACD,MAAM,IAAI3/B,EAAQqC,YAAY,yFAElC,MAAMu9B,EAAc,IAAKvoC,KAAKqF,SAC9B,GAAI,WAAYijC,GAAyC,iBAAtBC,EAAY76B,MAC3C66B,EAAY76B,MAAQ,IAAK66B,EAAY76B,SAAU46B,EAASp3B,aAEvD,GAAI,QAASo3B,EAAU,CACxB,MAAMp3B,EAAS,IAAIhR,OAAOgqB,QAAQqe,EAAY76B,OAAS,CAAC,MAAO46B,EAASjhC,IAAI8Y,aAAa+J,WACzF,IAAK,MAAOjpB,EAAKb,KAAU8Q,EACvBo3B,EAASjhC,IAAI8Y,aAAalb,IAAIhE,EAAKb,GAEvCmoC,EAAY76B,WAAQjC,EACpB88B,EAAY3pB,KAAO0pB,EAASjhC,IAAIqR,UACpC,CACA,aAAajQ,EAAuBzI,KAAMoiC,EAAsB,KAAKiD,eAAerlC,KAAK2G,YAAa4hC,EAC1G,CACA,eAAOC,GAEH,IAAIC,EAAOzoC,KAEX,UADMyoC,EACCA,EAAKzoB,eACRyoB,QAAaA,EAAKJ,oBACZI,CAEd,CACA,QAASrG,EAAuB,IAAIj9B,QAAW0kB,OAAOC,kBAClD,UAAW,MAAM2e,KAAQzoC,KAAKwoC,YAC1B,IAAK,MAAMzlB,KAAQ0lB,EAAK7oB,0BACdmD,CAGlB,EAEJpjB,EAAQggB,aAAeA,EAUvB,MAAM2jB,UAAoBC,EACtB,WAAA58B,CAAYsK,EAAQi0B,EAASxlB,GACzB5S,MAAMo4B,GAASl+B,MAAO0X,GAAU,IAAIgB,EAAKzO,EAAQyN,EAAMxQ,eAAgBu1B,EAAqB/kB,GAAQA,EAAMrZ,UAC9G,CAQA,OAAQwkB,OAAOC,iBACX,MAAM2e,QAAazoC,MACnB,UAAW,MAAM+iB,KAAQ0lB,QACf1lB,CAEd,EAEJpjB,EAAQ2jC,YAAcA,EAWtB3jC,EAAQ0jC,sBAVuBv1B,GACpB,IAAI46B,MAAMxoC,OAAOggB,YAExBpS,EAAQoc,WAAY,CAChB,GAAAnmB,CAAIy8B,EAAQ11B,GACR,MAAM7J,EAAM6J,EAAK4N,WACjB,OAAO8nB,EAAOv/B,EAAI0nC,gBAAkBnI,EAAOv/B,EAC/C,IAOR,MAAM2nC,EAAqB,CACvB/pB,QAAQ,EACRD,MAAM,EACNlR,OAAO,EACPxG,MAAM,EACN4G,SAAS,EACToO,YAAY,EACZ9O,QAAQ,EACR4O,SAAS,EACTC,WAAW,EACX9K,QAAQ,EACR20B,gBAAgB,EAChB9mB,YAAY,EACZymB,iBAAiB,EACjB5vB,kBAAkB,EAClB6tB,eAAe,GAQnB/jC,EAAQgO,iBANkBhK,GACC,iBAARA,GACH,OAARA,IACCg/B,EAAWh/B,IACZzD,OAAOwE,KAAKf,GAAKklC,OAAOt9B,GAAMm3B,EAAOkG,EAAoBr9B,KAGjE,MA+EMu9B,EAAiBC,GAKN,QAATA,EACO,MACE,WAATA,GAA8B,QAATA,EACd,MACE,QAATA,EACO,MACE,YAATA,GAA+B,UAATA,EACf,QACPA,EACO,SAASA,IACb,UAELC,EAAqBC,IAMvBA,EAAWA,EAASN,eAKP1pB,SAAS,OACX,MACM,YAAbgqB,EACO,UACM,WAAbA,EACO,QACM,UAAbA,EACO,UACM,YAAbA,EACO,UACM,YAAbA,EACO,UACM,UAAbA,EACO,QACPA,EACO,SAASA,IACb,UAEX,IAAIC,EACJ,MAAMxE,EAAqB,IACfwE,IAAqBA,EA/HH,MAC1B,GAAoB,oBAATC,MAAsC,MAAdA,KAAKC,MACpC,MAAO,CACH,mBAAoB,KACpB,8BAA+B5F,EAAU3U,QACzC,iBAAkBma,EAAkBG,KAAKC,MAAMC,IAC/C,mBAAoBP,EAAcK,KAAKC,MAAML,MAC7C,sBAAuB,OACvB,8BAAuD,iBAAjBI,KAAKG,QAAuBH,KAAKG,QAAUH,KAAKG,SAASC,MAAQ,WAG/G,GAA2B,oBAAhBC,YACP,MAAO,CACH,mBAAoB,KACpB,8BAA+BhG,EAAU3U,QACzC,iBAAkB,UAClB,mBAAoB,SAAS2a,cAC7B,sBAAuB,OACvB,8BAA+BnrB,QAAQirB,SAI/C,GAAqF,qBAAjFppC,OAAOO,UAAUiY,SAAS1V,KAAwB,oBAAZqb,QAA0BA,QAAU,GAC1E,MAAO,CACH,mBAAoB,KACpB,8BAA+BmlB,EAAU3U,QACzC,iBAAkBma,EAAkB3qB,QAAQ4qB,UAC5C,mBAAoBH,EAAczqB,QAAQ0qB,MAC1C,sBAAuB,OACvB,8BAA+B1qB,QAAQirB,SAG/C,MAAMG,EAsBV,WACI,GAAyB,oBAAdvK,YAA8BA,UACrC,OAAO,KAGX,MAAMwK,EAAkB,CACpB,CAAEzoC,IAAK,OAAQ0oC,QAAS,wCACxB,CAAE1oC,IAAK,KAAM0oC,QAAS,wCACtB,CAAE1oC,IAAK,KAAM0oC,QAAS,8CACtB,CAAE1oC,IAAK,SAAU0oC,QAAS,0CAC1B,CAAE1oC,IAAK,UAAW0oC,QAAS,2CAC3B,CAAE1oC,IAAK,SAAU0oC,QAAS,sEAG9B,IAAK,MAAM,IAAE1oC,EAAG,QAAE0oC,KAAaD,EAAiB,CAC5C,MAAME,EAAQD,EAAQE,KAAK3K,UAAU4K,WACrC,GAAIF,EAIA,MAAO,CAAEG,QAAS9oC,EAAKqoC,QAAS,GAHlBM,EAAM,IAAM,KACZA,EAAM,IAAM,KACZA,EAAM,IAAM,IAGlC,CACA,OAAO,IACX,CA9CwBI,GACpB,OAAIP,EACO,CACH,mBAAoB,KACpB,8BAA+BjG,EAAU3U,QACzC,iBAAkB,UAClB,mBAAoB,UACpB,sBAAuB,WAAW4a,EAAYM,UAC9C,8BAA+BN,EAAYH,SAI5C,CACH,mBAAoB,KACpB,8BAA+B9F,EAAU3U,QACzC,iBAAkB,UAClB,mBAAoB,UACpB,sBAAuB,UACvB,8BAA+B,UAClC,EA4E+Cob,IAUpDtqC,EAAQyjC,SARU1Z,IACd,IACI,OAAOtX,KAAKpE,MAAM0b,EACtB,CACA,MAAO+E,GACH,MACJ,GAIJ,MAAMyb,EAAyB,uBACzB9C,EAAiB//B,GACZ6iC,EAAuBC,KAAK9iC,GAGvC1H,EAAQ6W,MADO+wB,GAAO,IAAIx+B,SAASC,GAAYK,WAAWL,EAASu+B,KAEnE,MAAM/C,EAA0B,CAAC15B,EAAMgJ,KACnC,GAAiB,iBAANA,IAAmB8S,OAAOwjB,UAAUt2B,GAC3C,MAAM,IAAInL,EAAQqC,YAAY,GAAGF,wBAErC,GAAIgJ,EAAI,EACJ,MAAM,IAAInL,EAAQqC,YAAY,GAAGF,gCAErC,OAAOgJ,CAAC,EAmFZ,SAAS6uB,EAAWh/B,GAChB,IAAKA,EACD,OAAO,EACX,IAAK,MAAM0mC,KAAM1mC,EACb,OAAO,EACX,OAAO,CACX,CAGA,SAAS++B,EAAO/+B,EAAK1C,GACjB,OAAOf,OAAOO,UAAUC,eAAesC,KAAKW,EAAK1C,EACrD,CAQA,SAASklC,EAAgBmE,EAAeC,GACpC,IAAK,MAAMh/B,KAAKg/B,EAAY,CACxB,IAAK7H,EAAO6H,EAAYh/B,GACpB,SACJ,MAAMi/B,EAAWj/B,EAAEo9B,cACnB,IAAK6B,EACD,SACJ,MAAM3I,EAAM0I,EAAWh/B,GACX,OAARs2B,SACOyI,EAAcE,QAER/+B,IAARo2B,IACLyI,EAAcE,GAAY3I,EAElC,CACJ,CAxGAliC,EAAQwjC,YAXa1U,IACjB,GAAIA,aAAeloB,MACf,OAAOkoB,EACX,GAAmB,iBAARA,GAA4B,OAARA,EAC3B,IACI,OAAO,IAAIloB,MAAM6L,KAAK/R,UAAUouB,GACpC,CACA,MAAQ,CAEZ,OAAO,IAAIloB,MAAMkoB,EAAI,EAQzB9uB,EAAQujC,cALe9iC,IACnB,GAAa,MAATA,EACA,MAAM,IAAIuI,EAAQqC,YAAY,6CAA6C5K,cAC/E,OAAOA,CAAK,EAmBhBT,EAAQ+b,QATS4C,GACU,oBAAZD,QACAA,QAAQC,MAAMA,IAAMqH,aAAUla,EAErB,oBAAT09B,KACAA,KAAK7qB,KAAKva,MAAMua,IAAMqH,YADjC,EAaJhmB,EAAQsjC,cAPe7iC,IACnB,GAAqB,iBAAVA,EACP,OAAOoiB,KAAKioB,MAAMrqC,GACtB,GAAqB,iBAAVA,EACP,OAAO4Y,SAAS5Y,EAAO,IAC3B,MAAM,IAAIuI,EAAQqC,YAAY,oBAAoB5K,mBAAuBA,mBAAuB,EAUpGT,EAAQqjC,YAPa5iC,IACjB,GAAqB,iBAAVA,EACP,OAAOA,EACX,GAAqB,iBAAVA,EACP,OAAO0nC,WAAW1nC,GACtB,MAAM,IAAIuI,EAAQqC,YAAY,oBAAoB5K,mBAAuBA,mBAAuB,EAUpGT,EAAQojC,cAPe3iC,GACE,kBAAVA,EACAA,EACU,iBAAVA,EACU,SAAVA,EACJsqC,QAAQtqC,GASnBT,EAAQmjC,mBANoB1iC,IACxB,QAAcqL,IAAVrL,EAGJ,OAAO,EAAIT,EAAQsjC,eAAe7iC,EAAM,EAS5CT,EAAQkjC,iBANkBziC,IACtB,QAAcqL,IAAVrL,EAGJ,OAAO,EAAIT,EAAQqjC,aAAa5iC,EAAM,EAS1CT,EAAQijC,mBANoBxiC,IACxB,QAAcqL,IAAVrL,EAGJ,OAAO,EAAIT,EAAQojC,eAAe3iC,EAAM,EAW5CT,EAAQgjC,WAAaA,EAKrBhjC,EAAQ+iC,OAASA,EAuBjB,MAAMiI,EAAoB,IAAIx0B,IAAI,CAAC,gBAAiB,YACpD,SAASssB,EAAMmI,KAAWjgC,GACtB,GAAuB,oBAAZ0T,SAAuD,SAA5BA,SAASC,KAAa,MAAc,CACtE,MAAMusB,EAAelgC,EAAKqH,KAAK84B,IAC3B,IAAKA,EACD,OAAOA,EAGX,GAAIA,EAAa,QAAG,CAEhB,MAAMC,EAAc,IAAKD,EAAKh9B,QAAS,IAAKg9B,EAAa,UACzD,IAAK,MAAMvE,KAAUuE,EAAa,QAC1BH,EAAkBnqC,IAAI+lC,EAAOoC,iBAC7BoC,EAAqB,QAAExE,GAAU,YAGzC,OAAOwE,CACX,CACA,IAAIA,EAAc,KAElB,IAAK,MAAMxE,KAAUuE,EACbH,EAAkBnqC,IAAI+lC,EAAOoC,iBAE7BoC,IAAgBA,EAAc,IAAKD,IACnCC,EAAYxE,GAAU,YAG9B,OAAOwE,GAAeD,CAAG,IAE7BtnB,QAAQ8V,IAAI,gBAAgBsR,OAAaC,EAC7C,CACJ,CACAlrC,EAAQ8iC,MAAQA,EAIhB,MAAMqC,EAAQ,IACH,uCAAuClgC,QAAQ,SAAUkM,IAC5D,MAAMk6B,EAAqB,GAAhBxoB,KAAK4lB,SAAiB,EAEjC,OADgB,MAANt3B,EAAYk6B,EAAS,EAAJA,EAAW,GAC7BtyB,SAAS,GAAG,IAY7B/Y,EAAQoc,mBATmB,IAGL,oBAAX8Y,aAEwB,IAApBA,OAAO+E,UAEO,oBAAdsF,UAMfv/B,EAAQ6iC,kBAHmB10B,GACQ,mBAAjBA,GAAS/J,IAU3BpE,EAAQ4iC,kBAPkB,CAACz0B,EAASy4B,KAChC,MAAM0E,GAAc,EAAItrC,EAAQ2iC,WAAWx0B,EAASy4B,GACpD,QAAoB96B,IAAhBw/B,EACA,MAAM,IAAI1kC,MAAM,kBAAkBggC,YAEtC,OAAO0E,CAAW,EA6BtBtrC,EAAQ2iC,UA1BU,CAACx0B,EAASy4B,KACxB,MAAM2E,EAAmB3E,EAAOoC,cAChC,IAAI,EAAIhpC,EAAQ6iC,mBAAmB10B,GAAU,CAEzC,MAAMq9B,EAAkB5E,EAAO,IAAIhG,cAC/BgG,EAAOlgB,UAAU,GAAGzhB,QAAQ,gBAAgB,CAACwmC,EAAIC,EAAIC,IAAOD,EAAKC,EAAG/K,gBACxE,IAAK,MAAMt/B,IAAO,CAACslC,EAAQ2E,EAAkB3E,EAAOhG,cAAe4K,GAAkB,CACjF,MAAM/qC,EAAQ0N,EAAQ/J,IAAI9C,GAC1B,GAAIb,EACA,OAAOA,CAEf,CACJ,CACA,IAAK,MAAOa,EAAKb,KAAUF,OAAOgqB,QAAQpc,GACtC,GAAI7M,EAAI0nC,gBAAkBuC,EACtB,OAAI9pC,MAAMC,QAAQjB,IACVA,EAAMoE,QAAU,GAEpBgf,QAAQ+nB,KAAK,YAAYnrC,EAAMoE,0BAA0B+hC,oCAD9CnmC,EAAM,IAIdA,CAGC,EAiBpBT,EAAQ0iC,SAXUvU,IACd,IAAKA,EACD,MAAO,GACX,GAAsB,oBAAXlE,OACP,OAAOA,OAAO0c,KAAKxY,GAAKpV,SAAS,UAErC,GAAoB,oBAAT8yB,KACP,OAAOA,KAAK1d,GAEhB,MAAM,IAAInlB,EAAQqC,YAAY,wEAAwE,EAM1GrL,EAAQmf,MAHR,SAAenb,GACX,OAAc,MAAPA,GAA8B,iBAARA,IAAqBvC,MAAMC,QAAQsC,EACpE,C,oCCj8BA,IAkCI8nC,EAA4BC,EAAyBC,EAAmCC,EAAmCC,EAAkCC,EAA2BC,EAAsCC,EAAiCC,EAAuCC,EAAkCC,EAA+BC,EAAqCC,EAAyCC,EAA2BC,EAA6BC,EAAgCC,EAAgCC,EAA8BC,EAAoCC,EAAoCC,EAAoCC,EAlCvrB3hC,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGS,EAAsBhM,MAAQA,KAAKgM,qBAAwB9L,OAAOkL,OAAS,SAAUC,EAAGlH,GACxFjE,OAAOC,eAAekL,EAAG,UAAW,CAAEU,YAAY,EAAM3L,MAAO+D,GAClE,EAAI,SAASkH,EAAGlH,GACbkH,EAAW,QAAIlH,CACnB,GACI8H,EAAgBjM,MAAQA,KAAKiM,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIN,WAAY,OAAOM,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmBrL,OAAOO,UAAUC,eAAesC,KAAKkJ,EAAKX,IAAIJ,EAAgBgB,EAAQD,EAAKX,GAEtI,OADAS,EAAmBG,EAAQD,GACpBC,CACX,EACI1D,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EACID,EAA0BrI,MAAQA,KAAKqI,wBAA2B,SAAUC,EAAUC,EAAOnI,EAAOqG,EAAM+B,GAC1G,GAAa,MAAT/B,EAAc,MAAM,IAAInB,UAAU,kCACtC,GAAa,MAATmB,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,2EACvG,MAAiB,MAATmB,EAAe+B,EAAExF,KAAKsF,EAAUlI,GAASoI,EAAIA,EAAEpI,MAAQA,EAAQmI,EAAMtD,IAAIqD,EAAUlI,GAASA,CACxG,EAEAF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQyY,qBAAkB,EAC1B,MAAM5C,EAAOvJ,EAAa,EAAQ,OAC5B+f,EAAc,EAAQ,MACtBrjB,EAAU,EAAQ,MAClBuG,EAAgB,EAAQ,KAC9B,MAAMkJ,UAAwBlJ,EAAcxG,YACxC,WAAA/B,GACImG,SAASC,WACT0+B,EAA2B7iC,IAAI5I,MAE/B0rC,EAAwBzmC,IAAIjF,KAAM,IAGlC2rC,EAAkC1mC,IAAIjF,KAAM,CAAC,GAC7C4rC,EAAkC3mC,IAAIjF,KAAM,CAAC,GAC7C6rC,EAAiC5mC,IAAIjF,UAAM,GAC3C8rC,EAA0B7mC,IAAIjF,UAAM,GACpC+rC,EAAqC9mC,IAAIjF,UAAM,GAC/CgsC,EAAgC/mC,IAAIjF,UAAM,GAC1CisC,EAAsChnC,IAAIjF,UAAM,GAChDksC,EAAiCjnC,IAAIjF,UAAM,GAE3CmsC,EAA8BlnC,IAAIjF,UAAM,GACxCosC,EAAoCnnC,IAAIjF,UAAM,GAC9CqsC,EAAwCpnC,IAAIjF,UAAM,EACtD,CACA,EAAE0rC,EAA0B,IAAIvmC,QAAWwmC,EAAoC,IAAIxmC,QAAWymC,EAAoC,IAAIzmC,QAAW0mC,EAAmC,IAAI1mC,QAAW2mC,EAA4B,IAAI3mC,QAAW4mC,EAAuC,IAAI5mC,QAAW6mC,EAAkC,IAAI7mC,QAAW8mC,EAAwC,IAAI9mC,QAAW+mC,EAAmC,IAAI/mC,QAAWgnC,EAAgC,IAAIhnC,QAAWinC,EAAsC,IAAIjnC,QAAWknC,EAA0C,IAAIlnC,QAAWsmC,EAA6B,IAAI5gC,QAAWgf,OAAOC,kBAC1oB,MAAMuE,EAAY,GACZC,EAAY,GAClB,IAAI5jB,GAAO,EAgCX,OA9BA1K,KAAK+J,GAAG,SAAUC,IACd,MAAMukB,EAASD,EAAUE,QACrBD,EACAA,EAAOvlB,QAAQgB,GAGfqkB,EAAU/sB,KAAK0I,EACnB,IAEJhK,KAAK+J,GAAG,OAAO,KACXW,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOvlB,aAAQyC,GAEnB6iB,EAAU9pB,OAAS,CAAC,IAExBxE,KAAK+J,GAAG,SAAU0kB,IACd/jB,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOtlB,OAAOwlB,GAElBH,EAAU9pB,OAAS,CAAC,IAExBxE,KAAK+J,GAAG,SAAU0kB,IACd/jB,GAAO,EACP,IAAK,MAAM6jB,KAAUD,EACjBC,EAAOtlB,OAAOwlB,GAElBH,EAAU9pB,OAAS,CAAC,IAEjB,CACHkqB,KAAM1nB,SACGqnB,EAAU7pB,OAOR,CAAEpE,MADKiuB,EAAUG,QACD9jB,MAAM,GANrBA,EACO,CAAEtK,WAAOqL,EAAWf,MAAM,GAE9B,IAAI3B,SAAQ,CAACC,EAASC,IAAWqlB,EAAUhtB,KAAK,CAAE0H,UAASC,aAAWK,MAAM6f,GAAWA,EAAQ,CAAE/oB,MAAO+oB,EAAOze,MAAM,GAAU,CAAEtK,WAAOqL,EAAWf,MAAM,KAKxKikB,OAAQ3nB,UACJhH,KAAK8J,QACE,CAAE1J,WAAOqL,EAAWf,MAAM,IAG7C,CACA,yBAAOyhB,CAAmB/e,GACtB,MAAM2d,EAAS,IAAI3S,EAEnB,OADA2S,EAAO5hB,MAAK,IAAM4hB,EAAOqB,oBAAoBhf,KACtC2d,CACX,CACA,yBAAMqB,CAAoBE,EAAgBjnB,GACtC,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3D9J,KAAK0J,aACL,MAAM0D,EAAS4e,EAAYO,OAAOJ,mBAAmBG,EAAgBtsB,KAAK6I,YAC1E,UAAW,MAAMmB,KAASoD,EACtB3E,EAAuBzI,KAAMyrC,EAA4B,IAAKa,GAA2BtpC,KAAKhD,KAAMgK,GAExG,GAAIoD,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAO/K,KAAK+sC,QAAQtkC,EAAuBzI,KAAMyrC,EAA4B,IAAKc,GAA6BvpC,KAAKhD,MACxH,CACA,gBAAA4uB,GAEI,OADe,IAAI5C,EAAYO,OAAOvsB,KAAK6pB,OAAOC,eAAergB,KAAKzJ,MAAOA,KAAK6I,YACpE+lB,kBAClB,CACA,gCAAOvV,CAA0BzB,EAAUE,EAAOU,EAAMtH,EAAQ7L,GAC5D,MAAM0lB,EAAS,IAAI3S,EAKnB,OAJA2S,EAAO5hB,MAAK,IAAM4hB,EAAOiiB,wBAAwBp1B,EAAUE,EAAOU,EAAMtH,EAAQ,IACzE7L,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,cAE1Did,CACX,CACA,gCAAMkiB,CAA2Bh1B,EAAKL,EAAUE,EAAO5G,EAAQ7L,GAC3D,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3D,MAAM5C,EAAO,IAAKgK,EAAQ9D,QAAQ,GAC5BA,QAAe6K,EAAIiB,kBAAkBtB,EAAUE,EAAO5Q,EAAM,IAC3D7B,EACH8L,OAAQnR,KAAK6I,WAAWsI,SAE5BnR,KAAK0J,aACL,UAAW,MAAMM,KAASoD,EACtB3E,EAAuBzI,KAAMyrC,EAA4B,IAAKa,GAA2BtpC,KAAKhD,KAAMgK,GAExG,GAAIoD,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAO/K,KAAK+sC,QAAQtkC,EAAuBzI,KAAMyrC,EAA4B,IAAKc,GAA6BvpC,KAAKhD,MACxH,CACA,kCAAOghB,CAA4B9P,EAAQg8B,EAAQ7nC,GAC/C,MAAM0lB,EAAS,IAAI3S,EAKnB,OAJA2S,EAAO5hB,MAAK,IAAM4hB,EAAOoiB,uBAAuBj8B,EAAQg8B,EAAQ,IACzD7nC,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,cAE1Did,CACX,CACA,4BAAO1S,CAAsBT,EAAUY,EAAMtH,EAAQ7L,GACjD,MAAM0lB,EAAS,IAAI3S,EAKnB,OAJA2S,EAAO5hB,MAAK,IAAM4hB,EAAOqiB,oBAAoBx1B,EAAUY,EAAMtH,EAAQ,IAC9D7L,EACHyI,QAAS,IAAKzI,GAASyI,QAAS,4BAA6B,cAE1Did,CACX,CACA,YAAAsiB,GACI,OAAO5kC,EAAuBzI,KAAMmsC,EAA+B,IACvE,CACA,UAAAmB,GACI,OAAO7kC,EAAuBzI,KAAMosC,EAAqC,IAC7E,CACA,sBAAAmB,GACI,OAAO9kC,EAAuBzI,KAAM6rC,EAAkC,IAC1E,CACA,sBAAA2B,GACI,OAAO/kC,EAAuBzI,KAAMqsC,EAAyC,IACjF,CACA,mBAAMoB,GAEF,aADMztC,KAAK0K,OACJxK,OAAOoE,OAAOmE,EAAuBzI,KAAM2rC,EAAmC,KACzF,CACA,mBAAM+B,GAEF,aADM1tC,KAAK0K,OACJxK,OAAOoE,OAAOmE,EAAuBzI,KAAM4rC,EAAmC,KACzF,CACA,cAAM+B,GAEF,SADM3tC,KAAK0K,QACNjC,EAAuBzI,KAAM8rC,EAA2B,KACzD,MAAMvlC,MAAM,+BAChB,OAAOkC,EAAuBzI,KAAM8rC,EAA2B,IACnE,CACA,kCAAM8B,CAA6BV,EAAQh8B,EAAQ7L,GAC/C,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3D,MAAM5C,EAAO,IAAKgK,EAAQ9D,QAAQ,GAC5BA,QAAe8/B,EAAOtsB,aAAa1Z,EAAM,IAAK7B,EAAS8L,OAAQnR,KAAK6I,WAAWsI,SACrFnR,KAAK0J,aACL,UAAW,MAAMM,KAASoD,EACtB3E,EAAuBzI,KAAMyrC,EAA4B,IAAKa,GAA2BtpC,KAAKhD,KAAMgK,GAExG,GAAIoD,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAO/K,KAAK+sC,QAAQtkC,EAAuBzI,KAAMyrC,EAA4B,IAAKc,GAA6BvpC,KAAKhD,MACxH,CACA,4BAAM6tC,CAAuB51B,EAAKL,EAAU1G,EAAQ7L,GAChD,MAAM8L,EAAS9L,GAAS8L,OACpBA,IACIA,EAAOtH,SACP7J,KAAK6I,WAAWiB,QACpBqH,EAAOC,iBAAiB,SAAS,IAAMpR,KAAK6I,WAAWiB,WAE3D,MAAM5C,EAAO,IAAKgK,EAAQ9D,QAAQ,GAC5BA,QAAe6K,EAAI7M,OAAOwM,EAAU1Q,EAAM,IAAK7B,EAAS8L,OAAQnR,KAAK6I,WAAWsI,SACtFnR,KAAK0J,aACL,UAAW,MAAMM,KAASoD,EACtB3E,EAAuBzI,KAAMyrC,EAA4B,IAAKa,GAA2BtpC,KAAKhD,KAAMgK,GAExG,GAAIoD,EAAOvE,WAAWsI,QAAQtH,QAC1B,MAAM,IAAIlB,EAAQoC,kBAEtB,OAAO/K,KAAK+sC,QAAQtkC,EAAuBzI,KAAMyrC,EAA4B,IAAKc,GAA6BvpC,KAAKhD,MACxH,CACA,sBAAO8tC,CAAgB7M,EAAKjU,GACxB,IAAK,MAAO/rB,EAAK8sC,KAAe7tC,OAAOgqB,QAAQ8C,GAAQ,CACnD,IAAKiU,EAAIvgC,eAAeO,GAAM,CAC1BggC,EAAIhgC,GAAO8sC,EACX,QACJ,CACA,IAAIC,EAAW/M,EAAIhgC,GACnB,GAAI+sC,QAKJ,GAAY,UAAR/sC,GAA2B,SAARA,EAAvB,CAKA,GAAwB,iBAAb+sC,GAA+C,iBAAfD,EACvCC,GAAYD,OAEX,GAAwB,iBAAbC,GAA+C,iBAAfD,EAC5CC,GAAYD,MAEX,KAAIv4B,EAAKsJ,MAAMkvB,KAAax4B,EAAKsJ,MAAMivB,GAGvC,IAAI3sC,MAAMC,QAAQ2sC,IAAa5sC,MAAMC,QAAQ0sC,GAAa,CAC3D,GAAIC,EAASnF,OAAOr1B,GAAmB,iBAANA,GAA+B,iBAANA,IAAiB,CACvEw6B,EAAS1sC,QAAQysC,GACjB,QACJ,CACA,IAAK,MAAME,KAAcF,EAAY,CACjC,IAAKv4B,EAAKsJ,MAAMmvB,GACZ,MAAM,IAAI1nC,MAAM,uDAAuD0nC,KAE3E,MAAM7jC,EAAQ6jC,EAAkB,MAChC,GAAa,MAAT7jC,EAEA,MADAoZ,QAAQld,MAAM2nC,GACR,IAAI1nC,MAAM,0DAEpB,GAAqB,iBAAV6D,EACP,MAAM,IAAI7D,MAAM,wEAAwE6D,KAE5F,MAAM8jC,EAAWF,EAAS5jC,GACV,MAAZ8jC,EACAF,EAAS1sC,KAAK2sC,GAGdD,EAAS5jC,GAASpK,KAAK8tC,gBAAgBI,EAAUD,EAEzD,CACA,QACJ,CAEI,MAAM1nC,MAAM,0BAA0BtF,kBAAoB8sC,gBAAyBC,IACvF,CA/BIA,EAAWhuC,KAAK8tC,gBAAgBE,EAAUD,EA+B9C,CACA9M,EAAIhgC,GAAO+sC,CAzCX,MAFI/M,EAAIhgC,GAAO8sC,OALX9M,EAAIhgC,GAAO8sC,CAiDnB,CACA,OAAO9M,CACX,CACA,OAAA8L,CAAQ90B,GACJ,OAAOA,CACX,CACA,4BAAMk1B,CAAuBj8B,EAAQg8B,EAAQ7nC,GACzC,aAAarF,KAAK4tC,6BAA6BV,EAAQh8B,EAAQ7L,EACnE,CACA,yBAAM+nC,CAAoBx1B,EAAUY,EAAMtH,EAAQ7L,GAC9C,aAAarF,KAAK6tC,uBAAuBr1B,EAAMZ,EAAU1G,EAAQ7L,EACrE,CACA,6BAAM2nC,CAAwBp1B,EAAUE,EAAOU,EAAMtH,EAAQ7L,GACzD,aAAarF,KAAKitC,2BAA2Bz0B,EAAMZ,EAAUE,EAAO5G,EAAQ7L,EAChF,EAEJ1F,EAAQyY,gBAAkBA,EAC1Bk0B,EAA4B,SAAmCtiC,GAC3D,IAAIhK,KAAK2J,MAIT,OAFAtB,EAAuBrI,KAAMmsC,EAA+BniC,EAAO,KACnEvB,EAAuBzI,KAAMyrC,EAA4B,IAAKiB,GAA8B1pC,KAAKhD,KAAMgK,GAC/FA,EAAMA,OACV,IAAK,iBAED,MACJ,IAAK,qBACL,IAAK,oBACL,IAAK,yBACL,IAAK,6BACL,IAAK,uBACL,IAAK,wBACL,IAAK,oBACL,IAAK,wBACL,IAAK,uBACL,IAAK,qBACDvB,EAAuBzI,KAAMyrC,EAA4B,IAAKqB,GAA4B9pC,KAAKhD,KAAMgK,GACrG,MACJ,IAAK,0BACL,IAAK,8BACL,IAAK,wBACL,IAAK,4BACL,IAAK,yBACL,IAAK,4BACL,IAAK,0BACDvB,EAAuBzI,KAAMyrC,EAA4B,IAAKgB,GAAgCzpC,KAAKhD,KAAMgK,GACzG,MACJ,IAAK,yBACL,IAAK,6BACL,IAAK,uBACL,IAAK,2BACL,IAAK,4BACDvB,EAAuBzI,KAAMyrC,EAA4B,IAAKe,GAAgCxpC,KAAKhD,KAAMgK,GACzG,MACJ,IAAK,QAED,MAAM,IAAIzD,MAAM,uFAI5B,EAAGgmC,EAA8B,WAC7B,GAAIvsC,KAAK2J,MACL,MAAM,IAAIhB,EAAQqC,YAAY,2CAElC,IAAKvC,EAAuBzI,KAAM8rC,EAA2B,KACzD,MAAMvlC,MAAM,mCAChB,OAAOkC,EAAuBzI,KAAM8rC,EAA2B,IACnE,EAAGU,EAAiC,SAAwCxiC,GACxE,MAAOmkC,EAAoBC,GAAc3lC,EAAuBzI,KAAMyrC,EAA4B,IAAKmB,GAAoC5pC,KAAKhD,KAAMgK,EAAOvB,EAAuBzI,KAAM6rC,EAAkC,MAC5NxjC,EAAuBrI,KAAM6rC,EAAkCsC,EAAoB,KACnF1lC,EAAuBzI,KAAM4rC,EAAmC,KAAKuC,EAAmBh7B,IAAMg7B,EAC9F,IAAK,MAAMv+B,KAAWw+B,EAAY,CAC9B,MAAMC,EAAkBF,EAAmBv+B,QAAQA,EAAQxF,OAC9B,QAAzBikC,GAAiBl+B,MACjBnQ,KAAKwJ,MAAM,cAAe6kC,EAAgB3kB,KAElD,CACA,OAAQ1f,EAAMA,OACV,IAAK,yBACDhK,KAAKwJ,MAAM,iBAAkBQ,EAAM2O,MACnC,MACJ,IAAK,6BACD,MACJ,IAAK,uBAED,GADA3Y,KAAKwJ,MAAM,eAAgBQ,EAAM2O,KAAKqU,MAAOmhB,GACzCnkC,EAAM2O,KAAKqU,MAAMpd,QACjB,IAAK,MAAMA,KAAW5F,EAAM2O,KAAKqU,MAAMpd,QAAS,CAE5C,GAAoB,QAAhBA,EAAQO,MAAkBP,EAAQ8Z,KAAM,CACxC,IAAI4kB,EAAY1+B,EAAQ8Z,KACpBuD,EAAWkhB,EAAmBv+B,QAAQA,EAAQxF,OAClD,IAAI6iB,GAA6B,QAAjBA,EAAS9c,KAIrB,MAAM5J,MAAM,uEAHZvG,KAAKwJ,MAAM,YAAa8kC,EAAWrhB,EAASvD,KAKpD,CACA,GAAI9Z,EAAQxF,OAAS3B,EAAuBzI,KAAM+rC,EAAsC,KAAM,CAE1F,GAAItjC,EAAuBzI,KAAMgsC,EAAiC,KAC9D,OAAQvjC,EAAuBzI,KAAMgsC,EAAiC,KAAK77B,MACvE,IAAK,OACDnQ,KAAKwJ,MAAM,WAAYf,EAAuBzI,KAAMgsC,EAAiC,KAAKtiB,KAAMjhB,EAAuBzI,KAAM6rC,EAAkC,MAC/J,MACJ,IAAK,aACD7rC,KAAKwJ,MAAM,gBAAiBf,EAAuBzI,KAAMgsC,EAAiC,KAAKuC,WAAY9lC,EAAuBzI,KAAM6rC,EAAkC,MAItLxjC,EAAuBrI,KAAM+rC,EAAsCn8B,EAAQxF,MAAO,IACtF,CACA/B,EAAuBrI,KAAMgsC,EAAiCmC,EAAmBv+B,QAAQA,EAAQxF,OAAQ,IAC7G,CAEJ,MACJ,IAAK,2BACL,IAAK,4BAED,QAAgFqB,IAA5EhD,EAAuBzI,KAAM+rC,EAAsC,KAAoB,CACvF,MAAMyC,EAAiBxkC,EAAM2O,KAAK/I,QAAQnH,EAAuBzI,KAAM+rC,EAAsC,MAC7G,GAAIyC,EACA,OAAQA,EAAer+B,MACnB,IAAK,aACDnQ,KAAKwJ,MAAM,gBAAiBglC,EAAeD,WAAY9lC,EAAuBzI,KAAM6rC,EAAkC,MACtH,MACJ,IAAK,OACD7rC,KAAKwJ,MAAM,WAAYglC,EAAe9kB,KAAMjhB,EAAuBzI,KAAM6rC,EAAkC,MAI3H,CACIpjC,EAAuBzI,KAAM6rC,EAAkC,MAC/D7rC,KAAKwJ,MAAM,cAAeQ,EAAM2O,MAEpCtQ,EAAuBrI,KAAM6rC,OAAkCpgC,EAAW,KAEtF,EAAGghC,EAAiC,SAAwCziC,GACxE,MAAMykC,EAAqBhmC,EAAuBzI,KAAMyrC,EAA4B,IAAKkB,GAAoC3pC,KAAKhD,KAAMgK,GAExI,OADA3B,EAAuBrI,KAAMqsC,EAAyCoC,EAAoB,KAClFzkC,EAAMA,OACV,IAAK,0BACDhK,KAAKwJ,MAAM,iBAAkBQ,EAAM2O,MACnC,MACJ,IAAK,wBACD,MAAMqU,EAAQhjB,EAAM2O,KAAKqU,MACzB,GAAIA,EAAM0hB,cACqB,cAA3B1hB,EAAM0hB,aAAav+B,MACnB6c,EAAM0hB,aAAaz+B,YACqB,cAAxCw+B,EAAmBC,aAAav+B,KAChC,IAAK,MAAMoU,KAAYyI,EAAM0hB,aAAaz+B,WAClCsU,EAASna,OAAS3B,EAAuBzI,KAAMisC,EAAuC,KACtFjsC,KAAKwJ,MAAM,gBAAiB+a,EAAUkqB,EAAmBC,aAAaz+B,WAAWsU,EAASna,SAGtF3B,EAAuBzI,KAAMksC,EAAkC,MAC/DlsC,KAAKwJ,MAAM,eAAgBf,EAAuBzI,KAAMksC,EAAkC,MAE9F7jC,EAAuBrI,KAAMisC,EAAuC1nB,EAASna,MAAO,KACpF/B,EAAuBrI,KAAMksC,EAAkCuC,EAAmBC,aAAaz+B,WAAWsU,EAASna,OAAQ,KACvH3B,EAAuBzI,KAAMksC,EAAkC,MAC/DlsC,KAAKwJ,MAAM,kBAAmBf,EAAuBzI,KAAMksC,EAAkC,OAI7GlsC,KAAKwJ,MAAM,eAAgBQ,EAAM2O,KAAKqU,MAAOyhB,GAC7C,MACJ,IAAK,4BACL,IAAK,yBACL,IAAK,4BACL,IAAK,0BACDpmC,EAAuBrI,KAAMqsC,OAAyC5gC,EAAW,KAE7D,cADJzB,EAAM2O,KAAK+1B,aACfv+B,MACJ1H,EAAuBzI,KAAMksC,EAAkC,OAC/DlsC,KAAKwJ,MAAM,eAAgBf,EAAuBzI,KAAMksC,EAAkC,MAC1F7jC,EAAuBrI,KAAMksC,OAAkCzgC,EAAW,MAGlFzL,KAAKwJ,MAAM,cAAeQ,EAAM2O,KAAM81B,GAKlD,EAAG/B,EAA+B,SAAsC1iC,GACpEvB,EAAuBzI,KAAM0rC,EAAyB,KAAKpqC,KAAK0I,GAChEhK,KAAKwJ,MAAM,QAASQ,EACxB,EAAG2iC,EAAqC,SAA4C3iC,GAChF,OAAQA,EAAMA,OACV,IAAK,0BAED,OADAvB,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAAMnJ,EAAM2O,KACrF3O,EAAM2O,KACjB,IAAK,wBACD,IAAIsU,EAAWxkB,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAC/F,IAAK8Z,EACD,MAAM1mB,MAAM,yDAEhB,IAAIoS,EAAO3O,EAAM2O,KACjB,GAAIA,EAAKqU,MAAO,CACZ,MAAM2hB,EAAcv2B,EAAgB01B,gBAAgB7gB,EAAUtU,EAAKqU,OACnEvkB,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAAMw7B,CAC1F,CACA,OAAOlmC,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAC3F,IAAK,4BACL,IAAK,yBACL,IAAK,4BACL,IAAK,0BACL,IAAK,8BACD1K,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAAMnJ,EAAM2O,KAGpG,GAAIlQ,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAChF,OAAO1K,EAAuBzI,KAAM2rC,EAAmC,KAAK3hC,EAAM2O,KAAKxF,IAC3F,MAAM,IAAI5M,MAAM,wBACpB,EAAGqmC,EAAqC,SAA4C5iC,EAAOijB,GACvF,IAAImhB,EAAa,GACjB,OAAQpkC,EAAMA,OACV,IAAK,yBAED,MAAO,CAACA,EAAM2O,KAAMy1B,GACxB,IAAK,uBACD,IAAKnhB,EACD,MAAM1mB,MAAM,0FAEhB,IAAIoS,EAAO3O,EAAM2O,KAEjB,GAAIA,EAAKqU,MAAMpd,QACX,IAAK,MAAMg/B,KAAkBj2B,EAAKqU,MAAMpd,QACpC,GAAIg/B,EAAexkC,SAAS6iB,EAASrd,QAAS,CAC1C,IAAI4+B,EAAiBvhB,EAASrd,QAAQg/B,EAAexkC,OACrD6iB,EAASrd,QAAQg/B,EAAexkC,OAAS3B,EAAuBzI,KAAMyrC,EAA4B,IAAKoB,GAAoC7pC,KAAKhD,KAAM4uC,EAAgBJ,EAC1K,MAEIvhB,EAASrd,QAAQg/B,EAAexkC,OAASwkC,EAEzCR,EAAW9sC,KAAKstC,GAI5B,MAAO,CAAC3hB,EAAUmhB,GACtB,IAAK,6BACL,IAAK,2BACL,IAAK,4BAED,GAAInhB,EACA,MAAO,CAACA,EAAUmhB,GAGlB,MAAM7nC,MAAM,2DAGxB,MAAMA,MAAM,0CAChB,EAAGsmC,EAAqC,SAA4C+B,EAAgBJ,GAChG,OAAOp2B,EAAgB01B,gBAAgBU,EAAgBI,EAC3D,EAAG9B,EAA6B,SAAoC9iC,GAEhE,OADA3B,EAAuBrI,KAAMosC,EAAqCpiC,EAAM2O,KAAM,KACtE3O,EAAMA,OACV,IAAK,qBAEL,IAAK,oBAEL,IAAK,yBAaL,IAAK,wBACD,MAZJ,IAAK,6BACL,IAAK,uBACL,IAAK,oBACL,IAAK,uBACL,IAAK,qBACD3B,EAAuBrI,KAAM8rC,EAA2B9hC,EAAM2O,KAAM,KAChElQ,EAAuBzI,KAAMksC,EAAkC,OAC/DlsC,KAAKwJ,MAAM,eAAgBf,EAAuBzI,KAAMksC,EAAkC,MAC1F7jC,EAAuBrI,KAAMksC,OAAkCzgC,EAAW,MAM1F,C,oCCrkBA,IAAIN,EAAmBnL,MAAQA,KAAKmL,kBAAqBjL,OAAOkL,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxL,OAAOyL,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMhI,IAAK,WAAa,OAAOuH,EAAEC,EAAI,IAE5DrL,OAAOC,eAAekL,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGqc,EAAgB5nB,MAAQA,KAAK4nB,cAAiB,SAAStc,EAAG3L,GAC1D,IAAK,IAAIkoB,KAAKvc,EAAa,YAANuc,GAAoB3nB,OAAOO,UAAUC,eAAesC,KAAKrD,EAASkoB,IAAI1c,EAAgBxL,EAAS2L,EAAGuc,EAC3H,EACA3nB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IAItDwnB,EAAa,EAAQ,KAAsBjoB,E,8BCjB3CO,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQoV,iBAAc,EACtB,MAAMvI,EAAa,EAAQ,MAC3B,MAAMuI,UAAoBvI,EAAWK,YACjC,MAAAzB,CAAOlE,EAAM7B,GACT,OAAOrF,KAAKkN,QAAQC,KAAK,eAAgB,CAAEjG,UAAS7B,EAAS+H,OAAQlG,EAAKkG,SAAU,GACxF,EAEJzN,EAAQoV,YAAcA,C,8BCRtB7U,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQie,WAAaje,EAAQgd,YAAS,EACtC,MAAMnQ,EAAa,EAAQ,MACrBI,EAAe,EAAQ,MAC7B,MAAM+P,UAAenQ,EAAWK,YAK5B,QAAAW,CAASuR,EAAO1Z,GACZ,OAAOrF,KAAKkN,QAAQnJ,IAAI,WAAWgb,IAAS1Z,EAChD,CAKA,IAAAsQ,CAAKtQ,GACD,OAAOrF,KAAKkN,QAAQ0I,WAAW,UAAWgI,EAAYvY,EAC1D,CAKA,GAAAuI,CAAImR,EAAO1Z,GACP,OAAOrF,KAAKkN,QAAQW,OAAO,WAAWkR,IAAS1Z,EACnD,EAEJ1F,EAAQgd,OAASA,EAIjB,MAAMiB,UAAmBhR,EAAa8S,MAEtC/f,EAAQie,WAAaA,EACrBjB,EAAOiB,WAAaA,C,8BClCpB1d,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQuhB,gCAAkCvhB,EAAQghB,cAAW,EAC7D,MAAMnU,EAAa,EAAQ,MACrBD,EAAS,EAAQ,MACjBmO,EAAgB,EAAQ,MAC9Bxa,OAAOC,eAAeR,EAAS,kCAAmC,CAAEoM,YAAY,EAAMhI,IAAK,WAAc,OAAO2W,EAAcwG,+BAAiC,IAC/J,MAAMP,UAAiBnU,EAAWK,YAC9B,IAAA8I,CAAKiM,EAAclU,EAAQ,CAAC,EAAGrI,GAC3B,OAAI,EAAIkH,EAAOoB,kBAAkBD,GACtB1N,KAAK2V,KAAKiM,EAAc,CAAC,EAAGlU,GAEhC1N,KAAKkN,QAAQ0I,WAAW,qBAAqBgM,aAAyBlH,EAAcwG,gCAAiC,CAAExT,WAAUrI,GAC5I,EAEJ1F,EAAQghB,SAAWA,C,8BCdnBzgB,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQ2kB,+BAAiC3kB,EAAQ0kB,wBAA0B1kB,EAAQ+Z,oBAAsB/Z,EAAQka,eAAiBla,EAAQ6Z,yBAA2B7Z,EAAQma,cAAgBna,EAAQoa,cAAgBpa,EAAQ8Z,sBAAwB9Z,EAAQga,oBAAsBha,EAAQia,gBAAkBja,EAAQ8W,0BAA4B9W,EAAQqa,mBAAqBra,EAAQoL,kBAAoBpL,EAAQsa,SAAWta,EAAQqL,iBAAc,EACnb,MAAMuB,EAAS,EAAQ,MACvB,MAAMvB,UAAoBzE,OAE1B5G,EAAQqL,YAAcA,EACtB,MAAMiP,UAAiBjP,EACnB,WAAArE,CAAY4P,EAAQjQ,EAAOE,EAASsH,GAChChB,MAAM,GAAGmN,EAAS40B,YAAYt4B,EAAQjQ,EAAOE,MAC7CxG,KAAKuW,OAASA,EACdvW,KAAK8N,QAAUA,EACf9N,KAAKikC,WAAan2B,IAAU,gBAC5B9N,KAAKsG,MAAQA,EACb,MAAMqS,EAAOrS,EACbtG,KAAKq+B,KAAO1lB,GAAa,KACzB3Y,KAAK8uC,MAAQn2B,GAAc,MAC3B3Y,KAAKmQ,KAAOwI,GAAa,IAC7B,CACA,kBAAOk2B,CAAYt4B,EAAQjQ,EAAOE,GAC9B,MAAMsf,EAAMxf,GAAOE,QACU,iBAAlBF,EAAME,QACTF,EAAME,QACJ4L,KAAK/R,UAAUiG,EAAME,SACzBF,EAAQ8L,KAAK/R,UAAUiG,GACnBE,EACV,OAAI+P,GAAUuP,EACH,GAAGvP,KAAUuP,IAEpBvP,EACO,GAAGA,0BAEVuP,GAGG,0BACX,CACA,eAAO6N,CAASpd,EAAQw4B,EAAevoC,EAASsH,GAC5C,IAAKyI,IAAWzI,EACZ,OAAO,IAAIkM,EAAmB,CAAExT,UAAS0E,OAAO,EAAIqB,EAAO42B,aAAa4L,KAE5E,MAAMzoC,EAAQyoC,GAAuB,MACrC,OAAe,MAAXx4B,EACO,IAAIqD,EAAgBrD,EAAQjQ,EAAOE,EAASsH,GAExC,MAAXyI,EACO,IAAIoD,EAAoBpD,EAAQjQ,EAAOE,EAASsH,GAE5C,MAAXyI,EACO,IAAIkD,EAAsBlD,EAAQjQ,EAAOE,EAASsH,GAE9C,MAAXyI,EACO,IAAIwD,EAAcxD,EAAQjQ,EAAOE,EAASsH,GAEtC,MAAXyI,EACO,IAAIuD,EAAcvD,EAAQjQ,EAAOE,EAASsH,GAEtC,MAAXyI,EACO,IAAIiD,EAAyBjD,EAAQjQ,EAAOE,EAASsH,GAEjD,MAAXyI,EACO,IAAIsD,EAAetD,EAAQjQ,EAAOE,EAASsH,GAElDyI,GAAU,IACH,IAAImD,EAAoBnD,EAAQjQ,EAAOE,EAASsH,GAEpD,IAAImM,EAAS1D,EAAQjQ,EAAOE,EAASsH,EAChD,EAEJnO,EAAQsa,SAAWA,EAMnBta,EAAQoL,kBALR,cAAgCkP,EAC5B,WAAAtT,EAAY,QAAEH,GAAY,CAAC,GACvBsG,WAAMrB,OAAWA,EAAWjF,GAAW,4BAAwBiF,EACnE,GAGJ,MAAMuO,UAA2BC,EAC7B,WAAAtT,EAAY,QAAEH,EAAO,MAAE0E,IACnB4B,WAAMrB,OAAWA,EAAWjF,GAAW,yBAAqBiF,GAGxDP,IACAlL,KAAKkL,MAAQA,EACrB,EAEJvL,EAAQqa,mBAAqBA,EAM7Bra,EAAQ8W,0BALR,cAAwCuD,EACpC,WAAArT,EAAY,QAAEH,GAAY,CAAC,GACvBsG,MAAM,CAAEtG,QAASA,GAAW,sBAChC,GAGJ,MAAMoT,UAAwBK,GAE9Bta,EAAQia,gBAAkBA,EAC1B,MAAMD,UAA4BM,GAElCta,EAAQga,oBAAsBA,EAC9B,MAAMF,UAA8BQ,GAEpCta,EAAQ8Z,sBAAwBA,EAChC,MAAMM,UAAsBE,GAE5Bta,EAAQoa,cAAgBA,EACxB,MAAMD,UAAsBG,GAE5Bta,EAAQma,cAAgBA,EACxB,MAAMN,UAAiCS,GAEvCta,EAAQ6Z,yBAA2BA,EACnC,MAAMK,UAAuBI,GAE7Bta,EAAQka,eAAiBA,EACzB,MAAMH,UAA4BO,GAElCta,EAAQ+Z,oBAAsBA,EAM9B/Z,EAAQ0kB,wBALR,cAAsCrZ,EAClC,WAAArE,GACImG,MAAM,mEACV,GAQJnN,EAAQ2kB,+BALR,cAA6CtZ,EACzC,WAAArE,GACImG,MAAM,qFACV,E,oCC7HJ,IAWIkiC,EAXA3mC,EAA0BrI,MAAQA,KAAKqI,wBAA2B,SAAUC,EAAUC,EAAOnI,EAAOqG,EAAM+B,GAC1G,GAAa,MAAT/B,EAAc,MAAM,IAAInB,UAAU,kCACtC,GAAa,MAATmB,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,2EACvG,MAAiB,MAATmB,EAAe+B,EAAExF,KAAKsF,EAAUlI,GAASoI,EAAIA,EAAEpI,MAAQA,EAAQmI,EAAMtD,IAAIqD,EAAUlI,GAASA,CACxG,EACIqI,EAA0BzI,MAAQA,KAAKyI,wBAA2B,SAAUH,EAAUC,EAAO9B,EAAM+B,GACnG,GAAa,MAAT/B,IAAiB+B,EAAG,MAAM,IAAIlD,UAAU,iDAC5C,GAAqB,mBAAViD,EAAuBD,IAAaC,IAAUC,GAAKD,EAAM/H,IAAI8H,GAAW,MAAM,IAAIhD,UAAU,4EACvG,MAAgB,MAATmB,EAAe+B,EAAa,MAAT/B,EAAe+B,EAAExF,KAAKsF,GAAYE,EAAIA,EAAEpI,MAAQmI,EAAMxE,IAAIuE,EACxF,EAEApI,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,IACtDT,EAAQszB,uBAAyBtzB,EAAQ8xB,iBAAc,EACvD,MAAM9oB,EAAU,EAAQ,MAOxB,MAAM8oB,EACF,WAAA9qB,GACIqoC,EAAiC/pC,IAAIjF,UAAM,GAC3CA,KAAKolC,OAAS,IAAIvS,WAClBxqB,EAAuBrI,KAAMgvC,EAAkC,KAAM,IACzE,CACA,MAAArd,CAAOxI,GACH,GAAa,MAATA,EACA,MAAO,GAEX,MAAM2J,EAAc3J,aAAiBL,YAAc,IAAI+J,WAAW1J,GAC3C,iBAAVA,GAAqB,IAAIiJ,aAAc9vB,OAAO6mB,GACjDA,EACV,IAAI6J,EAAU,IAAIH,WAAW7yB,KAAKolC,OAAO5gC,OAASsuB,EAAYtuB,QAC9DwuB,EAAQ/tB,IAAIjF,KAAKolC,QACjBpS,EAAQ/tB,IAAI6tB,EAAa9yB,KAAKolC,OAAO5gC,QACrCxE,KAAKolC,OAASpS,EACd,MAAMic,EAAQ,GACd,IAAIlc,EACJ,KAA8H,OAAtHA,EAAemc,EAAiBlvC,KAAKolC,OAAQ38B,EAAuBzI,KAAMgvC,EAAkC,QAAgB,CAChI,GAAIjc,EAAaoc,UAAmF,MAAvE1mC,EAAuBzI,KAAMgvC,EAAkC,KAAc,CAEtG3mC,EAAuBrI,KAAMgvC,EAAkCjc,EAAa3oB,MAAO,KACnF,QACJ,CAEA,GAA2E,MAAvE3B,EAAuBzI,KAAMgvC,EAAkC,OAC9Djc,EAAa3oB,QAAU3B,EAAuBzI,KAAMgvC,EAAkC,KAAO,GAAKjc,EAAaoc,UAAW,CAC3HF,EAAM3tC,KAAKtB,KAAKovC,WAAWpvC,KAAKolC,OAAOzb,MAAM,EAAGlhB,EAAuBzI,KAAMgvC,EAAkC,KAAO,KACtHhvC,KAAKolC,OAASplC,KAAKolC,OAAOzb,MAAMlhB,EAAuBzI,KAAMgvC,EAAkC,MAC/F3mC,EAAuBrI,KAAMgvC,EAAkC,KAAM,KACrE,QACJ,CACA,MAAMK,EAAmF,OAAxE5mC,EAAuBzI,KAAMgvC,EAAkC,KAAgBjc,EAAauc,UAAY,EAAIvc,EAAauc,UACpI/d,EAAOvxB,KAAKovC,WAAWpvC,KAAKolC,OAAOzb,MAAM,EAAG0lB,IAClDJ,EAAM3tC,KAAKiwB,GACXvxB,KAAKolC,OAASplC,KAAKolC,OAAOzb,MAAMoJ,EAAa3oB,OAC7C/B,EAAuBrI,KAAMgvC,EAAkC,KAAM,IACzE,CACA,OAAOC,CACX,CACA,UAAAG,CAAW5c,GACP,GAAa,MAATA,EACA,MAAO,GACX,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAsB,oBAAX5I,OAAwB,CAC/B,GAAI4I,aAAiB5I,OACjB,OAAO4I,EAAM9Z,WAEjB,GAAI8Z,aAAiBK,WACjB,OAAOjJ,OAAO0c,KAAK9T,GAAO9Z,WAE9B,MAAM,IAAI/P,EAAQqC,YAAY,wCAAwCwnB,EAAM7rB,YAAYmE,wIAC5F,CAEA,GAA2B,oBAAhBykC,YAA6B,CACpC,GAAI/c,aAAiBK,YAAcL,aAAiB1J,YAEhD,OADA9oB,KAAKwvC,cAAgBxvC,KAAKwvC,YAAc,IAAID,YAAY,SACjDvvC,KAAKwvC,YAAY7d,OAAOa,GAEnC,MAAM,IAAI7pB,EAAQqC,YAAY,oDAAoDwnB,EAAM7rB,YAAYmE,qDACxG,CACA,MAAM,IAAInC,EAAQqC,YAAY,iGAClC,CACA,KAAA4mB,GACI,OAAK5xB,KAAKolC,OAAO5gC,OAGVxE,KAAK2xB,OAAO,MAFR,EAGf,EAgBJ,SAASud,EAAiB9J,EAAQqK,GAG9B,IAAK,IAAIjqC,EAAIiqC,GAAc,EAAGjqC,EAAI4/B,EAAO5gC,OAAQgB,IAAK,CAClD,GAHY,KAGR4/B,EAAO5/B,GACP,MAAO,CAAE8pC,UAAW9pC,EAAG4E,MAAO5E,EAAI,EAAG2pC,UAAU,GAEnD,GALa,KAKT/J,EAAO5/B,GACP,MAAO,CAAE8pC,UAAW9pC,EAAG4E,MAAO5E,EAAI,EAAG2pC,UAAU,EAEvD,CACA,OAAO,IACX,CA1BAxvC,EAAQ8xB,YAAcA,EACtBud,EAAmC,IAAI7pC,QAEvCssB,EAAYie,cAAgB,IAAIv5B,IAAI,CAAC,KAAM,OAC3Csb,EAAYke,eAAiB,eAiD7BhwC,EAAQszB,uBA1BR,SAAgCmS,GAM5B,IAAK,IAAI5/B,EAAI,EAAGA,EAAI4/B,EAAO5gC,OAAS,EAAGgB,IAAK,CACxC,GAHY,KAGR4/B,EAAO5/B,IAHC,KAGiB4/B,EAAO5/B,EAAI,GAEpC,OAAOA,EAAI,EAEf,GANa,KAMT4/B,EAAO5/B,IANE,KAMiB4/B,EAAO5/B,EAAI,GAErC,OAAOA,EAAI,EAEf,GAVa,KAUT4/B,EAAO5/B,IAXC,KAYR4/B,EAAO5/B,EAAI,IACXA,EAAI,EAAI4/B,EAAO5gC,QAZN,KAaT4gC,EAAO5/B,EAAI,IAdH,KAeR4/B,EAAO5/B,EAAI,GAEX,OAAOA,EAAI,CAEnB,CACA,OAAQ,CACZ,C,GClJIoqC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBrkC,IAAjBskC,EACH,OAAOA,EAAapwC,QAGrB,IAAIC,EAASgwC,EAAyBE,GAAY,CAGjDnwC,QAAS,CAAC,GAOX,OAHAqwC,EAAoBF,GAAU9sC,KAAKpD,EAAOD,QAASC,EAAQA,EAAOD,QAASkwC,GAGpEjwC,EAAOD,OACf,CCnB0BkwC,CAAoB,M,cDF1CD,C","sources":["webpack://GuideAI/webpack/universalModuleDefinition","webpack://GuideAI/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"React\",\"root\":\"React\"}","webpack://GuideAI/./node_modules/openai/internal/qs/stringify.js","webpack://GuideAI/./node_modules/openai/_shims/web-runtime.js","webpack://GuideAI/./node_modules/openai/lib/EventStream.js","webpack://GuideAI/./node_modules/openai/resources/responses/responses.js","webpack://GuideAI/./node_modules/openai/lib/AbstractChatCompletionRunner.js","webpack://GuideAI/./node_modules/openai/resources/embeddings.js","webpack://GuideAI/./node_modules/openai/resources/audio/audio.js","webpack://GuideAI/./node_modules/openai/resources/beta/chat/chat.js","webpack://GuideAI/./node_modules/openai/internal/qs/index.js","webpack://GuideAI/./node_modules/openai/resources/files.js","webpack://GuideAI/./node_modules/openai/resources/fine-tuning/jobs/jobs.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/runs/runs.js","webpack://GuideAI/./node_modules/openai/index.js","webpack://GuideAI/./node_modules/openai/_shims/index.js","webpack://GuideAI/./node_modules/openai/pagination.js","webpack://GuideAI/./node_modules/openai/resources/batches.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/threads.js","webpack://GuideAI/./node_modules/openai/resources/chat/completions/index.js","webpack://GuideAI/./node_modules/openai/resource.js","webpack://GuideAI/./node_modules/openai/resources/beta/assistants.js","webpack://GuideAI/./node_modules/openai/resources/uploads/uploads.js","webpack://GuideAI/./node_modules/openai/resources/chat/completions/completions.js","webpack://GuideAI/./node_modules/openai/resources/uploads/parts.js","webpack://GuideAI/./node_modules/openai/_shims/registry.js","webpack://GuideAI/./node_modules/openai/resources/vector-stores/file-batches.js","webpack://GuideAI/./node_modules/openai/lib/Util.js","webpack://GuideAI/./node_modules/openai/lib/parser.js","webpack://GuideAI/./node_modules/openai/resources/fine-tuning/fine-tuning.js","webpack://GuideAI/./node_modules/openai/_vendor/partial-json-parser/parser.js","webpack://GuideAI/./node_modules/openai/resources/audio/transcriptions.js","webpack://GuideAI/./node_modules/openai/resources/beta/realtime/realtime.js","webpack://GuideAI/./node_modules/openai/resources/vector-stores/files.js","webpack://GuideAI/./node_modules/openai/resources/beta/realtime/sessions.js","webpack://GuideAI/./node_modules/openai/resources/index.js","webpack://GuideAI/./node_modules/openai/resources/fine-tuning/jobs/checkpoints.js","webpack://GuideAI/./node_modules/openai/uploads.js","webpack://GuideAI/./node_modules/openai/resources/vector-stores/vector-stores.js","webpack://GuideAI/./node_modules/openai/_shims/MultipartBody.js","webpack://GuideAI/./node_modules/openai/lib/ChatCompletionRunner.js","webpack://GuideAI/./node_modules/openai/lib/RunnableFunction.js","webpack://GuideAI/./node_modules/openai/resources/moderations.js","webpack://GuideAI/./node_modules/openai/resources/audio/speech.js","webpack://GuideAI/./node_modules/openai/lib/ChatCompletionStream.js","webpack://GuideAI/./node_modules/openai/internal/qs/formats.js","webpack://GuideAI/./node_modules/openai/version.js","webpack://GuideAI/./node_modules/openai/resources/shared.js","webpack://GuideAI/./node_modules/openai/resources/responses/input-items.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/messages.js","webpack://GuideAI/./node_modules/openai/resources/chat/chat.js","webpack://GuideAI/./node_modules/openai/resources/beta/beta.js","webpack://GuideAI/./node_modules/openai/lib/chatCompletionUtils.js","webpack://GuideAI/./node_modules/openai/lib/responses/ResponseStream.js","webpack://GuideAI/./node_modules/openai/internal/stream-utils.js","webpack://GuideAI/./node_modules/openai/streaming.js","webpack://GuideAI/./node_modules/openai/resources/images.js","webpack://GuideAI/./node_modules/openai/resources/audio/translations.js","webpack://GuideAI/./node_modules/openai/lib/ChatCompletionStreamingRunner.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/runs/steps.js","webpack://GuideAI/./node_modules/openai/lib/ResponsesParser.js","webpack://GuideAI/./node_modules/openai/resources/chat/index.js","webpack://GuideAI/./node_modules/openai/resources/beta/chat/completions.js","webpack://GuideAI/./src/GuideAI.tsx","webpack://GuideAI/./node_modules/openai/internal/qs/utils.js","webpack://GuideAI/./node_modules/openai/core.js","webpack://GuideAI/./node_modules/openai/lib/AssistantStream.js","webpack://GuideAI/./node_modules/openai/_shims/auto/runtime.js","webpack://GuideAI/./node_modules/openai/resources/completions.js","webpack://GuideAI/./node_modules/openai/resources/models.js","webpack://GuideAI/./node_modules/openai/resources/chat/completions/messages.js","webpack://GuideAI/./node_modules/openai/error.js","webpack://GuideAI/./node_modules/openai/internal/decoders/line.js","webpack://GuideAI/webpack/bootstrap","webpack://GuideAI/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GuideAI\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"GuideAI\"] = factory(root[\"React\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__156__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringify = void 0;\nconst utils_1 = require(\"./utils.js\");\nconst formats_1 = require(\"./formats.js\");\nconst has = Object.prototype.hasOwnProperty;\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst is_array = Array.isArray;\nconst push = Array.prototype.push;\nconst push_to_array = function (arr, value_or_array) {\n push.apply(arr, is_array(value_or_array) ? value_or_array : [value_or_array]);\n};\nconst to_ISO = Date.prototype.toISOString;\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils_1.encode,\n encodeValuesOnly: false,\n format: formats_1.default_format,\n formatter: formats_1.formatters[formats_1.default_format],\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return to_ISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (typeof tmp_sc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && is_array(obj)) {\n obj = (0, utils_1.maybe_map)(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ?\n // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || (0, utils_1.is_buffer)(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly ? prefix\n // @ts-expect-error\n : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (typeof obj === 'undefined') {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && is_array(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = (0, utils_1.maybe_map)(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n }\n else if (is_array(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && is_array(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && is_array(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = is_array(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(sentinel, sideChannel);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && is_array(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = formats_1.default_format;\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats_1.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formats_1.formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || is_array(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nfunction stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (is_array(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\nexports.stringify = stringify;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntime = void 0;\n/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nconst MultipartBody_1 = require(\"./MultipartBody.js\");\nfunction getRuntime({ manuallyImported } = {}) {\n const recommendation = manuallyImported ?\n `You may need to use polyfills`\n : `Add one of these imports before your first \\`import … from 'openai'\\`:\n- \\`import 'openai/shims/node'\\` (if you're running on Node)\n- \\`import 'openai/shims/web'\\` (otherwise)\n`;\n let _fetch, _Request, _Response, _Headers;\n try {\n // @ts-ignore\n _fetch = fetch;\n // @ts-ignore\n _Request = Request;\n // @ts-ignore\n _Response = Response;\n // @ts-ignore\n _Headers = Headers;\n }\n catch (error) {\n throw new Error(`this environment is missing the following Web Fetch API type: ${error.message}. ${recommendation}`);\n }\n return {\n kind: 'web',\n fetch: _fetch,\n Request: _Request,\n Response: _Response,\n Headers: _Headers,\n FormData: \n // @ts-ignore\n typeof FormData !== 'undefined' ? FormData : (class FormData {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${recommendation}`);\n }\n }),\n Blob: typeof Blob !== 'undefined' ? Blob : (class Blob {\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${recommendation}`);\n }\n }),\n File: \n // @ts-ignore\n typeof File !== 'undefined' ? File : (class File {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${recommendation}`);\n }\n }),\n ReadableStream: \n // @ts-ignore\n typeof ReadableStream !== 'undefined' ? ReadableStream : (class ReadableStream {\n // @ts-ignore\n constructor() {\n throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${recommendation}`);\n }\n }),\n getMultipartRequestOptions: async (\n // @ts-ignore\n form, opts) => ({\n ...opts,\n body: new MultipartBody_1.MultipartBody(form),\n }),\n getDefaultAgent: (url) => undefined,\n fileFromPath: () => {\n throw new Error('The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads');\n },\n isFsReadStream: (value) => false,\n };\n}\nexports.getRuntime = getRuntime;\n//# sourceMappingURL=web-runtime.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_handleError;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventStream = void 0;\nconst error_1 = require(\"../error.js\");\nclass EventStream {\n constructor() {\n _EventStream_instances.add(this);\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n _EventStream_resolveConnectedPromise.set(this, () => { });\n _EventStream_rejectConnectedPromise.set(this, () => { });\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => { });\n _EventStream_rejectEndPromise.set(this, () => { });\n _EventStream_listeners.set(this, {});\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => { });\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).bind(this));\n }, 0);\n }\n _connected() {\n if (this.ended)\n return;\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() { }\n}\nexports.EventStream = EventStream;\n_EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = new error_1.APIUserAbortError();\n }\n if (error instanceof error_1.APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof error_1.OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new error_1.OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new error_1.OpenAIError(String(error)));\n};\n//# sourceMappingURL=EventStream.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseItemsPage = exports.Responses = void 0;\nconst ResponsesParser_1 = require(\"../../lib/ResponsesParser.js\");\nconst core_1 = require(\"../../core.js\");\nconst resource_1 = require(\"../../resource.js\");\nconst InputItemsAPI = __importStar(require(\"./input-items.js\"));\nconst input_items_1 = require(\"./input-items.js\");\nconst ResponseStream_1 = require(\"../../lib/responses/ResponseStream.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass Responses extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n (0, ResponsesParser_1.addOutputText)(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.retrieve(responseId, {}, query);\n }\n return this._client.get(`/responses/${responseId}`, { query, ...options });\n }\n /**\n * Deletes a model response with the given ID.\n */\n del(responseId, options) {\n return this._client.delete(`/responses/${responseId}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => (0, ResponsesParser_1.parseResponse)(response, body));\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ResponseStream_1.ResponseStream.createResponse(this._client, body, options);\n }\n}\nexports.Responses = Responses;\nclass ResponseItemsPage extends pagination_1.CursorPage {\n}\nexports.ResponseItemsPage = ResponseItemsPage;\nResponses.InputItems = input_items_1.InputItems;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionCall, _AbstractChatCompletionRunner_getFinalFunctionCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractChatCompletionRunner = void 0;\nconst error_1 = require(\"../error.js\");\nconst RunnableFunction_1 = require(\"./RunnableFunction.js\");\nconst chatCompletionUtils_1 = require(\"./chatCompletionUtils.js\");\nconst EventStream_1 = require(\"./EventStream.js\");\nconst parser_1 = require(\"../lib/parser.js\");\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nclass AbstractChatCompletionRunner extends EventStream_1.EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message)\n this._addMessage(message);\n return chatCompletion;\n }\n _addMessage(message, emit = true) {\n if (!('content' in message))\n message.content = null;\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (((0, chatCompletionUtils_1.isFunctionMessage)(message) || (0, chatCompletionUtils_1.isToolMessage)(message)) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n this._emit('functionCallResult', message.content);\n }\n else if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.function_call) {\n this._emit('functionCall', message.function_call);\n }\n else if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion)\n throw new error_1.OpenAIError('stream ended without producing a ChatCompletion');\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the content of the final FunctionCall, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalFunctionCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);\n }\n async finalFunctionCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);\n }\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion)\n this._emit('finalChatCompletion', completion);\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage)\n this._emit('finalMessage', finalMessage);\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent)\n this._emit('finalContent', finalContent);\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);\n if (finalFunctionCall)\n this._emit('finalFunctionCall', finalFunctionCall);\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);\n if (finalFunctionCallResult != null)\n this._emit('finalFunctionCallResult', finalFunctionCallResult);\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_validateParams).call(this, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion((0, parser_1.parseChatCompletion)(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runFunctions(client, params, options) {\n const role = 'function';\n const { function_call = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof function_call !== 'string' && function_call?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n const functionsByName = {};\n for (const f of params.functions) {\n functionsByName[f.name || f.function.name] = f;\n }\n const functions = params.functions.map((f) => ({\n name: f.name || f.function.name,\n parameters: f.parameters,\n description: f.description,\n }));\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n function_call,\n functions,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new error_1.OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.function_call)\n return;\n const { name, arguments: args } = message.function_call;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid function_call: ${JSON.stringify(name)}. Available options are: ${functions\n .map((f) => JSON.stringify(f.name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, name, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid function_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, name, content });\n continue;\n }\n let parsed;\n try {\n parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n this._addMessage({\n role,\n name,\n content: error instanceof Error ? error.message : String(error),\n });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, name, content });\n if (singleFunctionToCall)\n return;\n }\n }\n async _runTools(client, params, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n // TODO(someday): clean this logic up\n const inputTools = params.tools.map((tool) => {\n if ((0, parser_1.isAutoParsableTool)(tool)) {\n if (!tool.$callback) {\n throw new error_1.OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n return tool;\n });\n const functionsByName = {};\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n const tools = 'tools' in params ?\n inputTools.map((t) => t.type === 'function' ?\n {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new error_1.OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n return;\n }\n for (const tool_call of message.tool_calls) {\n if (tool_call.type !== 'function')\n continue;\n const tool_call_id = tool_call.id;\n const { name, arguments: args } = tool_call.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n let parsed;\n try {\n parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n const content = error instanceof Error ? error.message : String(error);\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, tool_call_id, content });\n if (singleFunctionToCall) {\n return;\n }\n }\n }\n return;\n }\n}\nexports.AbstractChatCompletionRunner = AbstractChatCompletionRunner;\n_AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message)) {\n const { function_call, ...rest } = message;\n // TODO: support audio here\n const ret = {\n ...rest,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n if (function_call) {\n ret.function_call = function_call;\n }\n return ret;\n }\n }\n throw new error_1.OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionCall = function _AbstractChatCompletionRunner_getFinalFunctionCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message?.function_call) {\n return message.function_call;\n }\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message?.tool_calls?.length) {\n return message.tool_calls.at(-1)?.function;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_getFinalFunctionCallResult = function _AbstractChatCompletionRunner_getFinalFunctionCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if ((0, chatCompletionUtils_1.isFunctionMessage)(message) && message.content != null) {\n return message.content;\n }\n if ((0, chatCompletionUtils_1.isToolMessage)(message) &&\n message.content != null &&\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new error_1.OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n return (typeof rawContent === 'string' ? rawContent\n : rawContent === undefined ? 'undefined'\n : JSON.stringify(rawContent));\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Embeddings = void 0;\nconst resource_1 = require(\"../resource.js\");\nclass Embeddings extends resource_1.APIResource {\n /**\n * Creates an embedding vector representing the input text.\n */\n create(body, options) {\n return this._client.post('/embeddings', { body, ...options });\n }\n}\nexports.Embeddings = Embeddings;\n//# sourceMappingURL=embeddings.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Audio = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst SpeechAPI = __importStar(require(\"./speech.js\"));\nconst speech_1 = require(\"./speech.js\");\nconst TranscriptionsAPI = __importStar(require(\"./transcriptions.js\"));\nconst transcriptions_1 = require(\"./transcriptions.js\");\nconst TranslationsAPI = __importStar(require(\"./translations.js\"));\nconst translations_1 = require(\"./translations.js\");\nclass Audio extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nexports.Audio = Audio;\nAudio.Transcriptions = transcriptions_1.Transcriptions;\nAudio.Translations = translations_1.Translations;\nAudio.Speech = speech_1.Speech;\n//# sourceMappingURL=audio.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chat = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst CompletionsAPI = __importStar(require(\"./completions.js\"));\nclass Chat extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nexports.Chat = Chat;\n(function (Chat) {\n Chat.Completions = CompletionsAPI.Completions;\n})(Chat = exports.Chat || (exports.Chat = {}));\n//# sourceMappingURL=chat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formats = exports.stringify = void 0;\nconst formats_1 = require(\"./formats.js\");\nconst formats = {\n formatters: formats_1.formatters,\n RFC1738: formats_1.RFC1738,\n RFC3986: formats_1.RFC3986,\n default: formats_1.default_format,\n};\nexports.formats = formats;\nvar stringify_1 = require(\"./stringify.js\");\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return stringify_1.stringify; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileObjectsPage = exports.Files = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst core_1 = require(\"../core.js\");\nconst core_2 = require(\"../core.js\");\nconst error_1 = require(\"../error.js\");\nconst Core = __importStar(require(\"../core.js\"));\nconst pagination_1 = require(\"../pagination.js\");\nclass Files extends resource_1.APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and the size of all files uploaded by one organization can be up\n * to 100 GB.\n *\n * The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) for\n * details.\n *\n * The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input) or\n * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)\n * models.\n *\n * The Batch API only supports `.jsonl` files up to 200 MB in size. The input also\n * has a specific required\n * [format](https://platform.openai.com/docs/api-reference/batch/request-input).\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', Core.multipartFormRequestOptions({ body, ...options }));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileId, options) {\n return this._client.get(`/files/${fileId}`, options);\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/files', FileObjectsPage, { query, ...options });\n }\n /**\n * Delete a file.\n */\n del(fileId, options) {\n return this._client.delete(`/files/${fileId}`, options);\n }\n /**\n * Returns the contents of the specified file.\n */\n content(fileId, options) {\n return this._client.get(`/files/${fileId}/content`, {\n ...options,\n headers: { Accept: 'application/binary', ...options?.headers },\n __binaryResponse: true,\n });\n }\n /**\n * Returns the contents of the specified file.\n *\n * @deprecated The `.content()` method should be used instead\n */\n retrieveContent(fileId, options) {\n return this._client.get(`/files/${fileId}/content`, options);\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);\n const start = Date.now();\n let file = await this.retrieve(id);\n while (!file.status || !TERMINAL_STATES.has(file.status)) {\n await (0, core_2.sleep)(pollInterval);\n file = await this.retrieve(id);\n if (Date.now() - start > maxWait) {\n throw new error_1.APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n }\n}\nexports.Files = Files;\nclass FileObjectsPage extends pagination_1.CursorPage {\n}\nexports.FileObjectsPage = FileObjectsPage;\nFiles.FileObjectsPage = FileObjectsPage;\n//# sourceMappingURL=files.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FineTuningJobEventsPage = exports.FineTuningJobsPage = exports.Jobs = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst CheckpointsAPI = __importStar(require(\"./checkpoints.js\"));\nconst checkpoints_1 = require(\"./checkpoints.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Jobs extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)\n */\n retrieve(fineTuningJobId, options) {\n return this._client.get(`/fine_tuning/jobs/${fineTuningJobId}`, options);\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/fine_tuning/jobs', FineTuningJobsPage, { query, ...options });\n }\n /**\n * Immediately cancel a fine-tune job.\n */\n cancel(fineTuningJobId, options) {\n return this._client.post(`/fine_tuning/jobs/${fineTuningJobId}/cancel`, options);\n }\n listEvents(fineTuningJobId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.listEvents(fineTuningJobId, {}, query);\n }\n return this._client.getAPIList(`/fine_tuning/jobs/${fineTuningJobId}/events`, FineTuningJobEventsPage, {\n query,\n ...options,\n });\n }\n}\nexports.Jobs = Jobs;\nclass FineTuningJobsPage extends pagination_1.CursorPage {\n}\nexports.FineTuningJobsPage = FineTuningJobsPage;\nclass FineTuningJobEventsPage extends pagination_1.CursorPage {\n}\nexports.FineTuningJobEventsPage = FineTuningJobEventsPage;\nJobs.FineTuningJobsPage = FineTuningJobsPage;\nJobs.FineTuningJobEventsPage = FineTuningJobEventsPage;\nJobs.Checkpoints = checkpoints_1.Checkpoints;\nJobs.FineTuningJobCheckpointsPage = checkpoints_1.FineTuningJobCheckpointsPage;\n//# sourceMappingURL=jobs.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RunsPage = exports.Runs = void 0;\nconst resource_1 = require(\"../../../../resource.js\");\nconst core_1 = require(\"../../../../core.js\");\nconst AssistantStream_1 = require(\"../../../../lib/AssistantStream.js\");\nconst core_2 = require(\"../../../../core.js\");\nconst StepsAPI = __importStar(require(\"./steps.js\"));\nconst steps_1 = require(\"./steps.js\");\nconst pagination_1 = require(\"../../../../pagination.js\");\nclass Runs extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadId, params, options) {\n const { include, ...body } = params;\n return this._client.post(`/threads/${threadId}/runs`, {\n query: { include },\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n stream: params.stream ?? false,\n });\n }\n /**\n * Retrieves a run.\n */\n retrieve(threadId, runId, options) {\n return this._client.get(`/threads/${threadId}/runs/${runId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a run.\n */\n update(threadId, runId, body, options) {\n return this._client.post(`/threads/${threadId}/runs/${runId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(threadId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(threadId, {}, query);\n }\n return this._client.getAPIList(`/threads/${threadId}/runs`, RunsPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n */\n cancel(threadId, runId, options) {\n return this._client.post(`/threads/${threadId}/runs/${runId}/cancel`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(threadId, run.id, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream_1.AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(threadId, runId, options) {\n const headers = { ...options?.headers, 'X-Stainless-Poll-Helper': 'true' };\n if (options?.pollIntervalMs) {\n headers['X-Stainless-Custom-Poll-Interval'] = options.pollIntervalMs.toString();\n }\n while (true) {\n const { data: run, response } = await this.retrieve(threadId, runId, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }).withResponse();\n switch (run.status) {\n //If we are in any sort of intermediate state we poll\n case 'queued':\n case 'in_progress':\n case 'cancelling':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await (0, core_2.sleep)(sleepInterval);\n break;\n //We return the run in any terminal state.\n case 'requires_action':\n case 'incomplete':\n case 'cancelled':\n case 'completed':\n case 'failed':\n case 'expired':\n return run;\n }\n }\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream_1.AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(threadId, runId, body, options) {\n return this._client.post(`/threads/${threadId}/runs/${runId}/submit_tool_outputs`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(threadId, runId, body, options) {\n const run = await this.submitToolOutputs(threadId, runId, body, options);\n return await this.poll(threadId, run.id, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(threadId, runId, body, options) {\n return AssistantStream_1.AssistantStream.createToolAssistantStream(threadId, runId, this._client.beta.threads.runs, body, options);\n }\n}\nexports.Runs = Runs;\nclass RunsPage extends pagination_1.CursorPage {\n}\nexports.RunsPage = RunsPage;\nRuns.RunsPage = RunsPage;\nRuns.Steps = steps_1.Steps;\nRuns.RunStepsPage = steps_1.RunStepsPage;\n//# sourceMappingURL=runs.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnprocessableEntityError = exports.PermissionDeniedError = exports.InternalServerError = exports.AuthenticationError = exports.BadRequestError = exports.RateLimitError = exports.ConflictError = exports.NotFoundError = exports.APIUserAbortError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIError = exports.OpenAIError = exports.fileFromPath = exports.toFile = exports.AzureOpenAI = exports.OpenAI = void 0;\nconst qs = __importStar(require(\"./internal/qs/index.js\"));\nconst Core = __importStar(require(\"./core.js\"));\nconst Errors = __importStar(require(\"./error.js\"));\nconst Pagination = __importStar(require(\"./pagination.js\"));\nconst Uploads = __importStar(require(\"./uploads.js\"));\nconst API = __importStar(require(\"./resources/index.js\"));\nconst batches_1 = require(\"./resources/batches.js\");\nconst completions_1 = require(\"./resources/completions.js\");\nconst embeddings_1 = require(\"./resources/embeddings.js\");\nconst files_1 = require(\"./resources/files.js\");\nconst images_1 = require(\"./resources/images.js\");\nconst models_1 = require(\"./resources/models.js\");\nconst moderations_1 = require(\"./resources/moderations.js\");\nconst audio_1 = require(\"./resources/audio/audio.js\");\nconst beta_1 = require(\"./resources/beta/beta.js\");\nconst chat_1 = require(\"./resources/chat/chat.js\");\nconst fine_tuning_1 = require(\"./resources/fine-tuning/fine-tuning.js\");\nconst responses_1 = require(\"./resources/responses/responses.js\");\nconst uploads_1 = require(\"./resources/uploads/uploads.js\");\nconst vector_stores_1 = require(\"./resources/vector-stores/vector-stores.js\");\nconst completions_2 = require(\"./resources/chat/completions/completions.js\");\n/**\n * API Client for interfacing with the OpenAI API.\n */\nclass OpenAI extends Core.APIClient {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.\n * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = Core.readEnv('OPENAI_BASE_URL'), apiKey = Core.readEnv('OPENAI_API_KEY'), organization = Core.readEnv('OPENAI_ORG_ID') ?? null, project = Core.readEnv('OPENAI_PROJECT_ID') ?? null, ...opts } = {}) {\n if (apiKey === undefined) {\n throw new Errors.OpenAIError(\"The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).\");\n }\n const options = {\n apiKey,\n organization,\n project,\n ...opts,\n baseURL: baseURL || `https://api.openai.com/v1`,\n };\n if (!options.dangerouslyAllowBrowser && Core.isRunningInBrowser()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n super({\n baseURL: options.baseURL,\n timeout: options.timeout ?? 600000 /* 10 minutes */,\n httpAgent: options.httpAgent,\n maxRetries: options.maxRetries,\n fetch: options.fetch,\n });\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n this.embeddings = new API.Embeddings(this);\n this.files = new API.Files(this);\n this.images = new API.Images(this);\n this.audio = new API.Audio(this);\n this.moderations = new API.Moderations(this);\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.vectorStores = new API.VectorStores(this);\n this.beta = new API.Beta(this);\n this.batches = new API.Batches(this);\n this.uploads = new API.Uploads(this);\n this.responses = new API.Responses(this);\n this._options = options;\n this.apiKey = apiKey;\n this.organization = organization;\n this.project = project;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n defaultHeaders(opts) {\n return {\n ...super.defaultHeaders(opts),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n ...this._options.defaultHeaders,\n };\n }\n authHeaders(opts) {\n return { Authorization: `Bearer ${this.apiKey}` };\n }\n stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n }\n}\nexports.OpenAI = OpenAI;\n_a = OpenAI;\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.fileFromPath = Uploads.fileFromPath;\nOpenAI.Completions = completions_1.Completions;\nOpenAI.Chat = chat_1.Chat;\nOpenAI.ChatCompletionsPage = completions_2.ChatCompletionsPage;\nOpenAI.Embeddings = embeddings_1.Embeddings;\nOpenAI.Files = files_1.Files;\nOpenAI.FileObjectsPage = files_1.FileObjectsPage;\nOpenAI.Images = images_1.Images;\nOpenAI.Audio = audio_1.Audio;\nOpenAI.Moderations = moderations_1.Moderations;\nOpenAI.Models = models_1.Models;\nOpenAI.ModelsPage = models_1.ModelsPage;\nOpenAI.FineTuning = fine_tuning_1.FineTuning;\nOpenAI.VectorStores = vector_stores_1.VectorStores;\nOpenAI.VectorStoresPage = vector_stores_1.VectorStoresPage;\nOpenAI.VectorStoreSearchResponsesPage = vector_stores_1.VectorStoreSearchResponsesPage;\nOpenAI.Beta = beta_1.Beta;\nOpenAI.Batches = batches_1.Batches;\nOpenAI.BatchesPage = batches_1.BatchesPage;\nOpenAI.Uploads = uploads_1.Uploads;\nOpenAI.Responses = responses_1.Responses;\n/** API Client for interfacing with the Azure OpenAI API. */\nclass AzureOpenAI extends OpenAI {\n /**\n * API Client for interfacing with the Azure OpenAI API.\n *\n * @param {string | undefined} [opts.apiVersion=process.env['OPENAI_API_VERSION'] ?? undefined]\n * @param {string | undefined} [opts.endpoint=process.env['AZURE_OPENAI_ENDPOINT'] ?? undefined] - Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`\n * @param {string | undefined} [opts.apiKey=process.env['AZURE_OPENAI_API_KEY'] ?? undefined]\n * @param {string | undefined} opts.deployment - A model deployment, if given, sets the base client URL to include `/deployments/{deployment}`.\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL']] - Sets the base URL for the API, e.g. `https://example-resource.azure.openai.com/openai/`.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.\n * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = Core.readEnv('OPENAI_BASE_URL'), apiKey = Core.readEnv('AZURE_OPENAI_API_KEY'), apiVersion = Core.readEnv('OPENAI_API_VERSION'), endpoint, deployment, azureADTokenProvider, dangerouslyAllowBrowser, ...opts } = {}) {\n if (!apiVersion) {\n throw new Errors.OpenAIError(\"The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).\");\n }\n if (typeof azureADTokenProvider === 'function') {\n dangerouslyAllowBrowser = true;\n }\n if (!azureADTokenProvider && !apiKey) {\n throw new Errors.OpenAIError('Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.');\n }\n if (azureADTokenProvider && apiKey) {\n throw new Errors.OpenAIError('The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.');\n }\n // define a sentinel value to avoid any typing issues\n apiKey ?? (apiKey = API_KEY_SENTINEL);\n opts.defaultQuery = { ...opts.defaultQuery, 'api-version': apiVersion };\n if (!baseURL) {\n if (!endpoint) {\n endpoint = process.env['AZURE_OPENAI_ENDPOINT'];\n }\n if (!endpoint) {\n throw new Errors.OpenAIError('Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable');\n }\n baseURL = `${endpoint}/openai`;\n }\n else {\n if (endpoint) {\n throw new Errors.OpenAIError('baseURL and endpoint are mutually exclusive');\n }\n }\n super({\n apiKey,\n baseURL,\n ...opts,\n ...(dangerouslyAllowBrowser !== undefined ? { dangerouslyAllowBrowser } : {}),\n });\n this.apiVersion = '';\n this._azureADTokenProvider = azureADTokenProvider;\n this.apiVersion = apiVersion;\n this.deploymentName = deployment;\n }\n buildRequest(options, props = {}) {\n if (_deployments_endpoints.has(options.path) && options.method === 'post' && options.body !== undefined) {\n if (!Core.isObj(options.body)) {\n throw new Error('Expected request body to be an object');\n }\n const model = this.deploymentName || options.body['model'] || options.__metadata?.['model'];\n if (model !== undefined && !this.baseURL.includes('/deployments')) {\n options.path = `/deployments/${model}${options.path}`;\n }\n }\n return super.buildRequest(options, props);\n }\n async _getAzureADToken() {\n if (typeof this._azureADTokenProvider === 'function') {\n const token = await this._azureADTokenProvider();\n if (!token || typeof token !== 'string') {\n throw new Errors.OpenAIError(`Expected 'azureADTokenProvider' argument to return a string but it returned ${token}`);\n }\n return token;\n }\n return undefined;\n }\n authHeaders(opts) {\n return {};\n }\n async prepareOptions(opts) {\n /**\n * The user should provide a bearer token provider if they want\n * to use Azure AD authentication. The user shouldn't set the\n * Authorization header manually because the header is overwritten\n * with the Azure AD token if a bearer token provider is provided.\n */\n if (opts.headers?.['api-key']) {\n return super.prepareOptions(opts);\n }\n const token = await this._getAzureADToken();\n opts.headers ?? (opts.headers = {});\n if (token) {\n opts.headers['Authorization'] = `Bearer ${token}`;\n }\n else if (this.apiKey !== API_KEY_SENTINEL) {\n opts.headers['api-key'] = this.apiKey;\n }\n else {\n throw new Errors.OpenAIError('Unable to handle auth');\n }\n return super.prepareOptions(opts);\n }\n}\nexports.AzureOpenAI = AzureOpenAI;\nconst _deployments_endpoints = new Set([\n '/completions',\n '/chat/completions',\n '/embeddings',\n '/audio/transcriptions',\n '/audio/translations',\n '/audio/speech',\n '/images/generations',\n]);\nconst API_KEY_SENTINEL = '<Missing Key>';\n// ---------------------- End Azure ----------------------\nvar uploads_2 = require(\"./uploads.js\");\nObject.defineProperty(exports, \"toFile\", { enumerable: true, get: function () { return uploads_2.toFile; } });\nObject.defineProperty(exports, \"fileFromPath\", { enumerable: true, get: function () { return uploads_2.fileFromPath; } });\nvar error_1 = require(\"./error.js\");\nObject.defineProperty(exports, \"OpenAIError\", { enumerable: true, get: function () { return error_1.OpenAIError; } });\nObject.defineProperty(exports, \"APIError\", { enumerable: true, get: function () { return error_1.APIError; } });\nObject.defineProperty(exports, \"APIConnectionError\", { enumerable: true, get: function () { return error_1.APIConnectionError; } });\nObject.defineProperty(exports, \"APIConnectionTimeoutError\", { enumerable: true, get: function () { return error_1.APIConnectionTimeoutError; } });\nObject.defineProperty(exports, \"APIUserAbortError\", { enumerable: true, get: function () { return error_1.APIUserAbortError; } });\nObject.defineProperty(exports, \"NotFoundError\", { enumerable: true, get: function () { return error_1.NotFoundError; } });\nObject.defineProperty(exports, \"ConflictError\", { enumerable: true, get: function () { return error_1.ConflictError; } });\nObject.defineProperty(exports, \"RateLimitError\", { enumerable: true, get: function () { return error_1.RateLimitError; } });\nObject.defineProperty(exports, \"BadRequestError\", { enumerable: true, get: function () { return error_1.BadRequestError; } });\nObject.defineProperty(exports, \"AuthenticationError\", { enumerable: true, get: function () { return error_1.AuthenticationError; } });\nObject.defineProperty(exports, \"InternalServerError\", { enumerable: true, get: function () { return error_1.InternalServerError; } });\nObject.defineProperty(exports, \"PermissionDeniedError\", { enumerable: true, get: function () { return error_1.PermissionDeniedError; } });\nObject.defineProperty(exports, \"UnprocessableEntityError\", { enumerable: true, get: function () { return error_1.UnprocessableEntityError; } });\nexports = module.exports = OpenAI;\nmodule.exports.AzureOpenAI = AzureOpenAI;\nexports.default = OpenAI;\n//# sourceMappingURL=index.js.map","/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nconst shims = require('./registry');\nconst auto = require('openai/_shims/auto/runtime');\nif (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });\nfor (const property of Object.keys(shims)) {\n Object.defineProperty(exports, property, {\n get() {\n return shims[property];\n },\n });\n}\n","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CursorPage = exports.Page = void 0;\nconst core_1 = require(\"./core.js\");\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass Page extends core_1.AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n // @deprecated Please use `nextPageInfo()` instead\n /**\n * This page represents a response that isn't actually paginated at the API level\n * so there will never be any next page params.\n */\n nextPageParams() {\n return null;\n }\n nextPageInfo() {\n return null;\n }\n}\nexports.Page = Page;\nclass CursorPage extends core_1.AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n // @deprecated Please use `nextPageInfo()` instead\n nextPageParams() {\n const info = this.nextPageInfo();\n if (!info)\n return null;\n if ('params' in info)\n return info.params;\n const params = Object.fromEntries(info.url.searchParams);\n if (!Object.keys(params).length)\n return null;\n return params;\n }\n nextPageInfo() {\n const data = this.getPaginatedItems();\n if (!data.length) {\n return null;\n }\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return { params: { after: id } };\n }\n}\nexports.CursorPage = CursorPage;\n//# sourceMappingURL=pagination.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchesPage = exports.Batches = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst core_1 = require(\"../core.js\");\nconst pagination_1 = require(\"../pagination.js\");\nclass Batches extends resource_1.APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchId, options) {\n return this._client.get(`/batches/${batchId}`, options);\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/batches', BatchesPage, { query, ...options });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchId, options) {\n return this._client.post(`/batches/${batchId}/cancel`, options);\n }\n}\nexports.Batches = Batches;\nclass BatchesPage extends pagination_1.CursorPage {\n}\nexports.BatchesPage = BatchesPage;\nBatches.BatchesPage = BatchesPage;\n//# sourceMappingURL=batches.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Threads = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst AssistantStream_1 = require(\"../../../lib/AssistantStream.js\");\nconst MessagesAPI = __importStar(require(\"./messages.js\"));\nconst messages_1 = require(\"./messages.js\");\nconst RunsAPI = __importStar(require(\"./runs/runs.js\"));\nconst runs_1 = require(\"./runs/runs.js\");\nclass Threads extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body = {}, options) {\n if ((0, core_1.isRequestOptions)(body)) {\n return this.create({}, body);\n }\n return this._client.post('/threads', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a thread.\n */\n retrieve(threadId, options) {\n return this._client.get(`/threads/${threadId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a thread.\n */\n update(threadId, body, options) {\n return this._client.post(`/threads/${threadId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete a thread.\n */\n del(threadId, options) {\n return this._client.delete(`/threads/${threadId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.thread_id, run.id, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream_1.AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nexports.Threads = Threads;\nThreads.Runs = runs_1.Runs;\nThreads.RunsPage = runs_1.RunsPage;\nThreads.Messages = messages_1.Messages;\nThreads.MessagesPage = messages_1.MessagesPage;\n//# sourceMappingURL=threads.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Messages = exports.Completions = exports.ChatCompletionsPage = exports.ChatCompletionStoreMessagesPage = void 0;\nvar completions_1 = require(\"./completions.js\");\nObject.defineProperty(exports, \"ChatCompletionStoreMessagesPage\", { enumerable: true, get: function () { return completions_1.ChatCompletionStoreMessagesPage; } });\nObject.defineProperty(exports, \"ChatCompletionsPage\", { enumerable: true, get: function () { return completions_1.ChatCompletionsPage; } });\nObject.defineProperty(exports, \"Completions\", { enumerable: true, get: function () { return completions_1.Completions; } });\nvar messages_1 = require(\"./messages.js\");\nObject.defineProperty(exports, \"Messages\", { enumerable: true, get: function () { return messages_1.Messages; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.APIResource = void 0;\nclass APIResource {\n constructor(client) {\n this._client = client;\n }\n}\nexports.APIResource = APIResource;\n//# sourceMappingURL=resource.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssistantsPage = exports.Assistants = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass Assistants extends resource_1.APIResource {\n /**\n * Create an assistant with a model and instructions.\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves an assistant.\n */\n retrieve(assistantId, options) {\n return this._client.get(`/assistants/${assistantId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies an assistant.\n */\n update(assistantId, body, options) {\n return this._client.post(`/assistants/${assistantId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/assistants', AssistantsPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete an assistant.\n */\n del(assistantId, options) {\n return this._client.delete(`/assistants/${assistantId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Assistants = Assistants;\nclass AssistantsPage extends pagination_1.CursorPage {\n}\nexports.AssistantsPage = AssistantsPage;\nAssistants.AssistantsPage = AssistantsPage;\n//# sourceMappingURL=assistants.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uploads = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst PartsAPI = __importStar(require(\"./parts.js\"));\nconst parts_1 = require(\"./parts.js\");\nclass Uploads extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object\n * that you can add\n * [Parts](https://platform.openai.com/docs/api-reference/uploads/part-object) to.\n * Currently, an Upload can accept at most 8 GB in total and expires after an hour\n * after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://platform.openai.com/docs/assistants/tools/file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://platform.openai.com/docs/api-reference/files/create).\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n */\n cancel(uploadId, options) {\n return this._client.post(`/uploads/${uploadId}/cancel`, options);\n }\n /**\n * Completes the\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed.\n */\n complete(uploadId, body, options) {\n return this._client.post(`/uploads/${uploadId}/complete`, { body, ...options });\n }\n}\nexports.Uploads = Uploads;\nUploads.Parts = parts_1.Parts;\n//# sourceMappingURL=uploads.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStoreMessagesPage = exports.ChatCompletionsPage = exports.Completions = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst MessagesAPI = __importStar(require(\"./messages.js\"));\nconst messages_1 = require(\"./messages.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Completions extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n */\n retrieve(completionId, options) {\n return this._client.get(`/chat/completions/${completionId}`, options);\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n */\n update(completionId, body, options) {\n return this._client.post(`/chat/completions/${completionId}`, { body, ...options });\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/chat/completions', ChatCompletionsPage, { query, ...options });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n */\n del(completionId, options) {\n return this._client.delete(`/chat/completions/${completionId}`, options);\n }\n}\nexports.Completions = Completions;\nclass ChatCompletionsPage extends pagination_1.CursorPage {\n}\nexports.ChatCompletionsPage = ChatCompletionsPage;\nclass ChatCompletionStoreMessagesPage extends pagination_1.CursorPage {\n}\nexports.ChatCompletionStoreMessagesPage = ChatCompletionStoreMessagesPage;\nCompletions.ChatCompletionsPage = ChatCompletionsPage;\nCompletions.Messages = messages_1.Messages;\n//# sourceMappingURL=completions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parts = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst Core = __importStar(require(\"../../core.js\"));\nclass Parts extends resource_1.APIResource {\n /**\n * Adds a\n * [Part](https://platform.openai.com/docs/api-reference/uploads/part-object) to an\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object.\n * A Part represents a chunk of bytes from the file you are trying to upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://platform.openai.com/docs/api-reference/uploads/complete).\n */\n create(uploadId, body, options) {\n return this._client.post(`/uploads/${uploadId}/parts`, Core.multipartFormRequestOptions({ body, ...options }));\n }\n}\nexports.Parts = Parts;\n//# sourceMappingURL=parts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setShims = exports.isFsReadStream = exports.fileFromPath = exports.getDefaultAgent = exports.getMultipartRequestOptions = exports.ReadableStream = exports.File = exports.Blob = exports.FormData = exports.Headers = exports.Response = exports.Request = exports.fetch = exports.kind = exports.auto = void 0;\nexports.auto = false;\nexports.kind = undefined;\nexports.fetch = undefined;\nexports.Request = undefined;\nexports.Response = undefined;\nexports.Headers = undefined;\nexports.FormData = undefined;\nexports.Blob = undefined;\nexports.File = undefined;\nexports.ReadableStream = undefined;\nexports.getMultipartRequestOptions = undefined;\nexports.getDefaultAgent = undefined;\nexports.fileFromPath = undefined;\nexports.isFsReadStream = undefined;\nfunction setShims(shims, options = { auto: false }) {\n if (exports.auto) {\n throw new Error(`you must \\`import 'openai/shims/${shims.kind}'\\` before importing anything else from openai`);\n }\n if (exports.kind) {\n throw new Error(`can't \\`import 'openai/shims/${shims.kind}'\\` after \\`import 'openai/shims/${exports.kind}'\\``);\n }\n exports.auto = options.auto;\n exports.kind = shims.kind;\n exports.fetch = shims.fetch;\n exports.Request = shims.Request;\n exports.Response = shims.Response;\n exports.Headers = shims.Headers;\n exports.FormData = shims.FormData;\n exports.Blob = shims.Blob;\n exports.File = shims.File;\n exports.ReadableStream = shims.ReadableStream;\n exports.getMultipartRequestOptions = shims.getMultipartRequestOptions;\n exports.getDefaultAgent = shims.getDefaultAgent;\n exports.fileFromPath = shims.fileFromPath;\n exports.isFsReadStream = shims.isFsReadStream;\n}\nexports.setShims = setShims;\n//# sourceMappingURL=registry.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorStoreFilesPage = exports.FileBatches = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst core_2 = require(\"../../core.js\");\nconst Util_1 = require(\"../../lib/Util.js\");\nconst files_1 = require(\"./files.js\");\nObject.defineProperty(exports, \"VectorStoreFilesPage\", { enumerable: true, get: function () { return files_1.VectorStoreFilesPage; } });\nclass FileBatches extends resource_1.APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/file_batches`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(vectorStoreId, batchId, options) {\n return this._client.get(`/vector_stores/${vectorStoreId}/file_batches/${batchId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(vectorStoreId, batchId, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/file_batches/${batchId}/cancel`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n listFiles(vectorStoreId, batchId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.listFiles(vectorStoreId, batchId, {}, query);\n }\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/file_batches/${batchId}/files`, files_1.VectorStoreFilesPage, { query, ...options, headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers } });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreId, batchId, options) {\n const headers = { ...options?.headers, 'X-Stainless-Poll-Helper': 'true' };\n if (options?.pollIntervalMs) {\n headers['X-Stainless-Custom-Poll-Interval'] = options.pollIntervalMs.toString();\n }\n while (true) {\n const { data: batch, response } = await this.retrieve(vectorStoreId, batchId, {\n ...options,\n headers,\n }).withResponse();\n switch (batch.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await (0, core_2.sleep)(sleepInterval);\n break;\n case 'failed':\n case 'cancelled':\n case 'completed':\n return batch;\n }\n }\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n if (files == null || files.length == 0) {\n throw new Error(`No \\`files\\` provided to process. If you've already uploaded files you should use \\`.createAndPoll()\\` instead`);\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n // We cap the number of workers at the number of files (so we don't start any unnecessary workers)\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n const client = this._client;\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (let item of iterator) {\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Start workers to process results\n const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);\n // Wait for all processing to complete.\n await (0, Util_1.allSettledWithThrow)(workers);\n return await this.createAndPoll(vectorStoreId, {\n file_ids: allFileIds,\n });\n }\n}\nexports.FileBatches = FileBatches;\n//# sourceMappingURL=file-batches.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.allSettledWithThrow = void 0;\n/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n */\nconst allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n for (const result of rejected) {\n console.error(result.reason);\n }\n throw new Error(`${rejected.length} promise(s) failed - see the above errors`);\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\nexports.allSettledWithThrow = allSettledWithThrow;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateInputTools = exports.hasAutoParseableInput = exports.shouldParseToolCall = exports.parseChatCompletion = exports.maybeParseChatCompletion = exports.isAutoParsableTool = exports.makeParseableTool = exports.isAutoParsableResponseFormat = exports.makeParseableTextFormat = exports.makeParseableResponseFormat = void 0;\nconst error_1 = require(\"../error.js\");\nfunction makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableResponseFormat = makeParseableResponseFormat;\nfunction makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableTextFormat = makeParseableTextFormat;\nfunction isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\nexports.isAutoParsableResponseFormat = isAutoParsableResponseFormat;\nfunction makeParseableTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableTool = makeParseableTool;\nfunction isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexports.isAutoParsableTool = isAutoParsableTool;\nfunction maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => ({\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n })),\n };\n }\n return parseChatCompletion(completion, params);\n}\nexports.maybeParseChatCompletion = maybeParseChatCompletion;\nfunction parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new error_1.LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new error_1.ContentFilterFinishReasonError();\n }\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content && !choice.message.refusal ?\n parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nexports.parseChatCompletion = parseChatCompletion;\nfunction parseResponseFormat(params, content) {\n if (params.response_format?.type !== 'json_schema') {\n return null;\n }\n if (params.response_format?.type === 'json_schema') {\n if ('$parseRaw' in params.response_format) {\n const response_format = params.response_format;\n return response_format.$parseRaw(content);\n }\n return JSON.parse(content);\n }\n return null;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name);\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments)\n : null,\n },\n };\n}\nfunction shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name);\n return isAutoParsableTool(inputTool) || inputTool?.function.strict || false;\n}\nexports.shouldParseToolCall = shouldParseToolCall;\nfunction hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\nexports.hasAutoParseableInput = hasAutoParseableInput;\nfunction validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new error_1.OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new error_1.OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexports.validateInputTools = validateInputTools;\n//# sourceMappingURL=parser.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FineTuning = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst JobsAPI = __importStar(require(\"./jobs/jobs.js\"));\nconst jobs_1 = require(\"./jobs/jobs.js\");\nclass FineTuning extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.jobs = new JobsAPI.Jobs(this._client);\n }\n}\nexports.FineTuning = FineTuning;\nFineTuning.Jobs = jobs_1.Jobs;\nFineTuning.FineTuningJobsPage = jobs_1.FineTuningJobsPage;\nFineTuning.FineTuningJobEventsPage = jobs_1.FineTuningJobEventsPage;\n//# sourceMappingURL=fine-tuning.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MalformedJSON = exports.PartialJSON = exports.partialParse = void 0;\nconst STR = 0b000000001;\nconst NUM = 0b000000010;\nconst ARR = 0b000000100;\nconst OBJ = 0b000001000;\nconst NULL = 0b000010000;\nconst BOOL = 0b000100000;\nconst NAN = 0b001000000;\nconst INFINITY = 0b010000000;\nconst MINUS_INFINITY = 0b100000000;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\nclass PartialJSON extends Error {\n}\nexports.PartialJSON = PartialJSON;\nclass MalformedJSON extends Error {\n}\nexports.MalformedJSON = MalformedJSON;\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length)\n markPartialJSON('Unexpected end of input');\n if (jsonString[index] === '\"')\n return parseStr();\n if (jsonString[index] === '{')\n return parseObj();\n if (jsonString[index] === '[')\n return parseArr();\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n 1 < length - index &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) == '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch (e) {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow)\n return obj;\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',')\n index++; // skip comma\n }\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch (e) {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if ('.' === jsonString[jsonString.length - 1])\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch (e) { }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-')\n index++;\n while (jsonString[index] && !',]}'.includes(jsonString[index]))\n index++;\n if (index == length && !(Allow.NUM & allow))\n markPartialJSON('Unterminated number literal');\n try {\n return JSON.parse(jsonString.substring(start, index));\n }\n catch (e) {\n if (jsonString.substring(start, index) === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexports.partialParse = partialParse;\n//# sourceMappingURL=parser.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Transcriptions = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst Core = __importStar(require(\"../../core.js\"));\nclass Transcriptions extends resource_1.APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', Core.multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }));\n }\n}\nexports.Transcriptions = Transcriptions;\n//# sourceMappingURL=transcriptions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Realtime = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst SessionsAPI = __importStar(require(\"./sessions.js\"));\nconst sessions_1 = require(\"./sessions.js\");\nclass Realtime extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n }\n}\nexports.Realtime = Realtime;\nRealtime.Sessions = sessions_1.Sessions;\n//# sourceMappingURL=realtime.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileContentResponsesPage = exports.VectorStoreFilesPage = exports.Files = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass Files extends resource_1.APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://platform.openai.com/docs/api-reference/files) to a\n * [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).\n */\n create(vectorStoreId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/files`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(vectorStoreId, fileId, options) {\n return this._client.get(`/vector_stores/${vectorStoreId}/files/${fileId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(vectorStoreId, fileId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/files/${fileId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(vectorStoreId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(vectorStoreId, {}, query);\n }\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/files`, VectorStoreFilesPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://platform.openai.com/docs/api-reference/files/delete)\n * endpoint.\n */\n del(vectorStoreId, fileId, options) {\n return this._client.delete(`/vector_stores/${vectorStoreId}/files/${fileId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreId, fileId, options) {\n const headers = { ...options?.headers, 'X-Stainless-Poll-Helper': 'true' };\n if (options?.pollIntervalMs) {\n headers['X-Stainless-Custom-Poll-Interval'] = options.pollIntervalMs.toString();\n }\n while (true) {\n const fileResponse = await this.retrieve(vectorStoreId, fileId, {\n ...options,\n headers,\n }).withResponse();\n const file = fileResponse.data;\n switch (file.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await (0, core_1.sleep)(sleepInterval);\n break;\n case 'failed':\n case 'completed':\n return file;\n }\n }\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(vectorStoreId, fileId, options) {\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/files/${fileId}/content`, FileContentResponsesPage, { ...options, headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers } });\n }\n}\nexports.Files = Files;\nclass VectorStoreFilesPage extends pagination_1.CursorPage {\n}\nexports.VectorStoreFilesPage = VectorStoreFilesPage;\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass FileContentResponsesPage extends pagination_1.Page {\n}\nexports.FileContentResponsesPage = FileContentResponsesPage;\nFiles.VectorStoreFilesPage = VectorStoreFilesPage;\nFiles.FileContentResponsesPage = FileContentResponsesPage;\n//# sourceMappingURL=files.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sessions = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nclass Sessions extends resource_1.APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Sessions = Sessions;\n//# sourceMappingURL=sessions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorStores = exports.VectorStoreSearchResponsesPage = exports.VectorStoresPage = exports.Uploads = exports.Responses = exports.Moderations = exports.Models = exports.ModelsPage = exports.Images = exports.FineTuning = exports.Files = exports.FileObjectsPage = exports.Embeddings = exports.Completions = exports.Beta = exports.Batches = exports.BatchesPage = exports.Audio = void 0;\n__exportStar(require(\"./chat/index.js\"), exports);\n__exportStar(require(\"./shared.js\"), exports);\nvar audio_1 = require(\"./audio/audio.js\");\nObject.defineProperty(exports, \"Audio\", { enumerable: true, get: function () { return audio_1.Audio; } });\nvar batches_1 = require(\"./batches.js\");\nObject.defineProperty(exports, \"BatchesPage\", { enumerable: true, get: function () { return batches_1.BatchesPage; } });\nObject.defineProperty(exports, \"Batches\", { enumerable: true, get: function () { return batches_1.Batches; } });\nvar beta_1 = require(\"./beta/beta.js\");\nObject.defineProperty(exports, \"Beta\", { enumerable: true, get: function () { return beta_1.Beta; } });\nvar completions_1 = require(\"./completions.js\");\nObject.defineProperty(exports, \"Completions\", { enumerable: true, get: function () { return completions_1.Completions; } });\nvar embeddings_1 = require(\"./embeddings.js\");\nObject.defineProperty(exports, \"Embeddings\", { enumerable: true, get: function () { return embeddings_1.Embeddings; } });\nvar files_1 = require(\"./files.js\");\nObject.defineProperty(exports, \"FileObjectsPage\", { enumerable: true, get: function () { return files_1.FileObjectsPage; } });\nObject.defineProperty(exports, \"Files\", { enumerable: true, get: function () { return files_1.Files; } });\nvar fine_tuning_1 = require(\"./fine-tuning/fine-tuning.js\");\nObject.defineProperty(exports, \"FineTuning\", { enumerable: true, get: function () { return fine_tuning_1.FineTuning; } });\nvar images_1 = require(\"./images.js\");\nObject.defineProperty(exports, \"Images\", { enumerable: true, get: function () { return images_1.Images; } });\nvar models_1 = require(\"./models.js\");\nObject.defineProperty(exports, \"ModelsPage\", { enumerable: true, get: function () { return models_1.ModelsPage; } });\nObject.defineProperty(exports, \"Models\", { enumerable: true, get: function () { return models_1.Models; } });\nvar moderations_1 = require(\"./moderations.js\");\nObject.defineProperty(exports, \"Moderations\", { enumerable: true, get: function () { return moderations_1.Moderations; } });\nvar responses_1 = require(\"./responses/responses.js\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\nvar uploads_1 = require(\"./uploads/uploads.js\");\nObject.defineProperty(exports, \"Uploads\", { enumerable: true, get: function () { return uploads_1.Uploads; } });\nvar vector_stores_1 = require(\"./vector-stores/vector-stores.js\");\nObject.defineProperty(exports, \"VectorStoresPage\", { enumerable: true, get: function () { return vector_stores_1.VectorStoresPage; } });\nObject.defineProperty(exports, \"VectorStoreSearchResponsesPage\", { enumerable: true, get: function () { return vector_stores_1.VectorStoreSearchResponsesPage; } });\nObject.defineProperty(exports, \"VectorStores\", { enumerable: true, get: function () { return vector_stores_1.VectorStores; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FineTuningJobCheckpointsPage = exports.Checkpoints = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Checkpoints extends resource_1.APIResource {\n list(fineTuningJobId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(fineTuningJobId, {}, query);\n }\n return this._client.getAPIList(`/fine_tuning/jobs/${fineTuningJobId}/checkpoints`, FineTuningJobCheckpointsPage, { query, ...options });\n }\n}\nexports.Checkpoints = Checkpoints;\nclass FineTuningJobCheckpointsPage extends pagination_1.CursorPage {\n}\nexports.FineTuningJobCheckpointsPage = FineTuningJobCheckpointsPage;\nCheckpoints.FineTuningJobCheckpointsPage = FineTuningJobCheckpointsPage;\n//# sourceMappingURL=checkpoints.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = exports.isMultipartBody = exports.toFile = exports.isUploadable = exports.isBlobLike = exports.isFileLike = exports.isResponseLike = exports.fileFromPath = void 0;\nconst index_1 = require(\"./_shims/index.js\");\nvar index_2 = require(\"./_shims/index.js\");\nObject.defineProperty(exports, \"fileFromPath\", { enumerable: true, get: function () { return index_2.fileFromPath; } });\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\nexports.isResponseLike = isResponseLike;\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n (0, exports.isBlobLike)(value);\nexports.isFileLike = isFileLike;\n/**\n * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check\n * adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\nexports.isBlobLike = isBlobLike;\nconst isUploadable = (value) => {\n return (0, exports.isFileLike)(value) || (0, exports.isResponseLike)(value) || (0, index_1.isFsReadStream)(value);\n};\nexports.isUploadable = isUploadable;\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nasync function toFile(value, name, options) {\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if ((0, exports.isFileLike)(value)) {\n return value;\n }\n if ((0, exports.isResponseLike)(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop() ?? 'unknown_file');\n // we need to convert the `Blob` into an array buffer because the `Blob` class\n // that `node-fetch` defines is incompatible with the web standard which results\n // in `new File` interpreting it as a string instead of binary data.\n const data = (0, exports.isBlobLike)(blob) ? [(await blob.arrayBuffer())] : [blob];\n return new index_1.File(data, name, options);\n }\n const bits = await getBytes(value);\n name || (name = getName(value) ?? 'unknown_file');\n if (!options?.type) {\n const type = bits[0]?.type;\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return new index_1.File(bits, name, options);\n}\nexports.toFile = toFile;\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if ((0, exports.isBlobLike)(value)) {\n parts.push(await value.arrayBuffer());\n }\n else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(chunk); // TODO, consider validating?\n }\n }\n else {\n throw new Error(`Unexpected data type: ${typeof value}; constructor: ${value?.constructor\n ?.name}; props: ${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n const props = Object.getOwnPropertyNames(value);\n return `[${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\nfunction getName(value) {\n return (getStringFromMaybeBuffer(value.name) ||\n getStringFromMaybeBuffer(value.filename) ||\n // For fs.ReadStream\n getStringFromMaybeBuffer(value.path)?.split(/[\\\\/]/).pop());\n}\nconst getStringFromMaybeBuffer = (x) => {\n if (typeof x === 'string')\n return x;\n if (typeof Buffer !== 'undefined' && x instanceof Buffer)\n return String(x);\n return undefined;\n};\nconst isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\nconst isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';\nexports.isMultipartBody = isMultipartBody;\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nconst maybeMultipartFormRequestOptions = async (opts) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n const form = await (0, exports.createForm)(opts.body);\n return (0, index_1.getMultipartRequestOptions)(form, opts);\n};\nexports.maybeMultipartFormRequestOptions = maybeMultipartFormRequestOptions;\nconst multipartFormRequestOptions = async (opts) => {\n const form = await (0, exports.createForm)(opts.body);\n return (0, index_1.getMultipartRequestOptions)(form, opts);\n};\nexports.multipartFormRequestOptions = multipartFormRequestOptions;\nconst createForm = async (body) => {\n const form = new index_1.FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\nexports.createForm = createForm;\nconst hasUploadableValue = (value) => {\n if ((0, exports.isUploadable)(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if ((0, exports.isUploadable)(value)) {\n const file = await toFile(value);\n form.append(key, file);\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorStoreSearchResponsesPage = exports.VectorStoresPage = exports.VectorStores = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst FileBatchesAPI = __importStar(require(\"./file-batches.js\"));\nconst file_batches_1 = require(\"./file-batches.js\");\nconst FilesAPI = __importStar(require(\"./files.js\"));\nconst files_1 = require(\"./files.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass VectorStores extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreId, options) {\n return this._client.get(`/vector_stores/${vectorStoreId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/vector_stores', VectorStoresPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete a vector store.\n */\n del(vectorStoreId, options) {\n return this._client.delete(`/vector_stores/${vectorStoreId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreId, body, options) {\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/search`, VectorStoreSearchResponsesPage, {\n body,\n method: 'post',\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.VectorStores = VectorStores;\nclass VectorStoresPage extends pagination_1.CursorPage {\n}\nexports.VectorStoresPage = VectorStoresPage;\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass VectorStoreSearchResponsesPage extends pagination_1.Page {\n}\nexports.VectorStoreSearchResponsesPage = VectorStoreSearchResponsesPage;\nVectorStores.VectorStoresPage = VectorStoresPage;\nVectorStores.VectorStoreSearchResponsesPage = VectorStoreSearchResponsesPage;\nVectorStores.Files = files_1.Files;\nVectorStores.VectorStoreFilesPage = files_1.VectorStoreFilesPage;\nVectorStores.FileContentResponsesPage = files_1.FileContentResponsesPage;\nVectorStores.FileBatches = file_batches_1.FileBatches;\n//# sourceMappingURL=vector-stores.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultipartBody = void 0;\n/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nclass MultipartBody {\n constructor(body) {\n this.body = body;\n }\n get [Symbol.toStringTag]() {\n return 'MultipartBody';\n }\n}\nexports.MultipartBody = MultipartBody;\n//# sourceMappingURL=MultipartBody.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionRunner = void 0;\nconst AbstractChatCompletionRunner_1 = require(\"./AbstractChatCompletionRunner.js\");\nconst chatCompletionUtils_1 = require(\"./chatCompletionUtils.js\");\nclass ChatCompletionRunner extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {\n /** @deprecated - please use `runTools` instead. */\n static runFunctions(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },\n };\n runner._run(() => runner._runFunctions(client, params, opts));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n _addMessage(message, emit = true) {\n super._addMessage(message, emit);\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.content) {\n this._emit('content', message.content);\n }\n }\n}\nexports.ChatCompletionRunner = ChatCompletionRunner;\n//# sourceMappingURL=ChatCompletionRunner.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingToolFunction = exports.ParsingFunction = exports.isRunnableFunctionWithParse = void 0;\nfunction isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\nexports.isRunnableFunctionWithParse = isRunnableFunctionWithParse;\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n *\n * @deprecated - please use ParsingToolFunction instead.\n */\nclass ParsingFunction {\n constructor(input) {\n this.function = input.function;\n this.parse = input.parse;\n this.parameters = input.parameters;\n this.description = input.description;\n this.name = input.name;\n }\n}\nexports.ParsingFunction = ParsingFunction;\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nclass ParsingToolFunction {\n constructor(input) {\n this.type = 'function';\n this.function = input;\n }\n}\nexports.ParsingToolFunction = ParsingToolFunction;\n//# sourceMappingURL=RunnableFunction.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Moderations = void 0;\nconst resource_1 = require(\"../resource.js\");\nclass Moderations extends resource_1.APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the [moderation guide](https://platform.openai.com/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options });\n }\n}\nexports.Moderations = Moderations;\n//# sourceMappingURL=moderations.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Speech = void 0;\nconst resource_1 = require(\"../../resource.js\");\nclass Speech extends resource_1.APIResource {\n /**\n * Generates audio from the input text.\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: { Accept: 'application/octet-stream', ...options?.headers },\n __binaryResponse: true,\n });\n }\n}\nexports.Speech = Speech;\n//# sourceMappingURL=speech.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_endRequest, _ChatCompletionStream_getAutoParseableResponseFormat, _ChatCompletionStream_accumulateChatCompletion;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStream = void 0;\nconst error_1 = require(\"../error.js\");\nconst AbstractChatCompletionRunner_1 = require(\"./AbstractChatCompletionRunner.js\");\nconst streaming_1 = require(\"../streaming.js\");\nconst parser_1 = require(\"../lib/parser.js\");\nconst parser_2 = require(\"../_vendor/partial-json-parser/parser.js\");\nclass ChatCompletionStream extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n }\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createChatCompletion(client, params, options) {\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));\n return runner;\n }\n async _createChatCompletion(client, params, options) {\n super._createChatCompletion;\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const stream = await client.chat.completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const chunk of stream) {\n if (chatId && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n chatId = chunk.id;\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended)\n return;\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const choiceSnapshot = completion.choices[choice.index];\n if (choice.delta.content != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.content) {\n this._emit('content', choice.delta.content, choiceSnapshot.message.content);\n this._emit('content.delta', {\n delta: choice.delta.content,\n snapshot: choiceSnapshot.message.content,\n parsed: choiceSnapshot.message.parsed,\n });\n }\n if (choice.delta.refusal != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.refusal) {\n this._emit('refusal.delta', {\n delta: choice.delta.refusal,\n snapshot: choiceSnapshot.message.refusal,\n });\n }\n if (choice.logprobs?.content != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of choice.delta.tool_calls ?? []) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of choice.delta.tool_calls ?? []) {\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot?.type === 'function') {\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function?.name,\n index: toolCallDelta.index,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.function?.arguments ?? '',\n });\n }\n else {\n assertNever(toolCallSnapshot?.type);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => tool.type === 'function' && tool.function.name === toolCallSnapshot.function.name);\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: (0, parser_1.isAutoParsableTool)(inputTool) ? inputTool.$parseRaw(toolCallSnapshot.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCallSnapshot.function.arguments)\n : null,\n });\n }\n else {\n assertNever(toolCallSnapshot.type);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.message.content && !state.content_done) {\n state.content_done = true;\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this);\n this._emit('content.done', {\n content: choiceSnapshot.message.content,\n parsed: responseFormat ? responseFormat.$parseRaw(choiceSnapshot.message.content) : null,\n });\n }\n if (choiceSnapshot.message.refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal: choiceSnapshot.message.refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new error_1.OpenAIError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"));\n }, _ChatCompletionStream_getAutoParseableResponseFormat = function _ChatCompletionStream_getAutoParseableResponseFormat() {\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format;\n if ((0, parser_1.isAutoParsableResponseFormat)(responseFormat)) {\n return responseFormat;\n }\n return null;\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {\n var _a, _b, _c, _d;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, ...rest } = chunk;\n if (!snapshot) {\n snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {\n ...rest,\n choices: [],\n }, \"f\");\n }\n else {\n Object.assign(snapshot, rest);\n }\n for (const { delta, finish_reason, index, logprobs = null, ...other } of chunk.choices) {\n let choice = snapshot.choices[index];\n if (!choice) {\n choice = snapshot.choices[index] = { finish_reason, index, message: {}, logprobs, ...other };\n }\n if (logprobs) {\n if (!choice.logprobs) {\n choice.logprobs = Object.assign({}, logprobs);\n }\n else {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n Object.assign(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && (0, parser_1.hasAutoParseableInput)(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"))) {\n if (finish_reason === 'length') {\n throw new error_1.LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new error_1.ContentFilterFinishReasonError();\n }\n }\n }\n Object.assign(choice, other);\n if (!delta)\n continue; // Shouldn't happen; just in case.\n const { content, refusal, function_call, role, tool_calls, ...rest } = delta;\n assertIsEmpty(rest);\n Object.assign(choice.message, rest);\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role)\n choice.message.role = role;\n if (function_call) {\n if (!choice.message.function_call) {\n choice.message.function_call = function_call;\n }\n else {\n if (function_call.name)\n choice.message.function_call.name = function_call.name;\n if (function_call.arguments) {\n (_c = choice.message.function_call).arguments ?? (_c.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n }\n if (content) {\n choice.message.content = (choice.message.content || '') + content;\n if (!choice.message.refusal && __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this)) {\n choice.message.parsed = (0, parser_2.partialParse)(choice.message.content);\n }\n }\n if (tool_calls) {\n if (!choice.message.tool_calls)\n choice.message.tool_calls = [];\n for (const { index, id, type, function: fn, ...rest } of tool_calls) {\n const tool_call = ((_d = choice.message.tool_calls)[index] ?? (_d[index] = {}));\n Object.assign(tool_call, rest);\n if (id)\n tool_call.id = id;\n if (type)\n tool_call.type = type;\n if (fn)\n tool_call.function ?? (tool_call.function = { name: fn.name ?? '', arguments: '' });\n if (fn?.name)\n tool_call.function.name = fn.name;\n if (fn?.arguments) {\n tool_call.function.arguments += fn.arguments;\n if ((0, parser_1.shouldParseToolCall)(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), tool_call)) {\n tool_call.function.parsed_arguments = (0, parser_2.partialParse)(tool_call.function.arguments);\n }\n }\n }\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('chunk', (chunk) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(chunk);\n }\n else {\n pushQueue.push(chunk);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nexports.ChatCompletionStream = ChatCompletionStream;\nfunction finalizeChatCompletion(snapshot, params) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: choices.map(({ message, finish_reason, index, logprobs, ...choiceRest }) => {\n if (!finish_reason) {\n throw new error_1.OpenAIError(`missing finish_reason for choice ${index}`);\n }\n const { content = null, function_call, tool_calls, ...messageRest } = message;\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new error_1.OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new error_1.OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new error_1.OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason,\n logprobs,\n message: {\n ...messageRest,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: tool_calls.map((tool_call, i) => {\n const { function: fn, type, id, ...toolRest } = tool_call;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (id == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].id\\n${str(snapshot)}`);\n }\n if (type == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].type\\n${str(snapshot)}`);\n }\n if (name == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\\n${str(snapshot)}`);\n }\n if (args == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\\n${str(snapshot)}`);\n }\n return { ...toolRest, id, type, function: { ...fnRest, name, arguments: args } };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, content, role, refusal: message.refusal ?? null },\n finish_reason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return (0, parser_1.maybeParseChatCompletion)(completion, params);\n}\nfunction str(x) {\n return JSON.stringify(x);\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n return;\n}\nfunction assertNever(_x) { }\n//# sourceMappingURL=ChatCompletionStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RFC3986 = exports.RFC1738 = exports.formatters = exports.default_format = void 0;\nexports.default_format = 'RFC3986';\nexports.formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: (v) => String(v),\n};\nexports.RFC1738 = 'RFC1738';\nexports.RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\nexports.VERSION = '4.87.4'; // x-release-please-version\n//# sourceMappingURL=version.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=shared.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseItemsPage = exports.InputItems = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst responses_1 = require(\"./responses.js\");\nObject.defineProperty(exports, \"ResponseItemsPage\", { enumerable: true, get: function () { return responses_1.ResponseItemsPage; } });\nclass InputItems extends resource_1.APIResource {\n list(responseId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(responseId, {}, query);\n }\n return this._client.getAPIList(`/responses/${responseId}/input_items`, responses_1.ResponseItemsPage, {\n query,\n ...options,\n });\n }\n}\nexports.InputItems = InputItems;\n//# sourceMappingURL=input-items.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MessagesPage = exports.Messages = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Messages extends resource_1.APIResource {\n /**\n * Create a message.\n */\n create(threadId, body, options) {\n return this._client.post(`/threads/${threadId}/messages`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieve a message.\n */\n retrieve(threadId, messageId, options) {\n return this._client.get(`/threads/${threadId}/messages/${messageId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a message.\n */\n update(threadId, messageId, body, options) {\n return this._client.post(`/threads/${threadId}/messages/${messageId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(threadId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(threadId, {}, query);\n }\n return this._client.getAPIList(`/threads/${threadId}/messages`, MessagesPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Deletes a message.\n */\n del(threadId, messageId, options) {\n return this._client.delete(`/threads/${threadId}/messages/${messageId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Messages = Messages;\nclass MessagesPage extends pagination_1.CursorPage {\n}\nexports.MessagesPage = MessagesPage;\nMessages.MessagesPage = MessagesPage;\n//# sourceMappingURL=messages.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chat = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst CompletionsAPI = __importStar(require(\"./completions/completions.js\"));\nconst completions_1 = require(\"./completions/completions.js\");\nclass Chat extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nexports.Chat = Chat;\nChat.Completions = completions_1.Completions;\nChat.ChatCompletionsPage = completions_1.ChatCompletionsPage;\n//# sourceMappingURL=chat.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Beta = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst AssistantsAPI = __importStar(require(\"./assistants.js\"));\nconst ChatAPI = __importStar(require(\"./chat/chat.js\"));\nconst assistants_1 = require(\"./assistants.js\");\nconst RealtimeAPI = __importStar(require(\"./realtime/realtime.js\"));\nconst realtime_1 = require(\"./realtime/realtime.js\");\nconst ThreadsAPI = __importStar(require(\"./threads/threads.js\"));\nconst threads_1 = require(\"./threads/threads.js\");\nconst chat_1 = require(\"./chat/chat.js\");\nclass Beta extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.chat = new ChatAPI.Chat(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nexports.Beta = Beta;\nBeta.Realtime = realtime_1.Realtime;\nBeta.Assistants = assistants_1.Assistants;\nBeta.AssistantsPage = assistants_1.AssistantsPage;\nBeta.Threads = threads_1.Threads;\n//# sourceMappingURL=beta.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPresent = exports.isToolMessage = exports.isFunctionMessage = exports.isAssistantMessage = void 0;\nconst isAssistantMessage = (message) => {\n return message?.role === 'assistant';\n};\nexports.isAssistantMessage = isAssistantMessage;\nconst isFunctionMessage = (message) => {\n return message?.role === 'function';\n};\nexports.isFunctionMessage = isFunctionMessage;\nconst isToolMessage = (message) => {\n return message?.role === 'tool';\n};\nexports.isToolMessage = isToolMessage;\nfunction isPresent(obj) {\n return obj != null;\n}\nexports.isPresent = isPresent;\n//# sourceMappingURL=chatCompletionUtils.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest, _ResponseStream_accumulateResponse;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseStream = void 0;\nconst error_1 = require(\"../../error.js\");\nconst EventStream_1 = require(\"../EventStream.js\");\nconst ResponsesParser_1 = require(\"../ResponsesParser.js\");\nclass ResponseStream extends EventStream_1.EventStream {\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n static createResponse(client, params, options) {\n const runner = new ResponseStream(params);\n runner._run(() => runner._createResponse(client, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createResponse(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n const stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event) {\n if (this.ended)\n return;\n const response = __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_accumulateResponse).call(this, event);\n this._emit('event', event);\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new error_1.OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new error_1.OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n this._emit('response.output_text.delta', {\n ...event,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n this._emit('response.function_call_arguments.delta', {\n ...event,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default:\n // @ts-ignore\n this._emit(event.type, event);\n break;\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new error_1.OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, _ResponseStream_accumulateResponse = function _ResponseStream_accumulateResponse(event) {\n let snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n if (event.type !== 'response.created') {\n throw new error_1.OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);\n }\n snapshot = __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n return snapshot;\n }\n switch (event.type) {\n case 'response.output_item.added': {\n snapshot.output.push(event.item);\n break;\n }\n case 'response.content_part.added': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n output.content.push(event.part);\n }\n break;\n }\n case 'response.output_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new error_1.OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new error_1.OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n break;\n }\n case 'response.completed': {\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n break;\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((event) => (event ? { value: event, done: false } : { value: undefined, done: true }));\n }\n const event = pushQueue.shift();\n return { value: event, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * @returns a promise that resolves with the final Response, or rejects\n * if an error occurred or the stream ended prematurely without producing a REsponse.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response)\n throw new error_1.OpenAIError('stream ended without producing a ChatCompletion');\n return response;\n }\n}\nexports.ResponseStream = ResponseStream;\nfunction finalizeResponse(snapshot, params) {\n return (0, ResponsesParser_1.maybeParseResponse)(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableStreamToAsyncIterable = void 0;\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nfunction ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\nexports.ReadableStreamToAsyncIterable = ReadableStreamToAsyncIterable;\n//# sourceMappingURL=stream-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._iterSSEMessages = exports.Stream = void 0;\nconst index_1 = require(\"./_shims/index.js\");\nconst error_1 = require(\"./error.js\");\nconst line_1 = require(\"./internal/decoders/line.js\");\nconst stream_utils_1 = require(\"./internal/stream-utils.js\");\nconst error_2 = require(\"./error.js\");\nclass Stream {\n constructor(iterator, controller) {\n this.iterator = iterator;\n this.controller = controller;\n }\n static fromSSEResponse(response, controller) {\n let consumed = false;\n async function* iterator() {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const sse of _iterSSEMessages(response, controller)) {\n if (done)\n continue;\n if (sse.data.startsWith('[DONE]')) {\n done = true;\n continue;\n }\n if (sse.event === null || sse.event.startsWith('response.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n if (data && data.error) {\n throw new error_2.APIError(undefined, data.error, undefined, undefined);\n }\n yield data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n // TODO: Is this where the error should be thrown?\n if (sse.event == 'error') {\n throw new error_2.APIError(undefined, data.error, data.message, undefined);\n }\n yield { event: sse.event, data: data };\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError')\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new line_1.LineDecoder();\n const iter = (0, stream_utils_1.ReadableStreamToAsyncIterable)(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError')\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller);\n }\n [Symbol.asyncIterator]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller),\n new Stream(() => teeIterator(right), this.controller),\n ];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n */\n toReadableStream() {\n const self = this;\n let iter;\n const encoder = new TextEncoder();\n return new index_1.ReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encoder.encode(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexports.Stream = Stream;\nasync function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n throw new error_1.OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new line_1.LineDecoder();\n const iter = (0, stream_utils_1.ReadableStreamToAsyncIterable)(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\nexports._iterSSEMessages = _iterSSEMessages;\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? new TextEncoder().encode(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n let patternIndex;\n while ((patternIndex = (0, line_1.findDoubleNewlineIndex)(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length)\n return null;\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Images = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst Core = __importStar(require(\"../core.js\"));\nclass Images extends resource_1.APIResource {\n /**\n * Creates a variation of a given image.\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', Core.multipartFormRequestOptions({ body, ...options }));\n }\n /**\n * Creates an edited or extended image given an original image and a prompt.\n */\n edit(body, options) {\n return this._client.post('/images/edits', Core.multipartFormRequestOptions({ body, ...options }));\n }\n /**\n * Creates an image given a prompt.\n */\n generate(body, options) {\n return this._client.post('/images/generations', { body, ...options });\n }\n}\nexports.Images = Images;\n//# sourceMappingURL=images.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Translations = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst Core = __importStar(require(\"../../core.js\"));\nclass Translations extends resource_1.APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', Core.multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }));\n }\n}\nexports.Translations = Translations;\n//# sourceMappingURL=translations.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStreamingRunner = void 0;\nconst ChatCompletionStream_1 = require(\"./ChatCompletionStream.js\");\nclass ChatCompletionStreamingRunner extends ChatCompletionStream_1.ChatCompletionStream {\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n /** @deprecated - please use `runTools` instead. */\n static runFunctions(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(null);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },\n };\n runner._run(() => runner._runFunctions(client, params, opts));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n}\nexports.ChatCompletionStreamingRunner = ChatCompletionStreamingRunner;\n//# sourceMappingURL=ChatCompletionStreamingRunner.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RunStepsPage = exports.Steps = void 0;\nconst resource_1 = require(\"../../../../resource.js\");\nconst core_1 = require(\"../../../../core.js\");\nconst pagination_1 = require(\"../../../../pagination.js\");\nclass Steps extends resource_1.APIResource {\n retrieve(threadId, runId, stepId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.retrieve(threadId, runId, stepId, {}, query);\n }\n return this._client.get(`/threads/${threadId}/runs/${runId}/steps/${stepId}`, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(threadId, runId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(threadId, runId, {}, query);\n }\n return this._client.getAPIList(`/threads/${threadId}/runs/${runId}/steps`, RunStepsPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Steps = Steps;\nclass RunStepsPage extends pagination_1.CursorPage {\n}\nexports.RunStepsPage = RunStepsPage;\nSteps.RunStepsPage = RunStepsPage;\n//# sourceMappingURL=steps.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addOutputText = exports.validateInputTools = exports.shouldParseToolCall = exports.isAutoParsableTool = exports.makeParseableResponseTool = exports.hasAutoParseableInput = exports.parseResponse = exports.maybeParseResponse = void 0;\nconst error_1 = require(\"../error.js\");\nconst parser_1 = require(\"../lib/parser.js\");\nfunction maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n else {\n return item;\n }\n }),\n };\n }\n return parseResponse(response, params);\n}\nexports.maybeParseResponse = maybeParseResponse;\nfunction parseResponse(response, params) {\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: parseToolCall(params, item),\n };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: parseTextFormat(params, content.text),\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = Object.assign({}, response, { output });\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n return parsed;\n}\nexports.parseResponse = parseResponse;\nfunction parseTextFormat(params, content) {\n if (params.text?.format?.type !== 'json_schema') {\n return null;\n }\n if ('$parseRaw' in params.text?.format) {\n const text_format = params.text?.format;\n return text_format.$parseRaw(content);\n }\n return JSON.parse(content);\n}\nfunction hasAutoParseableInput(params) {\n if ((0, parser_1.isAutoParsableResponseFormat)(params.text?.format)) {\n return true;\n }\n return false;\n}\nexports.hasAutoParseableInput = hasAutoParseableInput;\nfunction makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableResponseTool = makeParseableResponseTool;\nfunction isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexports.isAutoParsableTool = isAutoParsableTool;\nfunction getInputToolByName(input_tools, name) {\n return input_tools.find((tool) => tool.type === 'function' && tool.name === name);\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return {\n ...toolCall,\n ...toolCall,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.arguments)\n : inputTool?.strict ? JSON.parse(toolCall.arguments)\n : null,\n };\n}\nfunction shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\nexports.shouldParseToolCall = shouldParseToolCall;\nfunction validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new error_1.OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new error_1.OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexports.validateInputTools = validateInputTools;\nfunction addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\nexports.addOutputText = addOutputText;\n//# sourceMappingURL=ResponsesParser.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completions = exports.ChatCompletionsPage = exports.ChatCompletionStoreMessagesPage = exports.Chat = void 0;\nvar chat_1 = require(\"./chat.js\");\nObject.defineProperty(exports, \"Chat\", { enumerable: true, get: function () { return chat_1.Chat; } });\nvar index_1 = require(\"./completions/index.js\");\nObject.defineProperty(exports, \"ChatCompletionStoreMessagesPage\", { enumerable: true, get: function () { return index_1.ChatCompletionStoreMessagesPage; } });\nObject.defineProperty(exports, \"ChatCompletionsPage\", { enumerable: true, get: function () { return index_1.ChatCompletionsPage; } });\nObject.defineProperty(exports, \"Completions\", { enumerable: true, get: function () { return index_1.Completions; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completions = exports.ChatCompletionRunner = exports.ChatCompletionStream = exports.ParsingToolFunction = exports.ParsingFunction = exports.ChatCompletionStreamingRunner = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst ChatCompletionRunner_1 = require(\"../../../lib/ChatCompletionRunner.js\");\nconst ChatCompletionStreamingRunner_1 = require(\"../../../lib/ChatCompletionStreamingRunner.js\");\nconst ChatCompletionStream_1 = require(\"../../../lib/ChatCompletionStream.js\");\nconst parser_1 = require(\"../../../lib/parser.js\");\nvar ChatCompletionStreamingRunner_2 = require(\"../../../lib/ChatCompletionStreamingRunner.js\");\nObject.defineProperty(exports, \"ChatCompletionStreamingRunner\", { enumerable: true, get: function () { return ChatCompletionStreamingRunner_2.ChatCompletionStreamingRunner; } });\nvar RunnableFunction_1 = require(\"../../../lib/RunnableFunction.js\");\nObject.defineProperty(exports, \"ParsingFunction\", { enumerable: true, get: function () { return RunnableFunction_1.ParsingFunction; } });\nObject.defineProperty(exports, \"ParsingToolFunction\", { enumerable: true, get: function () { return RunnableFunction_1.ParsingToolFunction; } });\nvar ChatCompletionStream_2 = require(\"../../../lib/ChatCompletionStream.js\");\nObject.defineProperty(exports, \"ChatCompletionStream\", { enumerable: true, get: function () { return ChatCompletionStream_2.ChatCompletionStream; } });\nvar ChatCompletionRunner_2 = require(\"../../../lib/ChatCompletionRunner.js\");\nObject.defineProperty(exports, \"ChatCompletionRunner\", { enumerable: true, get: function () { return ChatCompletionRunner_2.ChatCompletionRunner; } });\nclass Completions extends resource_1.APIResource {\n parse(body, options) {\n (0, parser_1.validateInputTools)(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n headers: {\n ...options?.headers,\n 'X-Stainless-Helper-Method': 'beta.chat.completions.parse',\n },\n })\n ._thenUnwrap((completion) => (0, parser_1.parseChatCompletion)(completion, body));\n }\n runFunctions(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runFunctions(this._client, body, options);\n }\n return ChatCompletionRunner_1.ChatCompletionRunner.runFunctions(this._client, body, options);\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner_1.ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream_1.ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexports.Completions = Completions;\n//# sourceMappingURL=completions.js.map","// Import React normally, but use a helper function to handle possible duplicates\nimport React from 'react';\nimport OpenAI from 'openai';\n\n// Define types for React hooks we need\ntype UseStateHook = typeof React.useState;\ntype UseEffectHook = typeof React.useEffect;\ntype UseRefHook = typeof React.useRef;\n\n// Get React hooks safely, avoiding duplicate React issues\nconst getReactHooks = () => {\n // Try to use the React instance from window if available (for react-scripts)\n if (typeof window !== 'undefined' && (window as any).React) {\n return {\n useState: (window as any).React.useState as UseStateHook,\n useEffect: (window as any).React.useEffect as UseEffectHook,\n useRef: (window as any).React.useRef as UseRefHook\n };\n }\n // Otherwise use the imported React\n return {\n useState: React.useState,\n useEffect: React.useEffect,\n useRef: React.useRef\n };\n};\n\ntype RecordingStatus = 'idle' | 'recording' | 'processing' | 'playing';\n\nconst geminiFlash = async (prompt: string) => {\n const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=AIzaSyBiFyzjYVupLyk8BdmfWzBL1GbzX8OUdPc`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n contents: [\n {\n parts: [\n {\n text: prompt\n }\n ]\n }\n ]\n })\n });\n const responseJson = await response.json();\n const content = responseJson.candidates[0].content;\n const responseText = content.parts[0].text;\n return responseText;\n}\n\nexport interface GuideAIProps {\n apiKey?: string;\n organizationKey: string;\n position?: {\n top?: string;\n right?: string;\n bottom?: string;\n left?: string;\n marginLeft?: string;\n };\n onError?: (error: string | Error, context?: string) => void;\n}\n\nconst DEFAULT_PROMPT = `you are Guide AI.\n Your role is to answer any question directly and succinctly that a user has. NEVER DIRECTLY MENTION THE SCREENSHOT, but use its information as much as possible to target your responses.\n If nothing is asked, then your goal is to generally assist them.\n IMPORTANT: NEVER answer in more than 10 words. Always be concise and limit answers to 1 sentence maximum. Be simple and as short as possible.\n Your job is to help them get it done through asking more and more targeted specific questions.`;\n\nconst GuideAI = (props: GuideAIProps) => { \n const {\n apiKey,\n organizationKey,\n position = { bottom: '2rem', right: '2rem' },\n onError = console.error,\n } = props;\n\n const [status, setStatus] = getReactHooks().useState<RecordingStatus>('idle');\n const [isClient, setIsClient] = getReactHooks().useState(false);\n const [componentPosition] = getReactHooks().useState(position);\n const [isHighlighting, setIsHighlighting] = getReactHooks().useState(false);\n const [hasInteracted, setHasInteracted] = getReactHooks().useState(false);\n const [prompt, setPrompt] = getReactHooks().useState<string | null>(null);\n const [isSessionReady, setIsSessionReady] = getReactHooks().useState(false);\n const [isConnecting, setIsConnecting] = getReactHooks().useState(false);\n const [showOnboarding, setShowOnboarding] = getReactHooks().useState(false);\n const [onboardingStep, setOnboardingStep] = getReactHooks().useState(1);\n const conversationIdRef = getReactHooks().useRef<string | null>(null);\n\n const componentRef = getReactHooks().useRef<HTMLDivElement>(null);\n const openaiClientRef = getReactHooks().useRef<OpenAI | null>(null);\n const peerConnectionRef = getReactHooks().useRef<RTCPeerConnection | null>(null);\n const dataChannelRef = getReactHooks().useRef<RTCDataChannel | null>(null);\n const hasCreatedConversationRef = getReactHooks().useRef(false);\n const mediaStreamRef = getReactHooks().useRef<MediaStream | null>(null);\n const audioElementRef = getReactHooks().useRef<HTMLAudioElement | null>(null);\n const [ephemeralToken, setEphemeralToken] = getReactHooks().useState<string | null>(null);\n const hasInitializedRef = getReactHooks().useRef(false);\n const [isConversationActive, setIsConversationActive] = getReactHooks().useState(false);\n\n const createNewConversation = async () => {\n if (hasCreatedConversationRef.current) return;\n hasCreatedConversationRef.current = true;\n \n try {\n const now = new Date();\n const response = await fetch('https://www.getguide.ai/api/conversations', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n id: crypto.randomUUID(),\n userId: 'anonymous',\n date: now.toISOString().split('T')[0],\n time: now.toTimeString().split(' ')[0],\n messages: [],\n organization: organizationKey\n })\n });\n const conversation = await response.json();\n console.log('Conversation created:', conversation);\n conversationIdRef.current = conversation.id;\n } catch (error) {\n console.error('Error creating conversation:', error);\n onError(error as Error, 'Creating conversation');\n }\n };\n\n const logMessage = async (content: string, sender: 'GUIDEAI' | 'HUMAN') => {\n if (!conversationIdRef.current) return;\n try {\n const response = await fetch(`https://www.getguide.ai/api/conversations/${conversationIdRef.current}/messages`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ content, sender })\n });\n \n if (!response.ok) {\n throw new Error(`Failed to log message: ${response.status} ${response.statusText}`);\n }\n } catch (error) {\n console.error('Error logging message:', error);\n onError(error as Error, 'Logging message');\n }\n };\n\n const fetchEphemeralToken = async (): Promise<string | null> => {\n try {\n let promptToUse = DEFAULT_PROMPT;\n \n if (organizationKey) {\n try {\n const promptResponse = await fetch(`https://www.getguide.ai/api/prompts/${organizationKey}`);\n if (promptResponse.ok) {\n const promptData = await promptResponse.json();\n promptToUse = promptData.prompt || DEFAULT_PROMPT;\n } else if (promptResponse.status !== 404) {\n console.error(`Failed to fetch prompt: ${promptResponse.statusText}`);\n }\n } catch (promptError) {\n console.error('Error fetching prompt:', promptError);\n }\n }\n \n setPrompt(promptToUse);\n \n const tokenEndpoint = 'https://www.getguide.ai/api/realtime';\n \n const response = await fetch(tokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n prompt: promptToUse,\n })\n });\n \n if (!response.ok) {\n const errorText = await response.text().catch(() => 'No error details available');\n console.error(`Token fetch failed with status ${response.status}:`, errorText);\n throw new Error(`Failed to fetch token: ${response.status} - ${errorText}`);\n }\n \n const data = await response.json();\n \n // Check token structure\n if (!data.client_secret || !data.client_secret.value) {\n console.error('Invalid token structure received:', JSON.stringify(data));\n throw new Error('Invalid token structure received from server');\n }\n \n setEphemeralToken(data.client_secret.value);\n return data.client_secret.value;\n } catch (error) {\n console.error('Error fetching ephemeral token:', error);\n onError(error as Error, 'Fetching ephemeral token');\n return null;\n }\n };\n\n const sendMessage = (message: any) => {\n if (dataChannelRef.current?.readyState === 'open') {\n // console.log('sending message', message);\n dataChannelRef.current.send(JSON.stringify(message));\n } else {\n console.error('Data channel not open, cannot send message');\n setStatus('idle');\n }\n };\n \n const cleanupWebRTC = () => {\n if (mediaStreamRef.current) {\n // Stop tracks completely instead of just disabling them\n mediaStreamRef.current.getAudioTracks().forEach(track => {\n track.stop();\n });\n mediaStreamRef.current = null;\n }\n \n if (dataChannelRef.current) {\n dataChannelRef.current.close();\n dataChannelRef.current = null;\n }\n \n if (peerConnectionRef.current) {\n peerConnectionRef.current.close();\n peerConnectionRef.current = null;\n }\n \n if (audioElementRef.current) {\n audioElementRef.current.srcObject = null;\n }\n \n // Reset session ready state\n setIsSessionReady(false);\n };\n\n // initialization - mic/audio, webrtc, openai client\n getReactHooks().useEffect(() => {\n if (hasInitializedRef.current) return;\n hasInitializedRef.current = true;\n \n setIsClient(true);\n const hasInteractedBefore = localStorage.getItem('guideAI_hasInteracted');\n if (hasInteractedBefore) {\n setHasInteracted(true);\n } else {\n setHasInteracted(false);\n }\n\n createNewConversation();\n fetchEphemeralToken().then(token => {\n if (token) {\n setEphemeralToken(token);\n }\n });\n \n if (apiKey) {\n openaiClientRef.current = new OpenAI({\n apiKey,\n dangerouslyAllowBrowser: true,\n });\n }\n \n return () => {\n cleanupWebRTC();\n \n if (audioElementRef.current) {\n audioElementRef.current.srcObject = null;\n audioElementRef.current.remove();\n audioElementRef.current = null;\n }\n };\n }, [organizationKey, apiKey]);\n\n const clickElement = async (element: Element, rect: DOMRect): Promise<void> => {\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n const clickEffectContainer = document.createElement('div');\n clickEffectContainer.style.cssText = `\n position: fixed;\n left: ${rect.left + rect.width / 2}px;\n top: ${rect.top + rect.height / 2}px;\n width: 60px;\n height: 60px;\n z-index: 1000;\n pointer-events: none;\n transform: translate(-50%, -50%);\n `;\n document.body.appendChild(clickEffectContainer);\n \n for (let j = 0; j < 3; j++) {\n const clickRipple = document.createElement('div');\n clickRipple.style.cssText = `\n position: absolute;\n left: 50%;\n top: 50%;\n width: 40px;\n height: 40px;\n border: 2px solid rgba(0, 102, 255, ${0.7 - (j * 0.2)});\n border-radius: 50%;\n transform: translate(-50%, -50%) scale(0);\n opacity: 1;\n animation: click-ripple-animation 0.8s ease-out ${j * 0.15}s forwards;\n box-shadow: 0 0 8px rgba(0, 102, 255, 0.4);\n `;\n clickEffectContainer.appendChild(clickRipple);\n }\n \n const clickDot = document.createElement('div');\n clickDot.style.cssText = `\n position: absolute;\n left: 50%;\n top: 50%;\n width: 12px;\n height: 12px;\n background: rgba(0, 102, 255, 0.9);\n border-radius: 50%;\n transform: translate(-50%, -50%) scale(0);\n animation: click-dot-animation 0.4s ease-out forwards;\n box-shadow: 0 0 5px rgba(0, 102, 255, 0.8);\n `;\n clickEffectContainer.appendChild(clickDot);\n \n const clickEvent = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n\n // Check for clickable subelements (links, buttons, inputs)\n const clickableElements = element.querySelectorAll('a, button, input[type=\"button\"], input[type=\"submit\"]');\n const clickableElement = clickableElements.length > 0 ? clickableElements[0] as HTMLElement : element as HTMLElement;\n console.log('Clicking element:', clickableElement);\n clickableElement.dispatchEvent(clickEvent);\n\n const originalBoxShadow = clickableElement.style.boxShadow;\n const originalTransition = clickableElement.style.transition;\n const originalZIndex = clickableElement.style.zIndex;\n\n clickableElement.style.transition = 'all 0.3s ease-out';\n clickableElement.style.boxShadow = '0 0 0 2px rgba(0, 102, 255, 0.5), 0 0 10px rgba(0, 102, 255, 0.3)';\n clickableElement.style.zIndex = '999';\n\n setTimeout(() => {\n clickableElement.style.boxShadow = originalBoxShadow;\n clickableElement.style.transition = originalTransition;\n clickableElement.style.zIndex = originalZIndex;\n\n clickEffectContainer.remove(); \n resolve();\n }, 1000);\n\n }, 1500);\n });\n };\n\n const highlightElement = async (selector: string | string[]) => {\n if (isHighlighting) return false;\n \n const selectors = Array.isArray(selector) ? selector : [selector];\n if (selectors.length === 0) return false;\n \n console.log('Moving cursor to elements:', selectors);\n \n let cursorElement: HTMLElement | null = null;\n try {\n setIsHighlighting(true);\n \n for (let i = 0; i < selectors.length; i++) {\n const currentSelector = selectors[i];\n \n if (i > 0) {\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n \n let element;\n if (currentSelector.startsWith('//')) {\n const node = document.evaluate(currentSelector, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n if (!(node instanceof Element)) {\n console.log('XPath returned a non-Element node:', currentSelector);\n console.log(node);\n logMessage('XPath returned a non-Element node: ' + currentSelector, 'GUIDEAI');\n break;\n }\n element = node as Element;\n } else {\n element = document.querySelector(currentSelector);\n }\n \n if (!element) {\n console.log('Element not found:', currentSelector);\n logMessage('Element not found: ' + currentSelector, 'GUIDEAI');\n break;\n }\n \n const rect = element.getBoundingClientRect();\n \n // Create cursor if it's the first element, or reuse existing cursor\n if (!cursorElement) {\n cursorElement = document.createElement('div');\n cursorElement.id = 'guide-ai-cursor';\n \n const blueCursorSvg = `\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#0066ff\" d=\"M7,2l12,11.2l-5.8,0.5l3.3,7.3l-2.2,1l-3.2-7.4L7,18.5V2\" />\n </svg>\n `;\n \n cursorElement.innerHTML = blueCursorSvg;\n cursorElement.style.cssText = `\n position: fixed;\n width: 64px;\n height: 64px;\n pointer-events: none;\n z-index: 9999;\n transition: all 0.8s ease-in-out;\n transform: translate(-50%, 0);\n filter: drop-shadow(0 0 4px rgba(0, 102, 255, 0.8));\n `;\n \n document.body.appendChild(cursorElement);\n \n // First element starts from center of viewport\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n cursorElement.style.left = `${viewportWidth / 2}px`;\n cursorElement.style.top = `${viewportHeight / 2}px`;\n }\n \n // Force reflow to ensure transition works\n cursorElement!.offsetHeight;\n \n await new Promise<void>(resolve => {\n setTimeout(() => {\n cursorElement!.style.left = `${rect.left + rect.width / 2}px`;\n cursorElement!.style.top = `${rect.top + rect.height / 2 - 10}px`;\n \n setTimeout(() => {\n cursorElement!.style.animation = 'cursor-jiggle 0.5s ease-in-out infinite';\n resolve();\n }, 800);\n }, 100);\n });\n \n await clickElement(element, rect);\n }\n\n setTimeout(() => {\n cursorElement?.remove();\n setIsHighlighting(false);\n }, 1000);\n \n return true;\n } catch (error) {\n console.error('Error moving cursor:', error);\n cursorElement?.remove();\n setIsHighlighting(false);\n return false;\n }\n };\n\n const initializeWebRTC = async (audioStream: MediaStream, tokenParam?: string | null): Promise<boolean> => {\n try {\n const authToken = tokenParam || ephemeralToken || await fetchEphemeralToken();\n if (!authToken) {\n console.error('Cannot initialize WebRTC without a valid token');\n setIsConnecting(false);\n return false;\n }\n\n const pc = new RTCPeerConnection();\n peerConnectionRef.current = pc;\n \n audioStream.getAudioTracks().forEach(track => {\n pc.addTrack(track, audioStream);\n });\n \n if (!audioElementRef.current) {\n const audioEl = document.createElement('audio');\n audioEl.autoplay = true;\n document.body.appendChild(audioEl);\n audioElementRef.current = audioEl;\n }\n \n pc.ontrack = (e) => {\n if (audioElementRef.current && e.track.kind === 'audio') {\n const stream = new MediaStream([e.track]);\n audioElementRef.current.srcObject = stream;\n }\n };\n \n const dc = pc.createDataChannel('oai-events');\n dataChannelRef.current = dc;\n \n dc.onopen = () => { \n sendMessage({\n type: \"session.update\",\n session: {\n tools: [{\n type: \"function\",\n name: \"highlight\",\n description: \"Highlight specific elements on the page to guide the user's attention\",\n parameters: {\n type: \"object\",\n properties: {\n selector: {\n oneOf: [\n {\n type: \"string\",\n description: \"CSS selector or XPath for the element to highlight (e.g., '#search-bar')\"\n },\n {\n type: \"array\",\n items: {\n type: \"string\"\n },\n description: \"List of CSS selectors or XPaths to highlight in sequence (e.g., ['#first-button', '#second-button'])\"\n }\n ],\n description: \"CSS selector(s) or XPath(s) for the element(s) to highlight. Can be a single selector string or an array of selectors to process sequentially.\"\n }\n },\n required: [\"selector\"]\n }\n }],\n tool_choice: \"auto\",\n turn_detection: {\n type: \"server_vad\",\n create_response: true,\n interrupt_response: false\n },\n input_audio_transcription: {\n model: \"gpt-4o-mini-transcribe\",\n language: \"en\",\n prompt: \"The user may say 'cert' often, so make sure to listen for that.\"\n }\n }\n });\n };\n \n dc.onmessage = (e) => {\n try {\n const message = JSON.parse(e.data);\n const ignoreMessages = [\"delta\", \"rate_limits\", \"input_audio_buffer\",\n \"response.audio.done\", \"response.output_item\", \"response.content_part\", \"output_audio_buffer\",\n \"response.created\", \"session.created\"\n ];\n\n switch (message.type) { \n case 'session.updated':\n // console.log('session.updated', message);\n setIsSessionReady(true);\n setIsConnecting(false);\n break;\n\n case 'session.transcript':\n if (message.text) {\n logMessage(message.text, 'HUMAN');\n }\n break;\n \n case 'conversation.item.input_audio_transcription.completed':\n console.log('User transcript:', message.transcript);\n logMessage(message.transcript, 'HUMAN');\n break;\n\n case 'response.audio_transcript.done':\n console.log('Assistant message:', message.transcript);\n logMessage(message.transcript, 'GUIDEAI');\n break;\n \n case \"conversation.item.created\":\n // console.log('conversation.item.created', message);\n break;\n\n case \"input_audio_buffer.speech_started\":\n // console.log('User speaking started');\n setStatus('recording');\n break;\n\n case \"input_audio_buffer.speech_stopped\":\n // console.log('User speaking stopped');\n setStatus('processing');\n break;\n\n case 'response.done':\n // console.log('response.done', message);\n for (const out of message.response.output) {\n switch (out.type) {\n case \"message\":\n // console.log('Assistant message:', out.text);\n break;\n \n case \"function_call\":\n // console.log('function_call', out);\n if (out.name === 'highlight' && out.arguments) {\n // console.log('Tool call:', out.arguments);\n try {\n let argsToUse = out.arguments;\n // Check if the JSON string is missing a closing quote\n // try {\n // console.log(\"argsToUse\", argsToUse);\n // const parsedArgs = JSON.parse(argsToUse);\n // console.log(\"parsedArgs\", parsedArgs);\n // highlightElement(parsedArgs.selector);\n // } catch (error) {\n // console.log(\"errored, argsToUse\", argsToUse);\n const prompt = `\n Validate the following JSON string and return ONLY a correct JSON object:\n Note: The selector(s) should be either a css selector or an xpath, so modify those if invalid.\n Also, [url=''] is a valid css selector, so do not modify it if it's present.\n Do not add any other text or newlines to the response.\n It should be of the following format:\n { \"selector\": \"string\" }\n or\n { \"selector\": [\"string\", ...] }\n DO NOT add any other text or newlines to the response, it should begin and end with curly braces.\n DO NOT add '''json to the response.\n The JSON string is:\n ${argsToUse}\n `\n geminiFlash(prompt).then(response => {\n response = response.replace(\"```json\", \"\").replace(\"```\", \"\").trim();\n // console.log(\"response\", response);\n const parsedArgs = JSON.parse(response);\n highlightElement(parsedArgs.selector);\n }).catch(err => {\n console.error(\"Error calling Gemini:\", err);\n });\n // }\n\n\n } catch (error) {\n console.error('Error parsing function arguments:', error);\n console.log(out.arguments);\n logMessage('Error parsing function arguments: ' + out.arguments, 'GUIDEAI');\n }\n }\n \n sendMessage({\n type: \"conversation.item.create\",\n item: {\n type: \"function_call_output\",\n call_id: out.call_id,\n output: JSON.stringify(true)\n }\n });\n\n sendMessage({\n type: 'response.create',\n });\n break;\n }\n }\n \n break;\n\n case \"response.function_call_arguments.delta\":\n // console.log('response.function_call_arguments.delta', message);\n break;\n\n case \"response.function_call_arguments.done\":\n // console.log('response.function_call_arguments.done', message);\n break;\n\n case \"output_audio_buffer.started\":\n setStatus('playing');\n break;\n\n case \"output_audio_buffer.stopped\":\n // console.log('output_audio_buffer.stopped');\n setStatus('recording');\n \n break;\n\n case 'error':\n if (message.error.code === 'session_expired') {\n console.error('Session expired:', message);\n setStatus('idle');\n setIsConnecting(false);\n setIsConversationActive(false);\n break;\n }\n console.error('OpenAI API error:', message);\n onError(new Error(message.error.message || 'Unknown API error'), 'OpenAI API error');\n setStatus('idle');\n setIsConnecting(false);\n setIsConversationActive(false);\n break;\n \n default:\n if (!ignoreMessages.some(fragment => message.type.includes(fragment))) {\n console.log('Unhandled:', message.type, message);\n }\n }\n } catch (error) {\n console.error('Error handling WebRTC message:', error);\n setStatus('idle');\n setIsConversationActive(false);\n }\n };\n \n // Start the session using SDP\n const offer = await pc.createOffer();\n await pc.setLocalDescription(offer);\n \n if (!pc.localDescription || !pc.localDescription.sdp) {\n throw new Error('Failed to create local SDP offer');\n }\n \n const baseUrl = 'https://api.openai.com/v1/realtime';\n const model = \"gpt-4o-realtime-preview-2024-12-17\";\n \n \n const sdpResponse = await fetch(`${baseUrl}?model=${model}`, {\n method: 'POST',\n body: pc.localDescription.sdp,\n headers: {\n Authorization: `Bearer ${authToken}`,\n 'Content-Type': 'application/sdp'\n },\n });\n \n if (!sdpResponse.ok) {\n const errorText = await sdpResponse.text().catch(() => 'No error details available');\n console.error('WebRTC connection failed with status:', sdpResponse.status);\n console.error('Error details:', errorText);\n throw new Error(`Failed to connect to OpenAI WebRTC: ${sdpResponse.status} - ${errorText}`);\n }\n \n const answerSdp = await sdpResponse.text();\n \n const answer = {\n type: 'answer',\n sdp: answerSdp,\n };\n \n await pc.setRemoteDescription(answer as RTCSessionDescriptionInit);\n \n return true;\n } catch (error) {\n console.error('Error initializing WebRTC:', error);\n onError(error as Error, 'WebRTC initialization failed');\n setIsConnecting(false);\n return false;\n }\n };\n\n const startConversationSession = async () => {\n if (!isClient) return false;\n try {\n setStatus('processing');\n \n if (peerConnectionRef.current && dataChannelRef.current?.readyState === 'open' && mediaStreamRef.current) {\n mediaStreamRef.current.getAudioTracks().forEach(track => {\n track.enabled = true;\n });\n setStatus('recording');\n return true;\n } else {\n console.log('initializing microphone and WebRTC');\n cleanupWebRTC();\n \n try {\n setIsConnecting(true);\n // Request microphone access when user clicks to start recording\n const audioStream = await navigator.mediaDevices.getUserMedia({ \n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n channelCount: 1,\n sampleRate: 48000,\n }\n });\n \n mediaStreamRef.current = audioStream;\n \n const tokenToUse = ephemeralToken || await fetchEphemeralToken();\n \n const initialized = await initializeWebRTC(audioStream, tokenToUse);\n \n if (!initialized) {\n // Clean up if initialization fails\n audioStream.getAudioTracks().forEach(track => {\n track.stop();\n });\n mediaStreamRef.current = null;\n setStatus('idle');\n setIsConnecting(false);\n return false;\n }\n \n setStatus('recording');\n return true;\n } catch (error) {\n console.error('Error during conversation setup:', error);\n onError(error as Error, 'Microphone or WebRTC setup failed');\n setStatus('idle');\n setIsConnecting(false);\n return false;\n }\n }\n } catch (error) {\n setStatus('idle');\n setIsConnecting(false);\n onError(error as Error, 'Starting conversation failed');\n return false;\n }\n };\n\n const endConversationSession = () => {\n if (!isClient) return;\n \n if (mediaStreamRef.current) {\n mediaStreamRef.current.getAudioTracks().forEach(track => {\n track.stop();\n });\n }\n \n cleanupWebRTC();\n setStatus('idle');\n };\n\n const handleToggleConversation = async () => {\n if (!isClient) return;\n \n if (!hasInteracted) {\n setHasInteracted(true);\n localStorage.setItem('guideAI_hasInteracted', 'true');\n \n // Show onboarding on first interaction\n setShowOnboarding(true);\n return;\n }\n \n if (!isConversationActive) {\n const success = await startConversationSession();\n if (success) {\n setIsConversationActive(true);\n }\n } else {\n endConversationSession();\n setIsConversationActive(false);\n }\n };\n\n const handleOnboardingNext = () => {\n if (onboardingStep < 3) {\n setOnboardingStep(onboardingStep + 1);\n } else {\n setShowOnboarding(false);\n setOnboardingStep(1);\n startConversationSession();\n }\n };\n\n const handleOnboardingClose = () => {\n setShowOnboarding(false);\n setOnboardingStep(1);\n };\n\n if (!isClient) {\n return null;\n }\n\n return (\n <>\n <div\n ref={componentRef}\n style={{\n position: 'fixed',\n ...componentPosition,\n zIndex: 1000,\n }}\n >\n <div className=\"sarge-main-ui\">\n {!hasInteracted && isSessionReady && (\n <div className=\"sarge-welcome-bubble\">\n Stuck? Click here and ask me a question\n </div>\n )}\n \n {showOnboarding && (\n <div className=\"sarge-onboarding\">\n <div className=\"sarge-onboarding-content\">\n <button className=\"sarge-onboarding-close\" onClick={handleOnboardingClose}>×</button>\n \n {onboardingStep === 1 && (\n <div className=\"sarge-onboarding-step\">\n <div className=\"sarge-onboarding-icon volume-icon\">🔊</div>\n <h3>Turn on your volume</h3>\n <p>Make sure your device's volume is turned on so you can hear Guide AI's responses.</p>\n </div>\n )}\n \n {onboardingStep === 2 && (\n <div className=\"sarge-onboarding-step\">\n <div className=\"sarge-onboarding-icon mic-icon\">🎤</div>\n <h3>Allow microphone access</h3>\n <p>When prompted, click \"Allow\" to let Guide AI access your microphone.</p>\n </div>\n )}\n \n {onboardingStep === 3 && (\n <div className=\"sarge-onboarding-step\">\n <div className=\"sarge-onboarding-icon ready-icon\">✅</div>\n <h3>You're all set!</h3>\n <p>Click the microphone icon to start asking questions.</p>\n </div>\n )}\n \n <div className=\"sarge-onboarding-dots\">\n <span className={`dot ${onboardingStep === 1 ? 'active' : ''}`}></span>\n <span className={`dot ${onboardingStep === 2 ? 'active' : ''}`}></span>\n <span className={`dot ${onboardingStep === 3 ? 'active' : ''}`}></span>\n </div>\n \n <button className=\"sarge-onboarding-next\" onClick={handleOnboardingNext}>\n {onboardingStep < 3 ? 'Next' : 'Get Started'}\n </button>\n </div>\n </div>\n )}\n \n <div \n className={`sarge-icon-wrapper ${isConnecting ? 'initializing' : status}`}\n onClick={isConnecting ? undefined : handleToggleConversation}\n style={isConnecting ? { cursor: 'default' } : undefined}\n title={isConnecting ? 'Initializing...' : \n status === 'idle' ? 'Click to start a conversation' : \n status === 'recording' ? 'Click to end conversation' : \n status === 'processing' ? 'Processing your message...' : \n 'AI is speaking, click to end conversation'}\n >\n {isConnecting && <i className=\"sarge-icon initializing\" />}\n {!isConnecting && status === 'idle' && <i className=\"sarge-icon microphone\" />}\n {!isConnecting && status === 'recording' && <i className=\"sarge-icon recording\" />}\n {!isConnecting && status === 'processing' && <i className=\"sarge-icon processing\" />}\n {!isConnecting && status === 'playing' && <i className=\"sarge-icon playing\" />}\n </div>\n \n </div>\n </div>\n \n <style>{`\n .sarge-main-ui {\n position: relative;\n }\n \n .sarge-welcome-bubble {\n position: absolute;\n top: -70px;\n left: 50%;\n transform: translateX(-50%);\n background: #0066ff;\n color: white;\n padding: 8px 16px;\n border-radius: 20px;\n font-size: 14px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n animation: bubble-pulse 2s infinite;\n }\n\n .sarge-welcome-bubble::after {\n content: '';\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-top: 8px solid #0066ff;\n }\n\n @keyframes bubble-pulse {\n 0% { transform: translateX(-50%) scale(1); }\n 50% { transform: translateX(-50%) scale(1.05); }\n 100% { transform: translateX(-50%) scale(1); }\n }\n \n .sarge-icon-wrapper {\n width: 60px;\n height: 60px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, 0.9);\n border-radius: 50%;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n \n .sarge-icon-wrapper:not(.initializing):hover {\n transform: scale(1.1);\n }\n \n .sarge-icon-wrapper.initializing {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(128, 128, 128, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n animation: sarge-spin 1.5s linear infinite;\n opacity: 0.7;\n cursor: default;\n }\n \n .sarge-icon-wrapper.recording {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n animation: sarge-pulse 1s infinite alternate;\n }\n \n .sarge-icon-wrapper.processing {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(255, 165, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n animation: sarge-spin 1s linear infinite;\n }\n \n .sarge-icon-wrapper.playing {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(0, 128, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n }\n \n @keyframes sarge-pulse {\n 0% { transform: scale(1); }\n 100% { transform: scale(1.05); }\n }\n \n @keyframes sarge-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n \n @keyframes click-ripple-animation {\n 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.6; }\n 100% { transform: translate(-50%, -50%) scale(2.5); opacity: 0; }\n }\n \n @keyframes click-dot-animation {\n 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; }\n 60% { transform: translate(-50%, -50%) scale(1); opacity: 1; }\n 100% { transform: translate(-50%, -50%) scale(1); opacity: 0; }\n }\n \n @keyframes cursor-jiggle {\n 0% { transform: translate(-50%, 0) scale(1); }\n 25% { transform: translate(-50%, -5px) scale(1.1); }\n 50% { transform: translate(-50%, 0) scale(1); }\n 75% { transform: translate(-50%, 5px) scale(1.1); }\n 100% { transform: translate(-50%, 0) scale(1); filter: drop-shadow(0 0 8px #0066ff); }\n }\n \n .sarge-icon {\n width: 40px;\n height: 40px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n }\n \n .sarge-icon.initializing {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%23808080\" d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"/></svg>');\n }\n \n .sarge-icon.microphone {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path fill=\"%230000FF\" d=\"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"/></svg>');\n }\n \n .sarge-icon.recording {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><circle cx=\"256\" cy=\"256\" r=\"128\" fill=\"%23FF0000\"/><circle cx=\"256\" cy=\"256\" r=\"200\" stroke=\"%23FF0000\" stroke-width=\"20\" fill=\"none\"/></svg>');\n }\n \n .sarge-icon.processing {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%23FFA500\" d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"/></svg>');\n }\n \n .sarge-icon.playing {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"%23008000\" d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"/></svg>');\n }\n \n /* Onboarding styles */\n .sarge-onboarding {\n position: absolute;\n top: -220px;\n left: 50%;\n transform: translateX(-50%);\n background: white;\n border-radius: 12px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n width: 300px;\n z-index: 1002;\n animation: onboarding-fade-in 0.3s ease-out;\n }\n \n @keyframes onboarding-fade-in {\n from { opacity: 0; transform: translateX(-50%) translateY(-10px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n \n .sarge-onboarding-content {\n padding: 20px;\n position: relative;\n }\n \n .sarge-onboarding-close {\n position: absolute;\n top: 10px;\n right: 10px;\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n color: #999;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n }\n \n .sarge-onboarding-close:hover {\n background: #f5f5f5;\n color: #333;\n }\n \n .sarge-onboarding-step {\n text-align: center;\n margin-bottom: 15px;\n }\n \n .sarge-onboarding-icon {\n font-size: 40px;\n margin-bottom: 10px;\n display: inline-block;\n }\n \n .sarge-onboarding-step h3 {\n margin: 0 0 10px;\n font-size: 18px;\n color: #333;\n }\n \n .sarge-onboarding-step p {\n margin: 0;\n font-size: 14px;\n color: #666;\n line-height: 1.4;\n }\n \n .sarge-onboarding-dots {\n display: flex;\n justify-content: center;\n margin: 15px 0;\n }\n \n .sarge-onboarding-dots .dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #ddd;\n margin: 0 4px;\n transition: all 0.3s ease;\n }\n \n .sarge-onboarding-dots .dot.active {\n background: #0066ff;\n transform: scale(1.2);\n }\n \n .sarge-onboarding-next {\n display: block;\n width: 100%;\n padding: 10px;\n background: #0066ff;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s ease;\n }\n \n .sarge-onboarding-next:hover {\n background: #0055cc;\n }\n `}</style>\n </>\n );\n};\n\nexport default GuideAI;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.maybe_map = exports.combine = exports.is_buffer = exports.is_regexp = exports.compact = exports.encode = exports.decode = exports.assign_single_source = exports.merge = void 0;\nconst formats_1 = require(\"./formats.js\");\nconst has = Object.prototype.hasOwnProperty;\nconst is_array = Array.isArray;\nconst hex_table = (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item)\n continue;\n const obj = item.obj[item.prop];\n if (is_array(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nfunction merge(target, source, options = {}) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (is_array(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) ||\n !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (is_array(target) && !is_array(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (is_array(target) && is_array(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexports.merge = merge;\nfunction assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n}\nexports.assign_single_source = assign_single_source;\nfunction decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch (e) {\n return strWithoutPlus;\n }\n}\nexports.decode = decode;\nconst limit = 1024;\nconst encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === formats_1.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n }\n return out;\n};\nexports.encode = encode;\nfunction compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexports.compact = compact;\nfunction is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexports.is_regexp = is_regexp;\nfunction is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexports.is_buffer = is_buffer;\nfunction combine(a, b) {\n return [].concat(a, b);\n}\nexports.combine = combine;\nfunction maybe_map(val, fn) {\n if (is_array(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n}\nexports.maybe_map = maybe_map;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AbstractPage_client;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObj = exports.toBase64 = exports.getHeader = exports.getRequiredHeader = exports.isHeadersProtocol = exports.isRunningInBrowser = exports.debug = exports.hasOwn = exports.isEmptyObj = exports.maybeCoerceBoolean = exports.maybeCoerceFloat = exports.maybeCoerceInteger = exports.coerceBoolean = exports.coerceFloat = exports.coerceInteger = exports.readEnv = exports.ensurePresent = exports.castToError = exports.sleep = exports.safeJSON = exports.isRequestOptions = exports.createResponseHeaders = exports.PagePromise = exports.AbstractPage = exports.APIClient = exports.APIPromise = exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = void 0;\nconst version_1 = require(\"./version.js\");\nconst streaming_1 = require(\"./streaming.js\");\nconst error_1 = require(\"./error.js\");\nconst index_1 = require(\"./_shims/index.js\");\nconst uploads_1 = require(\"./uploads.js\");\nvar uploads_2 = require(\"./uploads.js\");\nObject.defineProperty(exports, \"maybeMultipartFormRequestOptions\", { enumerable: true, get: function () { return uploads_2.maybeMultipartFormRequestOptions; } });\nObject.defineProperty(exports, \"multipartFormRequestOptions\", { enumerable: true, get: function () { return uploads_2.multipartFormRequestOptions; } });\nObject.defineProperty(exports, \"createForm\", { enumerable: true, get: function () { return uploads_2.createForm; } });\nasync function defaultParseResponse(props) {\n const { response } = props;\n if (props.options.stream) {\n debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream<T>`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller);\n }\n return streaming_1.Stream.fromSSEResponse(response, props.controller);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n debug('response', response.status, response.url, response.headers, json);\n return _addRequestID(json, response);\n }\n const text = await response.text();\n debug('response', response.status, response.url, response.headers, text);\n // TODO handle blob, arraybuffer, other content types, etc.\n return text;\n}\nfunction _addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nclass APIPromise extends Promise {\n constructor(responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n }\n _thenUnwrap(transform) {\n return new APIPromise(this.responsePromise, async (props) => _addRequestID(transform(await this.parseResponse(props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` if you can,\n * or add one of these imports before your first `import … from 'openai'`:\n * - `import 'openai/shims/node'` (if you're running on Node)\n * - `import 'openai/shims/web'` (otherwise)\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` if you can,\n * or add one of these imports before your first `import … from 'openai'`:\n * - `import 'openai/shims/node'` (if you're running on Node)\n * - `import 'openai/shims/web'` (otherwise)\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then(this.parseResponse);\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\nexports.APIPromise = APIPromise;\nclass APIClient {\n constructor({ baseURL, maxRetries = 2, timeout = 600000, // 10 minutes\n httpAgent, fetch: overriddenFetch, }) {\n this.baseURL = baseURL;\n this.maxRetries = validatePositiveInteger('maxRetries', maxRetries);\n this.timeout = validatePositiveInteger('timeout', timeout);\n this.httpAgent = httpAgent;\n this.fetch = overriddenFetch ?? index_1.fetch;\n }\n authHeaders(opts) {\n return {};\n }\n /**\n * Override this to add your own default headers, for example:\n *\n * {\n * ...super.defaultHeaders(),\n * Authorization: 'Bearer 123',\n * }\n */\n defaultHeaders(opts) {\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'User-Agent': this.getUserAgent(),\n ...getPlatformHeaders(),\n ...this.authHeaders(opts),\n };\n }\n /**\n * Override this to add your own headers validation:\n */\n validateHeaders(headers, customHeaders) { }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then(async (opts) => {\n const body = opts && (0, uploads_1.isBlobLike)(opts?.body) ? new DataView(await opts.body.arrayBuffer())\n : opts?.body instanceof DataView ? opts.body\n : opts?.body instanceof ArrayBuffer ? new DataView(opts.body)\n : opts && ArrayBuffer.isView(opts?.body) ? new DataView(opts.body.buffer)\n : opts?.body;\n return { method, path, ...opts, body };\n }));\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n calculateContentLength(body) {\n if (typeof body === 'string') {\n if (typeof Buffer !== 'undefined') {\n return Buffer.byteLength(body, 'utf8').toString();\n }\n if (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder();\n const encoded = encoder.encode(body);\n return encoded.length.toString();\n }\n }\n else if (ArrayBuffer.isView(body)) {\n return body.byteLength.toString();\n }\n return null;\n }\n buildRequest(options, { retryCount = 0 } = {}) {\n options = { ...options };\n const { method, path, query, headers: headers = {} } = options;\n const body = ArrayBuffer.isView(options.body) || (options.__binaryRequest && typeof options.body === 'string') ?\n options.body\n : (0, uploads_1.isMultipartBody)(options.body) ? options.body.body\n : options.body ? JSON.stringify(options.body, null, 2)\n : null;\n const contentLength = this.calculateContentLength(body);\n const url = this.buildURL(path, query);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const httpAgent = options.httpAgent ?? this.httpAgent ?? (0, index_1.getDefaultAgent)(url);\n const minAgentTimeout = options.timeout + 1000;\n if (typeof httpAgent?.options?.timeout === 'number' &&\n minAgentTimeout > (httpAgent.options.timeout ?? 0)) {\n // Allow any given request to bump our agent active socket timeout.\n // This may seem strange, but leaking active sockets should be rare and not particularly problematic,\n // and without mutating agent we would need to create more of them.\n // This tradeoff optimizes for performance.\n httpAgent.options.timeout = minAgentTimeout;\n }\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n headers[this.idempotencyHeader] = options.idempotencyKey;\n }\n const reqHeaders = this.buildHeaders({ options, headers, contentLength, retryCount });\n const req = {\n method,\n ...(body && { body: body }),\n headers: reqHeaders,\n ...(httpAgent && { agent: httpAgent }),\n // @ts-ignore node-fetch uses a custom AbortSignal type that is\n // not compatible with standard web types\n signal: options.signal ?? null,\n };\n return { req, url, timeout: options.timeout };\n }\n buildHeaders({ options, headers, contentLength, retryCount, }) {\n const reqHeaders = {};\n if (contentLength) {\n reqHeaders['content-length'] = contentLength;\n }\n const defaultHeaders = this.defaultHeaders(options);\n applyHeadersMut(reqHeaders, defaultHeaders);\n applyHeadersMut(reqHeaders, headers);\n // let builtin fetch set the Content-Type for multipart bodies\n if ((0, uploads_1.isMultipartBody)(options.body) && index_1.kind !== 'node') {\n delete reqHeaders['content-type'];\n }\n // Don't set theses headers if they were already set or removed through default headers or by the caller.\n // We check `defaultHeaders` and `headers`, which can contain nulls, instead of `reqHeaders` to account\n // for the removal case.\n if ((0, exports.getHeader)(defaultHeaders, 'x-stainless-retry-count') === undefined &&\n (0, exports.getHeader)(headers, 'x-stainless-retry-count') === undefined) {\n reqHeaders['x-stainless-retry-count'] = String(retryCount);\n }\n if ((0, exports.getHeader)(defaultHeaders, 'x-stainless-timeout') === undefined &&\n (0, exports.getHeader)(headers, 'x-stainless-timeout') === undefined &&\n options.timeout) {\n reqHeaders['x-stainless-timeout'] = String(options.timeout);\n }\n this.validateHeaders(reqHeaders, headers);\n return reqHeaders;\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n parseHeaders(headers) {\n return (!headers ? {}\n : Symbol.iterator in headers ?\n Object.fromEntries(Array.from(headers).map((header) => [...header]))\n : { ...headers });\n }\n makeStatusError(status, error, message, headers) {\n return error_1.APIError.generate(status, error, message, headers);\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this.makeRequest(options, remainingRetries));\n }\n async makeRequest(optionsInput, retriesRemaining) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = this.buildRequest(options, { retryCount: maxRetries - retriesRemaining });\n await this.prepareRequest(req, { url, options });\n debug('request', url, options, req.headers);\n if (options.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(exports.castToError);\n if (response instanceof Error) {\n if (options.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n if (retriesRemaining) {\n return this.retryRequest(options, retriesRemaining);\n }\n if (response.name === 'AbortError') {\n throw new error_1.APIConnectionTimeoutError();\n }\n throw new error_1.APIConnectionError({ cause: response });\n }\n const responseHeaders = (0, exports.createResponseHeaders)(response.headers);\n if (!response.ok) {\n if (retriesRemaining && this.shouldRetry(response)) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders);\n return this.retryRequest(options, retriesRemaining, responseHeaders);\n }\n const errText = await response.text().catch((e) => (0, exports.castToError)(e).message);\n const errJSON = (0, exports.safeJSON)(errText);\n const errMessage = errJSON ? undefined : errText;\n const retryMessage = retriesRemaining ? `(error; no more retries left)` : `(error; not retryable)`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders, errMessage);\n const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);\n throw err;\n }\n return { response, options, controller };\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null);\n return new PagePromise(this, request, Page);\n }\n buildURL(path, query) {\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(this.baseURL + (this.baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n stringifyQuery(query) {\n return Object.entries(query)\n .filter(([_, value]) => typeof value !== 'undefined')\n .map(([key, value]) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n }\n if (value === null) {\n return `${encodeURIComponent(key)}=`;\n }\n throw new error_1.OpenAIError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`);\n })\n .join('&');\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const fetchOptions = {\n signal: controller.signal,\n ...options,\n };\n if (fetchOptions.method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = fetchOptions.method.toUpperCase();\n }\n return (\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n this.fetch.call(undefined, url, fetchOptions).finally(() => {\n clearTimeout(timeout);\n }));\n }\n shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.['retry-after-ms'];\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.['retry-after'];\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await (0, exports.sleep)(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${version_1.VERSION}`;\n }\n}\nexports.APIClient = APIClient;\nclass AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageInfo() != null;\n }\n async getNextPage() {\n const nextInfo = this.nextPageInfo();\n if (!nextInfo) {\n throw new error_1.OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n const nextOptions = { ...this.options };\n if ('params' in nextInfo && typeof nextOptions.query === 'object') {\n nextOptions.query = { ...nextOptions.query, ...nextInfo.params };\n }\n else if ('url' in nextInfo) {\n const params = [...Object.entries(nextOptions.query || {}), ...nextInfo.url.searchParams.entries()];\n for (const [key, value] of params) {\n nextInfo.url.searchParams.set(key, value);\n }\n nextOptions.query = undefined;\n nextOptions.path = nextInfo.url.toString();\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\nexports.AbstractPage = AbstractPage;\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nclass PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(request, async (props) => new Page(client, props.response, await defaultParseResponse(props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\nexports.PagePromise = PagePromise;\nconst createResponseHeaders = (headers) => {\n return new Proxy(Object.fromEntries(\n // @ts-ignore\n headers.entries()), {\n get(target, name) {\n const key = name.toString();\n return target[key.toLowerCase()] || target[key];\n },\n });\n};\nexports.createResponseHeaders = createResponseHeaders;\n// This is required so that we can determine if a given object matches the RequestOptions\n// type at runtime. While this requires duplication, it is enforced by the TypeScript\n// compiler such that any missing / extraneous keys will cause an error.\nconst requestOptionsKeys = {\n method: true,\n path: true,\n query: true,\n body: true,\n headers: true,\n maxRetries: true,\n stream: true,\n timeout: true,\n httpAgent: true,\n signal: true,\n idempotencyKey: true,\n __metadata: true,\n __binaryRequest: true,\n __binaryResponse: true,\n __streamClass: true,\n};\nconst isRequestOptions = (obj) => {\n return (typeof obj === 'object' &&\n obj !== null &&\n !isEmptyObj(obj) &&\n Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k)));\n};\nexports.isRequestOptions = isRequestOptions;\nconst getPlatformProperties = () => {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': process.version,\n };\n }\n // Check if Node.js\n if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': normalizePlatform(process.platform),\n 'X-Stainless-Arch': normalizeArch(process.arch),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': process.version,\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nconst getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\nconst safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\nexports.safeJSON = safeJSON;\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nconst isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nexports.sleep = sleep;\nconst validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new error_1.OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new error_1.OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nconst castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\nexports.castToError = castToError;\nconst ensurePresent = (value) => {\n if (value == null)\n throw new error_1.OpenAIError(`Expected a value to be given but received ${value} instead.`);\n return value;\n};\nexports.ensurePresent = ensurePresent;\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nconst readEnv = (env) => {\n if (typeof process !== 'undefined') {\n return process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof Deno !== 'undefined') {\n return Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\nexports.readEnv = readEnv;\nconst coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new error_1.OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexports.coerceInteger = coerceInteger;\nconst coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new error_1.OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexports.coerceFloat = coerceFloat;\nconst coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexports.coerceBoolean = coerceBoolean;\nconst maybeCoerceInteger = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return (0, exports.coerceInteger)(value);\n};\nexports.maybeCoerceInteger = maybeCoerceInteger;\nconst maybeCoerceFloat = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return (0, exports.coerceFloat)(value);\n};\nexports.maybeCoerceFloat = maybeCoerceFloat;\nconst maybeCoerceBoolean = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return (0, exports.coerceBoolean)(value);\n};\nexports.maybeCoerceBoolean = maybeCoerceBoolean;\n// https://stackoverflow.com/a/34491287\nfunction isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\nexports.isEmptyObj = isEmptyObj;\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.hasOwn = hasOwn;\n/**\n * Copies headers from \"newHeaders\" onto \"targetHeaders\",\n * using lower-case for all properties,\n * ignoring any keys with undefined values,\n * and deleting any keys with null values.\n */\nfunction applyHeadersMut(targetHeaders, newHeaders) {\n for (const k in newHeaders) {\n if (!hasOwn(newHeaders, k))\n continue;\n const lowerKey = k.toLowerCase();\n if (!lowerKey)\n continue;\n const val = newHeaders[k];\n if (val === null) {\n delete targetHeaders[lowerKey];\n }\n else if (val !== undefined) {\n targetHeaders[lowerKey] = val;\n }\n }\n}\nconst SENSITIVE_HEADERS = new Set(['authorization', 'api-key']);\nfunction debug(action, ...args) {\n if (typeof process !== 'undefined' && process?.env?.['DEBUG'] === 'true') {\n const modifiedArgs = args.map((arg) => {\n if (!arg) {\n return arg;\n }\n // Check for sensitive headers in request body 'headers' object\n if (arg['headers']) {\n // clone so we don't mutate\n const modifiedArg = { ...arg, headers: { ...arg['headers'] } };\n for (const header in arg['headers']) {\n if (SENSITIVE_HEADERS.has(header.toLowerCase())) {\n modifiedArg['headers'][header] = 'REDACTED';\n }\n }\n return modifiedArg;\n }\n let modifiedArg = null;\n // Check for sensitive headers in headers object\n for (const header in arg) {\n if (SENSITIVE_HEADERS.has(header.toLowerCase())) {\n // avoid making a copy until we need to\n modifiedArg ?? (modifiedArg = { ...arg });\n modifiedArg[header] = 'REDACTED';\n }\n }\n return modifiedArg ?? arg;\n });\n console.log(`OpenAI:DEBUG:${action}`, ...modifiedArgs);\n }\n}\nexports.debug = debug;\n/**\n * https://stackoverflow.com/a/2117523\n */\nconst uuid4 = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\nconst isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\nexports.isRunningInBrowser = isRunningInBrowser;\nconst isHeadersProtocol = (headers) => {\n return typeof headers?.get === 'function';\n};\nexports.isHeadersProtocol = isHeadersProtocol;\nconst getRequiredHeader = (headers, header) => {\n const foundHeader = (0, exports.getHeader)(headers, header);\n if (foundHeader === undefined) {\n throw new Error(`Could not find ${header} header`);\n }\n return foundHeader;\n};\nexports.getRequiredHeader = getRequiredHeader;\nconst getHeader = (headers, header) => {\n const lowerCasedHeader = header.toLowerCase();\n if ((0, exports.isHeadersProtocol)(headers)) {\n // to deal with the case where the header looks like Stainless-Event-Id\n const intercapsHeader = header[0]?.toUpperCase() +\n header.substring(1).replace(/([^\\w])(\\w)/g, (_m, g1, g2) => g1 + g2.toUpperCase());\n for (const key of [header, lowerCasedHeader, header.toUpperCase(), intercapsHeader]) {\n const value = headers.get(key);\n if (value) {\n return value;\n }\n }\n }\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === lowerCasedHeader) {\n if (Array.isArray(value)) {\n if (value.length <= 1)\n return value[0];\n console.warn(`Received ${value.length} entries for the ${header} header, using the first entry.`);\n return value[0];\n }\n return value;\n }\n }\n return undefined;\n};\nexports.getHeader = getHeader;\n/**\n * Encodes a string to Base64 format.\n */\nconst toBase64 = (str) => {\n if (!str)\n return '';\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(str).toString('base64');\n }\n if (typeof btoa !== 'undefined') {\n return btoa(str);\n }\n throw new error_1.OpenAIError('Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexports.toBase64 = toBase64;\nfunction isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexports.isObj = isObj;\n//# sourceMappingURL=core.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _AssistantStream_instances, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssistantStream = void 0;\nconst Core = __importStar(require(\"../core.js\"));\nconst streaming_1 = require(\"../streaming.js\");\nconst error_1 = require(\"../error.js\");\nconst EventStream_1 = require(\"./EventStream.js\");\nclass AssistantStream extends EventStream_1.EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Track all events in a single list for reference\n _AssistantStream_events.set(this, []);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, {});\n _AssistantStream_messageSnapshots.set(this, {});\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n //Catch all for passing along all events\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n static fromReadableStream(stream) {\n const runner = new AssistantStream();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n this._connected();\n const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n toReadableStream() {\n const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n static createToolAssistantStream(threadId, runId, runs, params, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._runToolAssistantStream(threadId, runId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, threadId, runId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(threadId, runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static createThreadAssistantStream(params, thread, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n currentEvent() {\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n currentRun() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n currentMessageSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n currentRunStepSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run was not received.');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static accumulateDelta(acc, delta) {\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (!acc.hasOwnProperty(key)) {\n acc[key] = deltaValue;\n continue;\n }\n let accValue = acc[key];\n if (accValue === null || accValue === undefined) {\n acc[key] = deltaValue;\n continue;\n }\n // We don't accumulate these special properties\n if (key === 'index' || key === 'type') {\n acc[key] = deltaValue;\n continue;\n }\n // Type-specific accumulation logic\n if (typeof accValue === 'string' && typeof deltaValue === 'string') {\n accValue += deltaValue;\n }\n else if (typeof accValue === 'number' && typeof deltaValue === 'number') {\n accValue += deltaValue;\n }\n else if (Core.isObj(accValue) && Core.isObj(deltaValue)) {\n accValue = this.accumulateDelta(accValue, deltaValue);\n }\n else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {\n if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {\n accValue.push(...deltaValue); // Use spread syntax for efficient addition\n continue;\n }\n for (const deltaEntry of deltaValue) {\n if (!Core.isObj(deltaEntry)) {\n throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);\n }\n const index = deltaEntry['index'];\n if (index == null) {\n console.error(deltaEntry);\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new Error(`Expected array delta entry \\`index\\` property to be a number but got ${index}`);\n }\n const accEntry = accValue[index];\n if (accEntry == null) {\n accValue.push(deltaEntry);\n }\n else {\n accValue[index] = this.accumulateDelta(accEntry, deltaEntry);\n }\n }\n continue;\n }\n else {\n throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);\n }\n acc[key] = accValue;\n }\n return acc;\n }\n _addRun(run) {\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(threadId, runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, threadId, runId, params, options);\n }\n}\nexports.AssistantStream = AssistantStream;\n_AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, event);\n switch (event.event) {\n case 'thread.created':\n //No action on this event.\n break;\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, event);\n break;\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, event);\n break;\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, event);\n break;\n case 'error':\n //This is included for completeness, but errors are processed in the SSE event processing so this should not occur\n throw new Error('Encountered an error event in event processing - errors should be processed earlier');\n default:\n assertNever(event);\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run has not been received');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[accumulatedMessage.id] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type == 'text') {\n this._emit('textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created':\n this._emit('messageCreated', event.data);\n break;\n case 'thread.message.in_progress':\n break;\n case 'thread.message.delta':\n this._emit('messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type == 'text' && content.text) {\n let textDelta = content.text;\n let snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type == 'text') {\n this._emit('textDelta', textDelta, snapshot.text);\n }\n else {\n throw Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text':\n this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'image_file':\n this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file':\n this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'text':\n this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n this._emit('messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created':\n this._emit('runStepCreated', event.data);\n break;\n case 'thread.run.step.delta':\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type == 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type == 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"))\n this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n this._emit('runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type == 'tool_calls') {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n }\n this._emit('runStepDone', event.data, accumulatedRunStep);\n break;\n case 'thread.run.step.in_progress':\n break;\n }\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_events, \"f\").push(event);\n this._emit('event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {\n switch (event.event) {\n case 'thread.run.step.created':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n return event.data;\n case 'thread.run.step.delta':\n let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n if (!snapshot) {\n throw Error('Received a RunStepDelta before creation of a snapshot');\n }\n let data = event.data;\n if (data.delta) {\n const accumulated = AssistantStream.accumulateDelta(snapshot, data.delta);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = accumulated;\n }\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n break;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id])\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n let newContent = [];\n switch (event.event) {\n case 'thread.message.created':\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n case 'thread.message.delta':\n if (!snapshot) {\n throw Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n let data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n for (const contentElement of data.delta.content) {\n if (contentElement.index in snapshot.content) {\n let currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);\n }\n else {\n snapshot.content[contentElement.index] = contentElement;\n // This is a new element\n newContent.push(contentElement);\n }\n }\n }\n return [snapshot, newContent];\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //No changes on other thread events\n if (snapshot) {\n return [snapshot, newContent];\n }\n else {\n throw Error('Received thread message event with no existing snapshot');\n }\n }\n throw Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {\n return AssistantStream.accumulateDelta(currentContent, contentElement);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created':\n break;\n case 'thread.run.queued':\n break;\n case 'thread.run.in_progress':\n break;\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n break;\n case 'thread.run.cancelling':\n break;\n }\n};\nfunction assertNever(_x) { }\n//# sourceMappingURL=AssistantStream.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\n__exportStar(require(\"../web-runtime.js\"), exports);\n//# sourceMappingURL=runtime.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completions = void 0;\nconst resource_1 = require(\"../resource.js\");\nclass Completions extends resource_1.APIResource {\n create(body, options) {\n return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });\n }\n}\nexports.Completions = Completions;\n//# sourceMappingURL=completions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModelsPage = exports.Models = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst pagination_1 = require(\"../pagination.js\");\nclass Models extends resource_1.APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(`/models/${model}`, options);\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', ModelsPage, options);\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n del(model, options) {\n return this._client.delete(`/models/${model}`, options);\n }\n}\nexports.Models = Models;\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass ModelsPage extends pagination_1.Page {\n}\nexports.ModelsPage = ModelsPage;\nModels.ModelsPage = ModelsPage;\n//# sourceMappingURL=models.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStoreMessagesPage = exports.Messages = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst completions_1 = require(\"./completions.js\");\nObject.defineProperty(exports, \"ChatCompletionStoreMessagesPage\", { enumerable: true, get: function () { return completions_1.ChatCompletionStoreMessagesPage; } });\nclass Messages extends resource_1.APIResource {\n list(completionId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(completionId, {}, query);\n }\n return this._client.getAPIList(`/chat/completions/${completionId}/messages`, completions_1.ChatCompletionStoreMessagesPage, { query, ...options });\n }\n}\nexports.Messages = Messages;\n//# sourceMappingURL=messages.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContentFilterFinishReasonError = exports.LengthFinishReasonError = exports.InternalServerError = exports.RateLimitError = exports.UnprocessableEntityError = exports.ConflictError = exports.NotFoundError = exports.PermissionDeniedError = exports.AuthenticationError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIUserAbortError = exports.APIError = exports.OpenAIError = void 0;\nconst core_1 = require(\"./core.js\");\nclass OpenAIError extends Error {\n}\nexports.OpenAIError = OpenAIError;\nclass APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.request_id = headers?.['x-request-id'];\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: (0, core_1.castToError)(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexports.APIError = APIError;\nclass APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexports.APIUserAbortError = APIUserAbortError;\nclass APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexports.APIConnectionError = APIConnectionError;\nclass APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexports.APIConnectionTimeoutError = APIConnectionTimeoutError;\nclass BadRequestError extends APIError {\n}\nexports.BadRequestError = BadRequestError;\nclass AuthenticationError extends APIError {\n}\nexports.AuthenticationError = AuthenticationError;\nclass PermissionDeniedError extends APIError {\n}\nexports.PermissionDeniedError = PermissionDeniedError;\nclass NotFoundError extends APIError {\n}\nexports.NotFoundError = NotFoundError;\nclass ConflictError extends APIError {\n}\nexports.ConflictError = ConflictError;\nclass UnprocessableEntityError extends APIError {\n}\nexports.UnprocessableEntityError = UnprocessableEntityError;\nclass RateLimitError extends APIError {\n}\nexports.RateLimitError = RateLimitError;\nclass InternalServerError extends APIError {\n}\nexports.InternalServerError = InternalServerError;\nclass LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexports.LengthFinishReasonError = LengthFinishReasonError;\nclass ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexports.ContentFilterFinishReasonError = ContentFilterFinishReasonError;\n//# sourceMappingURL=error.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LineDecoder_carriageReturnIndex;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findDoubleNewlineIndex = exports.LineDecoder = void 0;\nconst error_1 = require(\"../../error.js\");\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nclass LineDecoder {\n constructor() {\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n this.buffer = new Uint8Array();\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? new TextEncoder().encode(chunk)\n : chunk;\n let newData = new Uint8Array(this.buffer.length + binaryChunk.length);\n newData.set(this.buffer);\n newData.set(binaryChunk, this.buffer.length);\n this.buffer = newData;\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(this.buffer, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(this.decodeText(this.buffer.slice(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n this.buffer = this.buffer.slice(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"));\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = this.decodeText(this.buffer.slice(0, endIndex));\n lines.push(line);\n this.buffer = this.buffer.slice(patternIndex.index);\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n decodeText(bytes) {\n if (bytes == null)\n return '';\n if (typeof bytes === 'string')\n return bytes;\n // Node:\n if (typeof Buffer !== 'undefined') {\n if (bytes instanceof Buffer) {\n return bytes.toString();\n }\n if (bytes instanceof Uint8Array) {\n return Buffer.from(bytes).toString();\n }\n throw new error_1.OpenAIError(`Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global \"Buffer\" defined, which this library assumes to be Node. Please report this error.`);\n }\n // Browser\n if (typeof TextDecoder !== 'undefined') {\n if (bytes instanceof Uint8Array || bytes instanceof ArrayBuffer) {\n this.textDecoder ?? (this.textDecoder = new TextDecoder('utf8'));\n return this.textDecoder.decode(bytes);\n }\n throw new error_1.OpenAIError(`Unexpected: received non-Uint8Array/ArrayBuffer (${bytes.constructor.name}) in a web platform. Please report this error.`);\n }\n throw new error_1.OpenAIError(`Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`);\n }\n flush() {\n if (!this.buffer.length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\nexports.LineDecoder = LineDecoder;\n_LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\nfunction findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\nexports.findDoubleNewlineIndex = findDoubleNewlineIndex;\n//# sourceMappingURL=line.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(8258);\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__156__","Object","defineProperty","value","stringify","utils_1","formats_1","has","prototype","hasOwnProperty","array_prefix_generators","brackets","prefix","String","comma","indices","key","repeat","is_array","Array","isArray","push","push_to_array","arr","value_or_array","apply","to_ISO","Date","toISOString","defaults","addQueryPrefix","allowDots","allowEmptyArrays","arrayFormat","charset","charsetSentinel","delimiter","encode","encodeDotInKeys","encoder","encodeValuesOnly","format","default_format","formatter","formatters","serializeDate","date","call","skipNulls","strictNullHandling","sentinel","inner_stringify","object","generateArrayPrefix","commaRoundTrip","filter","sort","sideChannel","obj","tmp_sc","step","find_flag","get","pos","RangeError","maybe_map","v","is_buffer","key_value","values","obj_keys","length","join","keys","encoded_prefix","replace","adjusted_prefix","j","encoded_key","key_prefix","set","valueSideChannel","WeakMap","opts","options","TypeError","normalize_stringify_options","i","joined","getRuntime","MultipartBody_1","manuallyImported","recommendation","_fetch","_Request","_Response","_Headers","fetch","Request","Response","Headers","error","Error","message","kind","FormData","constructor","Blob","File","ReadableStream","getMultipartRequestOptions","async","form","body","MultipartBody","getDefaultAgent","url","fileFromPath","isFsReadStream","_EventStream_instances","_EventStream_connectedPromise","_EventStream_resolveConnectedPromise","_EventStream_rejectConnectedPromise","_EventStream_endPromise","_EventStream_resolveEndPromise","_EventStream_rejectEndPromise","_EventStream_listeners","_EventStream_ended","_EventStream_errored","_EventStream_aborted","_EventStream_catchingPromiseCreated","_EventStream_handleError","__classPrivateFieldSet","receiver","state","f","__classPrivateFieldGet","EventStream","error_1","add","controller","AbortController","Promise","resolve","reject","catch","_run","executor","setTimeout","then","_emitFinal","_emit","bind","_connected","ended","errored","aborted","abort","on","event","listener","off","listeners","index","findIndex","l","splice","once","emitted","done","args","forEach","WeakSet","name","APIUserAbortError","OpenAIError","openAIError","cause","__createBinding","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","__setModuleDefault","__importStar","mod","result","ResponseItemsPage","Responses","ResponsesParser_1","core_1","resource_1","InputItemsAPI","input_items_1","ResponseStream_1","pagination_1","APIResource","super","arguments","inputItems","InputItems","_client","post","stream","_thenUnwrap","rsp","addOutputText","retrieve","responseId","query","isRequestOptions","del","delete","headers","Accept","parse","responses","response","parseResponse","ResponseStream","createResponse","CursorPage","_AbstractChatCompletionRunner_instances","_AbstractChatCompletionRunner_getFinalContent","_AbstractChatCompletionRunner_getFinalMessage","_AbstractChatCompletionRunner_getFinalFunctionCall","_AbstractChatCompletionRunner_getFinalFunctionCallResult","_AbstractChatCompletionRunner_calculateTotalUsage","_AbstractChatCompletionRunner_validateParams","_AbstractChatCompletionRunner_stringifyFunctionCallResult","AbstractChatCompletionRunner","RunnableFunction_1","chatCompletionUtils_1","EventStream_1","parser_1","DEFAULT_MAX_CHAT_COMPLETIONS","_chatCompletions","messages","_addChatCompletion","chatCompletion","choices","_addMessage","emit","content","isFunctionMessage","isToolMessage","isAssistantMessage","function_call","tool_calls","tool_call","type","function","finalChatCompletion","completion","finalContent","finalMessage","finalFunctionCall","finalFunctionCallResult","totalUsage","allChatCompletions","some","c","usage","_createChatCompletion","client","params","signal","addEventListener","chat","completions","parseChatCompletion","_runChatCompletion","_runFunctions","role","restParams","singleFunctionToCall","maxChatCompletions","functionsByName","functions","map","parameters","description","fn","JSON","parsed","isRunnableFunctionWithParse","rawContent","_runTools","tool_choice","inputTools","tools","tool","isAutoParsableTool","$callback","$parseRaw","strict","t","tool_call_id","id","rest","ret","refusal","at","x","y","total","completion_tokens","prompt_tokens","total_tokens","n","Embeddings","Audio","SpeechAPI","speech_1","TranscriptionsAPI","transcriptions_1","TranslationsAPI","translations_1","transcriptions","Transcriptions","translations","Translations","speech","Speech","Chat","CompletionsAPI","Completions","formats","RFC1738","RFC3986","default","stringify_1","FileObjectsPage","Files","core_2","Core","multipartFormRequestOptions","fileId","list","getAPIList","__binaryResponse","retrieveContent","waitForProcessing","pollInterval","maxWait","TERMINAL_STATES","Set","start","now","file","status","sleep","APIConnectionTimeoutError","FineTuningJobEventsPage","FineTuningJobsPage","Jobs","CheckpointsAPI","checkpoints_1","checkpoints","Checkpoints","fineTuningJobId","cancel","listEvents","FineTuningJobCheckpointsPage","RunsPage","Runs","AssistantStream_1","StepsAPI","steps_1","steps","Steps","threadId","include","runId","update","createAndPoll","run","poll","createAndStream","AssistantStream","createAssistantStream","beta","threads","runs","pollIntervalMs","toString","data","withResponse","sleepInterval","headerInterval","headerIntervalMs","parseInt","isNaN","submitToolOutputs","submitToolOutputsAndPoll","submitToolOutputsStream","createToolAssistantStream","RunStepsPage","_a","UnprocessableEntityError","PermissionDeniedError","InternalServerError","AuthenticationError","BadRequestError","RateLimitError","ConflictError","NotFoundError","APIConnectionError","APIError","toFile","AzureOpenAI","OpenAI","qs","Errors","Uploads","API","batches_1","completions_1","embeddings_1","files_1","images_1","models_1","moderations_1","audio_1","beta_1","chat_1","fine_tuning_1","responses_1","uploads_1","vector_stores_1","completions_2","APIClient","baseURL","readEnv","apiKey","organization","project","dangerouslyAllowBrowser","isRunningInBrowser","timeout","httpAgent","maxRetries","embeddings","files","images","Images","audio","moderations","Moderations","models","Models","fineTuning","FineTuning","vectorStores","VectorStores","Beta","batches","Batches","uploads","_options","defaultQuery","defaultHeaders","authHeaders","Authorization","stringifyQuery","DEFAULT_TIMEOUT","ChatCompletionsPage","ModelsPage","VectorStoresPage","VectorStoreSearchResponsesPage","BatchesPage","apiVersion","endpoint","deployment","azureADTokenProvider","API_KEY_SENTINEL","process","env","_azureADTokenProvider","deploymentName","buildRequest","props","_deployments_endpoints","path","method","isObj","model","__metadata","includes","_getAzureADToken","token","prepareOptions","uploads_2","shims","auto","setShims","property","Page","AbstractPage","getPaginatedItems","nextPageParams","nextPageInfo","has_more","hasNextPage","info","fromEntries","searchParams","after","batchId","Threads","MessagesAPI","messages_1","RunsAPI","runs_1","Messages","createAndRun","createAndRunPoll","thread_id","createAndRunStream","createThreadAssistantStream","MessagesPage","ChatCompletionStoreMessagesPage","AssistantsPage","Assistants","assistantId","PartsAPI","parts_1","parts","Parts","uploadId","complete","completionId","VectorStoreFilesPage","FileBatches","Util_1","vectorStoreId","batch","listFiles","uploadAndPoll","fileIds","configuredConcurrency","maxConcurrency","concurrencyLimit","Math","min","fileIterator","allFileIds","workers","fill","iterator","item","fileObj","purpose","allSettledWithThrow","file_ids","promises","results","allSettled","rejected","console","reason","validateInputTools","hasAutoParseableInput","shouldParseToolCall","maybeParseChatCompletion","makeParseableTool","isAutoParsableResponseFormat","makeParseableTextFormat","makeParseableResponseFormat","response_format","choice","finish_reason","LengthFinishReasonError","ContentFilterFinishReasonError","toolCall","inputTool","find","parsed_arguments","parseToolCall","parseResponseFormat","parser","defineProperties","$brand","callback","JobsAPI","jobs_1","jobs","MalformedJSON","PartialJSON","partialParse","input","jsonString","allowPartial","ATOM","trim","allow","markPartialJSON","msg","throwMalformedError","parseAny","skipBlank","parseStr","parseObj","parseArr","substring","startsWith","Infinity","NaN","parseNum","escape","charAt","Number","e","lastIndexOf","_parseJSON","parseJSON","Allow","Realtime","SessionsAPI","sessions_1","sessions","Sessions","FileContentResponsesPage","fileResponse","upload","fileInfo","file_id","__exportStar","p","createForm","maybeMultipartFormRequestOptions","isMultipartBody","isUploadable","isBlobLike","isFileLike","isResponseLike","index_1","index_2","blob","URL","pathname","split","pop","arrayBuffer","bits","ArrayBuffer","isView","isAsyncIterableIterator","getOwnPropertyNames","propsForError","chunk","getBytes","getStringFromMaybeBuffer","filename","getName","lastModified","size","text","slice","Buffer","Symbol","asyncIterator","toStringTag","hasUploadableValue","all","entries","addFormValue","append","entry","prop","FileBatchesAPI","file_batches_1","FilesAPI","fileBatches","search","ChatCompletionRunner","AbstractChatCompletionRunner_1","runFunctions","runner","runTools","ParsingToolFunction","ParsingFunction","_ChatCompletionStream_instances","_ChatCompletionStream_params","_ChatCompletionStream_choiceEventStates","_ChatCompletionStream_currentChatCompletionSnapshot","_ChatCompletionStream_beginRequest","_ChatCompletionStream_getChoiceEventState","_ChatCompletionStream_addChunk","_ChatCompletionStream_emitToolCallDoneEvent","_ChatCompletionStream_emitContentDoneEvents","_ChatCompletionStream_endRequest","_ChatCompletionStream_getAutoParseableResponseFormat","_ChatCompletionStream_accumulateChatCompletion","ChatCompletionStream","streaming_1","parser_2","currentChatCompletionSnapshot","fromReadableStream","_fromReadableStream","createChatCompletion","readableStream","Stream","chatId","content_done","refusal_done","logprobs_content_done","logprobs_refusal_done","done_tool_calls","current_tool_call_index","choiceSnapshot","delta","snapshot","logprobs","toolCallDelta","toolCallSnapshot","arguments_delta","toolCallIndex","responseFormat","created","system_fingerprint","choiceRest","messageRest","toolRest","fnRest","str","finalizeChatCompletion","_b","_c","_d","assign","other","pushQueue","readQueue","reader","shift","err","next","return","toReadableStream","VERSION","messageId","AssistantsAPI","ChatAPI","assistants_1","RealtimeAPI","realtime_1","ThreadsAPI","threads_1","realtime","assistants","isPresent","_ResponseStream_instances","_ResponseStream_params","_ResponseStream_currentResponseSnapshot","_ResponseStream_finalResponse","_ResponseStream_beginRequest","_ResponseStream_addEvent","_ResponseStream_endRequest","_ResponseStream_accumulateResponse","_createResponse","output","output_index","content_index","parsedResponse","maybeParseResponse","finalizeResponse","part","finalResponse","ReadableStreamToAsyncIterable","getReader","read","releaseLock","cancelPromise","_iterSSEMessages","line_1","stream_utils_1","error_2","fromSSEResponse","consumed","sse","raw","line","lineDecoder","LineDecoder","iter","decode","flush","iterLines","tee","left","right","teeIterator","queue","self","TextEncoder","pull","ctrl","close","bytes","enqueue","sseDecoder","SSEDecoder","sseChunk","Uint8Array","binaryChunk","patternIndex","newData","findDoubleNewlineIndex","iterSSEChunks","chunks","endsWith","fieldname","_","indexOf","partition","createVariation","edit","generate","ChatCompletionStreamingRunner","ChatCompletionStream_1","stepId","makeParseableResponseTool","parseTextFormat","text_format","getInputToolByName","input_tools","texts","output_text","output_parsed","ChatCompletionRunner_1","ChatCompletionStreamingRunner_1","ChatCompletionStreamingRunner_2","ChatCompletionStream_2","ChatCompletionRunner_2","getReactHooks","window","React","useState","useEffect","useRef","geminiFlash","prompt","contents","json","candidates","DEFAULT_PROMPT","organizationKey","position","bottom","onError","setStatus","isClient","setIsClient","componentPosition","isHighlighting","setIsHighlighting","hasInteracted","setHasInteracted","setPrompt","isSessionReady","setIsSessionReady","isConnecting","setIsConnecting","showOnboarding","setShowOnboarding","onboardingStep","setOnboardingStep","conversationIdRef","componentRef","openaiClientRef","peerConnectionRef","dataChannelRef","hasCreatedConversationRef","mediaStreamRef","audioElementRef","ephemeralToken","setEphemeralToken","hasInitializedRef","isConversationActive","setIsConversationActive","logMessage","sender","current","ok","statusText","fetchEphemeralToken","promptToUse","promptResponse","promptData","errorText","client_secret","sendMessage","readyState","send","cleanupWebRTC","getAudioTracks","track","stop","srcObject","hasInteractedBefore","localStorage","getItem","crypto","randomUUID","userId","time","toTimeString","conversation","log","remove","clickElement","element","rect","clickEffectContainer","document","createElement","style","cssText","width","top","height","appendChild","clickRipple","clickDot","clickEvent","MouseEvent","view","bubbles","cancelable","clickableElements","querySelectorAll","clickableElement","dispatchEvent","originalBoxShadow","boxShadow","originalTransition","transition","originalZIndex","zIndex","initializeWebRTC","audioStream","tokenParam","authToken","RTCPeerConnection","addTrack","audioEl","autoplay","ontrack","MediaStream","dc","createDataChannel","onopen","session","properties","selector","oneOf","items","required","turn_detection","create_response","interrupt_response","input_audio_transcription","language","onmessage","transcript","out","argsToUse","parsedArgs","selectors","cursorElement","currentSelector","node","evaluate","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","Element","querySelector","getBoundingClientRect","innerHTML","viewportWidth","innerWidth","viewportHeight","innerHeight","offsetHeight","animation","call_id","code","fragment","createOffer","offer","setLocalDescription","localDescription","sdp","sdpResponse","answerSdp","answer","setRemoteDescription","startConversationSession","enabled","navigator","mediaDevices","getUserMedia","echoCancellation","noiseSuppression","autoGainControl","channelCount","sampleRate","ref","className","onClick","setItem","cursor","title","combine","is_regexp","compact","assign_single_source","merge","hex_table","array","toUpperCase","target","source","plainObjects","allowPrototypes","concat","mergeTarget","array_to_object","targetItem","reduce","acc","strWithoutPlus","unescape","decodeURIComponent","limit","_defaultEncoder","_kind","string","$0","segment","charCodeAt","refs","val","compacted","compact_queue","isBuffer","a","b","mapped","_AbstractPage_client","toBase64","getHeader","getRequiredHeader","isHeadersProtocol","debug","hasOwn","isEmptyObj","maybeCoerceBoolean","maybeCoerceFloat","maybeCoerceInteger","coerceBoolean","coerceFloat","coerceInteger","ensurePresent","castToError","safeJSON","createResponseHeaders","PagePromise","APIPromise","version_1","defaultParseResponse","__streamClass","contentType","mediaType","_addRequestID","responsePromise","transform","asResponse","request_id","parsedPromise","onfulfilled","onrejected","onfinally","finally","overriddenFetch","validatePositiveInteger","getUserAgent","getPlatformHeaders","validateHeaders","customHeaders","defaultIdempotencyKey","uuid4","methodRequest","patch","put","request","DataView","buffer","requestAPIList","calculateContentLength","byteLength","retryCount","__binaryRequest","contentLength","buildURL","minAgentTimeout","idempotencyHeader","idempotencyKey","req","buildHeaders","agent","reqHeaders","applyHeadersMut","prepareRequest","parseHeaders","from","header","makeStatusError","remainingRetries","makeRequest","optionsInput","retriesRemaining","fetchWithTimeout","retryRequest","responseHeaders","shouldRetry","errText","errJSON","errMessage","isAbsoluteURL","encodeURIComponent","init","ms","fetchOptions","clearTimeout","shouldRetryHeader","timeoutMillis","retryAfterMillisHeader","timeoutMs","parseFloat","retryAfterHeader","timeoutSeconds","calculateDefaultRetryTimeoutMillis","numRetries","pow","random","getNextPage","nextInfo","nextOptions","iterPages","page","Proxy","toLowerCase","requestOptionsKeys","every","normalizeArch","arch","normalizePlatform","platform","_platformHeaders","Deno","build","os","version","deno","EdgeRuntime","browserInfo","browserPatterns","pattern","match","exec","userAgent","browser","getBrowserInfo","getPlatformProperties","startsWithSchemeRegexp","test","isInteger","_k","targetHeaders","newHeaders","lowerKey","round","Boolean","SENSITIVE_HEADERS","action","modifiedArgs","arg","modifiedArg","r","foundHeader","lowerCasedHeader","intercapsHeader","_m","g1","g2","warn","btoa","_AssistantStream_instances","_AssistantStream_events","_AssistantStream_runStepSnapshots","_AssistantStream_messageSnapshots","_AssistantStream_messageSnapshot","_AssistantStream_finalRun","_AssistantStream_currentContentIndex","_AssistantStream_currentContent","_AssistantStream_currentToolCallIndex","_AssistantStream_currentToolCall","_AssistantStream_currentEvent","_AssistantStream_currentRunSnapshot","_AssistantStream_currentRunStepSnapshot","_AssistantStream_addEvent","_AssistantStream_endRequest","_AssistantStream_handleMessage","_AssistantStream_handleRunStep","_AssistantStream_handleEvent","_AssistantStream_accumulateRunStep","_AssistantStream_accumulateMessage","_AssistantStream_accumulateContent","_AssistantStream_handleRun","_addRun","_runToolAssistantStream","_createToolAssistantStream","thread","_threadAssistantStream","_runAssistantStream","currentEvent","currentRun","currentMessageSnapshot","currentRunStepSnapshot","finalRunSteps","finalMessages","finalRun","_createThreadAssistantStream","_createAssistantStream","accumulateDelta","deltaValue","accValue","deltaEntry","accEntry","accumulatedMessage","newContent","snapshotContent","textDelta","image_file","currentContent","accumulatedRunStep","step_details","accumulated","contentElement","makeMessage","param","errorResponse","_LineDecoder_carriageReturnIndex","lines","findNewlineIndex","carriage","decodeText","endIndex","preceding","TextDecoder","textDecoder","startIndex","NEWLINE_CHARS","NEWLINE_REGEXP","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"GuideAI.js","mappings":"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","sources":["webpack://GuideAI/webpack/universalModuleDefinition","webpack://GuideAI/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"React\",\"root\":\"React\"}","webpack://GuideAI/./node_modules/openai/internal/qs/stringify.js","webpack://GuideAI/./node_modules/openai/_shims/web-runtime.js","webpack://GuideAI/./node_modules/openai/lib/EventStream.js","webpack://GuideAI/./node_modules/openai/resources/responses/responses.js","webpack://GuideAI/./node_modules/openai/lib/AbstractChatCompletionRunner.js","webpack://GuideAI/./node_modules/openai/resources/embeddings.js","webpack://GuideAI/./node_modules/openai/resources/audio/audio.js","webpack://GuideAI/./node_modules/openai/resources/beta/chat/chat.js","webpack://GuideAI/./node_modules/openai/internal/qs/index.js","webpack://GuideAI/./node_modules/openai/resources/files.js","webpack://GuideAI/./node_modules/openai/resources/fine-tuning/jobs/jobs.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/runs/runs.js","webpack://GuideAI/./node_modules/openai/index.js","webpack://GuideAI/./node_modules/openai/_shims/index.js","webpack://GuideAI/./node_modules/openai/pagination.js","webpack://GuideAI/./node_modules/openai/resources/batches.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/threads.js","webpack://GuideAI/./node_modules/openai/resources/chat/completions/index.js","webpack://GuideAI/./node_modules/openai/resource.js","webpack://GuideAI/./node_modules/openai/resources/beta/assistants.js","webpack://GuideAI/./node_modules/openai/resources/uploads/uploads.js","webpack://GuideAI/./node_modules/openai/resources/chat/completions/completions.js","webpack://GuideAI/./node_modules/openai/resources/uploads/parts.js","webpack://GuideAI/./node_modules/openai/_shims/registry.js","webpack://GuideAI/./node_modules/openai/resources/vector-stores/file-batches.js","webpack://GuideAI/./node_modules/openai/lib/Util.js","webpack://GuideAI/./node_modules/openai/lib/parser.js","webpack://GuideAI/./node_modules/openai/resources/fine-tuning/fine-tuning.js","webpack://GuideAI/./node_modules/openai/_vendor/partial-json-parser/parser.js","webpack://GuideAI/./node_modules/openai/resources/audio/transcriptions.js","webpack://GuideAI/./node_modules/openai/resources/beta/realtime/realtime.js","webpack://GuideAI/./node_modules/openai/resources/vector-stores/files.js","webpack://GuideAI/./node_modules/openai/resources/beta/realtime/sessions.js","webpack://GuideAI/./node_modules/openai/resources/index.js","webpack://GuideAI/./node_modules/openai/resources/fine-tuning/jobs/checkpoints.js","webpack://GuideAI/./node_modules/openai/uploads.js","webpack://GuideAI/./node_modules/openai/resources/vector-stores/vector-stores.js","webpack://GuideAI/./node_modules/openai/_shims/MultipartBody.js","webpack://GuideAI/./node_modules/openai/lib/ChatCompletionRunner.js","webpack://GuideAI/./node_modules/openai/lib/RunnableFunction.js","webpack://GuideAI/./node_modules/openai/resources/moderations.js","webpack://GuideAI/./node_modules/openai/resources/audio/speech.js","webpack://GuideAI/./node_modules/openai/lib/ChatCompletionStream.js","webpack://GuideAI/./node_modules/openai/internal/qs/formats.js","webpack://GuideAI/./node_modules/openai/version.js","webpack://GuideAI/./node_modules/openai/resources/shared.js","webpack://GuideAI/./node_modules/openai/resources/responses/input-items.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/messages.js","webpack://GuideAI/./node_modules/openai/resources/chat/chat.js","webpack://GuideAI/./node_modules/openai/resources/beta/beta.js","webpack://GuideAI/./node_modules/openai/lib/chatCompletionUtils.js","webpack://GuideAI/./node_modules/openai/lib/responses/ResponseStream.js","webpack://GuideAI/./node_modules/openai/internal/stream-utils.js","webpack://GuideAI/./node_modules/openai/streaming.js","webpack://GuideAI/./node_modules/openai/resources/images.js","webpack://GuideAI/./node_modules/openai/resources/audio/translations.js","webpack://GuideAI/./node_modules/openai/lib/ChatCompletionStreamingRunner.js","webpack://GuideAI/./node_modules/openai/resources/beta/threads/runs/steps.js","webpack://GuideAI/./node_modules/openai/lib/ResponsesParser.js","webpack://GuideAI/./node_modules/openai/resources/chat/index.js","webpack://GuideAI/./node_modules/openai/resources/beta/chat/completions.js","webpack://GuideAI/./src/GuideAI.tsx","webpack://GuideAI/./node_modules/openai/internal/qs/utils.js","webpack://GuideAI/./node_modules/openai/core.js","webpack://GuideAI/./node_modules/openai/lib/AssistantStream.js","webpack://GuideAI/./node_modules/openai/_shims/auto/runtime.js","webpack://GuideAI/./node_modules/openai/resources/completions.js","webpack://GuideAI/./node_modules/openai/resources/models.js","webpack://GuideAI/./node_modules/openai/resources/chat/completions/messages.js","webpack://GuideAI/./node_modules/openai/error.js","webpack://GuideAI/./node_modules/openai/internal/decoders/line.js","webpack://GuideAI/webpack/bootstrap","webpack://GuideAI/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GuideAI\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"GuideAI\"] = factory(root[\"React\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__156__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringify = void 0;\nconst utils_1 = require(\"./utils.js\");\nconst formats_1 = require(\"./formats.js\");\nconst has = Object.prototype.hasOwnProperty;\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst is_array = Array.isArray;\nconst push = Array.prototype.push;\nconst push_to_array = function (arr, value_or_array) {\n push.apply(arr, is_array(value_or_array) ? value_or_array : [value_or_array]);\n};\nconst to_ISO = Date.prototype.toISOString;\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils_1.encode,\n encodeValuesOnly: false,\n format: formats_1.default_format,\n formatter: formats_1.formatters[formats_1.default_format],\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return to_ISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (typeof tmp_sc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && is_array(obj)) {\n obj = (0, utils_1.maybe_map)(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ?\n // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || (0, utils_1.is_buffer)(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly ? prefix\n // @ts-expect-error\n : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (typeof obj === 'undefined') {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && is_array(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = (0, utils_1.maybe_map)(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n }\n else if (is_array(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && is_array(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && is_array(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = is_array(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(sentinel, sideChannel);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && is_array(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = formats_1.default_format;\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats_1.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formats_1.formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || is_array(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nfunction stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (is_array(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\nexports.stringify = stringify;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntime = void 0;\n/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nconst MultipartBody_1 = require(\"./MultipartBody.js\");\nfunction getRuntime({ manuallyImported } = {}) {\n const recommendation = manuallyImported ?\n `You may need to use polyfills`\n : `Add one of these imports before your first \\`import … from 'openai'\\`:\n- \\`import 'openai/shims/node'\\` (if you're running on Node)\n- \\`import 'openai/shims/web'\\` (otherwise)\n`;\n let _fetch, _Request, _Response, _Headers;\n try {\n // @ts-ignore\n _fetch = fetch;\n // @ts-ignore\n _Request = Request;\n // @ts-ignore\n _Response = Response;\n // @ts-ignore\n _Headers = Headers;\n }\n catch (error) {\n throw new Error(`this environment is missing the following Web Fetch API type: ${error.message}. ${recommendation}`);\n }\n return {\n kind: 'web',\n fetch: _fetch,\n Request: _Request,\n Response: _Response,\n Headers: _Headers,\n FormData: \n // @ts-ignore\n typeof FormData !== 'undefined' ? FormData : (class FormData {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${recommendation}`);\n }\n }),\n Blob: typeof Blob !== 'undefined' ? Blob : (class Blob {\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${recommendation}`);\n }\n }),\n File: \n // @ts-ignore\n typeof File !== 'undefined' ? File : (class File {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${recommendation}`);\n }\n }),\n ReadableStream: \n // @ts-ignore\n typeof ReadableStream !== 'undefined' ? ReadableStream : (class ReadableStream {\n // @ts-ignore\n constructor() {\n throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${recommendation}`);\n }\n }),\n getMultipartRequestOptions: async (\n // @ts-ignore\n form, opts) => ({\n ...opts,\n body: new MultipartBody_1.MultipartBody(form),\n }),\n getDefaultAgent: (url) => undefined,\n fileFromPath: () => {\n throw new Error('The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads');\n },\n isFsReadStream: (value) => false,\n };\n}\nexports.getRuntime = getRuntime;\n//# sourceMappingURL=web-runtime.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_handleError;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventStream = void 0;\nconst error_1 = require(\"../error.js\");\nclass EventStream {\n constructor() {\n _EventStream_instances.add(this);\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n _EventStream_resolveConnectedPromise.set(this, () => { });\n _EventStream_rejectConnectedPromise.set(this, () => { });\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => { });\n _EventStream_rejectEndPromise.set(this, () => { });\n _EventStream_listeners.set(this, {});\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => { });\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).bind(this));\n }, 0);\n }\n _connected() {\n if (this.ended)\n return;\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() { }\n}\nexports.EventStream = EventStream;\n_EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = new error_1.APIUserAbortError();\n }\n if (error instanceof error_1.APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof error_1.OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new error_1.OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new error_1.OpenAIError(String(error)));\n};\n//# sourceMappingURL=EventStream.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseItemsPage = exports.Responses = void 0;\nconst ResponsesParser_1 = require(\"../../lib/ResponsesParser.js\");\nconst core_1 = require(\"../../core.js\");\nconst resource_1 = require(\"../../resource.js\");\nconst InputItemsAPI = __importStar(require(\"./input-items.js\"));\nconst input_items_1 = require(\"./input-items.js\");\nconst ResponseStream_1 = require(\"../../lib/responses/ResponseStream.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass Responses extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n (0, ResponsesParser_1.addOutputText)(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.retrieve(responseId, {}, query);\n }\n return this._client.get(`/responses/${responseId}`, { query, ...options });\n }\n /**\n * Deletes a model response with the given ID.\n */\n del(responseId, options) {\n return this._client.delete(`/responses/${responseId}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => (0, ResponsesParser_1.parseResponse)(response, body));\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ResponseStream_1.ResponseStream.createResponse(this._client, body, options);\n }\n}\nexports.Responses = Responses;\nclass ResponseItemsPage extends pagination_1.CursorPage {\n}\nexports.ResponseItemsPage = ResponseItemsPage;\nResponses.InputItems = input_items_1.InputItems;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionCall, _AbstractChatCompletionRunner_getFinalFunctionCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractChatCompletionRunner = void 0;\nconst error_1 = require(\"../error.js\");\nconst RunnableFunction_1 = require(\"./RunnableFunction.js\");\nconst chatCompletionUtils_1 = require(\"./chatCompletionUtils.js\");\nconst EventStream_1 = require(\"./EventStream.js\");\nconst parser_1 = require(\"../lib/parser.js\");\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nclass AbstractChatCompletionRunner extends EventStream_1.EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message)\n this._addMessage(message);\n return chatCompletion;\n }\n _addMessage(message, emit = true) {\n if (!('content' in message))\n message.content = null;\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (((0, chatCompletionUtils_1.isFunctionMessage)(message) || (0, chatCompletionUtils_1.isToolMessage)(message)) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n this._emit('functionCallResult', message.content);\n }\n else if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.function_call) {\n this._emit('functionCall', message.function_call);\n }\n else if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion)\n throw new error_1.OpenAIError('stream ended without producing a ChatCompletion');\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the content of the final FunctionCall, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalFunctionCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);\n }\n async finalFunctionCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);\n }\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion)\n this._emit('finalChatCompletion', completion);\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage)\n this._emit('finalMessage', finalMessage);\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent)\n this._emit('finalContent', finalContent);\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);\n if (finalFunctionCall)\n this._emit('finalFunctionCall', finalFunctionCall);\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);\n if (finalFunctionCallResult != null)\n this._emit('finalFunctionCallResult', finalFunctionCallResult);\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_validateParams).call(this, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion((0, parser_1.parseChatCompletion)(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runFunctions(client, params, options) {\n const role = 'function';\n const { function_call = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof function_call !== 'string' && function_call?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n const functionsByName = {};\n for (const f of params.functions) {\n functionsByName[f.name || f.function.name] = f;\n }\n const functions = params.functions.map((f) => ({\n name: f.name || f.function.name,\n parameters: f.parameters,\n description: f.description,\n }));\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n function_call,\n functions,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new error_1.OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.function_call)\n return;\n const { name, arguments: args } = message.function_call;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid function_call: ${JSON.stringify(name)}. Available options are: ${functions\n .map((f) => JSON.stringify(f.name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, name, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid function_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, name, content });\n continue;\n }\n let parsed;\n try {\n parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n this._addMessage({\n role,\n name,\n content: error instanceof Error ? error.message : String(error),\n });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, name, content });\n if (singleFunctionToCall)\n return;\n }\n }\n async _runTools(client, params, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n // TODO(someday): clean this logic up\n const inputTools = params.tools.map((tool) => {\n if ((0, parser_1.isAutoParsableTool)(tool)) {\n if (!tool.$callback) {\n throw new error_1.OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n return tool;\n });\n const functionsByName = {};\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n const tools = 'tools' in params ?\n inputTools.map((t) => t.type === 'function' ?\n {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new error_1.OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n return;\n }\n for (const tool_call of message.tool_calls) {\n if (tool_call.type !== 'function')\n continue;\n const tool_call_id = tool_call.id;\n const { name, arguments: args } = tool_call.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n let parsed;\n try {\n parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n const content = error instanceof Error ? error.message : String(error);\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, tool_call_id, content });\n if (singleFunctionToCall) {\n return;\n }\n }\n }\n return;\n }\n}\nexports.AbstractChatCompletionRunner = AbstractChatCompletionRunner;\n_AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message)) {\n const { function_call, ...rest } = message;\n // TODO: support audio here\n const ret = {\n ...rest,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n if (function_call) {\n ret.function_call = function_call;\n }\n return ret;\n }\n }\n throw new error_1.OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionCall = function _AbstractChatCompletionRunner_getFinalFunctionCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message?.function_call) {\n return message.function_call;\n }\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message?.tool_calls?.length) {\n return message.tool_calls.at(-1)?.function;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_getFinalFunctionCallResult = function _AbstractChatCompletionRunner_getFinalFunctionCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if ((0, chatCompletionUtils_1.isFunctionMessage)(message) && message.content != null) {\n return message.content;\n }\n if ((0, chatCompletionUtils_1.isToolMessage)(message) &&\n message.content != null &&\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new error_1.OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n return (typeof rawContent === 'string' ? rawContent\n : rawContent === undefined ? 'undefined'\n : JSON.stringify(rawContent));\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Embeddings = void 0;\nconst resource_1 = require(\"../resource.js\");\nclass Embeddings extends resource_1.APIResource {\n /**\n * Creates an embedding vector representing the input text.\n */\n create(body, options) {\n return this._client.post('/embeddings', { body, ...options });\n }\n}\nexports.Embeddings = Embeddings;\n//# sourceMappingURL=embeddings.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Audio = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst SpeechAPI = __importStar(require(\"./speech.js\"));\nconst speech_1 = require(\"./speech.js\");\nconst TranscriptionsAPI = __importStar(require(\"./transcriptions.js\"));\nconst transcriptions_1 = require(\"./transcriptions.js\");\nconst TranslationsAPI = __importStar(require(\"./translations.js\"));\nconst translations_1 = require(\"./translations.js\");\nclass Audio extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nexports.Audio = Audio;\nAudio.Transcriptions = transcriptions_1.Transcriptions;\nAudio.Translations = translations_1.Translations;\nAudio.Speech = speech_1.Speech;\n//# sourceMappingURL=audio.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chat = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst CompletionsAPI = __importStar(require(\"./completions.js\"));\nclass Chat extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nexports.Chat = Chat;\n(function (Chat) {\n Chat.Completions = CompletionsAPI.Completions;\n})(Chat = exports.Chat || (exports.Chat = {}));\n//# sourceMappingURL=chat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formats = exports.stringify = void 0;\nconst formats_1 = require(\"./formats.js\");\nconst formats = {\n formatters: formats_1.formatters,\n RFC1738: formats_1.RFC1738,\n RFC3986: formats_1.RFC3986,\n default: formats_1.default_format,\n};\nexports.formats = formats;\nvar stringify_1 = require(\"./stringify.js\");\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return stringify_1.stringify; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileObjectsPage = exports.Files = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst core_1 = require(\"../core.js\");\nconst core_2 = require(\"../core.js\");\nconst error_1 = require(\"../error.js\");\nconst Core = __importStar(require(\"../core.js\"));\nconst pagination_1 = require(\"../pagination.js\");\nclass Files extends resource_1.APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and the size of all files uploaded by one organization can be up\n * to 100 GB.\n *\n * The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) for\n * details.\n *\n * The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input) or\n * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)\n * models.\n *\n * The Batch API only supports `.jsonl` files up to 200 MB in size. The input also\n * has a specific required\n * [format](https://platform.openai.com/docs/api-reference/batch/request-input).\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', Core.multipartFormRequestOptions({ body, ...options }));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileId, options) {\n return this._client.get(`/files/${fileId}`, options);\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/files', FileObjectsPage, { query, ...options });\n }\n /**\n * Delete a file.\n */\n del(fileId, options) {\n return this._client.delete(`/files/${fileId}`, options);\n }\n /**\n * Returns the contents of the specified file.\n */\n content(fileId, options) {\n return this._client.get(`/files/${fileId}/content`, {\n ...options,\n headers: { Accept: 'application/binary', ...options?.headers },\n __binaryResponse: true,\n });\n }\n /**\n * Returns the contents of the specified file.\n *\n * @deprecated The `.content()` method should be used instead\n */\n retrieveContent(fileId, options) {\n return this._client.get(`/files/${fileId}/content`, options);\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);\n const start = Date.now();\n let file = await this.retrieve(id);\n while (!file.status || !TERMINAL_STATES.has(file.status)) {\n await (0, core_2.sleep)(pollInterval);\n file = await this.retrieve(id);\n if (Date.now() - start > maxWait) {\n throw new error_1.APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n }\n}\nexports.Files = Files;\nclass FileObjectsPage extends pagination_1.CursorPage {\n}\nexports.FileObjectsPage = FileObjectsPage;\nFiles.FileObjectsPage = FileObjectsPage;\n//# sourceMappingURL=files.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FineTuningJobEventsPage = exports.FineTuningJobsPage = exports.Jobs = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst CheckpointsAPI = __importStar(require(\"./checkpoints.js\"));\nconst checkpoints_1 = require(\"./checkpoints.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Jobs extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)\n */\n retrieve(fineTuningJobId, options) {\n return this._client.get(`/fine_tuning/jobs/${fineTuningJobId}`, options);\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/fine_tuning/jobs', FineTuningJobsPage, { query, ...options });\n }\n /**\n * Immediately cancel a fine-tune job.\n */\n cancel(fineTuningJobId, options) {\n return this._client.post(`/fine_tuning/jobs/${fineTuningJobId}/cancel`, options);\n }\n listEvents(fineTuningJobId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.listEvents(fineTuningJobId, {}, query);\n }\n return this._client.getAPIList(`/fine_tuning/jobs/${fineTuningJobId}/events`, FineTuningJobEventsPage, {\n query,\n ...options,\n });\n }\n}\nexports.Jobs = Jobs;\nclass FineTuningJobsPage extends pagination_1.CursorPage {\n}\nexports.FineTuningJobsPage = FineTuningJobsPage;\nclass FineTuningJobEventsPage extends pagination_1.CursorPage {\n}\nexports.FineTuningJobEventsPage = FineTuningJobEventsPage;\nJobs.FineTuningJobsPage = FineTuningJobsPage;\nJobs.FineTuningJobEventsPage = FineTuningJobEventsPage;\nJobs.Checkpoints = checkpoints_1.Checkpoints;\nJobs.FineTuningJobCheckpointsPage = checkpoints_1.FineTuningJobCheckpointsPage;\n//# sourceMappingURL=jobs.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RunsPage = exports.Runs = void 0;\nconst resource_1 = require(\"../../../../resource.js\");\nconst core_1 = require(\"../../../../core.js\");\nconst AssistantStream_1 = require(\"../../../../lib/AssistantStream.js\");\nconst core_2 = require(\"../../../../core.js\");\nconst StepsAPI = __importStar(require(\"./steps.js\"));\nconst steps_1 = require(\"./steps.js\");\nconst pagination_1 = require(\"../../../../pagination.js\");\nclass Runs extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadId, params, options) {\n const { include, ...body } = params;\n return this._client.post(`/threads/${threadId}/runs`, {\n query: { include },\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n stream: params.stream ?? false,\n });\n }\n /**\n * Retrieves a run.\n */\n retrieve(threadId, runId, options) {\n return this._client.get(`/threads/${threadId}/runs/${runId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a run.\n */\n update(threadId, runId, body, options) {\n return this._client.post(`/threads/${threadId}/runs/${runId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(threadId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(threadId, {}, query);\n }\n return this._client.getAPIList(`/threads/${threadId}/runs`, RunsPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n */\n cancel(threadId, runId, options) {\n return this._client.post(`/threads/${threadId}/runs/${runId}/cancel`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(threadId, run.id, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream_1.AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(threadId, runId, options) {\n const headers = { ...options?.headers, 'X-Stainless-Poll-Helper': 'true' };\n if (options?.pollIntervalMs) {\n headers['X-Stainless-Custom-Poll-Interval'] = options.pollIntervalMs.toString();\n }\n while (true) {\n const { data: run, response } = await this.retrieve(threadId, runId, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }).withResponse();\n switch (run.status) {\n //If we are in any sort of intermediate state we poll\n case 'queued':\n case 'in_progress':\n case 'cancelling':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await (0, core_2.sleep)(sleepInterval);\n break;\n //We return the run in any terminal state.\n case 'requires_action':\n case 'incomplete':\n case 'cancelled':\n case 'completed':\n case 'failed':\n case 'expired':\n return run;\n }\n }\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream_1.AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(threadId, runId, body, options) {\n return this._client.post(`/threads/${threadId}/runs/${runId}/submit_tool_outputs`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(threadId, runId, body, options) {\n const run = await this.submitToolOutputs(threadId, runId, body, options);\n return await this.poll(threadId, run.id, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(threadId, runId, body, options) {\n return AssistantStream_1.AssistantStream.createToolAssistantStream(threadId, runId, this._client.beta.threads.runs, body, options);\n }\n}\nexports.Runs = Runs;\nclass RunsPage extends pagination_1.CursorPage {\n}\nexports.RunsPage = RunsPage;\nRuns.RunsPage = RunsPage;\nRuns.Steps = steps_1.Steps;\nRuns.RunStepsPage = steps_1.RunStepsPage;\n//# sourceMappingURL=runs.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnprocessableEntityError = exports.PermissionDeniedError = exports.InternalServerError = exports.AuthenticationError = exports.BadRequestError = exports.RateLimitError = exports.ConflictError = exports.NotFoundError = exports.APIUserAbortError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIError = exports.OpenAIError = exports.fileFromPath = exports.toFile = exports.AzureOpenAI = exports.OpenAI = void 0;\nconst qs = __importStar(require(\"./internal/qs/index.js\"));\nconst Core = __importStar(require(\"./core.js\"));\nconst Errors = __importStar(require(\"./error.js\"));\nconst Pagination = __importStar(require(\"./pagination.js\"));\nconst Uploads = __importStar(require(\"./uploads.js\"));\nconst API = __importStar(require(\"./resources/index.js\"));\nconst batches_1 = require(\"./resources/batches.js\");\nconst completions_1 = require(\"./resources/completions.js\");\nconst embeddings_1 = require(\"./resources/embeddings.js\");\nconst files_1 = require(\"./resources/files.js\");\nconst images_1 = require(\"./resources/images.js\");\nconst models_1 = require(\"./resources/models.js\");\nconst moderations_1 = require(\"./resources/moderations.js\");\nconst audio_1 = require(\"./resources/audio/audio.js\");\nconst beta_1 = require(\"./resources/beta/beta.js\");\nconst chat_1 = require(\"./resources/chat/chat.js\");\nconst fine_tuning_1 = require(\"./resources/fine-tuning/fine-tuning.js\");\nconst responses_1 = require(\"./resources/responses/responses.js\");\nconst uploads_1 = require(\"./resources/uploads/uploads.js\");\nconst vector_stores_1 = require(\"./resources/vector-stores/vector-stores.js\");\nconst completions_2 = require(\"./resources/chat/completions/completions.js\");\n/**\n * API Client for interfacing with the OpenAI API.\n */\nclass OpenAI extends Core.APIClient {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.\n * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = Core.readEnv('OPENAI_BASE_URL'), apiKey = Core.readEnv('OPENAI_API_KEY'), organization = Core.readEnv('OPENAI_ORG_ID') ?? null, project = Core.readEnv('OPENAI_PROJECT_ID') ?? null, ...opts } = {}) {\n if (apiKey === undefined) {\n throw new Errors.OpenAIError(\"The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).\");\n }\n const options = {\n apiKey,\n organization,\n project,\n ...opts,\n baseURL: baseURL || `https://api.openai.com/v1`,\n };\n if (!options.dangerouslyAllowBrowser && Core.isRunningInBrowser()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n super({\n baseURL: options.baseURL,\n timeout: options.timeout ?? 600000 /* 10 minutes */,\n httpAgent: options.httpAgent,\n maxRetries: options.maxRetries,\n fetch: options.fetch,\n });\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n this.embeddings = new API.Embeddings(this);\n this.files = new API.Files(this);\n this.images = new API.Images(this);\n this.audio = new API.Audio(this);\n this.moderations = new API.Moderations(this);\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.vectorStores = new API.VectorStores(this);\n this.beta = new API.Beta(this);\n this.batches = new API.Batches(this);\n this.uploads = new API.Uploads(this);\n this.responses = new API.Responses(this);\n this._options = options;\n this.apiKey = apiKey;\n this.organization = organization;\n this.project = project;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n defaultHeaders(opts) {\n return {\n ...super.defaultHeaders(opts),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n ...this._options.defaultHeaders,\n };\n }\n authHeaders(opts) {\n return { Authorization: `Bearer ${this.apiKey}` };\n }\n stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n }\n}\nexports.OpenAI = OpenAI;\n_a = OpenAI;\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.fileFromPath = Uploads.fileFromPath;\nOpenAI.Completions = completions_1.Completions;\nOpenAI.Chat = chat_1.Chat;\nOpenAI.ChatCompletionsPage = completions_2.ChatCompletionsPage;\nOpenAI.Embeddings = embeddings_1.Embeddings;\nOpenAI.Files = files_1.Files;\nOpenAI.FileObjectsPage = files_1.FileObjectsPage;\nOpenAI.Images = images_1.Images;\nOpenAI.Audio = audio_1.Audio;\nOpenAI.Moderations = moderations_1.Moderations;\nOpenAI.Models = models_1.Models;\nOpenAI.ModelsPage = models_1.ModelsPage;\nOpenAI.FineTuning = fine_tuning_1.FineTuning;\nOpenAI.VectorStores = vector_stores_1.VectorStores;\nOpenAI.VectorStoresPage = vector_stores_1.VectorStoresPage;\nOpenAI.VectorStoreSearchResponsesPage = vector_stores_1.VectorStoreSearchResponsesPage;\nOpenAI.Beta = beta_1.Beta;\nOpenAI.Batches = batches_1.Batches;\nOpenAI.BatchesPage = batches_1.BatchesPage;\nOpenAI.Uploads = uploads_1.Uploads;\nOpenAI.Responses = responses_1.Responses;\n/** API Client for interfacing with the Azure OpenAI API. */\nclass AzureOpenAI extends OpenAI {\n /**\n * API Client for interfacing with the Azure OpenAI API.\n *\n * @param {string | undefined} [opts.apiVersion=process.env['OPENAI_API_VERSION'] ?? undefined]\n * @param {string | undefined} [opts.endpoint=process.env['AZURE_OPENAI_ENDPOINT'] ?? undefined] - Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`\n * @param {string | undefined} [opts.apiKey=process.env['AZURE_OPENAI_API_KEY'] ?? undefined]\n * @param {string | undefined} opts.deployment - A model deployment, if given, sets the base client URL to include `/deployments/{deployment}`.\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL']] - Sets the base URL for the API, e.g. `https://example-resource.azure.openai.com/openai/`.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.\n * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = Core.readEnv('OPENAI_BASE_URL'), apiKey = Core.readEnv('AZURE_OPENAI_API_KEY'), apiVersion = Core.readEnv('OPENAI_API_VERSION'), endpoint, deployment, azureADTokenProvider, dangerouslyAllowBrowser, ...opts } = {}) {\n if (!apiVersion) {\n throw new Errors.OpenAIError(\"The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).\");\n }\n if (typeof azureADTokenProvider === 'function') {\n dangerouslyAllowBrowser = true;\n }\n if (!azureADTokenProvider && !apiKey) {\n throw new Errors.OpenAIError('Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.');\n }\n if (azureADTokenProvider && apiKey) {\n throw new Errors.OpenAIError('The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.');\n }\n // define a sentinel value to avoid any typing issues\n apiKey ?? (apiKey = API_KEY_SENTINEL);\n opts.defaultQuery = { ...opts.defaultQuery, 'api-version': apiVersion };\n if (!baseURL) {\n if (!endpoint) {\n endpoint = process.env['AZURE_OPENAI_ENDPOINT'];\n }\n if (!endpoint) {\n throw new Errors.OpenAIError('Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable');\n }\n baseURL = `${endpoint}/openai`;\n }\n else {\n if (endpoint) {\n throw new Errors.OpenAIError('baseURL and endpoint are mutually exclusive');\n }\n }\n super({\n apiKey,\n baseURL,\n ...opts,\n ...(dangerouslyAllowBrowser !== undefined ? { dangerouslyAllowBrowser } : {}),\n });\n this.apiVersion = '';\n this._azureADTokenProvider = azureADTokenProvider;\n this.apiVersion = apiVersion;\n this.deploymentName = deployment;\n }\n buildRequest(options, props = {}) {\n if (_deployments_endpoints.has(options.path) && options.method === 'post' && options.body !== undefined) {\n if (!Core.isObj(options.body)) {\n throw new Error('Expected request body to be an object');\n }\n const model = this.deploymentName || options.body['model'] || options.__metadata?.['model'];\n if (model !== undefined && !this.baseURL.includes('/deployments')) {\n options.path = `/deployments/${model}${options.path}`;\n }\n }\n return super.buildRequest(options, props);\n }\n async _getAzureADToken() {\n if (typeof this._azureADTokenProvider === 'function') {\n const token = await this._azureADTokenProvider();\n if (!token || typeof token !== 'string') {\n throw new Errors.OpenAIError(`Expected 'azureADTokenProvider' argument to return a string but it returned ${token}`);\n }\n return token;\n }\n return undefined;\n }\n authHeaders(opts) {\n return {};\n }\n async prepareOptions(opts) {\n /**\n * The user should provide a bearer token provider if they want\n * to use Azure AD authentication. The user shouldn't set the\n * Authorization header manually because the header is overwritten\n * with the Azure AD token if a bearer token provider is provided.\n */\n if (opts.headers?.['api-key']) {\n return super.prepareOptions(opts);\n }\n const token = await this._getAzureADToken();\n opts.headers ?? (opts.headers = {});\n if (token) {\n opts.headers['Authorization'] = `Bearer ${token}`;\n }\n else if (this.apiKey !== API_KEY_SENTINEL) {\n opts.headers['api-key'] = this.apiKey;\n }\n else {\n throw new Errors.OpenAIError('Unable to handle auth');\n }\n return super.prepareOptions(opts);\n }\n}\nexports.AzureOpenAI = AzureOpenAI;\nconst _deployments_endpoints = new Set([\n '/completions',\n '/chat/completions',\n '/embeddings',\n '/audio/transcriptions',\n '/audio/translations',\n '/audio/speech',\n '/images/generations',\n]);\nconst API_KEY_SENTINEL = '<Missing Key>';\n// ---------------------- End Azure ----------------------\nvar uploads_2 = require(\"./uploads.js\");\nObject.defineProperty(exports, \"toFile\", { enumerable: true, get: function () { return uploads_2.toFile; } });\nObject.defineProperty(exports, \"fileFromPath\", { enumerable: true, get: function () { return uploads_2.fileFromPath; } });\nvar error_1 = require(\"./error.js\");\nObject.defineProperty(exports, \"OpenAIError\", { enumerable: true, get: function () { return error_1.OpenAIError; } });\nObject.defineProperty(exports, \"APIError\", { enumerable: true, get: function () { return error_1.APIError; } });\nObject.defineProperty(exports, \"APIConnectionError\", { enumerable: true, get: function () { return error_1.APIConnectionError; } });\nObject.defineProperty(exports, \"APIConnectionTimeoutError\", { enumerable: true, get: function () { return error_1.APIConnectionTimeoutError; } });\nObject.defineProperty(exports, \"APIUserAbortError\", { enumerable: true, get: function () { return error_1.APIUserAbortError; } });\nObject.defineProperty(exports, \"NotFoundError\", { enumerable: true, get: function () { return error_1.NotFoundError; } });\nObject.defineProperty(exports, \"ConflictError\", { enumerable: true, get: function () { return error_1.ConflictError; } });\nObject.defineProperty(exports, \"RateLimitError\", { enumerable: true, get: function () { return error_1.RateLimitError; } });\nObject.defineProperty(exports, \"BadRequestError\", { enumerable: true, get: function () { return error_1.BadRequestError; } });\nObject.defineProperty(exports, \"AuthenticationError\", { enumerable: true, get: function () { return error_1.AuthenticationError; } });\nObject.defineProperty(exports, \"InternalServerError\", { enumerable: true, get: function () { return error_1.InternalServerError; } });\nObject.defineProperty(exports, \"PermissionDeniedError\", { enumerable: true, get: function () { return error_1.PermissionDeniedError; } });\nObject.defineProperty(exports, \"UnprocessableEntityError\", { enumerable: true, get: function () { return error_1.UnprocessableEntityError; } });\nexports = module.exports = OpenAI;\nmodule.exports.AzureOpenAI = AzureOpenAI;\nexports.default = OpenAI;\n//# sourceMappingURL=index.js.map","/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nconst shims = require('./registry');\nconst auto = require('openai/_shims/auto/runtime');\nif (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });\nfor (const property of Object.keys(shims)) {\n Object.defineProperty(exports, property, {\n get() {\n return shims[property];\n },\n });\n}\n","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CursorPage = exports.Page = void 0;\nconst core_1 = require(\"./core.js\");\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass Page extends core_1.AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n // @deprecated Please use `nextPageInfo()` instead\n /**\n * This page represents a response that isn't actually paginated at the API level\n * so there will never be any next page params.\n */\n nextPageParams() {\n return null;\n }\n nextPageInfo() {\n return null;\n }\n}\nexports.Page = Page;\nclass CursorPage extends core_1.AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n // @deprecated Please use `nextPageInfo()` instead\n nextPageParams() {\n const info = this.nextPageInfo();\n if (!info)\n return null;\n if ('params' in info)\n return info.params;\n const params = Object.fromEntries(info.url.searchParams);\n if (!Object.keys(params).length)\n return null;\n return params;\n }\n nextPageInfo() {\n const data = this.getPaginatedItems();\n if (!data.length) {\n return null;\n }\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return { params: { after: id } };\n }\n}\nexports.CursorPage = CursorPage;\n//# sourceMappingURL=pagination.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchesPage = exports.Batches = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst core_1 = require(\"../core.js\");\nconst pagination_1 = require(\"../pagination.js\");\nclass Batches extends resource_1.APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchId, options) {\n return this._client.get(`/batches/${batchId}`, options);\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/batches', BatchesPage, { query, ...options });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchId, options) {\n return this._client.post(`/batches/${batchId}/cancel`, options);\n }\n}\nexports.Batches = Batches;\nclass BatchesPage extends pagination_1.CursorPage {\n}\nexports.BatchesPage = BatchesPage;\nBatches.BatchesPage = BatchesPage;\n//# sourceMappingURL=batches.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Threads = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst AssistantStream_1 = require(\"../../../lib/AssistantStream.js\");\nconst MessagesAPI = __importStar(require(\"./messages.js\"));\nconst messages_1 = require(\"./messages.js\");\nconst RunsAPI = __importStar(require(\"./runs/runs.js\"));\nconst runs_1 = require(\"./runs/runs.js\");\nclass Threads extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body = {}, options) {\n if ((0, core_1.isRequestOptions)(body)) {\n return this.create({}, body);\n }\n return this._client.post('/threads', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a thread.\n */\n retrieve(threadId, options) {\n return this._client.get(`/threads/${threadId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a thread.\n */\n update(threadId, body, options) {\n return this._client.post(`/threads/${threadId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete a thread.\n */\n del(threadId, options) {\n return this._client.delete(`/threads/${threadId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.thread_id, run.id, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream_1.AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nexports.Threads = Threads;\nThreads.Runs = runs_1.Runs;\nThreads.RunsPage = runs_1.RunsPage;\nThreads.Messages = messages_1.Messages;\nThreads.MessagesPage = messages_1.MessagesPage;\n//# sourceMappingURL=threads.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Messages = exports.Completions = exports.ChatCompletionsPage = exports.ChatCompletionStoreMessagesPage = void 0;\nvar completions_1 = require(\"./completions.js\");\nObject.defineProperty(exports, \"ChatCompletionStoreMessagesPage\", { enumerable: true, get: function () { return completions_1.ChatCompletionStoreMessagesPage; } });\nObject.defineProperty(exports, \"ChatCompletionsPage\", { enumerable: true, get: function () { return completions_1.ChatCompletionsPage; } });\nObject.defineProperty(exports, \"Completions\", { enumerable: true, get: function () { return completions_1.Completions; } });\nvar messages_1 = require(\"./messages.js\");\nObject.defineProperty(exports, \"Messages\", { enumerable: true, get: function () { return messages_1.Messages; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.APIResource = void 0;\nclass APIResource {\n constructor(client) {\n this._client = client;\n }\n}\nexports.APIResource = APIResource;\n//# sourceMappingURL=resource.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssistantsPage = exports.Assistants = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass Assistants extends resource_1.APIResource {\n /**\n * Create an assistant with a model and instructions.\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves an assistant.\n */\n retrieve(assistantId, options) {\n return this._client.get(`/assistants/${assistantId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies an assistant.\n */\n update(assistantId, body, options) {\n return this._client.post(`/assistants/${assistantId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/assistants', AssistantsPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete an assistant.\n */\n del(assistantId, options) {\n return this._client.delete(`/assistants/${assistantId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Assistants = Assistants;\nclass AssistantsPage extends pagination_1.CursorPage {\n}\nexports.AssistantsPage = AssistantsPage;\nAssistants.AssistantsPage = AssistantsPage;\n//# sourceMappingURL=assistants.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uploads = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst PartsAPI = __importStar(require(\"./parts.js\"));\nconst parts_1 = require(\"./parts.js\");\nclass Uploads extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object\n * that you can add\n * [Parts](https://platform.openai.com/docs/api-reference/uploads/part-object) to.\n * Currently, an Upload can accept at most 8 GB in total and expires after an hour\n * after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://platform.openai.com/docs/assistants/tools/file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://platform.openai.com/docs/api-reference/files/create).\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n */\n cancel(uploadId, options) {\n return this._client.post(`/uploads/${uploadId}/cancel`, options);\n }\n /**\n * Completes the\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed.\n */\n complete(uploadId, body, options) {\n return this._client.post(`/uploads/${uploadId}/complete`, { body, ...options });\n }\n}\nexports.Uploads = Uploads;\nUploads.Parts = parts_1.Parts;\n//# sourceMappingURL=uploads.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStoreMessagesPage = exports.ChatCompletionsPage = exports.Completions = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst MessagesAPI = __importStar(require(\"./messages.js\"));\nconst messages_1 = require(\"./messages.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Completions extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n */\n retrieve(completionId, options) {\n return this._client.get(`/chat/completions/${completionId}`, options);\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n */\n update(completionId, body, options) {\n return this._client.post(`/chat/completions/${completionId}`, { body, ...options });\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/chat/completions', ChatCompletionsPage, { query, ...options });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n */\n del(completionId, options) {\n return this._client.delete(`/chat/completions/${completionId}`, options);\n }\n}\nexports.Completions = Completions;\nclass ChatCompletionsPage extends pagination_1.CursorPage {\n}\nexports.ChatCompletionsPage = ChatCompletionsPage;\nclass ChatCompletionStoreMessagesPage extends pagination_1.CursorPage {\n}\nexports.ChatCompletionStoreMessagesPage = ChatCompletionStoreMessagesPage;\nCompletions.ChatCompletionsPage = ChatCompletionsPage;\nCompletions.Messages = messages_1.Messages;\n//# sourceMappingURL=completions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parts = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst Core = __importStar(require(\"../../core.js\"));\nclass Parts extends resource_1.APIResource {\n /**\n * Adds a\n * [Part](https://platform.openai.com/docs/api-reference/uploads/part-object) to an\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object.\n * A Part represents a chunk of bytes from the file you are trying to upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://platform.openai.com/docs/api-reference/uploads/complete).\n */\n create(uploadId, body, options) {\n return this._client.post(`/uploads/${uploadId}/parts`, Core.multipartFormRequestOptions({ body, ...options }));\n }\n}\nexports.Parts = Parts;\n//# sourceMappingURL=parts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setShims = exports.isFsReadStream = exports.fileFromPath = exports.getDefaultAgent = exports.getMultipartRequestOptions = exports.ReadableStream = exports.File = exports.Blob = exports.FormData = exports.Headers = exports.Response = exports.Request = exports.fetch = exports.kind = exports.auto = void 0;\nexports.auto = false;\nexports.kind = undefined;\nexports.fetch = undefined;\nexports.Request = undefined;\nexports.Response = undefined;\nexports.Headers = undefined;\nexports.FormData = undefined;\nexports.Blob = undefined;\nexports.File = undefined;\nexports.ReadableStream = undefined;\nexports.getMultipartRequestOptions = undefined;\nexports.getDefaultAgent = undefined;\nexports.fileFromPath = undefined;\nexports.isFsReadStream = undefined;\nfunction setShims(shims, options = { auto: false }) {\n if (exports.auto) {\n throw new Error(`you must \\`import 'openai/shims/${shims.kind}'\\` before importing anything else from openai`);\n }\n if (exports.kind) {\n throw new Error(`can't \\`import 'openai/shims/${shims.kind}'\\` after \\`import 'openai/shims/${exports.kind}'\\``);\n }\n exports.auto = options.auto;\n exports.kind = shims.kind;\n exports.fetch = shims.fetch;\n exports.Request = shims.Request;\n exports.Response = shims.Response;\n exports.Headers = shims.Headers;\n exports.FormData = shims.FormData;\n exports.Blob = shims.Blob;\n exports.File = shims.File;\n exports.ReadableStream = shims.ReadableStream;\n exports.getMultipartRequestOptions = shims.getMultipartRequestOptions;\n exports.getDefaultAgent = shims.getDefaultAgent;\n exports.fileFromPath = shims.fileFromPath;\n exports.isFsReadStream = shims.isFsReadStream;\n}\nexports.setShims = setShims;\n//# sourceMappingURL=registry.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorStoreFilesPage = exports.FileBatches = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst core_2 = require(\"../../core.js\");\nconst Util_1 = require(\"../../lib/Util.js\");\nconst files_1 = require(\"./files.js\");\nObject.defineProperty(exports, \"VectorStoreFilesPage\", { enumerable: true, get: function () { return files_1.VectorStoreFilesPage; } });\nclass FileBatches extends resource_1.APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/file_batches`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(vectorStoreId, batchId, options) {\n return this._client.get(`/vector_stores/${vectorStoreId}/file_batches/${batchId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(vectorStoreId, batchId, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/file_batches/${batchId}/cancel`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n listFiles(vectorStoreId, batchId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.listFiles(vectorStoreId, batchId, {}, query);\n }\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/file_batches/${batchId}/files`, files_1.VectorStoreFilesPage, { query, ...options, headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers } });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreId, batchId, options) {\n const headers = { ...options?.headers, 'X-Stainless-Poll-Helper': 'true' };\n if (options?.pollIntervalMs) {\n headers['X-Stainless-Custom-Poll-Interval'] = options.pollIntervalMs.toString();\n }\n while (true) {\n const { data: batch, response } = await this.retrieve(vectorStoreId, batchId, {\n ...options,\n headers,\n }).withResponse();\n switch (batch.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await (0, core_2.sleep)(sleepInterval);\n break;\n case 'failed':\n case 'cancelled':\n case 'completed':\n return batch;\n }\n }\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n if (files == null || files.length == 0) {\n throw new Error(`No \\`files\\` provided to process. If you've already uploaded files you should use \\`.createAndPoll()\\` instead`);\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n // We cap the number of workers at the number of files (so we don't start any unnecessary workers)\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n const client = this._client;\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (let item of iterator) {\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Start workers to process results\n const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);\n // Wait for all processing to complete.\n await (0, Util_1.allSettledWithThrow)(workers);\n return await this.createAndPoll(vectorStoreId, {\n file_ids: allFileIds,\n });\n }\n}\nexports.FileBatches = FileBatches;\n//# sourceMappingURL=file-batches.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.allSettledWithThrow = void 0;\n/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n */\nconst allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n for (const result of rejected) {\n console.error(result.reason);\n }\n throw new Error(`${rejected.length} promise(s) failed - see the above errors`);\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\nexports.allSettledWithThrow = allSettledWithThrow;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateInputTools = exports.hasAutoParseableInput = exports.shouldParseToolCall = exports.parseChatCompletion = exports.maybeParseChatCompletion = exports.isAutoParsableTool = exports.makeParseableTool = exports.isAutoParsableResponseFormat = exports.makeParseableTextFormat = exports.makeParseableResponseFormat = void 0;\nconst error_1 = require(\"../error.js\");\nfunction makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableResponseFormat = makeParseableResponseFormat;\nfunction makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableTextFormat = makeParseableTextFormat;\nfunction isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\nexports.isAutoParsableResponseFormat = isAutoParsableResponseFormat;\nfunction makeParseableTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableTool = makeParseableTool;\nfunction isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexports.isAutoParsableTool = isAutoParsableTool;\nfunction maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => ({\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n })),\n };\n }\n return parseChatCompletion(completion, params);\n}\nexports.maybeParseChatCompletion = maybeParseChatCompletion;\nfunction parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new error_1.LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new error_1.ContentFilterFinishReasonError();\n }\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content && !choice.message.refusal ?\n parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nexports.parseChatCompletion = parseChatCompletion;\nfunction parseResponseFormat(params, content) {\n if (params.response_format?.type !== 'json_schema') {\n return null;\n }\n if (params.response_format?.type === 'json_schema') {\n if ('$parseRaw' in params.response_format) {\n const response_format = params.response_format;\n return response_format.$parseRaw(content);\n }\n return JSON.parse(content);\n }\n return null;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name);\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments)\n : null,\n },\n };\n}\nfunction shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name);\n return isAutoParsableTool(inputTool) || inputTool?.function.strict || false;\n}\nexports.shouldParseToolCall = shouldParseToolCall;\nfunction hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\nexports.hasAutoParseableInput = hasAutoParseableInput;\nfunction validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new error_1.OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new error_1.OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexports.validateInputTools = validateInputTools;\n//# sourceMappingURL=parser.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FineTuning = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst JobsAPI = __importStar(require(\"./jobs/jobs.js\"));\nconst jobs_1 = require(\"./jobs/jobs.js\");\nclass FineTuning extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.jobs = new JobsAPI.Jobs(this._client);\n }\n}\nexports.FineTuning = FineTuning;\nFineTuning.Jobs = jobs_1.Jobs;\nFineTuning.FineTuningJobsPage = jobs_1.FineTuningJobsPage;\nFineTuning.FineTuningJobEventsPage = jobs_1.FineTuningJobEventsPage;\n//# sourceMappingURL=fine-tuning.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MalformedJSON = exports.PartialJSON = exports.partialParse = void 0;\nconst STR = 0b000000001;\nconst NUM = 0b000000010;\nconst ARR = 0b000000100;\nconst OBJ = 0b000001000;\nconst NULL = 0b000010000;\nconst BOOL = 0b000100000;\nconst NAN = 0b001000000;\nconst INFINITY = 0b010000000;\nconst MINUS_INFINITY = 0b100000000;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\nclass PartialJSON extends Error {\n}\nexports.PartialJSON = PartialJSON;\nclass MalformedJSON extends Error {\n}\nexports.MalformedJSON = MalformedJSON;\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length)\n markPartialJSON('Unexpected end of input');\n if (jsonString[index] === '\"')\n return parseStr();\n if (jsonString[index] === '{')\n return parseObj();\n if (jsonString[index] === '[')\n return parseArr();\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n 1 < length - index &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) == '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch (e) {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow)\n return obj;\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',')\n index++; // skip comma\n }\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch (e) {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if ('.' === jsonString[jsonString.length - 1])\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch (e) { }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-')\n index++;\n while (jsonString[index] && !',]}'.includes(jsonString[index]))\n index++;\n if (index == length && !(Allow.NUM & allow))\n markPartialJSON('Unterminated number literal');\n try {\n return JSON.parse(jsonString.substring(start, index));\n }\n catch (e) {\n if (jsonString.substring(start, index) === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexports.partialParse = partialParse;\n//# sourceMappingURL=parser.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Transcriptions = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst Core = __importStar(require(\"../../core.js\"));\nclass Transcriptions extends resource_1.APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', Core.multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }));\n }\n}\nexports.Transcriptions = Transcriptions;\n//# sourceMappingURL=transcriptions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Realtime = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst SessionsAPI = __importStar(require(\"./sessions.js\"));\nconst sessions_1 = require(\"./sessions.js\");\nclass Realtime extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n }\n}\nexports.Realtime = Realtime;\nRealtime.Sessions = sessions_1.Sessions;\n//# sourceMappingURL=realtime.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileContentResponsesPage = exports.VectorStoreFilesPage = exports.Files = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass Files extends resource_1.APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://platform.openai.com/docs/api-reference/files) to a\n * [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).\n */\n create(vectorStoreId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/files`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(vectorStoreId, fileId, options) {\n return this._client.get(`/vector_stores/${vectorStoreId}/files/${fileId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(vectorStoreId, fileId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}/files/${fileId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(vectorStoreId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(vectorStoreId, {}, query);\n }\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/files`, VectorStoreFilesPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://platform.openai.com/docs/api-reference/files/delete)\n * endpoint.\n */\n del(vectorStoreId, fileId, options) {\n return this._client.delete(`/vector_stores/${vectorStoreId}/files/${fileId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreId, fileId, options) {\n const headers = { ...options?.headers, 'X-Stainless-Poll-Helper': 'true' };\n if (options?.pollIntervalMs) {\n headers['X-Stainless-Custom-Poll-Interval'] = options.pollIntervalMs.toString();\n }\n while (true) {\n const fileResponse = await this.retrieve(vectorStoreId, fileId, {\n ...options,\n headers,\n }).withResponse();\n const file = fileResponse.data;\n switch (file.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await (0, core_1.sleep)(sleepInterval);\n break;\n case 'failed':\n case 'completed':\n return file;\n }\n }\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(vectorStoreId, fileId, options) {\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/files/${fileId}/content`, FileContentResponsesPage, { ...options, headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers } });\n }\n}\nexports.Files = Files;\nclass VectorStoreFilesPage extends pagination_1.CursorPage {\n}\nexports.VectorStoreFilesPage = VectorStoreFilesPage;\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass FileContentResponsesPage extends pagination_1.Page {\n}\nexports.FileContentResponsesPage = FileContentResponsesPage;\nFiles.VectorStoreFilesPage = VectorStoreFilesPage;\nFiles.FileContentResponsesPage = FileContentResponsesPage;\n//# sourceMappingURL=files.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sessions = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nclass Sessions extends resource_1.APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Sessions = Sessions;\n//# sourceMappingURL=sessions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorStores = exports.VectorStoreSearchResponsesPage = exports.VectorStoresPage = exports.Uploads = exports.Responses = exports.Moderations = exports.Models = exports.ModelsPage = exports.Images = exports.FineTuning = exports.Files = exports.FileObjectsPage = exports.Embeddings = exports.Completions = exports.Beta = exports.Batches = exports.BatchesPage = exports.Audio = void 0;\n__exportStar(require(\"./chat/index.js\"), exports);\n__exportStar(require(\"./shared.js\"), exports);\nvar audio_1 = require(\"./audio/audio.js\");\nObject.defineProperty(exports, \"Audio\", { enumerable: true, get: function () { return audio_1.Audio; } });\nvar batches_1 = require(\"./batches.js\");\nObject.defineProperty(exports, \"BatchesPage\", { enumerable: true, get: function () { return batches_1.BatchesPage; } });\nObject.defineProperty(exports, \"Batches\", { enumerable: true, get: function () { return batches_1.Batches; } });\nvar beta_1 = require(\"./beta/beta.js\");\nObject.defineProperty(exports, \"Beta\", { enumerable: true, get: function () { return beta_1.Beta; } });\nvar completions_1 = require(\"./completions.js\");\nObject.defineProperty(exports, \"Completions\", { enumerable: true, get: function () { return completions_1.Completions; } });\nvar embeddings_1 = require(\"./embeddings.js\");\nObject.defineProperty(exports, \"Embeddings\", { enumerable: true, get: function () { return embeddings_1.Embeddings; } });\nvar files_1 = require(\"./files.js\");\nObject.defineProperty(exports, \"FileObjectsPage\", { enumerable: true, get: function () { return files_1.FileObjectsPage; } });\nObject.defineProperty(exports, \"Files\", { enumerable: true, get: function () { return files_1.Files; } });\nvar fine_tuning_1 = require(\"./fine-tuning/fine-tuning.js\");\nObject.defineProperty(exports, \"FineTuning\", { enumerable: true, get: function () { return fine_tuning_1.FineTuning; } });\nvar images_1 = require(\"./images.js\");\nObject.defineProperty(exports, \"Images\", { enumerable: true, get: function () { return images_1.Images; } });\nvar models_1 = require(\"./models.js\");\nObject.defineProperty(exports, \"ModelsPage\", { enumerable: true, get: function () { return models_1.ModelsPage; } });\nObject.defineProperty(exports, \"Models\", { enumerable: true, get: function () { return models_1.Models; } });\nvar moderations_1 = require(\"./moderations.js\");\nObject.defineProperty(exports, \"Moderations\", { enumerable: true, get: function () { return moderations_1.Moderations; } });\nvar responses_1 = require(\"./responses/responses.js\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\nvar uploads_1 = require(\"./uploads/uploads.js\");\nObject.defineProperty(exports, \"Uploads\", { enumerable: true, get: function () { return uploads_1.Uploads; } });\nvar vector_stores_1 = require(\"./vector-stores/vector-stores.js\");\nObject.defineProperty(exports, \"VectorStoresPage\", { enumerable: true, get: function () { return vector_stores_1.VectorStoresPage; } });\nObject.defineProperty(exports, \"VectorStoreSearchResponsesPage\", { enumerable: true, get: function () { return vector_stores_1.VectorStoreSearchResponsesPage; } });\nObject.defineProperty(exports, \"VectorStores\", { enumerable: true, get: function () { return vector_stores_1.VectorStores; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FineTuningJobCheckpointsPage = exports.Checkpoints = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Checkpoints extends resource_1.APIResource {\n list(fineTuningJobId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(fineTuningJobId, {}, query);\n }\n return this._client.getAPIList(`/fine_tuning/jobs/${fineTuningJobId}/checkpoints`, FineTuningJobCheckpointsPage, { query, ...options });\n }\n}\nexports.Checkpoints = Checkpoints;\nclass FineTuningJobCheckpointsPage extends pagination_1.CursorPage {\n}\nexports.FineTuningJobCheckpointsPage = FineTuningJobCheckpointsPage;\nCheckpoints.FineTuningJobCheckpointsPage = FineTuningJobCheckpointsPage;\n//# sourceMappingURL=checkpoints.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = exports.isMultipartBody = exports.toFile = exports.isUploadable = exports.isBlobLike = exports.isFileLike = exports.isResponseLike = exports.fileFromPath = void 0;\nconst index_1 = require(\"./_shims/index.js\");\nvar index_2 = require(\"./_shims/index.js\");\nObject.defineProperty(exports, \"fileFromPath\", { enumerable: true, get: function () { return index_2.fileFromPath; } });\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\nexports.isResponseLike = isResponseLike;\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n (0, exports.isBlobLike)(value);\nexports.isFileLike = isFileLike;\n/**\n * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check\n * adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\nexports.isBlobLike = isBlobLike;\nconst isUploadable = (value) => {\n return (0, exports.isFileLike)(value) || (0, exports.isResponseLike)(value) || (0, index_1.isFsReadStream)(value);\n};\nexports.isUploadable = isUploadable;\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nasync function toFile(value, name, options) {\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if ((0, exports.isFileLike)(value)) {\n return value;\n }\n if ((0, exports.isResponseLike)(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop() ?? 'unknown_file');\n // we need to convert the `Blob` into an array buffer because the `Blob` class\n // that `node-fetch` defines is incompatible with the web standard which results\n // in `new File` interpreting it as a string instead of binary data.\n const data = (0, exports.isBlobLike)(blob) ? [(await blob.arrayBuffer())] : [blob];\n return new index_1.File(data, name, options);\n }\n const bits = await getBytes(value);\n name || (name = getName(value) ?? 'unknown_file');\n if (!options?.type) {\n const type = bits[0]?.type;\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return new index_1.File(bits, name, options);\n}\nexports.toFile = toFile;\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if ((0, exports.isBlobLike)(value)) {\n parts.push(await value.arrayBuffer());\n }\n else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(chunk); // TODO, consider validating?\n }\n }\n else {\n throw new Error(`Unexpected data type: ${typeof value}; constructor: ${value?.constructor\n ?.name}; props: ${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n const props = Object.getOwnPropertyNames(value);\n return `[${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\nfunction getName(value) {\n return (getStringFromMaybeBuffer(value.name) ||\n getStringFromMaybeBuffer(value.filename) ||\n // For fs.ReadStream\n getStringFromMaybeBuffer(value.path)?.split(/[\\\\/]/).pop());\n}\nconst getStringFromMaybeBuffer = (x) => {\n if (typeof x === 'string')\n return x;\n if (typeof Buffer !== 'undefined' && x instanceof Buffer)\n return String(x);\n return undefined;\n};\nconst isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\nconst isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';\nexports.isMultipartBody = isMultipartBody;\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nconst maybeMultipartFormRequestOptions = async (opts) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n const form = await (0, exports.createForm)(opts.body);\n return (0, index_1.getMultipartRequestOptions)(form, opts);\n};\nexports.maybeMultipartFormRequestOptions = maybeMultipartFormRequestOptions;\nconst multipartFormRequestOptions = async (opts) => {\n const form = await (0, exports.createForm)(opts.body);\n return (0, index_1.getMultipartRequestOptions)(form, opts);\n};\nexports.multipartFormRequestOptions = multipartFormRequestOptions;\nconst createForm = async (body) => {\n const form = new index_1.FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\nexports.createForm = createForm;\nconst hasUploadableValue = (value) => {\n if ((0, exports.isUploadable)(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if ((0, exports.isUploadable)(value)) {\n const file = await toFile(value);\n form.append(key, file);\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorStoreSearchResponsesPage = exports.VectorStoresPage = exports.VectorStores = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst FileBatchesAPI = __importStar(require(\"./file-batches.js\"));\nconst file_batches_1 = require(\"./file-batches.js\");\nconst FilesAPI = __importStar(require(\"./files.js\"));\nconst files_1 = require(\"./files.js\");\nconst pagination_1 = require(\"../../pagination.js\");\nclass VectorStores extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreId, options) {\n return this._client.get(`/vector_stores/${vectorStoreId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreId, body, options) {\n return this._client.post(`/vector_stores/${vectorStoreId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/vector_stores', VectorStoresPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Delete a vector store.\n */\n del(vectorStoreId, options) {\n return this._client.delete(`/vector_stores/${vectorStoreId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreId, body, options) {\n return this._client.getAPIList(`/vector_stores/${vectorStoreId}/search`, VectorStoreSearchResponsesPage, {\n body,\n method: 'post',\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.VectorStores = VectorStores;\nclass VectorStoresPage extends pagination_1.CursorPage {\n}\nexports.VectorStoresPage = VectorStoresPage;\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass VectorStoreSearchResponsesPage extends pagination_1.Page {\n}\nexports.VectorStoreSearchResponsesPage = VectorStoreSearchResponsesPage;\nVectorStores.VectorStoresPage = VectorStoresPage;\nVectorStores.VectorStoreSearchResponsesPage = VectorStoreSearchResponsesPage;\nVectorStores.Files = files_1.Files;\nVectorStores.VectorStoreFilesPage = files_1.VectorStoreFilesPage;\nVectorStores.FileContentResponsesPage = files_1.FileContentResponsesPage;\nVectorStores.FileBatches = file_batches_1.FileBatches;\n//# sourceMappingURL=vector-stores.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultipartBody = void 0;\n/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nclass MultipartBody {\n constructor(body) {\n this.body = body;\n }\n get [Symbol.toStringTag]() {\n return 'MultipartBody';\n }\n}\nexports.MultipartBody = MultipartBody;\n//# sourceMappingURL=MultipartBody.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionRunner = void 0;\nconst AbstractChatCompletionRunner_1 = require(\"./AbstractChatCompletionRunner.js\");\nconst chatCompletionUtils_1 = require(\"./chatCompletionUtils.js\");\nclass ChatCompletionRunner extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {\n /** @deprecated - please use `runTools` instead. */\n static runFunctions(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },\n };\n runner._run(() => runner._runFunctions(client, params, opts));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n _addMessage(message, emit = true) {\n super._addMessage(message, emit);\n if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.content) {\n this._emit('content', message.content);\n }\n }\n}\nexports.ChatCompletionRunner = ChatCompletionRunner;\n//# sourceMappingURL=ChatCompletionRunner.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingToolFunction = exports.ParsingFunction = exports.isRunnableFunctionWithParse = void 0;\nfunction isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\nexports.isRunnableFunctionWithParse = isRunnableFunctionWithParse;\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n *\n * @deprecated - please use ParsingToolFunction instead.\n */\nclass ParsingFunction {\n constructor(input) {\n this.function = input.function;\n this.parse = input.parse;\n this.parameters = input.parameters;\n this.description = input.description;\n this.name = input.name;\n }\n}\nexports.ParsingFunction = ParsingFunction;\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nclass ParsingToolFunction {\n constructor(input) {\n this.type = 'function';\n this.function = input;\n }\n}\nexports.ParsingToolFunction = ParsingToolFunction;\n//# sourceMappingURL=RunnableFunction.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Moderations = void 0;\nconst resource_1 = require(\"../resource.js\");\nclass Moderations extends resource_1.APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the [moderation guide](https://platform.openai.com/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options });\n }\n}\nexports.Moderations = Moderations;\n//# sourceMappingURL=moderations.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Speech = void 0;\nconst resource_1 = require(\"../../resource.js\");\nclass Speech extends resource_1.APIResource {\n /**\n * Generates audio from the input text.\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: { Accept: 'application/octet-stream', ...options?.headers },\n __binaryResponse: true,\n });\n }\n}\nexports.Speech = Speech;\n//# sourceMappingURL=speech.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_endRequest, _ChatCompletionStream_getAutoParseableResponseFormat, _ChatCompletionStream_accumulateChatCompletion;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStream = void 0;\nconst error_1 = require(\"../error.js\");\nconst AbstractChatCompletionRunner_1 = require(\"./AbstractChatCompletionRunner.js\");\nconst streaming_1 = require(\"../streaming.js\");\nconst parser_1 = require(\"../lib/parser.js\");\nconst parser_2 = require(\"../_vendor/partial-json-parser/parser.js\");\nclass ChatCompletionStream extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n }\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createChatCompletion(client, params, options) {\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));\n return runner;\n }\n async _createChatCompletion(client, params, options) {\n super._createChatCompletion;\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const stream = await client.chat.completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const chunk of stream) {\n if (chatId && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n chatId = chunk.id;\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended)\n return;\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const choiceSnapshot = completion.choices[choice.index];\n if (choice.delta.content != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.content) {\n this._emit('content', choice.delta.content, choiceSnapshot.message.content);\n this._emit('content.delta', {\n delta: choice.delta.content,\n snapshot: choiceSnapshot.message.content,\n parsed: choiceSnapshot.message.parsed,\n });\n }\n if (choice.delta.refusal != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.refusal) {\n this._emit('refusal.delta', {\n delta: choice.delta.refusal,\n snapshot: choiceSnapshot.message.refusal,\n });\n }\n if (choice.logprobs?.content != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of choice.delta.tool_calls ?? []) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of choice.delta.tool_calls ?? []) {\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot?.type === 'function') {\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function?.name,\n index: toolCallDelta.index,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.function?.arguments ?? '',\n });\n }\n else {\n assertNever(toolCallSnapshot?.type);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => tool.type === 'function' && tool.function.name === toolCallSnapshot.function.name);\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: (0, parser_1.isAutoParsableTool)(inputTool) ? inputTool.$parseRaw(toolCallSnapshot.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCallSnapshot.function.arguments)\n : null,\n });\n }\n else {\n assertNever(toolCallSnapshot.type);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.message.content && !state.content_done) {\n state.content_done = true;\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this);\n this._emit('content.done', {\n content: choiceSnapshot.message.content,\n parsed: responseFormat ? responseFormat.$parseRaw(choiceSnapshot.message.content) : null,\n });\n }\n if (choiceSnapshot.message.refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal: choiceSnapshot.message.refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new error_1.OpenAIError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"));\n }, _ChatCompletionStream_getAutoParseableResponseFormat = function _ChatCompletionStream_getAutoParseableResponseFormat() {\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format;\n if ((0, parser_1.isAutoParsableResponseFormat)(responseFormat)) {\n return responseFormat;\n }\n return null;\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {\n var _a, _b, _c, _d;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, ...rest } = chunk;\n if (!snapshot) {\n snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {\n ...rest,\n choices: [],\n }, \"f\");\n }\n else {\n Object.assign(snapshot, rest);\n }\n for (const { delta, finish_reason, index, logprobs = null, ...other } of chunk.choices) {\n let choice = snapshot.choices[index];\n if (!choice) {\n choice = snapshot.choices[index] = { finish_reason, index, message: {}, logprobs, ...other };\n }\n if (logprobs) {\n if (!choice.logprobs) {\n choice.logprobs = Object.assign({}, logprobs);\n }\n else {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n Object.assign(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && (0, parser_1.hasAutoParseableInput)(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"))) {\n if (finish_reason === 'length') {\n throw new error_1.LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new error_1.ContentFilterFinishReasonError();\n }\n }\n }\n Object.assign(choice, other);\n if (!delta)\n continue; // Shouldn't happen; just in case.\n const { content, refusal, function_call, role, tool_calls, ...rest } = delta;\n assertIsEmpty(rest);\n Object.assign(choice.message, rest);\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role)\n choice.message.role = role;\n if (function_call) {\n if (!choice.message.function_call) {\n choice.message.function_call = function_call;\n }\n else {\n if (function_call.name)\n choice.message.function_call.name = function_call.name;\n if (function_call.arguments) {\n (_c = choice.message.function_call).arguments ?? (_c.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n }\n if (content) {\n choice.message.content = (choice.message.content || '') + content;\n if (!choice.message.refusal && __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this)) {\n choice.message.parsed = (0, parser_2.partialParse)(choice.message.content);\n }\n }\n if (tool_calls) {\n if (!choice.message.tool_calls)\n choice.message.tool_calls = [];\n for (const { index, id, type, function: fn, ...rest } of tool_calls) {\n const tool_call = ((_d = choice.message.tool_calls)[index] ?? (_d[index] = {}));\n Object.assign(tool_call, rest);\n if (id)\n tool_call.id = id;\n if (type)\n tool_call.type = type;\n if (fn)\n tool_call.function ?? (tool_call.function = { name: fn.name ?? '', arguments: '' });\n if (fn?.name)\n tool_call.function.name = fn.name;\n if (fn?.arguments) {\n tool_call.function.arguments += fn.arguments;\n if ((0, parser_1.shouldParseToolCall)(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), tool_call)) {\n tool_call.function.parsed_arguments = (0, parser_2.partialParse)(tool_call.function.arguments);\n }\n }\n }\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('chunk', (chunk) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(chunk);\n }\n else {\n pushQueue.push(chunk);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nexports.ChatCompletionStream = ChatCompletionStream;\nfunction finalizeChatCompletion(snapshot, params) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: choices.map(({ message, finish_reason, index, logprobs, ...choiceRest }) => {\n if (!finish_reason) {\n throw new error_1.OpenAIError(`missing finish_reason for choice ${index}`);\n }\n const { content = null, function_call, tool_calls, ...messageRest } = message;\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new error_1.OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new error_1.OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new error_1.OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason,\n logprobs,\n message: {\n ...messageRest,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: tool_calls.map((tool_call, i) => {\n const { function: fn, type, id, ...toolRest } = tool_call;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (id == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].id\\n${str(snapshot)}`);\n }\n if (type == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].type\\n${str(snapshot)}`);\n }\n if (name == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\\n${str(snapshot)}`);\n }\n if (args == null) {\n throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\\n${str(snapshot)}`);\n }\n return { ...toolRest, id, type, function: { ...fnRest, name, arguments: args } };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, content, role, refusal: message.refusal ?? null },\n finish_reason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return (0, parser_1.maybeParseChatCompletion)(completion, params);\n}\nfunction str(x) {\n return JSON.stringify(x);\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n return;\n}\nfunction assertNever(_x) { }\n//# sourceMappingURL=ChatCompletionStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RFC3986 = exports.RFC1738 = exports.formatters = exports.default_format = void 0;\nexports.default_format = 'RFC3986';\nexports.formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: (v) => String(v),\n};\nexports.RFC1738 = 'RFC1738';\nexports.RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\nexports.VERSION = '4.87.4'; // x-release-please-version\n//# sourceMappingURL=version.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=shared.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseItemsPage = exports.InputItems = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst core_1 = require(\"../../core.js\");\nconst responses_1 = require(\"./responses.js\");\nObject.defineProperty(exports, \"ResponseItemsPage\", { enumerable: true, get: function () { return responses_1.ResponseItemsPage; } });\nclass InputItems extends resource_1.APIResource {\n list(responseId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(responseId, {}, query);\n }\n return this._client.getAPIList(`/responses/${responseId}/input_items`, responses_1.ResponseItemsPage, {\n query,\n ...options,\n });\n }\n}\nexports.InputItems = InputItems;\n//# sourceMappingURL=input-items.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MessagesPage = exports.Messages = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst pagination_1 = require(\"../../../pagination.js\");\nclass Messages extends resource_1.APIResource {\n /**\n * Create a message.\n */\n create(threadId, body, options) {\n return this._client.post(`/threads/${threadId}/messages`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Retrieve a message.\n */\n retrieve(threadId, messageId, options) {\n return this._client.get(`/threads/${threadId}/messages/${messageId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Modifies a message.\n */\n update(threadId, messageId, body, options) {\n return this._client.post(`/threads/${threadId}/messages/${messageId}`, {\n body,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(threadId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(threadId, {}, query);\n }\n return this._client.getAPIList(`/threads/${threadId}/messages`, MessagesPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n /**\n * Deletes a message.\n */\n del(threadId, messageId, options) {\n return this._client.delete(`/threads/${threadId}/messages/${messageId}`, {\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Messages = Messages;\nclass MessagesPage extends pagination_1.CursorPage {\n}\nexports.MessagesPage = MessagesPage;\nMessages.MessagesPage = MessagesPage;\n//# sourceMappingURL=messages.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chat = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst CompletionsAPI = __importStar(require(\"./completions/completions.js\"));\nconst completions_1 = require(\"./completions/completions.js\");\nclass Chat extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nexports.Chat = Chat;\nChat.Completions = completions_1.Completions;\nChat.ChatCompletionsPage = completions_1.ChatCompletionsPage;\n//# sourceMappingURL=chat.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Beta = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst AssistantsAPI = __importStar(require(\"./assistants.js\"));\nconst ChatAPI = __importStar(require(\"./chat/chat.js\"));\nconst assistants_1 = require(\"./assistants.js\");\nconst RealtimeAPI = __importStar(require(\"./realtime/realtime.js\"));\nconst realtime_1 = require(\"./realtime/realtime.js\");\nconst ThreadsAPI = __importStar(require(\"./threads/threads.js\"));\nconst threads_1 = require(\"./threads/threads.js\");\nconst chat_1 = require(\"./chat/chat.js\");\nclass Beta extends resource_1.APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.chat = new ChatAPI.Chat(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nexports.Beta = Beta;\nBeta.Realtime = realtime_1.Realtime;\nBeta.Assistants = assistants_1.Assistants;\nBeta.AssistantsPage = assistants_1.AssistantsPage;\nBeta.Threads = threads_1.Threads;\n//# sourceMappingURL=beta.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPresent = exports.isToolMessage = exports.isFunctionMessage = exports.isAssistantMessage = void 0;\nconst isAssistantMessage = (message) => {\n return message?.role === 'assistant';\n};\nexports.isAssistantMessage = isAssistantMessage;\nconst isFunctionMessage = (message) => {\n return message?.role === 'function';\n};\nexports.isFunctionMessage = isFunctionMessage;\nconst isToolMessage = (message) => {\n return message?.role === 'tool';\n};\nexports.isToolMessage = isToolMessage;\nfunction isPresent(obj) {\n return obj != null;\n}\nexports.isPresent = isPresent;\n//# sourceMappingURL=chatCompletionUtils.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest, _ResponseStream_accumulateResponse;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseStream = void 0;\nconst error_1 = require(\"../../error.js\");\nconst EventStream_1 = require(\"../EventStream.js\");\nconst ResponsesParser_1 = require(\"../ResponsesParser.js\");\nclass ResponseStream extends EventStream_1.EventStream {\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n static createResponse(client, params, options) {\n const runner = new ResponseStream(params);\n runner._run(() => runner._createResponse(client, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createResponse(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n const stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event) {\n if (this.ended)\n return;\n const response = __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_accumulateResponse).call(this, event);\n this._emit('event', event);\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new error_1.OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new error_1.OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n this._emit('response.output_text.delta', {\n ...event,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n this._emit('response.function_call_arguments.delta', {\n ...event,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default:\n // @ts-ignore\n this._emit(event.type, event);\n break;\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new error_1.OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, _ResponseStream_accumulateResponse = function _ResponseStream_accumulateResponse(event) {\n let snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n if (event.type !== 'response.created') {\n throw new error_1.OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);\n }\n snapshot = __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n return snapshot;\n }\n switch (event.type) {\n case 'response.output_item.added': {\n snapshot.output.push(event.item);\n break;\n }\n case 'response.content_part.added': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n output.content.push(event.part);\n }\n break;\n }\n case 'response.output_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new error_1.OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new error_1.OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new error_1.OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n break;\n }\n case 'response.completed': {\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n break;\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((event) => (event ? { value: event, done: false } : { value: undefined, done: true }));\n }\n const event = pushQueue.shift();\n return { value: event, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * @returns a promise that resolves with the final Response, or rejects\n * if an error occurred or the stream ended prematurely without producing a REsponse.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response)\n throw new error_1.OpenAIError('stream ended without producing a ChatCompletion');\n return response;\n }\n}\nexports.ResponseStream = ResponseStream;\nfunction finalizeResponse(snapshot, params) {\n return (0, ResponsesParser_1.maybeParseResponse)(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableStreamToAsyncIterable = void 0;\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nfunction ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\nexports.ReadableStreamToAsyncIterable = ReadableStreamToAsyncIterable;\n//# sourceMappingURL=stream-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._iterSSEMessages = exports.Stream = void 0;\nconst index_1 = require(\"./_shims/index.js\");\nconst error_1 = require(\"./error.js\");\nconst line_1 = require(\"./internal/decoders/line.js\");\nconst stream_utils_1 = require(\"./internal/stream-utils.js\");\nconst error_2 = require(\"./error.js\");\nclass Stream {\n constructor(iterator, controller) {\n this.iterator = iterator;\n this.controller = controller;\n }\n static fromSSEResponse(response, controller) {\n let consumed = false;\n async function* iterator() {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const sse of _iterSSEMessages(response, controller)) {\n if (done)\n continue;\n if (sse.data.startsWith('[DONE]')) {\n done = true;\n continue;\n }\n if (sse.event === null || sse.event.startsWith('response.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n if (data && data.error) {\n throw new error_2.APIError(undefined, data.error, undefined, undefined);\n }\n yield data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n // TODO: Is this where the error should be thrown?\n if (sse.event == 'error') {\n throw new error_2.APIError(undefined, data.error, data.message, undefined);\n }\n yield { event: sse.event, data: data };\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError')\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new line_1.LineDecoder();\n const iter = (0, stream_utils_1.ReadableStreamToAsyncIterable)(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError')\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller);\n }\n [Symbol.asyncIterator]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller),\n new Stream(() => teeIterator(right), this.controller),\n ];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n */\n toReadableStream() {\n const self = this;\n let iter;\n const encoder = new TextEncoder();\n return new index_1.ReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encoder.encode(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexports.Stream = Stream;\nasync function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n throw new error_1.OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new line_1.LineDecoder();\n const iter = (0, stream_utils_1.ReadableStreamToAsyncIterable)(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\nexports._iterSSEMessages = _iterSSEMessages;\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? new TextEncoder().encode(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n let patternIndex;\n while ((patternIndex = (0, line_1.findDoubleNewlineIndex)(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length)\n return null;\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Images = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst Core = __importStar(require(\"../core.js\"));\nclass Images extends resource_1.APIResource {\n /**\n * Creates a variation of a given image.\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', Core.multipartFormRequestOptions({ body, ...options }));\n }\n /**\n * Creates an edited or extended image given an original image and a prompt.\n */\n edit(body, options) {\n return this._client.post('/images/edits', Core.multipartFormRequestOptions({ body, ...options }));\n }\n /**\n * Creates an image given a prompt.\n */\n generate(body, options) {\n return this._client.post('/images/generations', { body, ...options });\n }\n}\nexports.Images = Images;\n//# sourceMappingURL=images.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Translations = void 0;\nconst resource_1 = require(\"../../resource.js\");\nconst Core = __importStar(require(\"../../core.js\"));\nclass Translations extends resource_1.APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', Core.multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }));\n }\n}\nexports.Translations = Translations;\n//# sourceMappingURL=translations.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStreamingRunner = void 0;\nconst ChatCompletionStream_1 = require(\"./ChatCompletionStream.js\");\nclass ChatCompletionStreamingRunner extends ChatCompletionStream_1.ChatCompletionStream {\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n /** @deprecated - please use `runTools` instead. */\n static runFunctions(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(null);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },\n };\n runner._run(() => runner._runFunctions(client, params, opts));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n}\nexports.ChatCompletionStreamingRunner = ChatCompletionStreamingRunner;\n//# sourceMappingURL=ChatCompletionStreamingRunner.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RunStepsPage = exports.Steps = void 0;\nconst resource_1 = require(\"../../../../resource.js\");\nconst core_1 = require(\"../../../../core.js\");\nconst pagination_1 = require(\"../../../../pagination.js\");\nclass Steps extends resource_1.APIResource {\n retrieve(threadId, runId, stepId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.retrieve(threadId, runId, stepId, {}, query);\n }\n return this._client.get(`/threads/${threadId}/runs/${runId}/steps/${stepId}`, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n list(threadId, runId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(threadId, runId, {}, query);\n }\n return this._client.getAPIList(`/threads/${threadId}/runs/${runId}/steps`, RunStepsPage, {\n query,\n ...options,\n headers: { 'OpenAI-Beta': 'assistants=v2', ...options?.headers },\n });\n }\n}\nexports.Steps = Steps;\nclass RunStepsPage extends pagination_1.CursorPage {\n}\nexports.RunStepsPage = RunStepsPage;\nSteps.RunStepsPage = RunStepsPage;\n//# sourceMappingURL=steps.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addOutputText = exports.validateInputTools = exports.shouldParseToolCall = exports.isAutoParsableTool = exports.makeParseableResponseTool = exports.hasAutoParseableInput = exports.parseResponse = exports.maybeParseResponse = void 0;\nconst error_1 = require(\"../error.js\");\nconst parser_1 = require(\"../lib/parser.js\");\nfunction maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n else {\n return item;\n }\n }),\n };\n }\n return parseResponse(response, params);\n}\nexports.maybeParseResponse = maybeParseResponse;\nfunction parseResponse(response, params) {\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: parseToolCall(params, item),\n };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: parseTextFormat(params, content.text),\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = Object.assign({}, response, { output });\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n return parsed;\n}\nexports.parseResponse = parseResponse;\nfunction parseTextFormat(params, content) {\n if (params.text?.format?.type !== 'json_schema') {\n return null;\n }\n if ('$parseRaw' in params.text?.format) {\n const text_format = params.text?.format;\n return text_format.$parseRaw(content);\n }\n return JSON.parse(content);\n}\nfunction hasAutoParseableInput(params) {\n if ((0, parser_1.isAutoParsableResponseFormat)(params.text?.format)) {\n return true;\n }\n return false;\n}\nexports.hasAutoParseableInput = hasAutoParseableInput;\nfunction makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexports.makeParseableResponseTool = makeParseableResponseTool;\nfunction isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexports.isAutoParsableTool = isAutoParsableTool;\nfunction getInputToolByName(input_tools, name) {\n return input_tools.find((tool) => tool.type === 'function' && tool.name === name);\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return {\n ...toolCall,\n ...toolCall,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.arguments)\n : inputTool?.strict ? JSON.parse(toolCall.arguments)\n : null,\n };\n}\nfunction shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\nexports.shouldParseToolCall = shouldParseToolCall;\nfunction validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new error_1.OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new error_1.OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexports.validateInputTools = validateInputTools;\nfunction addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\nexports.addOutputText = addOutputText;\n//# sourceMappingURL=ResponsesParser.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completions = exports.ChatCompletionsPage = exports.ChatCompletionStoreMessagesPage = exports.Chat = void 0;\nvar chat_1 = require(\"./chat.js\");\nObject.defineProperty(exports, \"Chat\", { enumerable: true, get: function () { return chat_1.Chat; } });\nvar index_1 = require(\"./completions/index.js\");\nObject.defineProperty(exports, \"ChatCompletionStoreMessagesPage\", { enumerable: true, get: function () { return index_1.ChatCompletionStoreMessagesPage; } });\nObject.defineProperty(exports, \"ChatCompletionsPage\", { enumerable: true, get: function () { return index_1.ChatCompletionsPage; } });\nObject.defineProperty(exports, \"Completions\", { enumerable: true, get: function () { return index_1.Completions; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completions = exports.ChatCompletionRunner = exports.ChatCompletionStream = exports.ParsingToolFunction = exports.ParsingFunction = exports.ChatCompletionStreamingRunner = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst ChatCompletionRunner_1 = require(\"../../../lib/ChatCompletionRunner.js\");\nconst ChatCompletionStreamingRunner_1 = require(\"../../../lib/ChatCompletionStreamingRunner.js\");\nconst ChatCompletionStream_1 = require(\"../../../lib/ChatCompletionStream.js\");\nconst parser_1 = require(\"../../../lib/parser.js\");\nvar ChatCompletionStreamingRunner_2 = require(\"../../../lib/ChatCompletionStreamingRunner.js\");\nObject.defineProperty(exports, \"ChatCompletionStreamingRunner\", { enumerable: true, get: function () { return ChatCompletionStreamingRunner_2.ChatCompletionStreamingRunner; } });\nvar RunnableFunction_1 = require(\"../../../lib/RunnableFunction.js\");\nObject.defineProperty(exports, \"ParsingFunction\", { enumerable: true, get: function () { return RunnableFunction_1.ParsingFunction; } });\nObject.defineProperty(exports, \"ParsingToolFunction\", { enumerable: true, get: function () { return RunnableFunction_1.ParsingToolFunction; } });\nvar ChatCompletionStream_2 = require(\"../../../lib/ChatCompletionStream.js\");\nObject.defineProperty(exports, \"ChatCompletionStream\", { enumerable: true, get: function () { return ChatCompletionStream_2.ChatCompletionStream; } });\nvar ChatCompletionRunner_2 = require(\"../../../lib/ChatCompletionRunner.js\");\nObject.defineProperty(exports, \"ChatCompletionRunner\", { enumerable: true, get: function () { return ChatCompletionRunner_2.ChatCompletionRunner; } });\nclass Completions extends resource_1.APIResource {\n parse(body, options) {\n (0, parser_1.validateInputTools)(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n headers: {\n ...options?.headers,\n 'X-Stainless-Helper-Method': 'beta.chat.completions.parse',\n },\n })\n ._thenUnwrap((completion) => (0, parser_1.parseChatCompletion)(completion, body));\n }\n runFunctions(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runFunctions(this._client, body, options);\n }\n return ChatCompletionRunner_1.ChatCompletionRunner.runFunctions(this._client, body, options);\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner_1.ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream_1.ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexports.Completions = Completions;\n//# sourceMappingURL=completions.js.map","// Import React normally, but use a helper function to handle possible duplicates\nimport React from 'react';\nimport OpenAI from 'openai';\n\n// Define types for React hooks we need\ntype UseStateHook = typeof React.useState;\ntype UseEffectHook = typeof React.useEffect;\ntype UseRefHook = typeof React.useRef;\n\n// Get React hooks safely, avoiding duplicate React issues\nconst getReactHooks = () => {\n // Try to use the React instance from window if available (for react-scripts)\n if (typeof window !== 'undefined' && (window as any).React) {\n return {\n useState: (window as any).React.useState as UseStateHook,\n useEffect: (window as any).React.useEffect as UseEffectHook,\n useRef: (window as any).React.useRef as UseRefHook\n };\n }\n // Otherwise use the imported React\n return {\n useState: React.useState,\n useEffect: React.useEffect,\n useRef: React.useRef\n };\n};\n\ntype RecordingStatus = 'idle' | 'recording' | 'processing' | 'playing';\n\nconst geminiFlash = async (prompt: string) => {\n const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=AIzaSyBiFyzjYVupLyk8BdmfWzBL1GbzX8OUdPc`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n contents: [\n {\n parts: [\n {\n text: prompt\n }\n ]\n }\n ]\n })\n });\n const responseJson = await response.json();\n const content = responseJson.candidates[0].content;\n const responseText = content.parts[0].text;\n return responseText;\n}\n\nexport interface GuideAIProps {\n apiKey?: string;\n organizationKey: string;\n position?: {\n top?: string;\n right?: string;\n bottom?: string;\n left?: string;\n marginLeft?: string;\n };\n onError?: (error: string | Error, context?: string) => void;\n}\n\nconst DEFAULT_PROMPT = `you are Guide AI.\n Your role is to answer any question directly and succinctly that a user has. NEVER DIRECTLY MENTION THE SCREENSHOT, but use its information as much as possible to target your responses.\n If nothing is asked, then your goal is to generally assist them.\n IMPORTANT: NEVER answer in more than 10 words. Always be concise and limit answers to 1 sentence maximum. Be simple and as short as possible.\n Your job is to help them get it done through asking more and more targeted specific questions.`;\n\nconst GuideAI = (props: GuideAIProps) => { \n const {\n apiKey,\n organizationKey,\n position = { bottom: '2rem', right: '2rem' },\n onError = console.error,\n } = props;\n\n const [status, setStatus] = getReactHooks().useState<RecordingStatus>('idle');\n const [isClient, setIsClient] = getReactHooks().useState(false);\n const [componentPosition] = getReactHooks().useState(position);\n const [isHighlighting, setIsHighlighting] = getReactHooks().useState(false);\n const [hasInteracted, setHasInteracted] = getReactHooks().useState(false);\n const [prompt, setPrompt] = getReactHooks().useState<string | null>(null);\n const [isSessionReady, setIsSessionReady] = getReactHooks().useState(false);\n const [isConnecting, setIsConnecting] = getReactHooks().useState(false);\n const [showOnboarding, setShowOnboarding] = getReactHooks().useState(false);\n const [onboardingStep, setOnboardingStep] = getReactHooks().useState(1);\n const conversationIdRef = getReactHooks().useRef<string | null>(null);\n\n const componentRef = getReactHooks().useRef<HTMLDivElement>(null);\n const openaiClientRef = getReactHooks().useRef<OpenAI | null>(null);\n const peerConnectionRef = getReactHooks().useRef<RTCPeerConnection | null>(null);\n const dataChannelRef = getReactHooks().useRef<RTCDataChannel | null>(null);\n const hasCreatedConversationRef = getReactHooks().useRef(false);\n const mediaStreamRef = getReactHooks().useRef<MediaStream | null>(null);\n const audioElementRef = getReactHooks().useRef<HTMLAudioElement | null>(null);\n const [ephemeralToken, setEphemeralToken] = getReactHooks().useState<string | null>(null);\n const hasInitializedRef = getReactHooks().useRef(false);\n const [isConversationActive, setIsConversationActive] = getReactHooks().useState(false);\n\n const createNewConversation = async () => {\n if (hasCreatedConversationRef.current) return;\n hasCreatedConversationRef.current = true;\n \n try {\n const now = new Date();\n const response = await fetch('https://www.getguide.ai/api/conversations', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n id: crypto.randomUUID(),\n userId: 'anonymous',\n date: now.toISOString().split('T')[0],\n time: now.toTimeString().split(' ')[0],\n messages: [],\n organization: organizationKey\n })\n });\n const conversation = await response.json();\n console.log('Conversation created:', conversation);\n conversationIdRef.current = conversation.id;\n } catch (error) {\n console.error('Error creating conversation:', error);\n onError(error as Error, 'Creating conversation');\n }\n };\n\n const logMessage = async (content: string, sender: 'GUIDEAI' | 'HUMAN') => {\n if (!conversationIdRef.current) return;\n try {\n const response = await fetch(`https://www.getguide.ai/api/conversations/${conversationIdRef.current}/messages`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ content, sender })\n });\n \n if (!response.ok) {\n throw new Error(`Failed to log message: ${response.status} ${response.statusText}`);\n }\n } catch (error) {\n console.error('Error logging message:', error);\n onError(error as Error, 'Logging message');\n }\n };\n\n const fetchEphemeralToken = async (): Promise<string | null> => {\n try {\n let promptToUse = DEFAULT_PROMPT;\n \n if (organizationKey) {\n try {\n const promptResponse = await fetch(`https://www.getguide.ai/api/prompts/${organizationKey}`);\n if (promptResponse.ok) {\n const promptData = await promptResponse.json();\n promptToUse = promptData.prompt || DEFAULT_PROMPT;\n } else if (promptResponse.status !== 404) {\n console.error(`Failed to fetch prompt: ${promptResponse.statusText}`);\n }\n } catch (promptError) {\n console.error('Error fetching prompt:', promptError);\n }\n }\n \n setPrompt(promptToUse);\n \n const tokenEndpoint = 'https://www.getguide.ai/api/realtime';\n \n const response = await fetch(tokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n prompt: promptToUse,\n })\n });\n \n if (!response.ok) {\n const errorText = await response.text().catch(() => 'No error details available');\n console.error(`Token fetch failed with status ${response.status}:`, errorText);\n throw new Error(`Failed to fetch token: ${response.status} - ${errorText}`);\n }\n \n const data = await response.json();\n \n // Check token structure\n if (!data.client_secret || !data.client_secret.value) {\n console.error('Invalid token structure received:', JSON.stringify(data));\n throw new Error('Invalid token structure received from server');\n }\n \n setEphemeralToken(data.client_secret.value);\n return data.client_secret.value;\n } catch (error) {\n console.error('Error fetching ephemeral token:', error);\n onError(error as Error, 'Fetching ephemeral token');\n return null;\n }\n };\n\n const sendMessage = (message: any) => {\n if (dataChannelRef.current?.readyState === 'open') {\n // console.log('sending message', message);\n dataChannelRef.current.send(JSON.stringify(message));\n } else {\n console.error('Data channel not open, cannot send message');\n setStatus('idle');\n }\n };\n \n const cleanupWebRTC = () => {\n if (mediaStreamRef.current) {\n // Stop tracks completely instead of just disabling them\n mediaStreamRef.current.getAudioTracks().forEach(track => {\n track.stop();\n });\n mediaStreamRef.current = null;\n }\n \n if (dataChannelRef.current) {\n dataChannelRef.current.close();\n dataChannelRef.current = null;\n }\n \n if (peerConnectionRef.current) {\n peerConnectionRef.current.close();\n peerConnectionRef.current = null;\n }\n \n if (audioElementRef.current) {\n audioElementRef.current.srcObject = null;\n }\n \n // Reset session ready state\n setIsSessionReady(false);\n };\n\n // initialization - mic/audio, webrtc, openai client\n getReactHooks().useEffect(() => {\n if (hasInitializedRef.current) return;\n hasInitializedRef.current = true;\n \n setIsClient(true);\n const hasInteractedBefore = localStorage.getItem('guideAI_hasInteracted');\n if (hasInteractedBefore) {\n setHasInteracted(true);\n } else {\n setHasInteracted(false);\n }\n\n createNewConversation();\n fetchEphemeralToken().then(token => {\n if (token) {\n setEphemeralToken(token);\n }\n });\n \n if (apiKey) {\n openaiClientRef.current = new OpenAI({\n apiKey,\n dangerouslyAllowBrowser: true,\n });\n }\n \n return () => {\n cleanupWebRTC();\n \n if (audioElementRef.current) {\n audioElementRef.current.srcObject = null;\n audioElementRef.current.remove();\n audioElementRef.current = null;\n }\n };\n }, [organizationKey, apiKey]);\n\n const clickElement = async (element: Element, rect: DOMRect): Promise<void> => {\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n const clickEffectContainer = document.createElement('div');\n clickEffectContainer.style.cssText = `\n position: fixed;\n left: ${rect.left + rect.width / 2}px;\n top: ${rect.top + rect.height / 2}px;\n width: 60px;\n height: 60px;\n z-index: 1000;\n pointer-events: none;\n transform: translate(-50%, -50%);\n `;\n document.body.appendChild(clickEffectContainer);\n \n for (let j = 0; j < 3; j++) {\n const clickRipple = document.createElement('div');\n clickRipple.style.cssText = `\n position: absolute;\n left: 50%;\n top: 50%;\n width: 40px;\n height: 40px;\n border: 2px solid rgba(0, 102, 255, ${0.7 - (j * 0.2)});\n border-radius: 50%;\n transform: translate(-50%, -50%) scale(0);\n opacity: 1;\n animation: click-ripple-animation 0.8s ease-out ${j * 0.15}s forwards;\n box-shadow: 0 0 8px rgba(0, 102, 255, 0.4);\n `;\n clickEffectContainer.appendChild(clickRipple);\n }\n \n const clickDot = document.createElement('div');\n clickDot.style.cssText = `\n position: absolute;\n left: 50%;\n top: 50%;\n width: 12px;\n height: 12px;\n background: rgba(0, 102, 255, 0.9);\n border-radius: 50%;\n transform: translate(-50%, -50%) scale(0);\n animation: click-dot-animation 0.4s ease-out forwards;\n box-shadow: 0 0 5px rgba(0, 102, 255, 0.8);\n `;\n clickEffectContainer.appendChild(clickDot);\n \n const clickEvent = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n\n // Check for clickable subelements (links, buttons, inputs)\n const clickableElements = element.querySelectorAll('a, button, input[type=\"button\"], input[type=\"submit\"]');\n const clickableElement = clickableElements.length > 0 ? clickableElements[0] as HTMLElement : element as HTMLElement;\n console.log('Clicking element:', clickableElement);\n clickableElement.dispatchEvent(clickEvent);\n\n const originalBoxShadow = clickableElement.style.boxShadow;\n const originalTransition = clickableElement.style.transition;\n const originalZIndex = clickableElement.style.zIndex;\n\n clickableElement.style.transition = 'all 0.3s ease-out';\n clickableElement.style.boxShadow = '0 0 0 2px rgba(0, 102, 255, 0.5), 0 0 10px rgba(0, 102, 255, 0.3)';\n clickableElement.style.zIndex = '999';\n\n setTimeout(() => {\n clickableElement.style.boxShadow = originalBoxShadow;\n clickableElement.style.transition = originalTransition;\n clickableElement.style.zIndex = originalZIndex;\n\n clickEffectContainer.remove(); \n resolve();\n }, 1000);\n\n }, 1500);\n });\n };\n\n const highlightElement = async (selector: string | string[]) => {\n if (isHighlighting) return false;\n \n const selectors = Array.isArray(selector) ? selector : [selector];\n if (selectors.length === 0) return false;\n \n console.log('Moving cursor to elements:', selectors);\n \n let cursorElement: HTMLElement | null = null;\n try {\n setIsHighlighting(true);\n \n for (let i = 0; i < selectors.length; i++) {\n const currentSelector = selectors[i];\n \n if (i > 0) {\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n \n let element;\n if (currentSelector.startsWith('//')) {\n const node = document.evaluate(currentSelector, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n if (!(node instanceof Element)) {\n console.log('XPath returned a non-Element node:', currentSelector);\n console.log(node);\n logMessage('XPath returned a non-Element node: ' + currentSelector, 'GUIDEAI');\n break;\n }\n element = node as Element;\n } else {\n element = document.querySelector(currentSelector);\n }\n \n if (!element) {\n console.log('Element not found:', currentSelector);\n logMessage('Element not found: ' + currentSelector, 'GUIDEAI');\n break;\n }\n \n const rect = element.getBoundingClientRect();\n \n // Create cursor if it's the first element, or reuse existing cursor\n if (!cursorElement) {\n cursorElement = document.createElement('div');\n cursorElement.id = 'guide-ai-cursor';\n \n const blueCursorSvg = `\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#0066ff\" d=\"M7,2l12,11.2l-5.8,0.5l3.3,7.3l-2.2,1l-3.2-7.4L7,18.5V2\" />\n </svg>\n `;\n \n cursorElement.innerHTML = blueCursorSvg;\n cursorElement.style.cssText = `\n position: fixed;\n width: 64px;\n height: 64px;\n pointer-events: none;\n z-index: 9999;\n transition: all 0.8s ease-in-out;\n transform: translate(-50%, 0);\n filter: drop-shadow(0 0 4px rgba(0, 102, 255, 0.8));\n `;\n \n document.body.appendChild(cursorElement);\n \n // First element starts from center of viewport\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n cursorElement.style.left = `${viewportWidth / 2}px`;\n cursorElement.style.top = `${viewportHeight / 2}px`;\n }\n \n // Force reflow to ensure transition works\n cursorElement!.offsetHeight;\n \n await new Promise<void>(resolve => {\n setTimeout(() => {\n cursorElement!.style.left = `${rect.left + rect.width / 2}px`;\n cursorElement!.style.top = `${rect.top + rect.height / 2 - 10}px`;\n \n setTimeout(() => {\n cursorElement!.style.animation = 'cursor-jiggle 0.5s ease-in-out infinite';\n resolve();\n }, 800);\n }, 100);\n });\n \n await clickElement(element, rect);\n }\n\n setTimeout(() => {\n cursorElement?.remove();\n setIsHighlighting(false);\n }, 1000);\n \n return true;\n } catch (error) {\n console.error('Error moving cursor:', error);\n cursorElement?.remove();\n setIsHighlighting(false);\n return false;\n }\n };\n\n const initializeWebRTC = async (audioStream: MediaStream, tokenParam?: string | null): Promise<boolean> => {\n try {\n const authToken = tokenParam || ephemeralToken || await fetchEphemeralToken();\n if (!authToken) {\n console.error('Cannot initialize WebRTC without a valid token');\n setIsConnecting(false);\n return false;\n }\n\n const pc = new RTCPeerConnection();\n peerConnectionRef.current = pc;\n \n audioStream.getAudioTracks().forEach(track => {\n pc.addTrack(track, audioStream);\n });\n \n if (!audioElementRef.current) {\n const audioEl = document.createElement('audio');\n audioEl.autoplay = true;\n document.body.appendChild(audioEl);\n audioElementRef.current = audioEl;\n }\n \n pc.ontrack = (e) => {\n if (audioElementRef.current && e.track.kind === 'audio') {\n const stream = new MediaStream([e.track]);\n audioElementRef.current.srcObject = stream;\n }\n };\n \n const dc = pc.createDataChannel('oai-events');\n dataChannelRef.current = dc;\n \n dc.onopen = () => { \n sendMessage({\n type: \"session.update\",\n session: {\n tools: [{\n type: \"function\",\n name: \"highlight\",\n description: \"Highlight specific elements on the page to guide the user's attention\",\n parameters: {\n type: \"object\",\n properties: {\n selector: {\n oneOf: [\n {\n type: \"string\",\n description: \"CSS selector or XPath for the element to highlight (e.g., '#search-bar')\"\n },\n {\n type: \"array\",\n items: {\n type: \"string\"\n },\n description: \"List of CSS selectors or XPaths to highlight in sequence (e.g., ['#first-button', '#second-button'])\"\n }\n ],\n description: \"CSS selector(s) or XPath(s) for the element(s) to highlight. Can be a single selector string or an array of selectors to process sequentially.\"\n }\n },\n required: [\"selector\"]\n }\n }],\n tool_choice: \"auto\",\n turn_detection: {\n type: \"server_vad\",\n create_response: true,\n interrupt_response: false\n },\n input_audio_transcription: {\n model: \"gpt-4o-mini-transcribe\",\n language: \"en\",\n prompt: \"The user may say 'cert' often, so make sure to listen for that.\"\n }\n }\n });\n };\n \n dc.onmessage = (e) => {\n try {\n const message = JSON.parse(e.data);\n const ignoreMessages = [\"delta\", \"rate_limits\", \"input_audio_buffer\",\n \"response.audio.done\", \"response.output_item\", \"response.content_part\", \"output_audio_buffer\",\n \"response.created\", \"session.created\"\n ];\n\n switch (message.type) { \n case 'session.updated':\n // console.log('session.updated', message);\n setIsSessionReady(true);\n setIsConnecting(false);\n break;\n\n case 'session.transcript':\n if (message.text) {\n logMessage(message.text, 'HUMAN');\n }\n break;\n \n case 'conversation.item.input_audio_transcription.completed':\n console.log('User transcript:', message.transcript);\n logMessage(message.transcript, 'HUMAN');\n break;\n\n case 'response.audio_transcript.done':\n console.log('Assistant message:', message.transcript);\n logMessage(message.transcript, 'GUIDEAI');\n break;\n \n case \"conversation.item.created\":\n // console.log('conversation.item.created', message);\n break;\n\n case \"input_audio_buffer.speech_started\":\n // console.log('User speaking started');\n setStatus('recording');\n break;\n\n case \"input_audio_buffer.speech_stopped\":\n // console.log('User speaking stopped');\n setStatus('processing');\n break;\n\n case 'response.done':\n // console.log('response.done', message);\n for (const out of message.response.output) {\n switch (out.type) {\n case \"message\":\n // console.log('Assistant message:', out.text);\n break;\n \n case \"function_call\":\n // console.log('function_call', out);\n if (out.name === 'highlight' && out.arguments) {\n // console.log('Tool call:', out.arguments);\n try {\n let argsToUse = out.arguments;\n // Check if the JSON string is missing a closing quote\n // try {\n // console.log(\"argsToUse\", argsToUse);\n // const parsedArgs = JSON.parse(argsToUse);\n // console.log(\"parsedArgs\", parsedArgs);\n // highlightElement(parsedArgs.selector);\n // } catch (error) {\n // console.log(\"errored, argsToUse\", argsToUse);\n const prompt = `\n Validate the following JSON string and return ONLY a correct JSON object:\n Note: The selector(s) should be either a css selector or an xpath, so modify those if invalid.\n Also, [url=''] is a valid css selector, so do not modify it if it's present.\n Do not add any other text or newlines to the response.\n It should be of the following format:\n { \"selector\": \"string\" }\n or\n { \"selector\": [\"string\", ...] }\n DO NOT add any other text or newlines to the response, it should begin and end with curly braces.\n DO NOT add '''json to the response.\n The JSON string is:\n ${argsToUse}\n `\n geminiFlash(prompt).then(response => {\n response = response.replace(\"```json\", \"\").replace(\"```\", \"\").trim();\n // console.log(\"response\", response);\n const parsedArgs = JSON.parse(response);\n highlightElement(parsedArgs.selector);\n }).catch(err => {\n console.error(\"Error calling Gemini:\", err);\n });\n // }\n\n\n } catch (error) {\n console.error('Error parsing function arguments:', error);\n console.log(out.arguments);\n logMessage('Error parsing function arguments: ' + out.arguments, 'GUIDEAI');\n }\n }\n \n sendMessage({\n type: \"conversation.item.create\",\n item: {\n type: \"function_call_output\",\n call_id: out.call_id,\n output: JSON.stringify(true)\n }\n });\n\n sendMessage({\n type: 'response.create',\n });\n break;\n }\n }\n \n break;\n\n case \"response.function_call_arguments.delta\":\n // console.log('response.function_call_arguments.delta', message);\n break;\n\n case \"response.function_call_arguments.done\":\n // console.log('response.function_call_arguments.done', message);\n break;\n\n case \"output_audio_buffer.started\":\n setStatus('playing');\n break;\n\n case \"output_audio_buffer.stopped\":\n // console.log('output_audio_buffer.stopped');\n setStatus('recording');\n \n break;\n\n case 'error':\n if (message.error.code === 'session_expired') {\n console.error('Session expired:', message);\n setStatus('idle');\n setIsConnecting(false);\n setIsConversationActive(false);\n break;\n }\n console.error('OpenAI API error:', message);\n onError(new Error(message.error.message || 'Unknown API error'), 'OpenAI API error');\n setStatus('idle');\n setIsConnecting(false);\n setIsConversationActive(false);\n break;\n \n default:\n if (!ignoreMessages.some(fragment => message.type.includes(fragment))) {\n console.log('Unhandled:', message.type, message);\n }\n }\n } catch (error) {\n console.error('Error handling WebRTC message:', error);\n setStatus('idle');\n setIsConversationActive(false);\n }\n };\n \n // Start the session using SDP\n const offer = await pc.createOffer();\n await pc.setLocalDescription(offer);\n \n if (!pc.localDescription || !pc.localDescription.sdp) {\n throw new Error('Failed to create local SDP offer');\n }\n \n const baseUrl = 'https://api.openai.com/v1/realtime';\n const model = \"gpt-4o-realtime-preview-2024-12-17\";\n \n \n const sdpResponse = await fetch(`${baseUrl}?model=${model}`, {\n method: 'POST',\n body: pc.localDescription.sdp,\n headers: {\n Authorization: `Bearer ${authToken}`,\n 'Content-Type': 'application/sdp'\n },\n });\n \n if (!sdpResponse.ok) {\n const errorText = await sdpResponse.text().catch(() => 'No error details available');\n console.error('WebRTC connection failed with status:', sdpResponse.status);\n console.error('Error details:', errorText);\n throw new Error(`Failed to connect to OpenAI WebRTC: ${sdpResponse.status} - ${errorText}`);\n }\n \n const answerSdp = await sdpResponse.text();\n \n const answer = {\n type: 'answer',\n sdp: answerSdp,\n };\n \n await pc.setRemoteDescription(answer as RTCSessionDescriptionInit);\n \n return true;\n } catch (error) {\n console.error('Error initializing WebRTC:', error);\n onError(error as Error, 'WebRTC initialization failed');\n setIsConnecting(false);\n return false;\n }\n };\n\n const startConversationSession = async () => {\n if (!isClient) return false;\n try {\n setStatus('processing');\n \n if (peerConnectionRef.current && dataChannelRef.current?.readyState === 'open' && mediaStreamRef.current) {\n mediaStreamRef.current.getAudioTracks().forEach(track => {\n track.enabled = true;\n });\n setStatus('recording');\n return true;\n } else {\n console.log('initializing microphone and WebRTC');\n cleanupWebRTC();\n \n try {\n setIsConnecting(true);\n // Request microphone access when user clicks to start recording\n const audioStream = await navigator.mediaDevices.getUserMedia({ \n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n channelCount: 1,\n sampleRate: 48000,\n }\n });\n \n mediaStreamRef.current = audioStream;\n \n const tokenToUse = ephemeralToken || await fetchEphemeralToken();\n \n const initialized = await initializeWebRTC(audioStream, tokenToUse);\n \n if (!initialized) {\n // Clean up if initialization fails\n audioStream.getAudioTracks().forEach(track => {\n track.stop();\n });\n mediaStreamRef.current = null;\n setStatus('idle');\n setIsConnecting(false);\n return false;\n }\n \n setStatus('recording');\n return true;\n } catch (error) {\n console.error('Error during conversation setup:', error);\n onError(error as Error, 'Microphone or WebRTC setup failed');\n setStatus('idle');\n setIsConnecting(false);\n return false;\n }\n }\n } catch (error) {\n setStatus('idle');\n setIsConnecting(false);\n onError(error as Error, 'Starting conversation failed');\n return false;\n }\n };\n\n const endConversationSession = () => {\n if (!isClient) return;\n \n if (mediaStreamRef.current) {\n mediaStreamRef.current.getAudioTracks().forEach(track => {\n track.stop();\n });\n }\n \n cleanupWebRTC();\n setStatus('idle');\n };\n\n const handleToggleConversation = async () => {\n if (!isClient) return;\n \n if (!hasInteracted) {\n setHasInteracted(true);\n localStorage.setItem('guideAI_hasInteracted', 'true');\n \n // Show onboarding on first interaction\n setShowOnboarding(true);\n return;\n }\n \n if (!isConversationActive) {\n const success = await startConversationSession();\n if (success) {\n setIsConversationActive(true);\n }\n } else {\n endConversationSession();\n setIsConversationActive(false);\n }\n };\n\n const handleOnboardingNext = () => {\n if (onboardingStep < 3) {\n setOnboardingStep(onboardingStep + 1);\n } else {\n setShowOnboarding(false);\n setOnboardingStep(1);\n startConversationSession();\n }\n };\n\n const handleOnboardingClose = () => {\n setShowOnboarding(false);\n setOnboardingStep(1);\n };\n\n if (!isClient) {\n return null;\n }\n\n return (\n <>\n <div\n ref={componentRef}\n style={{\n position: 'fixed',\n ...componentPosition,\n zIndex: 1000,\n }}\n >\n <div className=\"guideai-main-ui\">\n {!hasInteracted && isSessionReady && (\n <div className=\"guideai-welcome-bubble\">\n Stuck? Click here and ask me a question\n </div>\n )}\n \n {showOnboarding && (\n <div className=\"guideai-onboarding\">\n <div className=\"guideai-onboarding-content\">\n <button className=\"guideai-onboarding-close\" onClick={handleOnboardingClose}>×</button>\n \n {onboardingStep === 1 && (\n <div className=\"guideai-onboarding-step\">\n <div className=\"guideai-onboarding-icon volume-icon\">🔊</div>\n <h3>Turn on your volume</h3>\n <p>Make sure your device's volume is turned on so you can hear Guide AI's responses.</p>\n </div>\n )}\n \n {onboardingStep === 2 && (\n <div className=\"guideai-onboarding-step\">\n <div className=\"guideai-onboarding-icon mic-icon\">🎤</div>\n <h3>Allow microphone access</h3>\n <p>When prompted, click \"Allow\" to let Guide AI access your microphone.</p>\n </div>\n )}\n \n {onboardingStep === 3 && (\n <div className=\"guideai-onboarding-step\">\n <div className=\"guideai-onboarding-icon ready-icon\">✅</div>\n <h3>You're all set!</h3>\n <p>Click the microphone icon to start asking questions.</p>\n </div>\n )}\n \n <div className=\"guideai-onboarding-dots\">\n <span className={`dot ${onboardingStep === 1 ? 'active' : ''}`}></span>\n <span className={`dot ${onboardingStep === 2 ? 'active' : ''}`}></span>\n <span className={`dot ${onboardingStep === 3 ? 'active' : ''}`}></span>\n </div>\n \n <button className=\"guideai-onboarding-next\" onClick={handleOnboardingNext}>\n {onboardingStep < 3 ? 'Next' : 'Get Started'}\n </button>\n </div>\n </div>\n )}\n \n <div \n className={`guideai-icon-wrapper ${isConnecting ? 'initializing' : status}`}\n onClick={isConnecting ? undefined : handleToggleConversation}\n style={isConnecting ? { cursor: 'default' } : undefined}\n title={isConnecting ? 'Initializing...' : \n status === 'idle' ? 'Click to start a conversation' : \n status === 'recording' ? 'Click to end conversation' : \n status === 'processing' ? 'Processing your message...' : \n 'AI is speaking, click to end conversation'}\n >\n {isConnecting && <i className=\"guideai-icon initializing\" />}\n {!isConnecting && status === 'idle' && <i className=\"guideai-icon microphone\" />}\n {!isConnecting && status === 'recording' && <i className=\"guideai-icon recording\" />}\n {!isConnecting && status === 'processing' && <i className=\"guideai-icon processing\" />}\n {!isConnecting && status === 'playing' && <i className=\"guideai-icon playing\" />}\n </div>\n \n </div>\n </div>\n \n <style>{`\n .guideai-main-ui {\n position: relative;\n }\n \n .guideai-welcome-bubble {\n position: absolute;\n top: -70px;\n left: 50%;\n transform: translateX(-50%);\n background: #0066ff;\n color: white;\n padding: 8px 16px;\n border-radius: 20px;\n font-size: 14px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n animation: bubble-pulse 2s infinite;\n }\n\n .guideai-welcome-bubble::after {\n content: '';\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-top: 8px solid #0066ff;\n }\n\n @keyframes bubble-pulse {\n 0% { transform: translateX(-50%) scale(1); }\n 50% { transform: translateX(-50%) scale(1.05); }\n 100% { transform: translateX(-50%) scale(1); }\n }\n \n .guideai-icon-wrapper {\n width: 60px;\n height: 60px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, 0.9);\n border-radius: 50%;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n \n .guideai-icon-wrapper:not(.initializing):hover {\n transform: scale(1.1);\n }\n \n .guideai-icon-wrapper.initializing {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(128, 128, 128, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n animation: guideai-spin 1.5s linear infinite;\n opacity: 0.7;\n cursor: default;\n }\n \n .guideai-icon-wrapper.recording {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n animation: guideai-pulse 1s infinite alternate;\n }\n \n .guideai-icon-wrapper.processing {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(255, 165, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n animation: guideai-spin 1s linear infinite;\n }\n \n .guideai-icon-wrapper.playing {\n background-color: rgba(255, 255, 255, 0.9);\n box-shadow: 0 0 0 2px rgba(0, 128, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n }\n \n @keyframes guideai-pulse {\n 0% { transform: scale(1); }\n 100% { transform: scale(1.05); }\n }\n \n @keyframes guideai-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n \n @keyframes click-ripple-animation {\n 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.6; }\n 100% { transform: translate(-50%, -50%) scale(2.5); opacity: 0; }\n }\n \n @keyframes click-dot-animation {\n 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; }\n 60% { transform: translate(-50%, -50%) scale(1); opacity: 1; }\n 100% { transform: translate(-50%, -50%) scale(1); opacity: 0; }\n }\n \n @keyframes cursor-jiggle {\n 0% { transform: translate(-50%, 0) scale(1); }\n 25% { transform: translate(-50%, -5px) scale(1.1); }\n 50% { transform: translate(-50%, 0) scale(1); }\n 75% { transform: translate(-50%, 5px) scale(1.1); }\n 100% { transform: translate(-50%, 0) scale(1); filter: drop-shadow(0 0 8px #0066ff); }\n }\n \n .guideai-icon {\n width: 40px;\n height: 40px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n }\n \n .guideai-icon.initializing {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%23808080\" d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"/></svg>');\n }\n \n .guideai-icon.microphone {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path fill=\"%230000FF\" d=\"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"/></svg>');\n }\n \n .guideai-icon.recording {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><circle cx=\"256\" cy=\"256\" r=\"128\" fill=\"%23FF0000\"/><circle cx=\"256\" cy=\"256\" r=\"200\" stroke=\"%23FF0000\" stroke-width=\"20\" fill=\"none\"/></svg>');\n }\n \n .guideai-icon.processing {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%23FFA500\" d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"/></svg>');\n }\n \n .guideai-icon.playing {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"%23008000\" d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"/></svg>');\n }\n \n /* Onboarding styles */\n .guideai-onboarding {\n position: absolute;\n top: -220px;\n left: 50%;\n transform: translateX(-50%);\n background: white;\n border-radius: 12px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n width: 300px;\n z-index: 1002;\n animation: onboarding-fade-in 0.3s ease-out;\n }\n \n @keyframes onboarding-fade-in {\n from { opacity: 0; transform: translateX(-50%) translateY(-10px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n \n .guideai-onboarding-content {\n padding: 20px;\n position: relative;\n }\n \n .guideai-onboarding-close {\n position: absolute;\n top: 10px;\n right: 10px;\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n color: #999;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n }\n \n .guideai-onboarding-close:hover {\n background: #f5f5f5;\n color: #333;\n }\n \n .guideai-onboarding-step {\n text-align: center;\n margin-bottom: 15px;\n }\n \n .guideai-onboarding-icon {\n font-size: 40px;\n margin-bottom: 10px;\n display: inline-block;\n }\n \n .guideai-onboarding-step h3 {\n margin: 0 0 10px;\n font-size: 18px;\n color: #333;\n }\n \n .guideai-onboarding-step p {\n margin: 0;\n font-size: 14px;\n color: #666;\n line-height: 1.4;\n }\n \n .guideai-onboarding-dots {\n display: flex;\n justify-content: center;\n margin: 15px 0;\n }\n \n .guideai-onboarding-dots .dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #ddd;\n margin: 0 4px;\n transition: all 0.3s ease;\n }\n \n .guideai-onboarding-dots .dot.active {\n background: #0066ff;\n transform: scale(1.2);\n }\n \n .guideai-onboarding-next {\n display: block;\n width: 100%;\n padding: 10px;\n background: #0066ff;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s ease;\n }\n \n .guideai-onboarding-next:hover {\n background: #0055cc;\n }\n `}</style>\n </>\n );\n};\n\nexport default GuideAI;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.maybe_map = exports.combine = exports.is_buffer = exports.is_regexp = exports.compact = exports.encode = exports.decode = exports.assign_single_source = exports.merge = void 0;\nconst formats_1 = require(\"./formats.js\");\nconst has = Object.prototype.hasOwnProperty;\nconst is_array = Array.isArray;\nconst hex_table = (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item)\n continue;\n const obj = item.obj[item.prop];\n if (is_array(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nfunction merge(target, source, options = {}) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (is_array(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) ||\n !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (is_array(target) && !is_array(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (is_array(target) && is_array(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexports.merge = merge;\nfunction assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n}\nexports.assign_single_source = assign_single_source;\nfunction decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch (e) {\n return strWithoutPlus;\n }\n}\nexports.decode = decode;\nconst limit = 1024;\nconst encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === formats_1.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n }\n return out;\n};\nexports.encode = encode;\nfunction compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexports.compact = compact;\nfunction is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexports.is_regexp = is_regexp;\nfunction is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexports.is_buffer = is_buffer;\nfunction combine(a, b) {\n return [].concat(a, b);\n}\nexports.combine = combine;\nfunction maybe_map(val, fn) {\n if (is_array(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n}\nexports.maybe_map = maybe_map;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AbstractPage_client;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObj = exports.toBase64 = exports.getHeader = exports.getRequiredHeader = exports.isHeadersProtocol = exports.isRunningInBrowser = exports.debug = exports.hasOwn = exports.isEmptyObj = exports.maybeCoerceBoolean = exports.maybeCoerceFloat = exports.maybeCoerceInteger = exports.coerceBoolean = exports.coerceFloat = exports.coerceInteger = exports.readEnv = exports.ensurePresent = exports.castToError = exports.sleep = exports.safeJSON = exports.isRequestOptions = exports.createResponseHeaders = exports.PagePromise = exports.AbstractPage = exports.APIClient = exports.APIPromise = exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = void 0;\nconst version_1 = require(\"./version.js\");\nconst streaming_1 = require(\"./streaming.js\");\nconst error_1 = require(\"./error.js\");\nconst index_1 = require(\"./_shims/index.js\");\nconst uploads_1 = require(\"./uploads.js\");\nvar uploads_2 = require(\"./uploads.js\");\nObject.defineProperty(exports, \"maybeMultipartFormRequestOptions\", { enumerable: true, get: function () { return uploads_2.maybeMultipartFormRequestOptions; } });\nObject.defineProperty(exports, \"multipartFormRequestOptions\", { enumerable: true, get: function () { return uploads_2.multipartFormRequestOptions; } });\nObject.defineProperty(exports, \"createForm\", { enumerable: true, get: function () { return uploads_2.createForm; } });\nasync function defaultParseResponse(props) {\n const { response } = props;\n if (props.options.stream) {\n debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream<T>`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller);\n }\n return streaming_1.Stream.fromSSEResponse(response, props.controller);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n debug('response', response.status, response.url, response.headers, json);\n return _addRequestID(json, response);\n }\n const text = await response.text();\n debug('response', response.status, response.url, response.headers, text);\n // TODO handle blob, arraybuffer, other content types, etc.\n return text;\n}\nfunction _addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nclass APIPromise extends Promise {\n constructor(responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n }\n _thenUnwrap(transform) {\n return new APIPromise(this.responsePromise, async (props) => _addRequestID(transform(await this.parseResponse(props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` if you can,\n * or add one of these imports before your first `import … from 'openai'`:\n * - `import 'openai/shims/node'` (if you're running on Node)\n * - `import 'openai/shims/web'` (otherwise)\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` if you can,\n * or add one of these imports before your first `import … from 'openai'`:\n * - `import 'openai/shims/node'` (if you're running on Node)\n * - `import 'openai/shims/web'` (otherwise)\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then(this.parseResponse);\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\nexports.APIPromise = APIPromise;\nclass APIClient {\n constructor({ baseURL, maxRetries = 2, timeout = 600000, // 10 minutes\n httpAgent, fetch: overriddenFetch, }) {\n this.baseURL = baseURL;\n this.maxRetries = validatePositiveInteger('maxRetries', maxRetries);\n this.timeout = validatePositiveInteger('timeout', timeout);\n this.httpAgent = httpAgent;\n this.fetch = overriddenFetch ?? index_1.fetch;\n }\n authHeaders(opts) {\n return {};\n }\n /**\n * Override this to add your own default headers, for example:\n *\n * {\n * ...super.defaultHeaders(),\n * Authorization: 'Bearer 123',\n * }\n */\n defaultHeaders(opts) {\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'User-Agent': this.getUserAgent(),\n ...getPlatformHeaders(),\n ...this.authHeaders(opts),\n };\n }\n /**\n * Override this to add your own headers validation:\n */\n validateHeaders(headers, customHeaders) { }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then(async (opts) => {\n const body = opts && (0, uploads_1.isBlobLike)(opts?.body) ? new DataView(await opts.body.arrayBuffer())\n : opts?.body instanceof DataView ? opts.body\n : opts?.body instanceof ArrayBuffer ? new DataView(opts.body)\n : opts && ArrayBuffer.isView(opts?.body) ? new DataView(opts.body.buffer)\n : opts?.body;\n return { method, path, ...opts, body };\n }));\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n calculateContentLength(body) {\n if (typeof body === 'string') {\n if (typeof Buffer !== 'undefined') {\n return Buffer.byteLength(body, 'utf8').toString();\n }\n if (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder();\n const encoded = encoder.encode(body);\n return encoded.length.toString();\n }\n }\n else if (ArrayBuffer.isView(body)) {\n return body.byteLength.toString();\n }\n return null;\n }\n buildRequest(options, { retryCount = 0 } = {}) {\n options = { ...options };\n const { method, path, query, headers: headers = {} } = options;\n const body = ArrayBuffer.isView(options.body) || (options.__binaryRequest && typeof options.body === 'string') ?\n options.body\n : (0, uploads_1.isMultipartBody)(options.body) ? options.body.body\n : options.body ? JSON.stringify(options.body, null, 2)\n : null;\n const contentLength = this.calculateContentLength(body);\n const url = this.buildURL(path, query);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const httpAgent = options.httpAgent ?? this.httpAgent ?? (0, index_1.getDefaultAgent)(url);\n const minAgentTimeout = options.timeout + 1000;\n if (typeof httpAgent?.options?.timeout === 'number' &&\n minAgentTimeout > (httpAgent.options.timeout ?? 0)) {\n // Allow any given request to bump our agent active socket timeout.\n // This may seem strange, but leaking active sockets should be rare and not particularly problematic,\n // and without mutating agent we would need to create more of them.\n // This tradeoff optimizes for performance.\n httpAgent.options.timeout = minAgentTimeout;\n }\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n headers[this.idempotencyHeader] = options.idempotencyKey;\n }\n const reqHeaders = this.buildHeaders({ options, headers, contentLength, retryCount });\n const req = {\n method,\n ...(body && { body: body }),\n headers: reqHeaders,\n ...(httpAgent && { agent: httpAgent }),\n // @ts-ignore node-fetch uses a custom AbortSignal type that is\n // not compatible with standard web types\n signal: options.signal ?? null,\n };\n return { req, url, timeout: options.timeout };\n }\n buildHeaders({ options, headers, contentLength, retryCount, }) {\n const reqHeaders = {};\n if (contentLength) {\n reqHeaders['content-length'] = contentLength;\n }\n const defaultHeaders = this.defaultHeaders(options);\n applyHeadersMut(reqHeaders, defaultHeaders);\n applyHeadersMut(reqHeaders, headers);\n // let builtin fetch set the Content-Type for multipart bodies\n if ((0, uploads_1.isMultipartBody)(options.body) && index_1.kind !== 'node') {\n delete reqHeaders['content-type'];\n }\n // Don't set theses headers if they were already set or removed through default headers or by the caller.\n // We check `defaultHeaders` and `headers`, which can contain nulls, instead of `reqHeaders` to account\n // for the removal case.\n if ((0, exports.getHeader)(defaultHeaders, 'x-stainless-retry-count') === undefined &&\n (0, exports.getHeader)(headers, 'x-stainless-retry-count') === undefined) {\n reqHeaders['x-stainless-retry-count'] = String(retryCount);\n }\n if ((0, exports.getHeader)(defaultHeaders, 'x-stainless-timeout') === undefined &&\n (0, exports.getHeader)(headers, 'x-stainless-timeout') === undefined &&\n options.timeout) {\n reqHeaders['x-stainless-timeout'] = String(options.timeout);\n }\n this.validateHeaders(reqHeaders, headers);\n return reqHeaders;\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n parseHeaders(headers) {\n return (!headers ? {}\n : Symbol.iterator in headers ?\n Object.fromEntries(Array.from(headers).map((header) => [...header]))\n : { ...headers });\n }\n makeStatusError(status, error, message, headers) {\n return error_1.APIError.generate(status, error, message, headers);\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this.makeRequest(options, remainingRetries));\n }\n async makeRequest(optionsInput, retriesRemaining) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = this.buildRequest(options, { retryCount: maxRetries - retriesRemaining });\n await this.prepareRequest(req, { url, options });\n debug('request', url, options, req.headers);\n if (options.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(exports.castToError);\n if (response instanceof Error) {\n if (options.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n if (retriesRemaining) {\n return this.retryRequest(options, retriesRemaining);\n }\n if (response.name === 'AbortError') {\n throw new error_1.APIConnectionTimeoutError();\n }\n throw new error_1.APIConnectionError({ cause: response });\n }\n const responseHeaders = (0, exports.createResponseHeaders)(response.headers);\n if (!response.ok) {\n if (retriesRemaining && this.shouldRetry(response)) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders);\n return this.retryRequest(options, retriesRemaining, responseHeaders);\n }\n const errText = await response.text().catch((e) => (0, exports.castToError)(e).message);\n const errJSON = (0, exports.safeJSON)(errText);\n const errMessage = errJSON ? undefined : errText;\n const retryMessage = retriesRemaining ? `(error; no more retries left)` : `(error; not retryable)`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders, errMessage);\n const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);\n throw err;\n }\n return { response, options, controller };\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null);\n return new PagePromise(this, request, Page);\n }\n buildURL(path, query) {\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(this.baseURL + (this.baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n stringifyQuery(query) {\n return Object.entries(query)\n .filter(([_, value]) => typeof value !== 'undefined')\n .map(([key, value]) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n }\n if (value === null) {\n return `${encodeURIComponent(key)}=`;\n }\n throw new error_1.OpenAIError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`);\n })\n .join('&');\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const fetchOptions = {\n signal: controller.signal,\n ...options,\n };\n if (fetchOptions.method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = fetchOptions.method.toUpperCase();\n }\n return (\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n this.fetch.call(undefined, url, fetchOptions).finally(() => {\n clearTimeout(timeout);\n }));\n }\n shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.['retry-after-ms'];\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.['retry-after'];\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await (0, exports.sleep)(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${version_1.VERSION}`;\n }\n}\nexports.APIClient = APIClient;\nclass AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageInfo() != null;\n }\n async getNextPage() {\n const nextInfo = this.nextPageInfo();\n if (!nextInfo) {\n throw new error_1.OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n const nextOptions = { ...this.options };\n if ('params' in nextInfo && typeof nextOptions.query === 'object') {\n nextOptions.query = { ...nextOptions.query, ...nextInfo.params };\n }\n else if ('url' in nextInfo) {\n const params = [...Object.entries(nextOptions.query || {}), ...nextInfo.url.searchParams.entries()];\n for (const [key, value] of params) {\n nextInfo.url.searchParams.set(key, value);\n }\n nextOptions.query = undefined;\n nextOptions.path = nextInfo.url.toString();\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\nexports.AbstractPage = AbstractPage;\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nclass PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(request, async (props) => new Page(client, props.response, await defaultParseResponse(props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\nexports.PagePromise = PagePromise;\nconst createResponseHeaders = (headers) => {\n return new Proxy(Object.fromEntries(\n // @ts-ignore\n headers.entries()), {\n get(target, name) {\n const key = name.toString();\n return target[key.toLowerCase()] || target[key];\n },\n });\n};\nexports.createResponseHeaders = createResponseHeaders;\n// This is required so that we can determine if a given object matches the RequestOptions\n// type at runtime. While this requires duplication, it is enforced by the TypeScript\n// compiler such that any missing / extraneous keys will cause an error.\nconst requestOptionsKeys = {\n method: true,\n path: true,\n query: true,\n body: true,\n headers: true,\n maxRetries: true,\n stream: true,\n timeout: true,\n httpAgent: true,\n signal: true,\n idempotencyKey: true,\n __metadata: true,\n __binaryRequest: true,\n __binaryResponse: true,\n __streamClass: true,\n};\nconst isRequestOptions = (obj) => {\n return (typeof obj === 'object' &&\n obj !== null &&\n !isEmptyObj(obj) &&\n Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k)));\n};\nexports.isRequestOptions = isRequestOptions;\nconst getPlatformProperties = () => {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': process.version,\n };\n }\n // Check if Node.js\n if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': normalizePlatform(process.platform),\n 'X-Stainless-Arch': normalizeArch(process.arch),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': process.version,\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': version_1.VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nconst getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\nconst safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\nexports.safeJSON = safeJSON;\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nconst isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nexports.sleep = sleep;\nconst validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new error_1.OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new error_1.OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nconst castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\nexports.castToError = castToError;\nconst ensurePresent = (value) => {\n if (value == null)\n throw new error_1.OpenAIError(`Expected a value to be given but received ${value} instead.`);\n return value;\n};\nexports.ensurePresent = ensurePresent;\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nconst readEnv = (env) => {\n if (typeof process !== 'undefined') {\n return process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof Deno !== 'undefined') {\n return Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\nexports.readEnv = readEnv;\nconst coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new error_1.OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexports.coerceInteger = coerceInteger;\nconst coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new error_1.OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexports.coerceFloat = coerceFloat;\nconst coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexports.coerceBoolean = coerceBoolean;\nconst maybeCoerceInteger = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return (0, exports.coerceInteger)(value);\n};\nexports.maybeCoerceInteger = maybeCoerceInteger;\nconst maybeCoerceFloat = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return (0, exports.coerceFloat)(value);\n};\nexports.maybeCoerceFloat = maybeCoerceFloat;\nconst maybeCoerceBoolean = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return (0, exports.coerceBoolean)(value);\n};\nexports.maybeCoerceBoolean = maybeCoerceBoolean;\n// https://stackoverflow.com/a/34491287\nfunction isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\nexports.isEmptyObj = isEmptyObj;\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.hasOwn = hasOwn;\n/**\n * Copies headers from \"newHeaders\" onto \"targetHeaders\",\n * using lower-case for all properties,\n * ignoring any keys with undefined values,\n * and deleting any keys with null values.\n */\nfunction applyHeadersMut(targetHeaders, newHeaders) {\n for (const k in newHeaders) {\n if (!hasOwn(newHeaders, k))\n continue;\n const lowerKey = k.toLowerCase();\n if (!lowerKey)\n continue;\n const val = newHeaders[k];\n if (val === null) {\n delete targetHeaders[lowerKey];\n }\n else if (val !== undefined) {\n targetHeaders[lowerKey] = val;\n }\n }\n}\nconst SENSITIVE_HEADERS = new Set(['authorization', 'api-key']);\nfunction debug(action, ...args) {\n if (typeof process !== 'undefined' && process?.env?.['DEBUG'] === 'true') {\n const modifiedArgs = args.map((arg) => {\n if (!arg) {\n return arg;\n }\n // Check for sensitive headers in request body 'headers' object\n if (arg['headers']) {\n // clone so we don't mutate\n const modifiedArg = { ...arg, headers: { ...arg['headers'] } };\n for (const header in arg['headers']) {\n if (SENSITIVE_HEADERS.has(header.toLowerCase())) {\n modifiedArg['headers'][header] = 'REDACTED';\n }\n }\n return modifiedArg;\n }\n let modifiedArg = null;\n // Check for sensitive headers in headers object\n for (const header in arg) {\n if (SENSITIVE_HEADERS.has(header.toLowerCase())) {\n // avoid making a copy until we need to\n modifiedArg ?? (modifiedArg = { ...arg });\n modifiedArg[header] = 'REDACTED';\n }\n }\n return modifiedArg ?? arg;\n });\n console.log(`OpenAI:DEBUG:${action}`, ...modifiedArgs);\n }\n}\nexports.debug = debug;\n/**\n * https://stackoverflow.com/a/2117523\n */\nconst uuid4 = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\nconst isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\nexports.isRunningInBrowser = isRunningInBrowser;\nconst isHeadersProtocol = (headers) => {\n return typeof headers?.get === 'function';\n};\nexports.isHeadersProtocol = isHeadersProtocol;\nconst getRequiredHeader = (headers, header) => {\n const foundHeader = (0, exports.getHeader)(headers, header);\n if (foundHeader === undefined) {\n throw new Error(`Could not find ${header} header`);\n }\n return foundHeader;\n};\nexports.getRequiredHeader = getRequiredHeader;\nconst getHeader = (headers, header) => {\n const lowerCasedHeader = header.toLowerCase();\n if ((0, exports.isHeadersProtocol)(headers)) {\n // to deal with the case where the header looks like Stainless-Event-Id\n const intercapsHeader = header[0]?.toUpperCase() +\n header.substring(1).replace(/([^\\w])(\\w)/g, (_m, g1, g2) => g1 + g2.toUpperCase());\n for (const key of [header, lowerCasedHeader, header.toUpperCase(), intercapsHeader]) {\n const value = headers.get(key);\n if (value) {\n return value;\n }\n }\n }\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === lowerCasedHeader) {\n if (Array.isArray(value)) {\n if (value.length <= 1)\n return value[0];\n console.warn(`Received ${value.length} entries for the ${header} header, using the first entry.`);\n return value[0];\n }\n return value;\n }\n }\n return undefined;\n};\nexports.getHeader = getHeader;\n/**\n * Encodes a string to Base64 format.\n */\nconst toBase64 = (str) => {\n if (!str)\n return '';\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(str).toString('base64');\n }\n if (typeof btoa !== 'undefined') {\n return btoa(str);\n }\n throw new error_1.OpenAIError('Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexports.toBase64 = toBase64;\nfunction isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexports.isObj = isObj;\n//# sourceMappingURL=core.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _AssistantStream_instances, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssistantStream = void 0;\nconst Core = __importStar(require(\"../core.js\"));\nconst streaming_1 = require(\"../streaming.js\");\nconst error_1 = require(\"../error.js\");\nconst EventStream_1 = require(\"./EventStream.js\");\nclass AssistantStream extends EventStream_1.EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Track all events in a single list for reference\n _AssistantStream_events.set(this, []);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, {});\n _AssistantStream_messageSnapshots.set(this, {});\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n //Catch all for passing along all events\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n static fromReadableStream(stream) {\n const runner = new AssistantStream();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n this._connected();\n const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n toReadableStream() {\n const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n static createToolAssistantStream(threadId, runId, runs, params, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._runToolAssistantStream(threadId, runId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, threadId, runId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(threadId, runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static createThreadAssistantStream(params, thread, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new AssistantStream();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n currentEvent() {\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n currentRun() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n currentMessageSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n currentRunStepSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run was not received.');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new error_1.APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static accumulateDelta(acc, delta) {\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (!acc.hasOwnProperty(key)) {\n acc[key] = deltaValue;\n continue;\n }\n let accValue = acc[key];\n if (accValue === null || accValue === undefined) {\n acc[key] = deltaValue;\n continue;\n }\n // We don't accumulate these special properties\n if (key === 'index' || key === 'type') {\n acc[key] = deltaValue;\n continue;\n }\n // Type-specific accumulation logic\n if (typeof accValue === 'string' && typeof deltaValue === 'string') {\n accValue += deltaValue;\n }\n else if (typeof accValue === 'number' && typeof deltaValue === 'number') {\n accValue += deltaValue;\n }\n else if (Core.isObj(accValue) && Core.isObj(deltaValue)) {\n accValue = this.accumulateDelta(accValue, deltaValue);\n }\n else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {\n if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {\n accValue.push(...deltaValue); // Use spread syntax for efficient addition\n continue;\n }\n for (const deltaEntry of deltaValue) {\n if (!Core.isObj(deltaEntry)) {\n throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);\n }\n const index = deltaEntry['index'];\n if (index == null) {\n console.error(deltaEntry);\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new Error(`Expected array delta entry \\`index\\` property to be a number but got ${index}`);\n }\n const accEntry = accValue[index];\n if (accEntry == null) {\n accValue.push(deltaEntry);\n }\n else {\n accValue[index] = this.accumulateDelta(accEntry, deltaEntry);\n }\n }\n continue;\n }\n else {\n throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);\n }\n acc[key] = accValue;\n }\n return acc;\n }\n _addRun(run) {\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(threadId, runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, threadId, runId, params, options);\n }\n}\nexports.AssistantStream = AssistantStream;\n_AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, event);\n switch (event.event) {\n case 'thread.created':\n //No action on this event.\n break;\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, event);\n break;\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, event);\n break;\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, event);\n break;\n case 'error':\n //This is included for completeness, but errors are processed in the SSE event processing so this should not occur\n throw new Error('Encountered an error event in event processing - errors should be processed earlier');\n default:\n assertNever(event);\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run has not been received');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[accumulatedMessage.id] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type == 'text') {\n this._emit('textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created':\n this._emit('messageCreated', event.data);\n break;\n case 'thread.message.in_progress':\n break;\n case 'thread.message.delta':\n this._emit('messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type == 'text' && content.text) {\n let textDelta = content.text;\n let snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type == 'text') {\n this._emit('textDelta', textDelta, snapshot.text);\n }\n else {\n throw Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text':\n this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'image_file':\n this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file':\n this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'text':\n this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n this._emit('messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created':\n this._emit('runStepCreated', event.data);\n break;\n case 'thread.run.step.delta':\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type == 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type == 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"))\n this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n this._emit('runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type == 'tool_calls') {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n }\n this._emit('runStepDone', event.data, accumulatedRunStep);\n break;\n case 'thread.run.step.in_progress':\n break;\n }\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_events, \"f\").push(event);\n this._emit('event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {\n switch (event.event) {\n case 'thread.run.step.created':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n return event.data;\n case 'thread.run.step.delta':\n let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n if (!snapshot) {\n throw Error('Received a RunStepDelta before creation of a snapshot');\n }\n let data = event.data;\n if (data.delta) {\n const accumulated = AssistantStream.accumulateDelta(snapshot, data.delta);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = accumulated;\n }\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n break;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id])\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n let newContent = [];\n switch (event.event) {\n case 'thread.message.created':\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n case 'thread.message.delta':\n if (!snapshot) {\n throw Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n let data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n for (const contentElement of data.delta.content) {\n if (contentElement.index in snapshot.content) {\n let currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);\n }\n else {\n snapshot.content[contentElement.index] = contentElement;\n // This is a new element\n newContent.push(contentElement);\n }\n }\n }\n return [snapshot, newContent];\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //No changes on other thread events\n if (snapshot) {\n return [snapshot, newContent];\n }\n else {\n throw Error('Received thread message event with no existing snapshot');\n }\n }\n throw Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {\n return AssistantStream.accumulateDelta(currentContent, contentElement);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created':\n break;\n case 'thread.run.queued':\n break;\n case 'thread.run.in_progress':\n break;\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n break;\n case 'thread.run.cancelling':\n break;\n }\n};\nfunction assertNever(_x) { }\n//# sourceMappingURL=AssistantStream.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\n__exportStar(require(\"../web-runtime.js\"), exports);\n//# sourceMappingURL=runtime.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completions = void 0;\nconst resource_1 = require(\"../resource.js\");\nclass Completions extends resource_1.APIResource {\n create(body, options) {\n return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });\n }\n}\nexports.Completions = Completions;\n//# sourceMappingURL=completions.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModelsPage = exports.Models = void 0;\nconst resource_1 = require(\"../resource.js\");\nconst pagination_1 = require(\"../pagination.js\");\nclass Models extends resource_1.APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(`/models/${model}`, options);\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', ModelsPage, options);\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n del(model, options) {\n return this._client.delete(`/models/${model}`, options);\n }\n}\nexports.Models = Models;\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nclass ModelsPage extends pagination_1.Page {\n}\nexports.ModelsPage = ModelsPage;\nModels.ModelsPage = ModelsPage;\n//# sourceMappingURL=models.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatCompletionStoreMessagesPage = exports.Messages = void 0;\nconst resource_1 = require(\"../../../resource.js\");\nconst core_1 = require(\"../../../core.js\");\nconst completions_1 = require(\"./completions.js\");\nObject.defineProperty(exports, \"ChatCompletionStoreMessagesPage\", { enumerable: true, get: function () { return completions_1.ChatCompletionStoreMessagesPage; } });\nclass Messages extends resource_1.APIResource {\n list(completionId, query = {}, options) {\n if ((0, core_1.isRequestOptions)(query)) {\n return this.list(completionId, {}, query);\n }\n return this._client.getAPIList(`/chat/completions/${completionId}/messages`, completions_1.ChatCompletionStoreMessagesPage, { query, ...options });\n }\n}\nexports.Messages = Messages;\n//# sourceMappingURL=messages.js.map","\"use strict\";\n// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContentFilterFinishReasonError = exports.LengthFinishReasonError = exports.InternalServerError = exports.RateLimitError = exports.UnprocessableEntityError = exports.ConflictError = exports.NotFoundError = exports.PermissionDeniedError = exports.AuthenticationError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIUserAbortError = exports.APIError = exports.OpenAIError = void 0;\nconst core_1 = require(\"./core.js\");\nclass OpenAIError extends Error {\n}\nexports.OpenAIError = OpenAIError;\nclass APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.request_id = headers?.['x-request-id'];\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: (0, core_1.castToError)(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexports.APIError = APIError;\nclass APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexports.APIUserAbortError = APIUserAbortError;\nclass APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexports.APIConnectionError = APIConnectionError;\nclass APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexports.APIConnectionTimeoutError = APIConnectionTimeoutError;\nclass BadRequestError extends APIError {\n}\nexports.BadRequestError = BadRequestError;\nclass AuthenticationError extends APIError {\n}\nexports.AuthenticationError = AuthenticationError;\nclass PermissionDeniedError extends APIError {\n}\nexports.PermissionDeniedError = PermissionDeniedError;\nclass NotFoundError extends APIError {\n}\nexports.NotFoundError = NotFoundError;\nclass ConflictError extends APIError {\n}\nexports.ConflictError = ConflictError;\nclass UnprocessableEntityError extends APIError {\n}\nexports.UnprocessableEntityError = UnprocessableEntityError;\nclass RateLimitError extends APIError {\n}\nexports.RateLimitError = RateLimitError;\nclass InternalServerError extends APIError {\n}\nexports.InternalServerError = InternalServerError;\nclass LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexports.LengthFinishReasonError = LengthFinishReasonError;\nclass ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexports.ContentFilterFinishReasonError = ContentFilterFinishReasonError;\n//# sourceMappingURL=error.js.map","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _LineDecoder_carriageReturnIndex;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findDoubleNewlineIndex = exports.LineDecoder = void 0;\nconst error_1 = require(\"../../error.js\");\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nclass LineDecoder {\n constructor() {\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n this.buffer = new Uint8Array();\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? new TextEncoder().encode(chunk)\n : chunk;\n let newData = new Uint8Array(this.buffer.length + binaryChunk.length);\n newData.set(this.buffer);\n newData.set(binaryChunk, this.buffer.length);\n this.buffer = newData;\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(this.buffer, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(this.decodeText(this.buffer.slice(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n this.buffer = this.buffer.slice(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"));\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = this.decodeText(this.buffer.slice(0, endIndex));\n lines.push(line);\n this.buffer = this.buffer.slice(patternIndex.index);\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n decodeText(bytes) {\n if (bytes == null)\n return '';\n if (typeof bytes === 'string')\n return bytes;\n // Node:\n if (typeof Buffer !== 'undefined') {\n if (bytes instanceof Buffer) {\n return bytes.toString();\n }\n if (bytes instanceof Uint8Array) {\n return Buffer.from(bytes).toString();\n }\n throw new error_1.OpenAIError(`Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global \"Buffer\" defined, which this library assumes to be Node. Please report this error.`);\n }\n // Browser\n if (typeof TextDecoder !== 'undefined') {\n if (bytes instanceof Uint8Array || bytes instanceof ArrayBuffer) {\n this.textDecoder ?? (this.textDecoder = new TextDecoder('utf8'));\n return this.textDecoder.decode(bytes);\n }\n throw new error_1.OpenAIError(`Unexpected: received non-Uint8Array/ArrayBuffer (${bytes.constructor.name}) in a web platform. Please report this error.`);\n }\n throw new error_1.OpenAIError(`Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`);\n }\n flush() {\n if (!this.buffer.length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\nexports.LineDecoder = LineDecoder;\n_LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\nfunction findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\nexports.findDoubleNewlineIndex = findDoubleNewlineIndex;\n//# sourceMappingURL=line.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(8258);\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__156__","Object","defineProperty","value","stringify","utils_1","formats_1","has","prototype","hasOwnProperty","array_prefix_generators","brackets","prefix","String","comma","indices","key","repeat","is_array","Array","isArray","push","push_to_array","arr","value_or_array","apply","to_ISO","Date","toISOString","defaults","addQueryPrefix","allowDots","allowEmptyArrays","arrayFormat","charset","charsetSentinel","delimiter","encode","encodeDotInKeys","encoder","encodeValuesOnly","format","default_format","formatter","formatters","serializeDate","date","call","skipNulls","strictNullHandling","sentinel","inner_stringify","object","generateArrayPrefix","commaRoundTrip","filter","sort","sideChannel","obj","tmp_sc","step","find_flag","get","pos","RangeError","maybe_map","v","is_buffer","key_value","values","obj_keys","length","join","keys","encoded_prefix","replace","adjusted_prefix","j","encoded_key","key_prefix","set","valueSideChannel","WeakMap","opts","options","TypeError","normalize_stringify_options","i","joined","getRuntime","MultipartBody_1","manuallyImported","recommendation","_fetch","_Request","_Response","_Headers","fetch","Request","Response","Headers","error","Error","message","kind","FormData","constructor","Blob","File","ReadableStream","getMultipartRequestOptions","async","form","body","MultipartBody","getDefaultAgent","url","fileFromPath","isFsReadStream","_EventStream_instances","_EventStream_connectedPromise","_EventStream_resolveConnectedPromise","_EventStream_rejectConnectedPromise","_EventStream_endPromise","_EventStream_resolveEndPromise","_EventStream_rejectEndPromise","_EventStream_listeners","_EventStream_ended","_EventStream_errored","_EventStream_aborted","_EventStream_catchingPromiseCreated","_EventStream_handleError","__classPrivateFieldSet","receiver","state","f","__classPrivateFieldGet","EventStream","error_1","add","controller","AbortController","Promise","resolve","reject","catch","_run","executor","setTimeout","then","_emitFinal","_emit","bind","_connected","ended","errored","aborted","abort","on","event","listener","off","listeners","index","findIndex","l","splice","once","emitted","done","args","forEach","WeakSet","name","APIUserAbortError","OpenAIError","openAIError","cause","__createBinding","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","__setModuleDefault","__importStar","mod","result","ResponseItemsPage","Responses","ResponsesParser_1","core_1","resource_1","InputItemsAPI","input_items_1","ResponseStream_1","pagination_1","APIResource","super","arguments","inputItems","InputItems","_client","post","stream","_thenUnwrap","rsp","addOutputText","retrieve","responseId","query","isRequestOptions","del","delete","headers","Accept","parse","responses","response","parseResponse","ResponseStream","createResponse","CursorPage","_AbstractChatCompletionRunner_instances","_AbstractChatCompletionRunner_getFinalContent","_AbstractChatCompletionRunner_getFinalMessage","_AbstractChatCompletionRunner_getFinalFunctionCall","_AbstractChatCompletionRunner_getFinalFunctionCallResult","_AbstractChatCompletionRunner_calculateTotalUsage","_AbstractChatCompletionRunner_validateParams","_AbstractChatCompletionRunner_stringifyFunctionCallResult","AbstractChatCompletionRunner","RunnableFunction_1","chatCompletionUtils_1","EventStream_1","parser_1","DEFAULT_MAX_CHAT_COMPLETIONS","_chatCompletions","messages","_addChatCompletion","chatCompletion","choices","_addMessage","emit","content","isFunctionMessage","isToolMessage","isAssistantMessage","function_call","tool_calls","tool_call","type","function","finalChatCompletion","completion","finalContent","finalMessage","finalFunctionCall","finalFunctionCallResult","totalUsage","allChatCompletions","some","c","usage","_createChatCompletion","client","params","signal","addEventListener","chat","completions","parseChatCompletion","_runChatCompletion","_runFunctions","role","restParams","singleFunctionToCall","maxChatCompletions","functionsByName","functions","map","parameters","description","fn","JSON","parsed","isRunnableFunctionWithParse","rawContent","_runTools","tool_choice","inputTools","tools","tool","isAutoParsableTool","$callback","$parseRaw","strict","t","tool_call_id","id","rest","ret","refusal","at","x","y","total","completion_tokens","prompt_tokens","total_tokens","n","Embeddings","Audio","SpeechAPI","speech_1","TranscriptionsAPI","transcriptions_1","TranslationsAPI","translations_1","transcriptions","Transcriptions","translations","Translations","speech","Speech","Chat","CompletionsAPI","Completions","formats","RFC1738","RFC3986","default","stringify_1","FileObjectsPage","Files","core_2","Core","multipartFormRequestOptions","fileId","list","getAPIList","__binaryResponse","retrieveContent","waitForProcessing","pollInterval","maxWait","TERMINAL_STATES","Set","start","now","file","status","sleep","APIConnectionTimeoutError","FineTuningJobEventsPage","FineTuningJobsPage","Jobs","CheckpointsAPI","checkpoints_1","checkpoints","Checkpoints","fineTuningJobId","cancel","listEvents","FineTuningJobCheckpointsPage","RunsPage","Runs","AssistantStream_1","StepsAPI","steps_1","steps","Steps","threadId","include","runId","update","createAndPoll","run","poll","createAndStream","AssistantStream","createAssistantStream","beta","threads","runs","pollIntervalMs","toString","data","withResponse","sleepInterval","headerInterval","headerIntervalMs","parseInt","isNaN","submitToolOutputs","submitToolOutputsAndPoll","submitToolOutputsStream","createToolAssistantStream","RunStepsPage","_a","UnprocessableEntityError","PermissionDeniedError","InternalServerError","AuthenticationError","BadRequestError","RateLimitError","ConflictError","NotFoundError","APIConnectionError","APIError","toFile","AzureOpenAI","OpenAI","qs","Errors","Uploads","API","batches_1","completions_1","embeddings_1","files_1","images_1","models_1","moderations_1","audio_1","beta_1","chat_1","fine_tuning_1","responses_1","uploads_1","vector_stores_1","completions_2","APIClient","baseURL","readEnv","apiKey","organization","project","dangerouslyAllowBrowser","isRunningInBrowser","timeout","httpAgent","maxRetries","embeddings","files","images","Images","audio","moderations","Moderations","models","Models","fineTuning","FineTuning","vectorStores","VectorStores","Beta","batches","Batches","uploads","_options","defaultQuery","defaultHeaders","authHeaders","Authorization","stringifyQuery","DEFAULT_TIMEOUT","ChatCompletionsPage","ModelsPage","VectorStoresPage","VectorStoreSearchResponsesPage","BatchesPage","apiVersion","endpoint","deployment","azureADTokenProvider","API_KEY_SENTINEL","process","env","_azureADTokenProvider","deploymentName","buildRequest","props","_deployments_endpoints","path","method","isObj","model","__metadata","includes","_getAzureADToken","token","prepareOptions","uploads_2","shims","auto","setShims","property","Page","AbstractPage","getPaginatedItems","nextPageParams","nextPageInfo","has_more","hasNextPage","info","fromEntries","searchParams","after","batchId","Threads","MessagesAPI","messages_1","RunsAPI","runs_1","Messages","createAndRun","createAndRunPoll","thread_id","createAndRunStream","createThreadAssistantStream","MessagesPage","ChatCompletionStoreMessagesPage","AssistantsPage","Assistants","assistantId","PartsAPI","parts_1","parts","Parts","uploadId","complete","completionId","VectorStoreFilesPage","FileBatches","Util_1","vectorStoreId","batch","listFiles","uploadAndPoll","fileIds","configuredConcurrency","maxConcurrency","concurrencyLimit","Math","min","fileIterator","allFileIds","workers","fill","iterator","item","fileObj","purpose","allSettledWithThrow","file_ids","promises","results","allSettled","rejected","console","reason","validateInputTools","hasAutoParseableInput","shouldParseToolCall","maybeParseChatCompletion","makeParseableTool","isAutoParsableResponseFormat","makeParseableTextFormat","makeParseableResponseFormat","response_format","choice","finish_reason","LengthFinishReasonError","ContentFilterFinishReasonError","toolCall","inputTool","find","parsed_arguments","parseToolCall","parseResponseFormat","parser","defineProperties","$brand","callback","JobsAPI","jobs_1","jobs","MalformedJSON","PartialJSON","partialParse","input","jsonString","allowPartial","ATOM","trim","allow","markPartialJSON","msg","throwMalformedError","parseAny","skipBlank","parseStr","parseObj","parseArr","substring","startsWith","Infinity","NaN","parseNum","escape","charAt","Number","e","lastIndexOf","_parseJSON","parseJSON","Allow","Realtime","SessionsAPI","sessions_1","sessions","Sessions","FileContentResponsesPage","fileResponse","upload","fileInfo","file_id","__exportStar","p","createForm","maybeMultipartFormRequestOptions","isMultipartBody","isUploadable","isBlobLike","isFileLike","isResponseLike","index_1","index_2","blob","URL","pathname","split","pop","arrayBuffer","bits","ArrayBuffer","isView","isAsyncIterableIterator","getOwnPropertyNames","propsForError","chunk","getBytes","getStringFromMaybeBuffer","filename","getName","lastModified","size","text","slice","Buffer","Symbol","asyncIterator","toStringTag","hasUploadableValue","all","entries","addFormValue","append","entry","prop","FileBatchesAPI","file_batches_1","FilesAPI","fileBatches","search","ChatCompletionRunner","AbstractChatCompletionRunner_1","runFunctions","runner","runTools","ParsingToolFunction","ParsingFunction","_ChatCompletionStream_instances","_ChatCompletionStream_params","_ChatCompletionStream_choiceEventStates","_ChatCompletionStream_currentChatCompletionSnapshot","_ChatCompletionStream_beginRequest","_ChatCompletionStream_getChoiceEventState","_ChatCompletionStream_addChunk","_ChatCompletionStream_emitToolCallDoneEvent","_ChatCompletionStream_emitContentDoneEvents","_ChatCompletionStream_endRequest","_ChatCompletionStream_getAutoParseableResponseFormat","_ChatCompletionStream_accumulateChatCompletion","ChatCompletionStream","streaming_1","parser_2","currentChatCompletionSnapshot","fromReadableStream","_fromReadableStream","createChatCompletion","readableStream","Stream","chatId","content_done","refusal_done","logprobs_content_done","logprobs_refusal_done","done_tool_calls","current_tool_call_index","choiceSnapshot","delta","snapshot","logprobs","toolCallDelta","toolCallSnapshot","arguments_delta","toolCallIndex","responseFormat","created","system_fingerprint","choiceRest","messageRest","toolRest","fnRest","str","finalizeChatCompletion","_b","_c","_d","assign","other","pushQueue","readQueue","reader","shift","err","next","return","toReadableStream","VERSION","messageId","AssistantsAPI","ChatAPI","assistants_1","RealtimeAPI","realtime_1","ThreadsAPI","threads_1","realtime","assistants","isPresent","_ResponseStream_instances","_ResponseStream_params","_ResponseStream_currentResponseSnapshot","_ResponseStream_finalResponse","_ResponseStream_beginRequest","_ResponseStream_addEvent","_ResponseStream_endRequest","_ResponseStream_accumulateResponse","_createResponse","output","output_index","content_index","parsedResponse","maybeParseResponse","finalizeResponse","part","finalResponse","ReadableStreamToAsyncIterable","getReader","read","releaseLock","cancelPromise","_iterSSEMessages","line_1","stream_utils_1","error_2","fromSSEResponse","consumed","sse","raw","line","lineDecoder","LineDecoder","iter","decode","flush","iterLines","tee","left","right","teeIterator","queue","self","TextEncoder","pull","ctrl","close","bytes","enqueue","sseDecoder","SSEDecoder","sseChunk","Uint8Array","binaryChunk","patternIndex","newData","findDoubleNewlineIndex","iterSSEChunks","chunks","endsWith","fieldname","_","indexOf","partition","createVariation","edit","generate","ChatCompletionStreamingRunner","ChatCompletionStream_1","stepId","makeParseableResponseTool","parseTextFormat","text_format","getInputToolByName","input_tools","texts","output_text","output_parsed","ChatCompletionRunner_1","ChatCompletionStreamingRunner_1","ChatCompletionStreamingRunner_2","ChatCompletionStream_2","ChatCompletionRunner_2","getReactHooks","window","React","useState","useEffect","useRef","geminiFlash","prompt","contents","json","candidates","DEFAULT_PROMPT","organizationKey","position","bottom","onError","setStatus","isClient","setIsClient","componentPosition","isHighlighting","setIsHighlighting","hasInteracted","setHasInteracted","setPrompt","isSessionReady","setIsSessionReady","isConnecting","setIsConnecting","showOnboarding","setShowOnboarding","onboardingStep","setOnboardingStep","conversationIdRef","componentRef","openaiClientRef","peerConnectionRef","dataChannelRef","hasCreatedConversationRef","mediaStreamRef","audioElementRef","ephemeralToken","setEphemeralToken","hasInitializedRef","isConversationActive","setIsConversationActive","logMessage","sender","current","ok","statusText","fetchEphemeralToken","promptToUse","promptResponse","promptData","errorText","client_secret","sendMessage","readyState","send","cleanupWebRTC","getAudioTracks","track","stop","srcObject","hasInteractedBefore","localStorage","getItem","crypto","randomUUID","userId","time","toTimeString","conversation","log","remove","clickElement","element","rect","clickEffectContainer","document","createElement","style","cssText","width","top","height","appendChild","clickRipple","clickDot","clickEvent","MouseEvent","view","bubbles","cancelable","clickableElements","querySelectorAll","clickableElement","dispatchEvent","originalBoxShadow","boxShadow","originalTransition","transition","originalZIndex","zIndex","initializeWebRTC","audioStream","tokenParam","authToken","RTCPeerConnection","addTrack","audioEl","autoplay","ontrack","MediaStream","dc","createDataChannel","onopen","session","properties","selector","oneOf","items","required","turn_detection","create_response","interrupt_response","input_audio_transcription","language","onmessage","transcript","out","argsToUse","parsedArgs","selectors","cursorElement","currentSelector","node","evaluate","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","Element","querySelector","getBoundingClientRect","innerHTML","viewportWidth","innerWidth","viewportHeight","innerHeight","offsetHeight","animation","call_id","code","fragment","createOffer","offer","setLocalDescription","localDescription","sdp","sdpResponse","answerSdp","answer","setRemoteDescription","startConversationSession","enabled","navigator","mediaDevices","getUserMedia","echoCancellation","noiseSuppression","autoGainControl","channelCount","sampleRate","ref","className","onClick","setItem","cursor","title","combine","is_regexp","compact","assign_single_source","merge","hex_table","array","toUpperCase","target","source","plainObjects","allowPrototypes","concat","mergeTarget","array_to_object","targetItem","reduce","acc","strWithoutPlus","unescape","decodeURIComponent","limit","_defaultEncoder","_kind","string","$0","segment","charCodeAt","refs","val","compacted","compact_queue","isBuffer","a","b","mapped","_AbstractPage_client","toBase64","getHeader","getRequiredHeader","isHeadersProtocol","debug","hasOwn","isEmptyObj","maybeCoerceBoolean","maybeCoerceFloat","maybeCoerceInteger","coerceBoolean","coerceFloat","coerceInteger","ensurePresent","castToError","safeJSON","createResponseHeaders","PagePromise","APIPromise","version_1","defaultParseResponse","__streamClass","contentType","mediaType","_addRequestID","responsePromise","transform","asResponse","request_id","parsedPromise","onfulfilled","onrejected","onfinally","finally","overriddenFetch","validatePositiveInteger","getUserAgent","getPlatformHeaders","validateHeaders","customHeaders","defaultIdempotencyKey","uuid4","methodRequest","patch","put","request","DataView","buffer","requestAPIList","calculateContentLength","byteLength","retryCount","__binaryRequest","contentLength","buildURL","minAgentTimeout","idempotencyHeader","idempotencyKey","req","buildHeaders","agent","reqHeaders","applyHeadersMut","prepareRequest","parseHeaders","from","header","makeStatusError","remainingRetries","makeRequest","optionsInput","retriesRemaining","fetchWithTimeout","retryRequest","responseHeaders","shouldRetry","errText","errJSON","errMessage","isAbsoluteURL","encodeURIComponent","init","ms","fetchOptions","clearTimeout","shouldRetryHeader","timeoutMillis","retryAfterMillisHeader","timeoutMs","parseFloat","retryAfterHeader","timeoutSeconds","calculateDefaultRetryTimeoutMillis","numRetries","pow","random","getNextPage","nextInfo","nextOptions","iterPages","page","Proxy","toLowerCase","requestOptionsKeys","every","normalizeArch","arch","normalizePlatform","platform","_platformHeaders","Deno","build","os","version","deno","EdgeRuntime","browserInfo","browserPatterns","pattern","match","exec","userAgent","browser","getBrowserInfo","getPlatformProperties","startsWithSchemeRegexp","test","isInteger","_k","targetHeaders","newHeaders","lowerKey","round","Boolean","SENSITIVE_HEADERS","action","modifiedArgs","arg","modifiedArg","r","foundHeader","lowerCasedHeader","intercapsHeader","_m","g1","g2","warn","btoa","_AssistantStream_instances","_AssistantStream_events","_AssistantStream_runStepSnapshots","_AssistantStream_messageSnapshots","_AssistantStream_messageSnapshot","_AssistantStream_finalRun","_AssistantStream_currentContentIndex","_AssistantStream_currentContent","_AssistantStream_currentToolCallIndex","_AssistantStream_currentToolCall","_AssistantStream_currentEvent","_AssistantStream_currentRunSnapshot","_AssistantStream_currentRunStepSnapshot","_AssistantStream_addEvent","_AssistantStream_endRequest","_AssistantStream_handleMessage","_AssistantStream_handleRunStep","_AssistantStream_handleEvent","_AssistantStream_accumulateRunStep","_AssistantStream_accumulateMessage","_AssistantStream_accumulateContent","_AssistantStream_handleRun","_addRun","_runToolAssistantStream","_createToolAssistantStream","thread","_threadAssistantStream","_runAssistantStream","currentEvent","currentRun","currentMessageSnapshot","currentRunStepSnapshot","finalRunSteps","finalMessages","finalRun","_createThreadAssistantStream","_createAssistantStream","accumulateDelta","deltaValue","accValue","deltaEntry","accEntry","accumulatedMessage","newContent","snapshotContent","textDelta","image_file","currentContent","accumulatedRunStep","step_details","accumulated","contentElement","makeMessage","param","errorResponse","_LineDecoder_carriageReturnIndex","lines","findNewlineIndex","carriage","decodeText","endIndex","preceding","TextDecoder","textDecoder","startIndex","NEWLINE_CHARS","NEWLINE_REGEXP","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|