llm-zoo 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ModelConfig.ts","../src/providers/anthropicModels.ts","../src/providers/copilotModels.ts","../src/providers/dashscopeModels.ts","../src/providers/deepseekModels.ts","../src/providers/googleModels.ts","../src/providers/moonshotModels.ts","../src/providers/openaiDeepResearchModels.ts","../src/providers/openaiModels.ts","../src/providers/openaiReasoningModels.ts","../src/providers/otherModels.ts","../src/providers/xaiModels.ts","../src/ModelRegistry.ts","../src/utils.ts"],"names":["ReasoningEffort","ModelProvider"],"mappings":";;;AAYO,IAAM,sBAAA,GAAyB;AAM/B,IAAK,eAAA,qBAAAA,gBAAAA,KAAL;AAEL,EAAAA,iBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AAEP,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,iBAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AAVG,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAiBL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AAEZ,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,eAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AAEZ,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AAlBC,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AA4FL,IAAM,0BAAA,GAAgD;AAAA,EAC3D,uBAAA,EAAyB,IAAA;AAAA,EACzB,uBAAA,EAAyB,KAAA;AAAA,EACzB,uBAAA,EAAyB,KAAA;AAAA,EACzB,2BAAA,EAA6B,KAAA;AAAA,EAC7B,qBAAA,EAAuB,KAAA;AAAA,EACvB,yBAAA,EAA2B,KAAA;AAAA,EAC3B,mBAAA,EAAqB,CAAA;AAAA,EACrB,iBAAA,EAAmB,KAAA;AAAA,EACnB,2BAAA,EAA6B,KAAA;AAAA,EAC7B,eAAA,EAAiB,MAAA;AAAA,EACjB,cAAA,EAAgB,IAAA;AAAA,EAChB,iBAAA,EAAmB,KAAA;AAAA,EACnB,wBAAA,EAA0B,KAAA;AAAA,EAC1B,wBAAA,EAA0B,KAAA;AAAA,EAC1B,qBAAA,EAAuB,KAAA;AAAA,EACvB,oBAAA,EAAsB,IAAA;AAAA,EACtB,qBAAA,EAAuB,KAAA;AAAA,EACvB,uBAAA,EAAyB,KAAA;AAAA,EACzB,mBAAA,EAAqB;AACvB;;;ACxIA,IAAM,8BAAA,GAAoD;AAAA,EACxD,GAAG,0BAAA;AAAA,EACH,qBAAA,EAAuB,IAAA;AAAA,EACvB,mBAAA,EAAqB,GAAA;AAAA,EACrB,qBAAA,EAAuB,IAAA;AAAA,EACvB,cAAA,EAAgB,IAAA;AAAA,EAChB,iBAAA,EAAmB,IAAA;AAAA,EACnB,uBAAA,EAAyB,KAAA;AAAA,EACzB,uBAAA,EAAyB,KAAA;AAAA,EACzB,2BAAA,EAA6B;AAC/B,CAAA;AAMO,IAAM,gBAAA,GAAgD;AAAA,EAC3D,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,iBAAA;AAAA,IACV,kBAAA,EAAoB,oCAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,iBAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,yBAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,yBAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,sCAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,6BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,2BAAA;AAAA,IACV,kBAAA,EAAoB,qCAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,2BAAA;AAAA,IACV,kBAAA,EAAoB,4BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,4BAAA;AAAA,IACV,kBAAA,EAAoB,sCAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,KAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,4BAAA;AAAA,IACV,kBAAA,EAAoB,6BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,8BAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,4BAAA;AAAA,IACV,kBAAA,EAAoB,kCAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,4BAAA;AAAA,IACV,kBAAA,EAAoB,2CAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2CAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,2BAAA;AAAA,IACV,kBAAA,EAAoB,iCAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB,KAAA;AAAA,MACnB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,yBAAA;AAAA,IACV,kBAAA,EAAoB,0CAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,wBAAA,EAA0B,IAAA;AAAA,MAC1B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AC1XA,IAAM,4BAAA,GAAkD;AAAA,EACtD,GAAG,0BAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,iBAAA,EAAmB;AACrB,CAAA;AAMO,IAAM,cAAA,GAA8C;AAAA,EACzD,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,gBAAA;AAAA,IACV,QAAA,EAAA,SAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,4BAAA;AAAA,MACH,eAAA,EAAA,QAAA;AAAA,KACF;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AC1BA,IAAM,8BAAA,GAAoD;AAAA,EACxD,GAAG,0BAAA;AAAA,EACH,qBAAA,EAAuB,KAAA;AAAA,EACvB,cAAA,EAAgB,IAAA;AAAA,EAChB,oBAAA,EAAsB;AACxB,CAAA;AAMO,IAAM,gBAAA,GAAgD;AAAA,EAC3D,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,kBAAA,EAAoB,eAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,kBAAA,EAAoB,gBAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,iBAAA;AAAA,IACpB,QAAA,EAAA,WAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,8BAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AC1DA,IAAM,6BAAA,GAAmD;AAAA,EACvD,GAAG,0BAAA;AAAA,EACH,yBAAA,EAA2B,IAAA;AAAA,EAC3B,mBAAA,EAAqB,GAAA;AAAA,EACrB,cAAA,EAAgB;AAClB,CAAA;AAUO,IAAM,eAAA,GAA+C;AAAA;AAAA,EAE1D,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,kBAAA,EAAoB,wBAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,wBAAA,EAA0B,IAAA;AAAA,MAC1B,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA;AAAA,EAEA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,wBAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,KAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA;AAAA,EAEA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,iCAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,MAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,KAAA;AAAA,MACzB,uBAAA,EAAyB,KAAA;AAAA,MACzB,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB,KAAA;AAAA,IAChB,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,kBAAA,EAAoB,gCAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,kBAAA,EAAoB,gCAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,IAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,IAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;ACjIA,IAAM,2BAAA,GAAiD;AAAA,EACrD,GAAG,0BAAA;AAAA,EACH,mBAAA,EAAqB,IAAA;AAAA,EACrB,iBAAA,EAAmB,IAAA;AAAA,EACnB,cAAA,EAAgB,IAAA;AAAA,EAChB,mBAAA,EAAqB,IAAA;AAAA,EACrB,uBAAA,EAAyB,KAAA;AAAA,EACzB,uBAAA,EAAyB;AAC3B,CAAA;AAMO,IAAM,aAAA,GAA6C;AAAA,EACxD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,sBAAA;AAAA,IACV,kBAAA,EAAoB,6BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,qBAAA,EAAuB,IAAA;AAAA,MACvB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,IAAA;AAAA,MACzB,eAAA,EAAA,MAAA;AAAA,MACA,2BAAA,EAA6B,IAAA;AAAA,MAC7B,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,+BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,qBAAA,EAAuB,IAAA;AAAA,MACvB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,IAAA;AAAA,MACzB,eAAA,EAAA,MAAA;AAAA,MACA,2BAAA,EAA6B,IAAA;AAAA,MAC7B,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,gBAAA;AAAA,IACV,kBAAA,EAAoB,uBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,qBAAA,EAAuB,IAAA;AAAA,MACvB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,KAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,qBAAA;AAAA,IACV,kBAAA,EAAoB,yCAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,qBAAA,EAAuB,IAAA;AAAA,MACvB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,KAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,aAAA,EAAe;AAAA,IACb,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,kBAAA,EAAoB,yBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,qBAAA,EAAuB,IAAA;AAAA,MACvB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,KAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,uCAAA;AAAA,IACV,kBAAA,EAAoB,8CAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,qBAAA,EAAuB,IAAA;AAAA,MACvB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,KAAA;AAAA,MACzB,2BAAA,EAA6B;AAAA,KAC/B;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AC7IA,IAAM,6BAAA,GAAmD;AAAA,EACvD,GAAG,0BAAA;AAAA,EACH,qBAAA,EAAuB,KAAA;AAAA,EACvB,oBAAA,EAAsB;AACxB,CAAA;AAMO,IAAM,eAAA,GAA+C;AAAA,EAC1D,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,kBAAA,EAAoB,6BAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,yBAAA;AAAA,IACV,kBAAA,EAAoB,oCAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,uBAAA;AAAA,IACV,kBAAA,EAAoB,kCAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,sBAAA;AAAA,IACV,kBAAA,EAAoB,yBAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,mBAAA,EAAqB,IAAA;AAAA,MACrB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,uBAAA;AAAA,IACV,kBAAA,EAAoB,0BAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,YAAY,IAAA,GAAO,CAAA;AAAA,IACnB,aAAa,IAAA,GAAO,CAAA;AAAA,IACpB,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,yBAAA,EAA2B,IAAA;AAAA,MAC3B,mBAAA,EAAqB,IAAA;AAAA,MACrB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,kBAAA,EAAoB,6BAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,IAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,yBAAA,EAA2B,IAAA;AAAA,MAC3B,mBAAA,EAAqB,IAAA;AAAA,MACrB,eAAA,EAAA,MAAA;AAAA,KACF;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,mCAAA;AAAA,IACpB,QAAA,EAAA,UAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,YAAY,IAAA,GAAO,CAAA;AAAA,IACnB,aAAa,IAAA,GAAO,CAAA;AAAA,IACpB,YAAA,EAAc;AAAA,MACZ,GAAG,6BAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,iBAAA,EAAmB,IAAA;AAAA,MACnB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,yBAAA,EAA2B,IAAA;AAAA,MAC3B,mBAAA,EAAqB,IAAA;AAAA,MACrB,eAAA,EAAA,MAAA;AAAA,KACF;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AClIA,IAAM,yCAAA,GAA+D;AAAA,EACnE,GAAG,0BAAA;AAAA,EACH,uBAAA,EAAyB,KAAA;AAAA,EACzB,yBAAA,EAA2B,IAAA;AAAA,EAC3B,mBAAA,EAAqB,IAAA;AAAA,EACrB,iBAAA,EAAmB,IAAA;AAAA,EACnB,qBAAA,EAAuB,KAAA;AAAA,EACvB,cAAA,EAAgB,IAAA;AAAA,EAChB,uBAAA,EAAyB,IAAA;AAAA,EACzB,uBAAA,EAAyB,IAAA;AAAA,EACzB,2BAAA,EAA6B,IAAA;AAAA,EAC7B,iBAAA,EAAmB;AACrB,CAAA;AAMO,IAAM,2BAAA,GAA2D;AAAA,EACtE,kBAAA,EAAoB;AAAA,IAClB,IAAA,EAAM,kBAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,kBAAA,EAAoB,yBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG;AAAA,KACL;AAAA,IACA,cAAA,EAAgB,KAAA;AAAA,IAChB,oBAAA,EAAsB;AAAA,GACxB;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,IAAA,EAAM,uBAAA;AAAA,IACN,QAAA,EAAU,uBAAA;AAAA,IACV,kBAAA,EAAoB,8BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG;AAAA,KACL;AAAA,IACA,cAAA,EAAgB,KAAA;AAAA,IAChB,oBAAA,EAAsB;AAAA;AAE1B;;;ACpDA,IAAM,2BAAA,GAAiD;AAAA,EACrD,GAAG,0BAAA;AAAA,EACH,yBAAA,EAA2B,IAAA;AAAA,EAC3B,mBAAA,EAAqB,GAAA;AAAA,EACrB,qBAAA,EAAuB,IAAA;AAAA,EACvB,cAAA,EAAgB,IAAA;AAAA,EAChB,iBAAA,EAAmB,IAAA;AAAA,EACnB,uBAAA,EAAyB,KAAA;AAAA,EACzB,uBAAA,EAAyB,KAAA;AAAA,EACzB,2BAAA,EAA6B;AAC/B,CAAA;AAMO,IAAM,aAAA,GAA6C;AAAA,EACxD,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,gBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,mBAAA,EAAqB,IAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,yBAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,mBAAA,EAAqB,IAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,yBAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,mBAAA,EAAqB,IAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,iBAAA;AAAA,IACV,kBAAA,EAAoB,wBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,0BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,+BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,yBAAA,EAA2B,KAAA;AAAA,MAC3B,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,+BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,wBAAA,EAA0B;AAAA,KAC5B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,0BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,2BAAA;AAAA,MACH,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;ACxJA,IAAM,qCAAA,GAA2D;AAAA,EAC/D,GAAG,0BAAA;AAAA,EACH,yBAAA,EAA2B,IAAA;AAAA,EAC3B,mBAAA,EAAqB,GAAA;AAAA,EACrB,iBAAA,EAAmB,IAAA;AAAA,EACnB,qBAAA,EAAuB,IAAA;AAAA,EACvB,eAAA,EAAA,MAAA;AAAA,EACA,uBAAA,EAAyB;AAC3B,CAAA;AAMO,IAAM,uBAAA,GAAuD;AAAA,EAClE,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,IAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,iBAAA,EAAmB,IAAA;AAAA,MACnB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,eAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,yBAAA,EAA2B,KAAA;AAAA,MAC3B,iBAAA,EAAmB,IAAA;AAAA,MACnB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,IAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,kBAAA,EAAoB,WAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,IAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,iBAAA,EAAmB,IAAA;AAAA,MACnB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,mBAAA;AAAA,IACV,kBAAA,EAAoB,0BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,IAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,kBAAA,EAAoB,sBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,GAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,uBAAA,EAAyB,IAAA;AAAA,MACzB,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,uBAAA;AAAA,IACV,kBAAA,EAAoB,8BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,oBAAA,EAAsB;AAAA,KACxB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,cAAA,EAAgB,KAAA;AAAA,MAChB,oBAAA,EAAsB;AAAA,KACxB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,oBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,sBAAA;AAAA,IACV,kBAAA,EAAoB,6BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,yBAAA,EAA2B,KAAA;AAAA,MAC3B,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,kBAAA,EAAoB,yBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,GAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,GAAA;AAAA,MACrB,eAAA,EAAA,MAAA;AAAA,MACA,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,kBAAA,EAAoB,oBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,yBAAA,EAA2B,KAAA;AAAA,MAC3B,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB,IAAA;AAAA,MACnB,eAAA,EAAA,OAAA;AAAA,KACF;AAAA,IACA,oBAAA,EAAsB,IAAA;AAAA,IACtB,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,gBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,GAAA;AAAA,MACrB,eAAA,EAAA,OAAA;AAAA,MACA,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,uBAAA;AAAA,IACV,kBAAA,EAAoB,8BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,GAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,uBAAA;AAAA,IACV,kBAAA,EAAoB,8BAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,GAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,qCAAA;AAAA,MACH,mBAAA,EAAqB,GAAA;AAAA,MACrB,uBAAA,EAAyB,IAAA;AAAA,MACzB,uBAAA,EAAyB,IAAA;AAAA,MACzB,2BAAA,EAA6B,IAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA;AAAA,MAC1B,cAAA,EAAgB,IAAA;AAAA,MAChB,iBAAA,EAAmB;AAAA,KACrB;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;ACjVA,IAAM,0BAAA,GAAgD;AAAA,EACpD,GAAG;AACL,CAAA;AAMO,IAAM,YAAA,GAA4C;AAAA,EACvD,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,oCAAA;AAAA,IACV,kBAAA,EAAoB,oCAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,MAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAc,0BAAA;AAAA,IACd,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,sBAAA;AAAA,IACV,kBAAA,EAAoB,sBAAA;AAAA,IACpB,QAAA,EAAA,QAAA;AAAA,IACA,eAAA,EAAiB,IAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,IAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG;AAAA,KACL;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AClCA,IAAM,wBAAA,GAA8C;AAAA,EAClD,GAAG,0BAAA;AAAA,EACH,cAAA,EAAgB;AAClB,CAAA;AAMO,IAAM,UAAA,GAA0C;AAAA,EACrD,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,kBAAA;AAAA,IACpB,QAAA,EAAA,KAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,wBAAA;AAAA,MACH,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,aAAA;AAAA,IACpB,QAAA,EAAA,KAAA;AAAA,IACA,eAAA,EAAiB,MAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,wBAAA;AAAA,MACH,iBAAA,EAAmB,KAAA;AAAA,MACnB,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,kBAAA,EAAoB,uBAAA;AAAA,IACpB,QAAA,EAAA,KAAA;AAAA,IACA,eAAA,EAAiB,MAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,wBAAA;AAAA,MACH,iBAAA,EAAmB,IAAA;AAAA,MACnB,uBAAA,EAAyB,IAAA;AAAA,MACzB,eAAA,EAAA,KAAA;AAAA,KACF;AAAA,IACA,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,aAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,QAAA,EAAA,KAAA;AAAA,IACA,eAAA,EAAiB,MAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc,wBAAA;AAAA,IACd,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,kBAAA,EAAoB,4BAAA;AAAA,IACpB,QAAA,EAAA,KAAA;AAAA,IACA,eAAA,EAAiB,KAAA;AAAA,IACjB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,YAAA,EAAc;AAAA,MACZ,GAAG,wBAAA;AAAA,MACH,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB;;;AC7DO,IAAM,aAAA,GAA6C;AAAA,EACxD,GAAG,gBAAA;AAAA,EACH,GAAG,2BAAA;AAAA,EACH,GAAG,uBAAA;AAAA,EACH,GAAG,aAAA;AAAA,EACH,GAAG,aAAA;AAAA,EACH,GAAG,UAAA;AAAA,EACH,GAAG,YAAA;AAAA,EACH,GAAG,eAAA;AAAA,EACH,GAAG,eAAA;AAAA,EACH,GAAG,gBAAA;AAAA,EACH,GAAG;AACL;AAaO,IAAM,MAAA,GAAS,MAAA,CAAO,IAAA,CAAK,aAAa;;;ACxCxC,SAAS,OAAO,IAAA,EAAuC;AAC5D,EAAA,OAAO,cAAc,IAAI,CAAA;AAC3B;AAWO,SAAS,QAAQ,QAAA,EAA2C;AACjE,EAAA,OAAO,MAAA,CAAO,OAAO,aAAa,CAAA,CAAE,KAAK,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,QAAQ,CAAA;AACzE;AAKO,SAAS,OAAO,IAAA,EAAuB;AAC5C,EAAA,OAAO,IAAA,IAAQ,aAAA;AACjB;AAeO,SAAS,KAAK,QAAA,EAAwC;AAC3D,EAAA,OAAO,MAAA,CAAO,OAAO,aAAa,CAAA,CAAE,OAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,QAAQ,CAAA;AAC3E;AAcO,SAAS,MACd,SAAA,EACe;AACf,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,SAAA,CAAU,CAAA,CAAE,YAAY,CAAC,CAAA;AAC7E;AAYO,SAAS,WACd,UAAA,EACe;AACf,EAAA,OAAO,OAAO,MAAA,CAAO,aAAa,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM;AAChD,IAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,YAAA,CAAa,UAAU,CAAA;AACvC,IAAA,OAAO,OAAO,KAAA,KAAU,SAAA,GAAY,KAAA,GAAQ,KAAA,KAAU,MAAA;AAAA,EACxD,CAAC,CAAA;AACH;AAWO,SAAS,YAAY,SAAA,EAAkC;AAC5D,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,MAAA;AAAA,IAClC,CAAC,CAAA,KAAM,CAAA,CAAE,aAAA,IAAiB;AAAA,GAC5B;AACF;AAKO,SAAS,YAAA,GAA8B;AAC5C,EAAA,OAAO,MAAA,CAAO,OAAO,aAAa,CAAA,CAAE,OAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,cAAc,CAAA;AACrE;AAKO,SAAS,cAAA,GAAgC;AAC9C,EAAA,OAAO,MAAA,CAAO,OAAO,aAAa,CAAA,CAAE,OAAO,CAAC,CAAA,KAAM,EAAE,cAAc,CAAA;AACpE;AAsBO,SAAS,IAAA,CACd,OACA,MAAA,EACQ;AACR,EAAA,MAAM,SAAS,OAAO,KAAA,KAAU,QAAA,GAAW,MAAA,CAAO,KAAK,CAAA,GAAI,KAAA;AAC3D,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,eAAA,EAAkB,KAAK,CAAA,CAAE,CAAA;AAAA,EAC3C;AAEA,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,MAAA,GAAS,GAAE,GAAI,MAAA;AACtC,EAAA,MAAM,WAAW,KAAA,GAAQ,MAAA;AAEzB,EAAA,MAAM,SAAA,GAAa,QAAA,GAAW,GAAA,GAAa,MAAA,CAAO,UAAA;AAClD,EAAA,MAAM,YACH,MAAA,GAAS,GAAA,GAAa,MAAA,CAAO,UAAA,GAAa,OAAO,YAAA,CAAa,mBAAA;AACjE,EAAA,MAAM,UAAA,GAAc,MAAA,GAAS,GAAA,GAAa,MAAA,CAAO,WAAA;AAEjD,EAAA,OAAO,YAAY,SAAA,GAAY,UAAA;AACjC;AAWO,SAAS,OAAA,CAAQ,OAA6B,WAAA,EAA6B;AAChF,EAAA,MAAM,SAAS,OAAO,KAAA,KAAU,QAAA,GAAW,MAAA,CAAO,KAAK,CAAA,GAAI,KAAA;AAC3D,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,eAAA,EAAkB,KAAK,CAAA,CAAE,CAAA;AAAA,EAC3C;AACA,EAAA,OAAO,IAAA,CAAK,QAAQ,EAAE,KAAA,EAAO,aAAa,MAAA,EAAQ,MAAA,CAAO,iBAAiB,CAAA;AAC5E;AAcO,SAAS,YAAA,CACd,QACA,MAAA,EACwC;AACxC,EAAA,OAAO,MAAA,CACJ,GAAA,CAAI,CAAC,CAAA,KAAM;AACV,IAAA,MAAM,SAAS,OAAO,CAAA,KAAM,QAAA,GAAW,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AACnD,IAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,KAAA,CAAM,CAAA,eAAA,EAAkB,CAAC,CAAA,CAAE,CAAA;AAClD,IAAA,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,MAAM,IAAA,CAAK,MAAA,EAAQ,MAAM,CAAA,EAAE;AAAA,EACrD,CAAC,EACA,IAAA,CAAK,CAAC,GAAG,CAAA,KAAM,CAAA,CAAE,IAAA,GAAO,CAAA,CAAE,IAAI,CAAA;AACnC;AAqBO,SAAS,QAAA,CACd,cACA,OAAA,EACyB;AACzB,EAAA,MAAM,aAAa,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM;AAC5D,IAAA,IAAI,OAAA,EAAS,UAAA,IAAc,CAAA,CAAE,aAAA,GAAgB,QAAQ,UAAA,EAAY;AAC/D,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,IAAI,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,QAAA,KAAa,QAAQ,QAAA,EAAU;AACxD,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA,EAAG;AACvD,MAAA,IAAI,CAAA,CAAE,YAAA,CAAa,GAA8B,CAAA,KAAM,KAAA,EAAO;AAC5D,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,IAAI,UAAA,CAAW,MAAA,KAAW,CAAA,EAAG,OAAO,MAAA;AAEpC,EAAA,OAAO,UAAA,CAAW,IAAA;AAAA,IAChB,CAAC,GAAG,CAAA,KAAM,CAAA,CAAE,aAAa,CAAA,CAAE,WAAA,IAAe,CAAA,CAAE,UAAA,GAAa,CAAA,CAAE,WAAA;AAAA,IAC3D,CAAC,CAAA;AACL;AAeO,SAAS,SAAA,CACd,oBACA,YAAA,EACyB;AACzB,EAAA,IAAI,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,MAAA;AAAA,IAC5C,CAAC,CAAA,KAAM,CAAA,CAAE,UAAA,GAAa,EAAE,WAAA,IAAe;AAAA,GACzC;AAEA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,UAAA,GAAa,UAAA,CAAW,MAAA,CAAO,CAAC,CAAA,KAAM;AACpC,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA,EAAG;AACvD,QAAA,IAAI,CAAA,CAAE,YAAA,CAAa,GAA8B,CAAA,KAAM,KAAA,EAAO;AAC5D,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,UAAA,CAAW,MAAA,KAAW,CAAA,EAAG,OAAO,MAAA;AAGpC,EAAA,OAAO,UAAA,CAAW,IAAA;AAAA,IAChB,CAAC,GAAG,CAAA,KAAO,CAAA,CAAE,aAAa,CAAA,CAAE,WAAA,IAAgB,CAAA,CAAE,UAAA,GAAa,CAAA,CAAE,WAAA;AAAA,IAC7D,CAAC,CAAA;AACL;AAYO,SAAS,MAAA,CACd,EAAA,EACA,KAAA,GAAwB,KAAA,EACT;AACf,EAAA,MAAM,QAAA,GAAW,CAAC,CAAA,KAA2B;AAC3C,IAAA,QAAQ,EAAA;AAAI,MACV,KAAK,OAAA;AACH,QAAA,OAAO,CAAA,CAAE,aAAa,CAAA,CAAE,WAAA;AAAA,MAC1B,KAAK,SAAA;AACH,QAAA,OAAO,CAAA,CAAE,aAAA;AAAA,MACX,KAAK,QAAA;AACH,QAAA,OAAO,CAAA,CAAE,eAAA;AAAA;AACb,EACF,CAAA;AAEA,EAAA,OAAO,OAAO,MAAA,CAAO,aAAa,EAAE,IAAA,CAAK,CAAC,GAAG,CAAA,KAAM;AACjD,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,CAAC,CAAA,GAAI,SAAS,CAAC,CAAA;AACrC,IAAA,OAAO,KAAA,KAAU,KAAA,GAAQ,IAAA,GAAO,CAAC,IAAA;AAAA,EACnC,CAAC,CAAA;AACH;AAeO,SAAS,QAAA,GAMd;AACA,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA;AAG1C,EAAA,MAAM,YAAY,EAAC;AACnB,EAAA,KAAA,MAAW,QAAA,IAAY,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,EAAG;AACnD,IAAA,SAAA,CAAU,QAAQ,IAAI,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,QAAQ,CAAA,CAAE,MAAA;AAAA,EACtE;AAGA,EAAA,MAAM,cAAA,GAAiB;AAAA,IACrB,yBAAA;AAAA,IACA,mBAAA;AAAA,IACA,gBAAA;AAAA,IACA,6BAAA;AAAA,IACA,yBAAA;AAAA,IACA,uBAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,eAAuC,EAAC;AAC9C,EAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,IAAA,MAAM,QAAA,GAAW,IAAI,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA,CAAE,OAAA,CAAQ,UAAU,EAAE,CAAA;AACjE,IAAA,YAAA,CAAa,QAAQ,IAAI,MAAA,CAAO,MAAA;AAAA,MAC9B,CAAC,CAAA,KAAM,CAAA,CAAE,YAAA,CAAa,GAA8B;AAAA,KACtD,CAAE,MAAA;AAAA,EACJ;AAGA,EAAA,MAAM,OAAA,GAAU,CAAC,GAAG,MAAM,CAAA,CAAE,IAAA;AAAA,IAC1B,CAAC,GAAG,CAAA,KAAM,CAAA,CAAE,aAAa,CAAA,CAAE,WAAA,IAAe,CAAA,CAAE,UAAA,GAAa,CAAA,CAAE,WAAA;AAAA,GAC7D;AACA,EAAA,MAAM,SAAA,GAAY,CAAC,GAAG,MAAM,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,aAAA,GAAgB,CAAA,CAAE,aAAa,CAAA;AAE9E,EAAA,OAAO;AAAA,IACL,aAAa,MAAA,CAAO,MAAA;AAAA,IACpB,SAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,QAAA,EAAU,QAAQ,CAAC,CAAA;AAAA,MACnB,aAAA,EAAe,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,CAAC;AAAA,KAC3C;AAAA,IACA,OAAA,EAAS;AAAA,MACP,QAAA,EAAU,UAAU,CAAC,CAAA;AAAA,MACrB,OAAA,EAAS,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAC;AAAA;AACzC,GACF;AACF;AAOO,IAAM,QAAA,GAAW;AAEjB,IAAM,kBAAA,GAAqB;AAE3B,IAAM,QAAA,GAAW;AAEjB,IAAM,mBAAA,GAAsB;AAE5B,IAAM,kBAAA,GAAqB;AAE3B,IAAM,uBAAA,GAA0B;AAEhC,SAAS,aAAA,CACd,KAAA,EACA,WAAA,EACA,YAAA,EACA,oBAA4B,CAAA,EACpB;AACR,EAAA,OAAO,IAAA,CAAK,OAAO,EAAE,KAAA,EAAO,aAAa,MAAA,EAAQ,YAAA,EAAc,MAAA,EAAQ,iBAAA,EAAmB,CAAA;AAC5F;AAEO,IAAM,eAAA,GAAkB;AAExB,SAAS,kBAAA,CACd,MAAA,EACA,SAAA,GAAqB,IAAA,EACN;AACf,EAAA,OAAO,MAAA,CAAO,MAAA,EAAQ,SAAA,GAAY,KAAA,GAAQ,MAAM,CAAA;AAClD;AAEO,SAAS,iBAAA,CACd,cACA,gBAAA,EACyB;AACzB,EAAA,OAAO,QAAA,CAAS,cAAc,gBAAA,KAAqB,MAAA,GAAY,EAAE,UAAA,EAAY,gBAAA,EAAiB,GAAI,EAAE,CAAA;AACtG;AAEO,IAAM,gBAAA,GAAmB","file":"index.cjs","sourcesContent":["/**\n * Configuration types and constants for language model interactions and capabilities.\n * This module provides a comprehensive type system for describing LLM capabilities,\n * pricing, and provider-specific configurations.\n *\n * @packageDocumentation\n */\n\n/**\n * Default context window size in tokens.\n * Used as fallback when model doesn't specify a custom context window.\n */\nexport const DEFAULT_CONTEXT_WINDOW = 128000;\n\n/**\n * Reasoning effort levels for models that support configurable reasoning depth.\n * Higher effort typically results in better reasoning quality but increased latency and cost.\n */\nexport enum ReasoningEffort {\n /** Extra high reasoning effort - maximum depth analysis */\n XHIGH = 'xhigh',\n /** High reasoning effort - thorough analysis */\n HIGH = 'high',\n /** Medium reasoning effort - balanced analysis */\n MEDIUM = 'medium',\n /** Low reasoning effort - quick analysis */\n LOW = 'low',\n /** No explicit reasoning - standard model behavior */\n NONE = 'none',\n}\n\n/**\n * Supported language model providers.\n * Each provider has specific API formats, capabilities, and pricing structures.\n */\nexport enum ModelProvider {\n /** Anthropic (Claude models) */\n ANTHROPIC = 'anthropic',\n /** OpenAI (GPT, o-series models) */\n OPENAI = 'openai',\n /** Google (Gemini models) */\n GOOGLE = 'google',\n /** DeepSeek (V3, R1 models) */\n DEEPSEEK = 'deepseek',\n /** xAI (Grok models) */\n XAI = 'xai',\n /** Moonshot AI (Kimi models) */\n MOONSHOT = 'moonshot',\n /** Alibaba DashScope (Qwen models) */\n DASHSCOPE = 'dashscope',\n /** GitHub Copilot */\n COPILOT = 'copilot',\n /** Other providers (OpenRouter-only models, etc.) */\n OTHERS = 'others',\n}\n\n/**\n * Feature flags defining a model's supported capabilities and behaviors.\n * These capabilities help determine which features can be used with a specific model.\n */\nexport interface ModelCapabilities {\n /** Whether the model supports function/tool calling */\n supportsFunctionCalling: boolean;\n\n /** Whether the model supports native MCP (Model Context Protocol) servers */\n supportsNativeMCPServer: boolean;\n\n /** Whether the model has built-in web search capability */\n supportsNativeWebSearch: boolean;\n\n /** Whether the model can execute code natively (e.g., Python sandbox) */\n supportsNativeCodeExecution: boolean;\n\n /** Whether the model supports explicit prompt caching */\n supportsPromptCaching: boolean;\n\n /** Whether the model automatically caches prompts without explicit markers */\n supportsAutoPromptCaching: boolean;\n\n /**\n * Cost multiplier for cached tokens (0.0-1.0).\n * Lower values mean greater savings when using cached content.\n * Example: 0.1 means cached tokens cost 10% of normal price.\n */\n cacheDiscountFactor: number;\n\n /** Whether the model supports extended reasoning/thinking */\n supportsReasoning: boolean;\n\n /** Whether reasoning can be interleaved with regular output */\n supportsInterleavedThinking: boolean;\n\n /** Whether the model supports configurable reasoning effort levels */\n supportsReasoningEffort: boolean;\n\n /** Default reasoning effort level when reasoning is enabled */\n reasoningEffort: ReasoningEffort;\n\n /** Whether the model can process images */\n supportsVision: boolean;\n\n /** Whether the model can process PDF documents natively */\n supportsNativePdf: boolean;\n\n /** Whether the model can process audio input natively */\n supportsNativeAudio: boolean;\n\n /** Whether the model supports assistant message prefilling */\n supportsAssistantPrefill: boolean;\n\n /** Whether the model supports predictive/speculative output */\n supportsPredictiveOutput: boolean;\n\n /** Whether the model provides accurate token counting */\n supportsTokenCounting: boolean;\n\n /** Whether the model supports system prompts */\n supportsSystemPrompt: boolean;\n\n /** Whether the model supports intermediate developer messages */\n supportsIntermDevMsgs: boolean;\n}\n\n/**\n * Base model capabilities with sensible defaults.\n * Models should spread this and override specific capabilities.\n */\nexport const DEFAULT_MODEL_CAPABILITIES: ModelCapabilities = {\n supportsFunctionCalling: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n supportsPromptCaching: false,\n supportsAutoPromptCaching: false,\n cacheDiscountFactor: 1.0,\n supportsReasoning: false,\n supportsInterleavedThinking: false,\n reasoningEffort: ReasoningEffort.NONE,\n supportsVision: true,\n supportsNativePdf: false,\n supportsAssistantPrefill: false,\n supportsPredictiveOutput: false,\n supportsTokenCounting: false,\n supportsSystemPrompt: true,\n supportsIntermDevMsgs: false,\n supportsReasoningEffort: false,\n supportsNativeAudio: false,\n};\n\n/**\n * Complete configuration for a language model.\n * Contains all metadata needed to work with the model including\n * pricing, capabilities, and provider-specific settings.\n */\nexport interface ModelConfig {\n /**\n * Short identifier for the model (e.g., \"sonnet45\", \"gpt4o\").\n * Used as the key in the registry and for quick reference.\n */\n name: string;\n\n /**\n * Full API model identifier (e.g., \"claude-sonnet-4-5\", \"gpt-4o-2024-11-20\").\n * This is the actual string sent to the provider's API.\n */\n fullName: string;\n\n /** The model's provider */\n provider: ModelProvider;\n\n /** Maximum tokens the model can generate in a single response */\n maxOutputTokens: number;\n\n /** Cost per million input tokens in USD */\n inputPrice: number;\n\n /** Cost per million output tokens in USD */\n outputPrice: number;\n\n /** Maximum context window size in tokens */\n contextWindow: number;\n\n /** Model capability flags */\n capabilities: ModelCapabilities;\n\n /**\n * Whether this model is only available through OpenRouter.\n * When true, direct API access is not available.\n */\n openRouterOnly: boolean;\n\n /**\n * Model identifier for OpenRouter API.\n * Example: \"anthropic/claude-sonnet-4.5\"\n */\n openrouterFullName?: string;\n\n /**\n * Custom base URL for this specific model.\n * Overrides the provider's default endpoint.\n */\n baseUrl?: string;\n\n /**\n * Whether this model requires OpenAI's Responses API format.\n * Used for special models like deep research that bypass standard chat completions.\n */\n requiresResponsesAPI?: boolean;\n}\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Anthropic Claude models.\n * Anthropic models feature excellent prompt caching with 90% cost savings.\n */\nconst ANTHROPIC_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: true,\n cacheDiscountFactor: 0.1,\n supportsTokenCounting: true,\n supportsVision: true,\n supportsNativePdf: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n};\n\n/**\n * Anthropic Claude model configurations.\n * Includes Claude 4.x, 3.x Opus, Sonnet, and Haiku variants.\n */\nexport const ANTHROPIC_MODELS: Record<string, ModelConfig> = {\n opus45T: {\n name: 'opus45T',\n fullName: 'claude-opus-4-5',\n openrouterFullName: 'anthropic/claude-opus-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus45: {\n name: 'opus45',\n fullName: 'claude-opus-4-5',\n openrouterFullName: 'anthropic/claude-opus-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus41T: {\n name: 'opus41T',\n fullName: 'claude-opus-4-1-20250805',\n openrouterFullName: 'anthropic/claude-opus-4.1',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus41: {\n name: 'opus41',\n fullName: 'claude-opus-4-1-20250805',\n openrouterFullName: 'anthropic/claude-opus-4.1',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus4T: {\n name: 'opus4T',\n fullName: 'claude-opus-4-20250514',\n openrouterFullName: 'anthropic/claude-opus-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus4: {\n name: 'opus4',\n fullName: 'claude-opus-4-20250514',\n openrouterFullName: 'anthropic/claude-opus-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet45T: {\n name: 'sonnet45T',\n fullName: 'claude-sonnet-4-5',\n openrouterFullName: 'anthropic/claude-sonnet-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n sonnet45: {\n name: 'sonnet45',\n fullName: 'claude-sonnet-4-5',\n openrouterFullName: 'anthropic/claude-sonnet-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n haiku45T: {\n name: 'haiku45T',\n fullName: 'claude-haiku-4-5-20251001',\n openrouterFullName: 'anthropic/claude-haiku-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 5.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n haiku45: {\n name: 'haiku45',\n fullName: 'claude-haiku-4-5-20251001',\n openrouterFullName: 'anthropic/claude-haiku-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 5.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet4T: {\n name: 'sonnet4T',\n fullName: 'claude-sonnet-4-20250514',\n openrouterFullName: 'anthropic/claude-sonnet-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n sonnet4: {\n name: 'sonnet4',\n fullName: 'claude-sonnet-4-20250514',\n openrouterFullName: 'anthropic/claude-sonnet-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet37T: {\n name: 'sonnet37T',\n fullName: 'claude-3-7-sonnet-20250219',\n openrouterFullName: 'anthropic/claude-3.7-sonnet:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n sonnet37: {\n name: 'sonnet37',\n fullName: 'claude-3-7-sonnet-20250219',\n openrouterFullName: 'anthropic/claude-3.7-sonnet',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus3: {\n name: 'opus3',\n fullName: 'claude-3-opus-20240229',\n openrouterFullName: 'anthropic/claude-3-opus:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 4096,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet36: {\n name: 'sonnet36',\n fullName: 'claude-3-5-sonnet-20241022',\n openrouterFullName: 'anthropic/claude-3.5-sonnet:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet35: {\n name: 'sonnet35',\n fullName: 'claude-3-5-sonnet-20240620',\n openrouterFullName: 'anthropic/claude-3.5-sonnet-20240620:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet3: {\n name: 'sonnet3',\n fullName: 'claude-3-sonnet-20240229',\n openrouterFullName: 'anthropic/claude-3.5-sonnet-20240229:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n haiku35: {\n name: 'haiku35',\n fullName: 'claude-3-5-haiku-20241022',\n openrouterFullName: 'anthropic/claude-3.5-haiku:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 0.8,\n outputPrice: 4.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n haiku3: {\n name: 'haiku3',\n fullName: 'claude-3-haiku-20240307',\n openrouterFullName: 'anthropic/claude-3.5-haiku-20240307:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 0.25,\n outputPrice: 1.25,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for GitHub Copilot models.\n */\nconst COPILOT_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsVision: true,\n supportsNativePdf: false,\n};\n\n/**\n * GitHub Copilot model configurations.\n * These models are free-tier and powered by GPT-4o.\n */\nexport const COPILOT_MODELS: Record<string, ModelConfig> = {\n copilot4o: {\n name: 'copilot4o',\n fullName: 'copilot-gpt-4o',\n provider: ModelProvider.COPILOT,\n maxOutputTokens: 8192,\n contextWindow: 128000,\n inputPrice: 0,\n outputPrice: 0,\n capabilities: {\n ...COPILOT_DEFAULT_CAPABILITIES,\n reasoningEffort: ReasoningEffort.MEDIUM,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Alibaba DashScope (Qwen) models.\n */\nconst DASHSCOPE_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: false,\n supportsVision: true,\n supportsSystemPrompt: true,\n};\n\n/**\n * Alibaba DashScope (Qwen) model configurations.\n * Includes Qwen 3 Max, Plus, and Turbo variants.\n */\nexport const DASHSCOPE_MODELS: Record<string, ModelConfig> = {\n qwen3max: {\n name: 'qwen3max',\n fullName: 'qwen3-max',\n openrouterFullName: 'qwen/qwen-max',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 65536,\n contextWindow: 262144,\n inputPrice: 1.2,\n outputPrice: 6,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n qwenplus: {\n name: 'qwenplus',\n fullName: 'qwen-plus',\n openrouterFullName: 'qwen/qwen-plus',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.4,\n outputPrice: 1.2,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n qwenturbo: {\n name: 'qwenturbo',\n fullName: 'qwen-turbo-latest',\n openrouterFullName: 'qwen/qwen-turbo',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 8192,\n contextWindow: 131072,\n inputPrice: 0.05,\n outputPrice: 0.5,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for DeepSeek models.\n * Features automatic prompt caching with 90% cost savings.\n */\nconst DEEPSEEK_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.1,\n supportsVision: false,\n};\n\n/**\n * DeepSeek model configurations.\n * Includes V3.2, R1, and thinking variants.\n *\n * Model name conventions:\n * - fullName: Model name for native DeepSeek API (e.g., 'deepseek-chat', 'deepseek-reasoner')\n * - openrouterFullName: Model name for OpenRouter API (e.g., 'deepseek/deepseek-v3.2')\n */\nexport const DEEPSEEK_MODELS: Record<string, ModelConfig> = {\n // DeepSeek-V3.2 (Non-thinking Mode)\n deepseek: {\n name: 'deepseek',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-v3.2',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 8192,\n contextWindow: 128000,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsFunctionCalling: true,\n },\n openRouterOnly: false,\n },\n // DeepSeek-V3.2 (Thinking Mode)\n deepseekT: {\n name: 'deepseekT',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-v3.2',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 65536,\n contextWindow: 163840,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsFunctionCalling: true,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n // DeepSeek-V3.2-Speciale (Extended Thinking)\n 'deepseekT+': {\n name: 'deepseekT+',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-v3.2-speciale',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 131072,\n contextWindow: 163840,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsFunctionCalling: false,\n supportsAssistantPrefill: false,\n },\n openRouterOnly: false,\n baseUrl: 'https://api.deepseek.com/v3.2_speciale_expires_on_20251215',\n },\n dsv3: {\n name: 'dsv3',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-chat-v3-0324',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.14,\n outputPrice: 0.28,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n dsr1: {\n name: 'dsr1',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-r1-0528',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 65536,\n contextWindow: 128000,\n inputPrice: 4,\n outputPrice: 4,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n dsv3o: {\n name: 'dsv3o',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-chat-v3-0324',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 8192,\n contextWindow: 64000,\n inputPrice: 0.27,\n outputPrice: 1.1,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n dsr1o: {\n name: 'dsr1o',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-r1-0528',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 64000,\n contextWindow: 64000,\n inputPrice: 0.55,\n outputPrice: 2.19,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Google Gemini models.\n * Features native PDF, vision, and audio support with 75% cache cost savings.\n *\n * Note: Native web search is disabled because Google's content generation API\n * doesn't support combining googleSearch with functionDeclarations\n * (this is a Live API only feature).\n */\nconst GOOGLE_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativePdf: true,\n supportsVision: true,\n supportsNativeAudio: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n};\n\n/**\n * Google Gemini model configurations.\n * Includes Gemini 3.x and 2.5 Pro/Flash variants.\n */\nexport const GOOGLE_MODELS: Record<string, ModelConfig> = {\n gemini3p: {\n name: 'gemini3p',\n fullName: 'gemini-3-pro-preview',\n openrouterFullName: 'google/gemini-3-pro-preview',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 2.0,\n outputPrice: 12.0,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini3f: {\n name: 'gemini3f',\n fullName: 'gemini-3-flash-preview',\n openrouterFullName: 'google/gemini-3-flash-preview',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25p: {\n name: 'gemini25p',\n fullName: 'gemini-2.5-pro',\n openrouterFullName: 'google/gemini-2.5-pro',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25f: {\n name: 'gemini25f',\n fullName: 'gemini-flash-latest',\n openrouterFullName: 'google/gemini-2.5-flash-preview-09-2025',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25f0617: {\n name: 'gemini25f',\n fullName: 'gemini-2.5-flash',\n openrouterFullName: 'google/gemini-2.5-flash',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n 'gemini25f-': {\n name: 'gemini25f-',\n fullName: 'gemini-2.5-flash-lite-preview-09-2025',\n openrouterFullName: 'google/gemini-2.5-flash-lite-preview-09-2025',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 32768,\n contextWindow: 65536,\n inputPrice: 0.1,\n outputPrice: 0.4,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Moonshot (Kimi) models.\n */\nconst MOONSHOT_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: false,\n supportsSystemPrompt: true,\n};\n\n/**\n * Moonshot AI (Kimi) model configurations.\n * Includes Kimi K2 and thinking variants.\n */\nexport const MOONSHOT_MODELS: Record<string, ModelConfig> = {\n kimi: {\n name: 'kimi128k',\n fullName: 'moonshot-v1-128k',\n openrouterFullName: 'moonshotai/moonshot-v1-128k',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.28,\n outputPrice: 1.12,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n kimiv: {\n name: 'kimi128kv',\n fullName: 'moonshot-v1-128k-vision',\n openrouterFullName: 'moonshotai/moonshot-v1-128k-vision',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.35,\n outputPrice: 1.4,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n kimit: {\n name: 'kimit',\n fullName: 'kimi-thinking-preview',\n openrouterFullName: 'moonshotai/kimi-thinking-preview',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.42,\n outputPrice: 1.68,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n kimi2: {\n name: 'kimi2',\n fullName: 'kimi-k2-0905-preview',\n openrouterFullName: 'moonshotai/kimi-k2-0905',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.6,\n outputPrice: 2.5,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n 'kimi2+': {\n name: 'kimi2+',\n fullName: 'kimi-k2-turbo-preview',\n openrouterFullName: 'moonshotai/kimi-k2-turbo',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.56 * 4,\n outputPrice: 2.22 * 4,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n kimi2T: {\n name: 'kimi2T',\n fullName: 'kimi-k2-thinking',\n openrouterFullName: 'moonshotai/kimi-k2-thinking',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.56,\n outputPrice: 2.22,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n 'kimi2T+': {\n name: 'kimi2T+',\n fullName: 'kimi-k2-thinking-turbo',\n openrouterFullName: 'moonshotai/kimi-k2-thinking-turbo',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.56 * 4,\n outputPrice: 2.22 * 4,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI deep research models.\n * These models use the Responses API and only support native tools.\n *\n * Note: Function calling is disabled because deep research models\n * only support native tools (web_search, file_search, mcp, code_interpreter).\n */\nconst OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsFunctionCalling: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: true,\n supportsIntermDevMsgs: false,\n supportsVision: true,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n};\n\n/**\n * OpenAI deep research model configurations.\n * These models require the Responses API and are optimized for research tasks.\n */\nexport const OPENAI_DEEP_RESEARCH_MODELS: Record<string, ModelConfig> = {\n 'o3-deep-research': {\n name: 'o3-deep-research',\n fullName: 'o3-deep-research',\n openrouterFullName: 'openai/o3-deep-research',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 10,\n outputPrice: 40,\n capabilities: {\n ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: false,\n requiresResponsesAPI: true,\n },\n 'o4-mini-deep-research': {\n name: 'o4-mini-deep-research',\n fullName: 'o4-mini-deep-research',\n openrouterFullName: 'openai/o4-mini-deep-research',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 2,\n outputPrice: 8,\n capabilities: {\n ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: false,\n requiresResponsesAPI: true,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI GPT models.\n * OpenAI models feature automatic prompt caching with 50% cost savings.\n */\nconst OPENAI_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.5,\n supportsIntermDevMsgs: true,\n supportsVision: true,\n supportsNativePdf: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n};\n\n/**\n * OpenAI GPT model configurations.\n * Includes GPT-4.x, GPT-4o, and GPT-4.5 variants.\n */\nexport const OPENAI_MODELS: Record<string, ModelConfig> = {\n gpt41: {\n name: 'gpt41',\n fullName: 'gpt-4.1-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 2.0,\n outputPrice: 8.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n 'gpt41-': {\n name: 'gpt41-',\n fullName: 'gpt-4.1-mini-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1-mini',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.4,\n outputPrice: 1.6,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n 'gpt41--': {\n name: 'gpt41--',\n fullName: 'gpt-4.1-nano-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1-nano',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.1,\n outputPrice: 0.4,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt45: {\n name: 'gpt45',\n fullName: 'gpt-4.5-preview',\n openrouterFullName: 'openai/gpt-4.5-preview',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 75.0,\n outputPrice: 150.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsPredictiveOutput: false,\n },\n openRouterOnly: false,\n },\n gpt4o: {\n name: 'gpt4o',\n fullName: 'gpt-4o-2024-11-20',\n openrouterFullName: 'openai/gpt-4o-2024-11-20',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 2.5,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt4t: {\n name: 'gpt4t',\n fullName: 'gpt-4-turbo-2024-04-09',\n openrouterFullName: 'openai/gpt-4-turbo-2024-04-09',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 4096,\n contextWindow: 128000,\n inputPrice: 10.0,\n outputPrice: 30.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n 'gpt4o-': {\n name: 'gpt4o-',\n fullName: 'gpt-4o-mini-2024-07-18',\n openrouterFullName: 'openai/gpt-4o-mini-2024-07-18',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 0.15,\n outputPrice: 0.6,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt4ol: {\n name: 'gpt4ol',\n fullName: 'chatgpt-4o-latest',\n openrouterFullName: 'openai/chatgpt-4o-latest',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 5.0,\n outputPrice: 15.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI reasoning models (o-series).\n * These models feature extended reasoning with configurable effort levels.\n */\nconst OPENAI_REASONING_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.5,\n supportsReasoning: true,\n supportsIntermDevMsgs: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsReasoningEffort: true,\n};\n\n/**\n * OpenAI reasoning model configurations.\n * Includes o1, o3, o4, and GPT-5 reasoning variants.\n */\nexport const OPENAI_REASONING_MODELS: Record<string, ModelConfig> = {\n 'o4-': {\n name: 'o4-',\n fullName: 'o4-mini-2025-04-16',\n openrouterFullName: 'openai/o4-mini-high',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o3pro: {\n name: 'o3pro',\n fullName: 'o3-pro-2025-06-10',\n openrouterFullName: 'openai/o3-pro',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 20.0,\n outputPrice: 80.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsAutoPromptCaching: false,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o3: {\n name: 'o3',\n fullName: 'o3-2025-04-16',\n openrouterFullName: 'openai/o3',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 2.0,\n outputPrice: 8.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n 'o3-': {\n name: 'o3-',\n fullName: 'o3-mini-2025-01-31',\n openrouterFullName: 'openai/o3-mini-2025-01-31',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 1.1,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n o1pro: {\n name: 'o1pro',\n fullName: 'o1-pro-2025-03-19',\n openrouterFullName: 'openai/o1-pro-2025-03-19',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 150.0,\n outputPrice: 600.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o1: {\n name: 'o1',\n fullName: 'o1-2024-12-17',\n openrouterFullName: 'openai/o1-2024-12-17',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 60.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n o1preview: {\n name: 'o1preview',\n fullName: 'o1-preview-2024-09-12',\n openrouterFullName: 'openai/o1-preview-2024-09-12',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 128000,\n inputPrice: 15.0,\n outputPrice: 60.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsSystemPrompt: false,\n },\n openRouterOnly: false,\n },\n 'o1-': {\n name: 'o1-',\n fullName: 'o1-mini-2024-09-12',\n openrouterFullName: 'openai/o1-mini-2024-09-12',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 65536,\n contextWindow: 128000,\n inputPrice: 1.1,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsSystemPrompt: false,\n },\n openRouterOnly: false,\n },\n gptoss: {\n name: 'gptoss',\n fullName: 'gpt-oss-120b',\n openrouterFullName: 'openai/gpt-oss-120b',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 33000,\n contextWindow: 131072,\n inputPrice: 0.15,\n outputPrice: 0.6,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: true,\n },\n 'gptoss-': {\n name: 'gptoss-',\n fullName: 'gpt-oss-20b',\n openrouterFullName: 'openai/gpt-oss-20b',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 33000,\n contextWindow: 131072,\n inputPrice: 0.05,\n outputPrice: 0.2,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: true,\n },\n gpt5pro: {\n name: 'gpt5pro',\n fullName: 'gpt-5-pro-2025-10-06',\n openrouterFullName: 'openai/gpt-5-pro-2025-10-06',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 272000,\n contextWindow: 400000,\n inputPrice: 15.0,\n outputPrice: 120.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt5: {\n name: 'gpt5',\n fullName: 'gpt-5-2025-08-07',\n openrouterFullName: 'openai/gpt-5-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt51: {\n name: 'gpt51',\n fullName: 'gpt-5.1-2025-11-13',\n openrouterFullName: 'openai/gpt-5.1-2025-11-13',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt52pro: {\n name: 'gpt52pro',\n fullName: 'gpt-5.2-pro-2025-12-11',\n openrouterFullName: 'openai/gpt-5.2-pro',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 21.0,\n outputPrice: 168.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsVision: true,\n supportsNativePdf: true,\n reasoningEffort: ReasoningEffort.XHIGH,\n },\n requiresResponsesAPI: true,\n openRouterOnly: false,\n },\n gpt52: {\n name: 'gpt52',\n fullName: 'gpt-5.2-2025-12-11',\n openrouterFullName: 'openai/gpt-5.2',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.75,\n outputPrice: 14.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n reasoningEffort: ReasoningEffort.XHIGH,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n 'gpt5-': {\n name: 'gpt5-',\n fullName: 'gpt-5-mini-2025-08-07',\n openrouterFullName: 'openai/gpt-5-mini-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 0.25,\n outputPrice: 2.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n 'gpt5--': {\n name: 'gpt5--',\n fullName: 'gpt-5-nano-2025-08-07',\n openrouterFullName: 'openai/gpt-5-nano-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 0.05,\n outputPrice: 0.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for other/OpenRouter-only models.\n */\nconst OTHER_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n};\n\n/**\n * Other model configurations (OpenRouter-only models).\n * Includes models that are only available through OpenRouter proxy.\n */\nexport const OTHER_MODELS: Record<string, ModelConfig> = {\n llama31: {\n name: 'llama31',\n fullName: 'meta-llama/llama-3.1-405b-instruct',\n openrouterFullName: 'meta-llama/llama-3.1-405b-instruct',\n provider: ModelProvider.OTHERS,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 3.0,\n outputPrice: 3.0,\n capabilities: OTHER_DEFAULT_CAPABILITIES,\n openRouterOnly: true,\n },\n 'qvq-72b': {\n name: 'qvq-72b',\n fullName: 'qwen/qvq-72b-preview',\n openrouterFullName: 'qwen/qvq-72b-preview',\n provider: ModelProvider.OTHERS,\n maxOutputTokens: 4096,\n contextWindow: 128000,\n inputPrice: 0.25,\n outputPrice: 0.5,\n capabilities: {\n ...OTHER_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: true,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for xAI Grok models.\n */\nconst XAI_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsVision: false,\n};\n\n/**\n * xAI Grok model configurations.\n * Includes Grok 4, 3, and 2 variants.\n */\nexport const XAI_MODELS: Record<string, ModelConfig> = {\n grok4: {\n name: 'grok4',\n fullName: 'grok-4-0709',\n openrouterFullName: 'x-ai/grok-4-0709',\n provider: ModelProvider.XAI,\n maxOutputTokens: 128000,\n contextWindow: 256000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n grok3: {\n name: 'grok3',\n fullName: 'grok-3-beta',\n openrouterFullName: 'x-ai/grok-3',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: false,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n 'grok3-': {\n name: 'grok3-',\n fullName: 'grok-3-mini-beta',\n openrouterFullName: 'x-ai/grok-3-mini-beta',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 0.3,\n outputPrice: 0.5,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.LOW,\n },\n openRouterOnly: false,\n },\n grok2: {\n name: 'grok2',\n fullName: 'grok-2-1212',\n openrouterFullName: 'grok-ai/grok-2-1212',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 2.0,\n outputPrice: 10.0,\n capabilities: XAI_DEFAULT_CAPABILITIES,\n openRouterOnly: false,\n },\n grok2v: {\n name: 'grok2v',\n fullName: 'grok-2-1212-vision',\n openrouterFullName: 'grok-ai/grok-2-1212-vision',\n provider: ModelProvider.XAI,\n maxOutputTokens: 32768,\n contextWindow: 32768,\n inputPrice: 2.0,\n outputPrice: 10.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n};\n","/**\n * Central registry of all available language model configurations.\n * This module aggregates model configurations from all providers and\n * exports them as a unified registry.\n *\n * @packageDocumentation\n */\n\nimport { ModelConfig } from './ModelConfig';\nimport {\n ANTHROPIC_MODELS,\n OPENAI_DEEP_RESEARCH_MODELS,\n OPENAI_REASONING_MODELS,\n OPENAI_MODELS,\n GOOGLE_MODELS,\n XAI_MODELS,\n OTHER_MODELS,\n DEEPSEEK_MODELS,\n MOONSHOT_MODELS,\n DASHSCOPE_MODELS,\n COPILOT_MODELS,\n} from './providers';\n\n/**\n * Complete registry of all available model configurations.\n * Models are indexed by their short name (e.g., \"sonnet45\", \"gpt4o\").\n *\n * @example\n * ```typescript\n * import { MODEL_CONFIGS } from 'llm-model-registry';\n *\n * const sonnetConfig = MODEL_CONFIGS['sonnet45'];\n * console.log(sonnetConfig.contextWindow); // 200000\n * console.log(sonnetConfig.inputPrice); // 3.0 ($/1M tokens)\n * ```\n */\nexport const MODEL_CONFIGS: Record<string, ModelConfig> = {\n ...ANTHROPIC_MODELS,\n ...OPENAI_DEEP_RESEARCH_MODELS,\n ...OPENAI_REASONING_MODELS,\n ...OPENAI_MODELS,\n ...GOOGLE_MODELS,\n ...XAI_MODELS,\n ...OTHER_MODELS,\n ...DEEPSEEK_MODELS,\n ...MOONSHOT_MODELS,\n ...DASHSCOPE_MODELS,\n ...COPILOT_MODELS,\n};\n\n/**\n * Array of all available model short names.\n * Derived from MODEL_CONFIGS keys.\n *\n * @example\n * ```typescript\n * import { MODELS } from 'llm-model-registry';\n *\n * console.log(MODELS); // ['opus45T', 'opus45', 'sonnet45', ...]\n * ```\n */\nexport const MODELS = Object.keys(MODEL_CONFIGS);\n\n/**\n * Re-export individual provider model collections for granular access.\n */\nexport {\n ANTHROPIC_MODELS,\n OPENAI_DEEP_RESEARCH_MODELS,\n OPENAI_REASONING_MODELS,\n OPENAI_MODELS,\n GOOGLE_MODELS,\n XAI_MODELS,\n OTHER_MODELS,\n DEEPSEEK_MODELS,\n MOONSHOT_MODELS,\n DASHSCOPE_MODELS,\n COPILOT_MODELS,\n};\n","/**\n * Utility functions for working with model configurations.\n * @packageDocumentation\n */\n\nimport { ModelConfig, ModelProvider, ModelCapabilities } from './ModelConfig';\nimport { MODEL_CONFIGS } from './ModelRegistry';\n\n// ============================================================================\n// Lookup\n// ============================================================================\n\n/**\n * Get a model by short name.\n *\n * @example\n * ```typescript\n * const claude = lookup('sonnet45');\n * const gpt = lookup('gpt4o');\n * ```\n */\nexport function lookup(name: string): ModelConfig | undefined {\n return MODEL_CONFIGS[name];\n}\n\n/**\n * Resolve a model by its full API identifier.\n *\n * @example\n * ```typescript\n * const model = resolve('claude-sonnet-4-5');\n * const model2 = resolve('gpt-4o-2024-11-20');\n * ```\n */\nexport function resolve(fullName: string): ModelConfig | undefined {\n return Object.values(MODEL_CONFIGS).find((m) => m.fullName === fullName);\n}\n\n/**\n * Check if a model exists.\n */\nexport function exists(name: string): boolean {\n return name in MODEL_CONFIGS;\n}\n\n// ============================================================================\n// Filtering - Fluent Predicates\n// ============================================================================\n\n/**\n * Get all models from a provider.\n *\n * @example\n * ```typescript\n * const claudeModels = from(ModelProvider.ANTHROPIC);\n * const geminiModels = from(ModelProvider.GOOGLE);\n * ```\n */\nexport function from(provider: ModelProvider): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => m.provider === provider);\n}\n\n/**\n * Find models matching a capability predicate.\n *\n * @example\n * ```typescript\n * // Vision + reasoning models\n * const smart = where(c => c.supportsVision && c.supportsReasoning);\n *\n * // Models with great caching\n * const cached = where(c => c.cacheDiscountFactor <= 0.1);\n * ```\n */\nexport function where(\n predicate: (capabilities: ModelCapabilities) => boolean,\n): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => predicate(m.capabilities));\n}\n\n/**\n * Get models supporting a specific capability.\n *\n * @example\n * ```typescript\n * const reasoners = supporting('supportsReasoning');\n * const visionaries = supporting('supportsVision');\n * const coders = supporting('supportsNativeCodeExecution');\n * ```\n */\nexport function supporting(\n capability: keyof ModelCapabilities,\n): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => {\n const value = m.capabilities[capability];\n return typeof value === 'boolean' ? value : value !== undefined;\n });\n}\n\n/**\n * Filter by context window size.\n *\n * @example\n * ```typescript\n * const longContext = withContext(200000); // 200K+ context\n * const million = withContext(1000000); // 1M+ context\n * ```\n */\nexport function withContext(minTokens: number): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter(\n (m) => m.contextWindow >= minTokens,\n );\n}\n\n/**\n * Get models accessible via direct API (not OpenRouter-only).\n */\nexport function directAccess(): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => !m.openRouterOnly);\n}\n\n/**\n * Get models only available through OpenRouter.\n */\nexport function openRouterOnly(): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => m.openRouterOnly);\n}\n\n// ============================================================================\n// Cost Intelligence\n// ============================================================================\n\n/**\n * Calculate exact cost for a request.\n *\n * @example\n * ```typescript\n * // Basic usage\n * const price = cost('sonnet45', { input: 10000, output: 5000 });\n *\n * // With prompt caching\n * const cached = cost('sonnet45', {\n * input: 10000,\n * output: 5000,\n * cached: 8000 // 8K tokens were cache hits\n * });\n * ```\n */\nexport function cost(\n model: ModelConfig | string,\n tokens: { input: number; output: number; cached?: number },\n): number {\n const config = typeof model === 'string' ? lookup(model) : model;\n if (!config) {\n throw new Error(`Unknown model: ${model}`);\n }\n\n const { input, output, cached = 0 } = tokens;\n const uncached = input - cached;\n\n const inputCost = (uncached / 1_000_000) * config.inputPrice;\n const cacheCost =\n (cached / 1_000_000) * config.inputPrice * config.capabilities.cacheDiscountFactor;\n const outputCost = (output / 1_000_000) * config.outputPrice;\n\n return inputCost + cacheCost + outputCost;\n}\n\n/**\n * Estimate worst-case cost (max output tokens).\n *\n * @example\n * ```typescript\n * const worst = maxCost('gpt4o', 50000);\n * console.log(`Budget up to $${worst.toFixed(2)}`);\n * ```\n */\nexport function maxCost(model: ModelConfig | string, inputTokens: number): number {\n const config = typeof model === 'string' ? lookup(model) : model;\n if (!config) {\n throw new Error(`Unknown model: ${model}`);\n }\n return cost(config, { input: inputTokens, output: config.maxOutputTokens });\n}\n\n/**\n * Compare cost across models for the same workload.\n *\n * @example\n * ```typescript\n * const comparison = compareCosts(\n * ['sonnet45', 'gpt4o', 'gemini25p'],\n * { input: 10000, output: 2000 }\n * );\n * // Returns sorted by cost: [{ model, cost }, ...]\n * ```\n */\nexport function compareCosts(\n models: (ModelConfig | string)[],\n tokens: { input: number; output: number; cached?: number },\n): { model: ModelConfig; cost: number }[] {\n return models\n .map((m) => {\n const config = typeof m === 'string' ? lookup(m) : m;\n if (!config) throw new Error(`Unknown model: ${m}`);\n return { model: config, cost: cost(config, tokens) };\n })\n .sort((a, b) => a.cost - b.cost);\n}\n\n// ============================================================================\n// Smart Selection\n// ============================================================================\n\n/**\n * Find the cheapest model meeting your requirements.\n *\n * @example\n * ```typescript\n * // Cheapest with vision\n * const budget = cheapest({ supportsVision: true });\n *\n * // Cheapest reasoning model with 100K+ context\n * const thinker = cheapest(\n * { supportsReasoning: true },\n * { minContext: 100000 }\n * );\n * ```\n */\nexport function cheapest(\n capabilities: Partial<ModelCapabilities>,\n options?: { minContext?: number; provider?: ModelProvider },\n): ModelConfig | undefined {\n const candidates = Object.values(MODEL_CONFIGS).filter((m) => {\n if (options?.minContext && m.contextWindow < options.minContext) {\n return false;\n }\n if (options?.provider && m.provider !== options.provider) {\n return false;\n }\n for (const [key, value] of Object.entries(capabilities)) {\n if (m.capabilities[key as keyof ModelCapabilities] !== value) {\n return false;\n }\n }\n return true;\n });\n\n if (candidates.length === 0) return undefined;\n\n return candidates.sort(\n (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice),\n )[0];\n}\n\n/**\n * Find the most capable model within a budget.\n * Returns the priciest model under the limit (more expensive = usually better).\n *\n * @example\n * ```typescript\n * // Best model under $5/1M combined tokens\n * const best = smartpick(5);\n *\n * // Best reasoning model under $10\n * const bestReasoner = smartpick(10, { supportsReasoning: true });\n * ```\n */\nexport function smartpick(\n maxPricePerMillion: number,\n capabilities?: Partial<ModelCapabilities>,\n): ModelConfig | undefined {\n let candidates = Object.values(MODEL_CONFIGS).filter(\n (m) => m.inputPrice + m.outputPrice <= maxPricePerMillion,\n );\n\n if (capabilities) {\n candidates = candidates.filter((m) => {\n for (const [key, value] of Object.entries(capabilities)) {\n if (m.capabilities[key as keyof ModelCapabilities] !== value) {\n return false;\n }\n }\n return true;\n });\n }\n\n if (candidates.length === 0) return undefined;\n\n // Higher price generally = more capable, so return the priciest under budget\n return candidates.sort(\n (a, b) => (b.inputPrice + b.outputPrice) - (a.inputPrice + a.outputPrice),\n )[0];\n}\n\n/**\n * Rank models by a metric.\n *\n * @example\n * ```typescript\n * const byPrice = ranked('price'); // Cheapest first\n * const byContext = ranked('context', 'desc'); // Largest context first\n * const byOutput = ranked('output', 'desc'); // Most output first\n * ```\n */\nexport function ranked(\n by: 'price' | 'context' | 'output',\n order: 'asc' | 'desc' = 'asc',\n): ModelConfig[] {\n const getValue = (m: ModelConfig): number => {\n switch (by) {\n case 'price':\n return m.inputPrice + m.outputPrice;\n case 'context':\n return m.contextWindow;\n case 'output':\n return m.maxOutputTokens;\n }\n };\n\n return Object.values(MODEL_CONFIGS).sort((a, b) => {\n const diff = getValue(a) - getValue(b);\n return order === 'asc' ? diff : -diff;\n });\n}\n\n// ============================================================================\n// Insights\n// ============================================================================\n\n/**\n * Get registry statistics and insights.\n *\n * @example\n * ```typescript\n * const { totalModels, providers, capabilities } = insights();\n * console.log(`${totalModels} models across ${Object.keys(providers).length} providers`);\n * ```\n */\nexport function insights(): {\n totalModels: number;\n providers: Record<ModelProvider, number>;\n capabilities: Record<string, number>;\n pricing: { cheapest: ModelConfig; mostExpensive: ModelConfig };\n context: { smallest: ModelConfig; largest: ModelConfig };\n} {\n const models = Object.values(MODEL_CONFIGS);\n\n // Count by provider\n const providers = {} as Record<ModelProvider, number>;\n for (const provider of Object.values(ModelProvider)) {\n providers[provider] = models.filter((m) => m.provider === provider).length;\n }\n\n // Count by capability\n const capabilityKeys = [\n 'supportsFunctionCalling',\n 'supportsReasoning',\n 'supportsVision',\n 'supportsNativeCodeExecution',\n 'supportsNativeWebSearch',\n 'supportsPromptCaching',\n 'supportsNativePdf',\n 'supportsNativeAudio',\n ];\n\n const capabilities: Record<string, number> = {};\n for (const key of capabilityKeys) {\n const shortKey = key.replace('supports', '').replace('Native', '');\n capabilities[shortKey] = models.filter(\n (m) => m.capabilities[key as keyof ModelCapabilities],\n ).length;\n }\n\n // Extremes\n const byPrice = [...models].sort(\n (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice),\n );\n const byContext = [...models].sort((a, b) => a.contextWindow - b.contextWindow);\n\n return {\n totalModels: models.length,\n providers,\n capabilities,\n pricing: {\n cheapest: byPrice[0]!,\n mostExpensive: byPrice[byPrice.length - 1]!,\n },\n context: {\n smallest: byContext[0]!,\n largest: byContext[byContext.length - 1]!,\n },\n };\n}\n\n// ============================================================================\n// Legacy Aliases (backward compatibility)\n// ============================================================================\n\n/** @deprecated Use `lookup()` instead */\nexport const getModel = lookup;\n/** @deprecated Use `resolve()` instead */\nexport const getModelByFullName = resolve;\n/** @deprecated Use `exists()` instead */\nexport const hasModel = exists;\n/** @deprecated Use `from()` instead */\nexport const getModelsByProvider = from;\n/** @deprecated Use `where()` instead */\nexport const filterByCapability = where;\n/** @deprecated Use `supporting()` instead */\nexport const getModelsWithCapability = supporting;\n/** @deprecated Use `cost()` instead */\nexport function calculateCost(\n model: ModelConfig | string,\n inputTokens: number,\n outputTokens: number,\n cachedInputTokens: number = 0,\n): number {\n return cost(model, { input: inputTokens, output: outputTokens, cached: cachedInputTokens });\n}\n/** @deprecated Use `maxCost()` instead */\nexport const estimateMaxCost = maxCost;\n/** @deprecated Use `ranked()` instead */\nexport function sortModelsByMetric(\n metric: 'price' | 'context' | 'output',\n ascending: boolean = true,\n): ModelConfig[] {\n return ranked(metric, ascending ? 'asc' : 'desc');\n}\n/** @deprecated Use `cheapest()` instead */\nexport function findCheapestModel(\n requirements: Partial<ModelCapabilities>,\n minContextWindow?: number,\n): ModelConfig | undefined {\n return cheapest(requirements, minContextWindow !== undefined ? { minContext: minContextWindow } : {});\n}\n/** @deprecated Use `insights()` instead */\nexport const getRegistryStats = insights;\n"]}
@@ -0,0 +1,260 @@
1
+ import { M as ModelConfig, a as ModelProvider, b as ModelCapabilities } from './index-CQCjbg9k.cjs';
2
+ export { A as ANTHROPIC_MODELS, C as COPILOT_MODELS, h as DASHSCOPE_MODELS, f as DEEPSEEK_MODELS, c as DEFAULT_CONTEXT_WINDOW, D as DEFAULT_MODEL_CAPABILITIES, G as GOOGLE_MODELS, g as MOONSHOT_MODELS, e as OPENAI_DEEP_RESEARCH_MODELS, O as OPENAI_MODELS, d as OPENAI_REASONING_MODELS, i as OTHER_MODELS, R as ReasoningEffort, X as XAI_MODELS } from './index-CQCjbg9k.cjs';
3
+
4
+ /**
5
+ * Central registry of all available language model configurations.
6
+ * This module aggregates model configurations from all providers and
7
+ * exports them as a unified registry.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+
12
+ /**
13
+ * Complete registry of all available model configurations.
14
+ * Models are indexed by their short name (e.g., "sonnet45", "gpt4o").
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { MODEL_CONFIGS } from 'llm-model-registry';
19
+ *
20
+ * const sonnetConfig = MODEL_CONFIGS['sonnet45'];
21
+ * console.log(sonnetConfig.contextWindow); // 200000
22
+ * console.log(sonnetConfig.inputPrice); // 3.0 ($/1M tokens)
23
+ * ```
24
+ */
25
+ declare const MODEL_CONFIGS: Record<string, ModelConfig>;
26
+ /**
27
+ * Array of all available model short names.
28
+ * Derived from MODEL_CONFIGS keys.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { MODELS } from 'llm-model-registry';
33
+ *
34
+ * console.log(MODELS); // ['opus45T', 'opus45', 'sonnet45', ...]
35
+ * ```
36
+ */
37
+ declare const MODELS: string[];
38
+
39
+ /**
40
+ * Utility functions for working with model configurations.
41
+ * @packageDocumentation
42
+ */
43
+
44
+ /**
45
+ * Get a model by short name.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const claude = lookup('sonnet45');
50
+ * const gpt = lookup('gpt4o');
51
+ * ```
52
+ */
53
+ declare function lookup(name: string): ModelConfig | undefined;
54
+ /**
55
+ * Resolve a model by its full API identifier.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const model = resolve('claude-sonnet-4-5');
60
+ * const model2 = resolve('gpt-4o-2024-11-20');
61
+ * ```
62
+ */
63
+ declare function resolve(fullName: string): ModelConfig | undefined;
64
+ /**
65
+ * Check if a model exists.
66
+ */
67
+ declare function exists(name: string): boolean;
68
+ /**
69
+ * Get all models from a provider.
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const claudeModels = from(ModelProvider.ANTHROPIC);
74
+ * const geminiModels = from(ModelProvider.GOOGLE);
75
+ * ```
76
+ */
77
+ declare function from(provider: ModelProvider): ModelConfig[];
78
+ /**
79
+ * Find models matching a capability predicate.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * // Vision + reasoning models
84
+ * const smart = where(c => c.supportsVision && c.supportsReasoning);
85
+ *
86
+ * // Models with great caching
87
+ * const cached = where(c => c.cacheDiscountFactor <= 0.1);
88
+ * ```
89
+ */
90
+ declare function where(predicate: (capabilities: ModelCapabilities) => boolean): ModelConfig[];
91
+ /**
92
+ * Get models supporting a specific capability.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const reasoners = supporting('supportsReasoning');
97
+ * const visionaries = supporting('supportsVision');
98
+ * const coders = supporting('supportsNativeCodeExecution');
99
+ * ```
100
+ */
101
+ declare function supporting(capability: keyof ModelCapabilities): ModelConfig[];
102
+ /**
103
+ * Filter by context window size.
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const longContext = withContext(200000); // 200K+ context
108
+ * const million = withContext(1000000); // 1M+ context
109
+ * ```
110
+ */
111
+ declare function withContext(minTokens: number): ModelConfig[];
112
+ /**
113
+ * Get models accessible via direct API (not OpenRouter-only).
114
+ */
115
+ declare function directAccess(): ModelConfig[];
116
+ /**
117
+ * Get models only available through OpenRouter.
118
+ */
119
+ declare function openRouterOnly(): ModelConfig[];
120
+ /**
121
+ * Calculate exact cost for a request.
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * // Basic usage
126
+ * const price = cost('sonnet45', { input: 10000, output: 5000 });
127
+ *
128
+ * // With prompt caching
129
+ * const cached = cost('sonnet45', {
130
+ * input: 10000,
131
+ * output: 5000,
132
+ * cached: 8000 // 8K tokens were cache hits
133
+ * });
134
+ * ```
135
+ */
136
+ declare function cost(model: ModelConfig | string, tokens: {
137
+ input: number;
138
+ output: number;
139
+ cached?: number;
140
+ }): number;
141
+ /**
142
+ * Estimate worst-case cost (max output tokens).
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const worst = maxCost('gpt4o', 50000);
147
+ * console.log(`Budget up to $${worst.toFixed(2)}`);
148
+ * ```
149
+ */
150
+ declare function maxCost(model: ModelConfig | string, inputTokens: number): number;
151
+ /**
152
+ * Compare cost across models for the same workload.
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const comparison = compareCosts(
157
+ * ['sonnet45', 'gpt4o', 'gemini25p'],
158
+ * { input: 10000, output: 2000 }
159
+ * );
160
+ * // Returns sorted by cost: [{ model, cost }, ...]
161
+ * ```
162
+ */
163
+ declare function compareCosts(models: (ModelConfig | string)[], tokens: {
164
+ input: number;
165
+ output: number;
166
+ cached?: number;
167
+ }): {
168
+ model: ModelConfig;
169
+ cost: number;
170
+ }[];
171
+ /**
172
+ * Find the cheapest model meeting your requirements.
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * // Cheapest with vision
177
+ * const budget = cheapest({ supportsVision: true });
178
+ *
179
+ * // Cheapest reasoning model with 100K+ context
180
+ * const thinker = cheapest(
181
+ * { supportsReasoning: true },
182
+ * { minContext: 100000 }
183
+ * );
184
+ * ```
185
+ */
186
+ declare function cheapest(capabilities: Partial<ModelCapabilities>, options?: {
187
+ minContext?: number;
188
+ provider?: ModelProvider;
189
+ }): ModelConfig | undefined;
190
+ /**
191
+ * Find the most capable model within a budget.
192
+ * Returns the priciest model under the limit (more expensive = usually better).
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * // Best model under $5/1M combined tokens
197
+ * const best = smartpick(5);
198
+ *
199
+ * // Best reasoning model under $10
200
+ * const bestReasoner = smartpick(10, { supportsReasoning: true });
201
+ * ```
202
+ */
203
+ declare function smartpick(maxPricePerMillion: number, capabilities?: Partial<ModelCapabilities>): ModelConfig | undefined;
204
+ /**
205
+ * Rank models by a metric.
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * const byPrice = ranked('price'); // Cheapest first
210
+ * const byContext = ranked('context', 'desc'); // Largest context first
211
+ * const byOutput = ranked('output', 'desc'); // Most output first
212
+ * ```
213
+ */
214
+ declare function ranked(by: 'price' | 'context' | 'output', order?: 'asc' | 'desc'): ModelConfig[];
215
+ /**
216
+ * Get registry statistics and insights.
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * const { totalModels, providers, capabilities } = insights();
221
+ * console.log(`${totalModels} models across ${Object.keys(providers).length} providers`);
222
+ * ```
223
+ */
224
+ declare function insights(): {
225
+ totalModels: number;
226
+ providers: Record<ModelProvider, number>;
227
+ capabilities: Record<string, number>;
228
+ pricing: {
229
+ cheapest: ModelConfig;
230
+ mostExpensive: ModelConfig;
231
+ };
232
+ context: {
233
+ smallest: ModelConfig;
234
+ largest: ModelConfig;
235
+ };
236
+ };
237
+ /** @deprecated Use `lookup()` instead */
238
+ declare const getModel: typeof lookup;
239
+ /** @deprecated Use `resolve()` instead */
240
+ declare const getModelByFullName: typeof resolve;
241
+ /** @deprecated Use `exists()` instead */
242
+ declare const hasModel: typeof exists;
243
+ /** @deprecated Use `from()` instead */
244
+ declare const getModelsByProvider: typeof from;
245
+ /** @deprecated Use `where()` instead */
246
+ declare const filterByCapability: typeof where;
247
+ /** @deprecated Use `supporting()` instead */
248
+ declare const getModelsWithCapability: typeof supporting;
249
+ /** @deprecated Use `cost()` instead */
250
+ declare function calculateCost(model: ModelConfig | string, inputTokens: number, outputTokens: number, cachedInputTokens?: number): number;
251
+ /** @deprecated Use `maxCost()` instead */
252
+ declare const estimateMaxCost: typeof maxCost;
253
+ /** @deprecated Use `ranked()` instead */
254
+ declare function sortModelsByMetric(metric: 'price' | 'context' | 'output', ascending?: boolean): ModelConfig[];
255
+ /** @deprecated Use `cheapest()` instead */
256
+ declare function findCheapestModel(requirements: Partial<ModelCapabilities>, minContextWindow?: number): ModelConfig | undefined;
257
+ /** @deprecated Use `insights()` instead */
258
+ declare const getRegistryStats: typeof insights;
259
+
260
+ export { MODELS, MODEL_CONFIGS, ModelCapabilities, ModelConfig, ModelProvider, calculateCost, cheapest, compareCosts, cost, directAccess, estimateMaxCost, exists, filterByCapability, findCheapestModel, from, getModel, getModelByFullName, getModelsByProvider, getModelsWithCapability, getRegistryStats, hasModel, insights, lookup, maxCost, openRouterOnly, ranked, resolve, smartpick, sortModelsByMetric, supporting, where, withContext };