@heventure/model-provider-x 0.2.7-beta.0 → 0.2.8-beta.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.
@@ -88,13 +88,31 @@ function lookupModel(models, aliases) {
88
88
  if (!models) {
89
89
  return undefined;
90
90
  }
91
+ // First try direct match
91
92
  for (const alias of aliases) {
92
93
  if (models[alias]) {
93
94
  return models[alias];
94
95
  }
95
96
  }
97
+ // Then try fuzzy match: check if any model key matches an alias
98
+ for (const modelKey of Object.keys(models)) {
99
+ const modelKeyAliases = modelAliasesForLookup(modelKey);
100
+ for (const alias of aliases) {
101
+ if (modelKeyAliases.includes(alias)) {
102
+ return models[modelKey];
103
+ }
104
+ }
105
+ }
96
106
  return undefined;
97
107
  }
108
+ function modelAliasesForLookup(modelId) {
109
+ const normalized = modelId.trim().toLowerCase();
110
+ const withoutPrefix = normalized.includes("/") ? normalized.split("/").pop() : normalized;
111
+ // Try removing date suffixes like "-20241022", "-20240620" (common for Anthropic models)
112
+ const dateMatch = withoutPrefix.match(/-\d{8}$/);
113
+ const withoutDate = dateMatch ? withoutPrefix.slice(0, -dateMatch[0].length) : withoutPrefix;
114
+ return [...new Set([normalized, withoutPrefix, withoutDate])];
115
+ }
98
116
  function normalizeRegistryModel(modelId, model, source) {
99
117
  const modalities = normalizeModalities(model);
100
118
  const capabilities = model.capabilities;
@@ -176,7 +194,7 @@ function normalizeModels(value) {
176
194
  }
177
195
  return Object.keys(models).length ? models : undefined;
178
196
  }
179
- function modelAliases(modelId) {
197
+ export function modelAliases(modelId) {
180
198
  const normalized = modelId.trim().toLowerCase();
181
199
  const withoutPrefix = normalized.includes("/") ? normalized.split("/").pop() : normalized;
182
200
  // Strip common suffixes for fuzzy matching
@@ -188,22 +206,31 @@ function modelAliases(modelId) {
188
206
  "-ud", "-xl", "-xs", "-small", "-medium", "-large", "-mini", "-nano", "-micro",
189
207
  "-turbo", "-fast", "-pro", "-plus", "-max", "-ultra", "-flash", "-lite",
190
208
  "-mtp", "-moe", "-a17b", "-a22b", "-a3b", "-a10b", "-a12b", "-a55b",
191
- "-chat", "-base", "-raw", "-uncensored", "-abliterated"
209
+ "-base", "-raw", "-uncensored", "-abliterated"
192
210
  ];
211
+ // Iteratively strip suffixes to handle combinations like "-instruct-gguf"
193
212
  let fuzzy = withoutPrefix;
194
- for (const suffix of suffixes) {
195
- if (fuzzy.endsWith(suffix)) {
196
- fuzzy = fuzzy.slice(0, -suffix.length);
197
- break;
213
+ let changed = true;
214
+ while (changed) {
215
+ changed = false;
216
+ for (const suffix of suffixes) {
217
+ if (fuzzy.endsWith(suffix)) {
218
+ fuzzy = fuzzy.slice(0, -suffix.length);
219
+ changed = true;
220
+ break;
221
+ }
198
222
  }
199
223
  }
200
- // Also try removing version suffixes like "-v1", "-v2", etc.
224
+ // Also try removing version suffixes like "-v1", "-v2", "-v4", etc.
201
225
  const versionMatch = fuzzy.match(/-v\d+$/);
202
226
  const withoutVersion = versionMatch ? fuzzy.slice(0, -versionMatch[0].length) : fuzzy;
203
- // Try removing parameter size suffixes like "-12b", "-7b", "-70b", etc.
204
- const paramMatch = fuzzy.match(/-\d+[bBmMkKtT]$/);
227
+ // Try removing parameter size suffixes like "-12b", "-7b", "-70b", "-1.5b", "-0.6b", etc.
228
+ const paramMatch = fuzzy.match(/-\d+(\.\d+)?[bBmMkKtT]$/);
205
229
  const withoutParams = paramMatch ? fuzzy.slice(0, -paramMatch[0].length) : fuzzy;
206
- return [...new Set([normalized, withoutPrefix, fuzzy, withoutVersion, withoutParams])];
230
+ // Try removing date suffixes like "-20241022", "-20240620" (common for Anthropic models)
231
+ const dateMatch = fuzzy.match(/-\d{8}$/);
232
+ const withoutDate = dateMatch ? fuzzy.slice(0, -dateMatch[0].length) : fuzzy;
233
+ return [...new Set([normalized, withoutPrefix, fuzzy, withoutVersion, withoutParams, withoutDate])];
207
234
  }
208
235
  function cleanModelInfo(model) {
209
236
  const capabilities = model.capabilities?.toolCall || model.capabilities?.reasoning
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "source": "models.dev",
3
- "generatedAt": "2026-06-12T01:32:04.284Z",
3
+ "generatedAt": "2026-06-12T07:53:31.615Z",
4
4
  "providers": {
5
5
  "requesty": {
6
6
  "models": {
@@ -16505,24 +16505,6 @@
16505
16505
  "output": 8192
16506
16506
  }
16507
16507
  },
16508
- "meta-llama/Meta-Llama-3.1-8B-Instruct": {
16509
- "id": "meta-llama/Meta-Llama-3.1-8B-Instruct",
16510
- "type": "llm",
16511
- "reasoning": false,
16512
- "tool_call": true,
16513
- "modalities": {
16514
- "input": [
16515
- "text"
16516
- ],
16517
- "output": [
16518
- "text"
16519
- ]
16520
- },
16521
- "limit": {
16522
- "context": 128000,
16523
- "output": 4096
16524
- }
16525
- },
16526
16508
  "moonshotai/Kimi-K2.5-fast": {
16527
16509
  "id": "moonshotai/Kimi-K2.5-fast",
16528
16510
  "type": "llm",
@@ -16561,24 +16543,6 @@
16561
16543
  "output": 8192
16562
16544
  }
16563
16545
  },
16564
- "google/gemma-2-2b-it": {
16565
- "id": "google/gemma-2-2b-it",
16566
- "type": "llm",
16567
- "reasoning": false,
16568
- "tool_call": false,
16569
- "modalities": {
16570
- "input": [
16571
- "text"
16572
- ],
16573
- "output": [
16574
- "text"
16575
- ]
16576
- },
16577
- "limit": {
16578
- "context": 8192,
16579
- "output": 4096
16580
- }
16581
- },
16582
16546
  "google/gemma-3-27b-it": {
16583
16547
  "id": "google/gemma-3-27b-it",
16584
16548
  "type": "llm",
@@ -16728,7 +16692,7 @@
16728
16692
  "Qwen/Qwen3-235B-A22B-Instruct-2507": {
16729
16693
  "id": "Qwen/Qwen3-235B-A22B-Instruct-2507",
16730
16694
  "type": "llm",
16731
- "reasoning": true,
16695
+ "reasoning": false,
16732
16696
  "tool_call": true,
16733
16697
  "modalities": {
16734
16698
  "input": [
@@ -20117,6 +20081,24 @@
20117
20081
  "output": 128000
20118
20082
  }
20119
20083
  },
20084
+ "nemotron-3-ultra-550b": {
20085
+ "id": "nemotron-3-ultra-550b",
20086
+ "type": "llm",
20087
+ "reasoning": false,
20088
+ "tool_call": true,
20089
+ "modalities": {
20090
+ "input": [
20091
+ "text"
20092
+ ],
20093
+ "output": [
20094
+ "text"
20095
+ ]
20096
+ },
20097
+ "limit": {
20098
+ "context": 131072,
20099
+ "output": 8192
20100
+ }
20101
+ },
20120
20102
  "minimax-m2.5": {
20121
20103
  "id": "minimax-m2.5",
20122
20104
  "type": "llm",
@@ -21338,6 +21320,25 @@
21338
21320
  "output": 4096
21339
21321
  }
21340
21322
  },
21323
+ "anthropic-claude-fable-5": {
21324
+ "id": "anthropic-claude-fable-5",
21325
+ "type": "llm",
21326
+ "reasoning": true,
21327
+ "tool_call": true,
21328
+ "modalities": {
21329
+ "input": [
21330
+ "text",
21331
+ "image"
21332
+ ],
21333
+ "output": [
21334
+ "text"
21335
+ ]
21336
+ },
21337
+ "limit": {
21338
+ "context": 1000000,
21339
+ "output": 128000
21340
+ }
21341
+ },
21341
21342
  "nemotron-3-nano-omni": {
21342
21343
  "id": "nemotron-3-nano-omni",
21343
21344
  "type": "llm",
@@ -57642,6 +57643,30 @@
57642
57643
  }
57643
57644
  }
57644
57645
  },
57646
+ "zeldoc": {
57647
+ "models": {
57648
+ "z-code": {
57649
+ "id": "z-code",
57650
+ "type": "llm",
57651
+ "reasoning": true,
57652
+ "tool_call": true,
57653
+ "modalities": {
57654
+ "input": [
57655
+ "text",
57656
+ "image",
57657
+ "video"
57658
+ ],
57659
+ "output": [
57660
+ "text"
57661
+ ]
57662
+ },
57663
+ "limit": {
57664
+ "context": 262144,
57665
+ "output": 262144
57666
+ }
57667
+ }
57668
+ }
57669
+ },
57645
57670
  "scaleway": {
57646
57671
  "models": {
57647
57672
  "qwen3-235b-a22b-instruct-2507": {
@@ -95661,6 +95686,511 @@
95661
95686
  }
95662
95687
  }
95663
95688
  },
95689
+ "neon": {
95690
+ "models": {
95691
+ "gemini-3-flash": {
95692
+ "id": "gemini-3-flash",
95693
+ "type": "llm",
95694
+ "reasoning": true,
95695
+ "tool_call": true,
95696
+ "modalities": {
95697
+ "input": [
95698
+ "text",
95699
+ "image",
95700
+ "video",
95701
+ "audio",
95702
+ "pdf"
95703
+ ],
95704
+ "output": [
95705
+ "text"
95706
+ ]
95707
+ },
95708
+ "limit": {
95709
+ "context": 1048576,
95710
+ "output": 65536
95711
+ }
95712
+ },
95713
+ "claude-sonnet-4": {
95714
+ "id": "claude-sonnet-4",
95715
+ "type": "llm",
95716
+ "reasoning": true,
95717
+ "tool_call": true,
95718
+ "modalities": {
95719
+ "input": [
95720
+ "text",
95721
+ "image",
95722
+ "pdf"
95723
+ ],
95724
+ "output": [
95725
+ "text"
95726
+ ]
95727
+ },
95728
+ "limit": {
95729
+ "context": 200000,
95730
+ "output": 64000
95731
+ }
95732
+ },
95733
+ "claude-opus-4-5": {
95734
+ "id": "claude-opus-4-5",
95735
+ "type": "llm",
95736
+ "reasoning": true,
95737
+ "tool_call": true,
95738
+ "modalities": {
95739
+ "input": [
95740
+ "text",
95741
+ "image",
95742
+ "pdf"
95743
+ ],
95744
+ "output": [
95745
+ "text"
95746
+ ]
95747
+ },
95748
+ "limit": {
95749
+ "context": 200000,
95750
+ "output": 64000
95751
+ }
95752
+ },
95753
+ "gpt-5": {
95754
+ "id": "gpt-5",
95755
+ "type": "llm",
95756
+ "reasoning": true,
95757
+ "tool_call": true,
95758
+ "modalities": {
95759
+ "input": [
95760
+ "text",
95761
+ "image"
95762
+ ],
95763
+ "output": [
95764
+ "text"
95765
+ ]
95766
+ },
95767
+ "limit": {
95768
+ "context": 400000,
95769
+ "output": 128000
95770
+ }
95771
+ },
95772
+ "gpt-5-1": {
95773
+ "id": "gpt-5-1",
95774
+ "type": "llm",
95775
+ "reasoning": true,
95776
+ "tool_call": true,
95777
+ "modalities": {
95778
+ "input": [
95779
+ "text",
95780
+ "image"
95781
+ ],
95782
+ "output": [
95783
+ "text"
95784
+ ]
95785
+ },
95786
+ "limit": {
95787
+ "context": 400000,
95788
+ "output": 128000
95789
+ }
95790
+ },
95791
+ "gemini-3-pro": {
95792
+ "id": "gemini-3-pro",
95793
+ "type": "llm",
95794
+ "reasoning": true,
95795
+ "tool_call": true,
95796
+ "modalities": {
95797
+ "input": [
95798
+ "text",
95799
+ "image",
95800
+ "video",
95801
+ "audio",
95802
+ "pdf"
95803
+ ],
95804
+ "output": [
95805
+ "text"
95806
+ ]
95807
+ },
95808
+ "limit": {
95809
+ "context": 1048576,
95810
+ "output": 65536
95811
+ }
95812
+ },
95813
+ "gpt-5-2": {
95814
+ "id": "gpt-5-2",
95815
+ "type": "llm",
95816
+ "reasoning": true,
95817
+ "tool_call": true,
95818
+ "modalities": {
95819
+ "input": [
95820
+ "text",
95821
+ "image"
95822
+ ],
95823
+ "output": [
95824
+ "text"
95825
+ ]
95826
+ },
95827
+ "limit": {
95828
+ "context": 400000,
95829
+ "output": 128000
95830
+ }
95831
+ },
95832
+ "gemini-3-1-flash-lite": {
95833
+ "id": "gemini-3-1-flash-lite",
95834
+ "type": "llm",
95835
+ "reasoning": true,
95836
+ "tool_call": true,
95837
+ "modalities": {
95838
+ "input": [
95839
+ "text",
95840
+ "image",
95841
+ "video",
95842
+ "audio",
95843
+ "pdf"
95844
+ ],
95845
+ "output": [
95846
+ "text"
95847
+ ]
95848
+ },
95849
+ "limit": {
95850
+ "context": 1048576,
95851
+ "output": 65536
95852
+ }
95853
+ },
95854
+ "claude-sonnet-4-5": {
95855
+ "id": "claude-sonnet-4-5",
95856
+ "type": "llm",
95857
+ "reasoning": true,
95858
+ "tool_call": true,
95859
+ "modalities": {
95860
+ "input": [
95861
+ "text",
95862
+ "image",
95863
+ "pdf"
95864
+ ],
95865
+ "output": [
95866
+ "text"
95867
+ ]
95868
+ },
95869
+ "limit": {
95870
+ "context": 200000,
95871
+ "output": 64000
95872
+ }
95873
+ },
95874
+ "claude-opus-4-7": {
95875
+ "id": "claude-opus-4-7",
95876
+ "type": "llm",
95877
+ "reasoning": true,
95878
+ "tool_call": true,
95879
+ "modalities": {
95880
+ "input": [
95881
+ "text",
95882
+ "image",
95883
+ "pdf"
95884
+ ],
95885
+ "output": [
95886
+ "text"
95887
+ ]
95888
+ },
95889
+ "limit": {
95890
+ "context": 1000000,
95891
+ "output": 128000
95892
+ }
95893
+ },
95894
+ "gemini-2-5-pro": {
95895
+ "id": "gemini-2-5-pro",
95896
+ "type": "llm",
95897
+ "reasoning": true,
95898
+ "tool_call": true,
95899
+ "modalities": {
95900
+ "input": [
95901
+ "text",
95902
+ "image",
95903
+ "audio",
95904
+ "video",
95905
+ "pdf"
95906
+ ],
95907
+ "output": [
95908
+ "text"
95909
+ ]
95910
+ },
95911
+ "limit": {
95912
+ "context": 1048576,
95913
+ "output": 65536
95914
+ }
95915
+ },
95916
+ "gpt-5-4-nano": {
95917
+ "id": "gpt-5-4-nano",
95918
+ "type": "llm",
95919
+ "reasoning": true,
95920
+ "tool_call": true,
95921
+ "modalities": {
95922
+ "input": [
95923
+ "text",
95924
+ "image"
95925
+ ],
95926
+ "output": [
95927
+ "text"
95928
+ ]
95929
+ },
95930
+ "limit": {
95931
+ "context": 400000,
95932
+ "output": 128000
95933
+ }
95934
+ },
95935
+ "claude-opus-4-1": {
95936
+ "id": "claude-opus-4-1",
95937
+ "type": "llm",
95938
+ "reasoning": true,
95939
+ "tool_call": true,
95940
+ "modalities": {
95941
+ "input": [
95942
+ "text",
95943
+ "image",
95944
+ "pdf"
95945
+ ],
95946
+ "output": [
95947
+ "text"
95948
+ ]
95949
+ },
95950
+ "limit": {
95951
+ "context": 200000,
95952
+ "output": 32000
95953
+ }
95954
+ },
95955
+ "gpt-5-4-mini": {
95956
+ "id": "gpt-5-4-mini",
95957
+ "type": "llm",
95958
+ "reasoning": true,
95959
+ "tool_call": true,
95960
+ "modalities": {
95961
+ "input": [
95962
+ "text",
95963
+ "image"
95964
+ ],
95965
+ "output": [
95966
+ "text"
95967
+ ]
95968
+ },
95969
+ "limit": {
95970
+ "context": 400000,
95971
+ "output": 128000
95972
+ }
95973
+ },
95974
+ "gemini-2-5-flash": {
95975
+ "id": "gemini-2-5-flash",
95976
+ "type": "llm",
95977
+ "reasoning": true,
95978
+ "tool_call": true,
95979
+ "modalities": {
95980
+ "input": [
95981
+ "text",
95982
+ "image",
95983
+ "audio",
95984
+ "video",
95985
+ "pdf"
95986
+ ],
95987
+ "output": [
95988
+ "text"
95989
+ ]
95990
+ },
95991
+ "limit": {
95992
+ "context": 1048576,
95993
+ "output": 65536
95994
+ }
95995
+ },
95996
+ "gpt-oss-120b": {
95997
+ "id": "gpt-oss-120b",
95998
+ "type": "llm",
95999
+ "reasoning": true,
96000
+ "tool_call": true,
96001
+ "modalities": {
96002
+ "input": [
96003
+ "text"
96004
+ ],
96005
+ "output": [
96006
+ "text"
96007
+ ]
96008
+ },
96009
+ "limit": {
96010
+ "context": 131072,
96011
+ "output": 32768
96012
+ }
96013
+ },
96014
+ "gpt-5-5": {
96015
+ "id": "gpt-5-5",
96016
+ "type": "llm",
96017
+ "reasoning": true,
96018
+ "tool_call": true,
96019
+ "modalities": {
96020
+ "input": [
96021
+ "text",
96022
+ "image",
96023
+ "pdf"
96024
+ ],
96025
+ "output": [
96026
+ "text"
96027
+ ]
96028
+ },
96029
+ "limit": {
96030
+ "context": 1050000,
96031
+ "output": 128000
96032
+ }
96033
+ },
96034
+ "gemini-3-1-pro": {
96035
+ "id": "gemini-3-1-pro",
96036
+ "type": "llm",
96037
+ "reasoning": true,
96038
+ "tool_call": true,
96039
+ "modalities": {
96040
+ "input": [
96041
+ "text",
96042
+ "image",
96043
+ "video",
96044
+ "audio",
96045
+ "pdf"
96046
+ ],
96047
+ "output": [
96048
+ "text"
96049
+ ]
96050
+ },
96051
+ "limit": {
96052
+ "context": 1048576,
96053
+ "output": 65536
96054
+ }
96055
+ },
96056
+ "claude-haiku-4-5": {
96057
+ "id": "claude-haiku-4-5",
96058
+ "type": "llm",
96059
+ "reasoning": true,
96060
+ "tool_call": true,
96061
+ "modalities": {
96062
+ "input": [
96063
+ "text",
96064
+ "image",
96065
+ "pdf"
96066
+ ],
96067
+ "output": [
96068
+ "text"
96069
+ ]
96070
+ },
96071
+ "limit": {
96072
+ "context": 200000,
96073
+ "output": 64000
96074
+ }
96075
+ },
96076
+ "claude-opus-4-6": {
96077
+ "id": "claude-opus-4-6",
96078
+ "type": "llm",
96079
+ "reasoning": true,
96080
+ "tool_call": true,
96081
+ "modalities": {
96082
+ "input": [
96083
+ "text",
96084
+ "image",
96085
+ "pdf"
96086
+ ],
96087
+ "output": [
96088
+ "text"
96089
+ ]
96090
+ },
96091
+ "limit": {
96092
+ "context": 1000000,
96093
+ "output": 128000
96094
+ }
96095
+ },
96096
+ "gpt-5-mini": {
96097
+ "id": "gpt-5-mini",
96098
+ "type": "llm",
96099
+ "reasoning": true,
96100
+ "tool_call": true,
96101
+ "modalities": {
96102
+ "input": [
96103
+ "text",
96104
+ "image"
96105
+ ],
96106
+ "output": [
96107
+ "text"
96108
+ ]
96109
+ },
96110
+ "limit": {
96111
+ "context": 400000,
96112
+ "output": 128000
96113
+ }
96114
+ },
96115
+ "gpt-5-nano": {
96116
+ "id": "gpt-5-nano",
96117
+ "type": "llm",
96118
+ "reasoning": true,
96119
+ "tool_call": true,
96120
+ "modalities": {
96121
+ "input": [
96122
+ "text",
96123
+ "image"
96124
+ ],
96125
+ "output": [
96126
+ "text"
96127
+ ]
96128
+ },
96129
+ "limit": {
96130
+ "context": 400000,
96131
+ "output": 128000
96132
+ }
96133
+ },
96134
+ "claude-sonnet-4-6": {
96135
+ "id": "claude-sonnet-4-6",
96136
+ "type": "llm",
96137
+ "reasoning": true,
96138
+ "tool_call": true,
96139
+ "modalities": {
96140
+ "input": [
96141
+ "text",
96142
+ "image",
96143
+ "pdf"
96144
+ ],
96145
+ "output": [
96146
+ "text"
96147
+ ]
96148
+ },
96149
+ "limit": {
96150
+ "context": 1000000,
96151
+ "output": 64000
96152
+ }
96153
+ },
96154
+ "gpt-5-4": {
96155
+ "id": "gpt-5-4",
96156
+ "type": "llm",
96157
+ "reasoning": true,
96158
+ "tool_call": true,
96159
+ "modalities": {
96160
+ "input": [
96161
+ "text",
96162
+ "image",
96163
+ "pdf"
96164
+ ],
96165
+ "output": [
96166
+ "text"
96167
+ ]
96168
+ },
96169
+ "limit": {
96170
+ "context": 1050000,
96171
+ "output": 128000
96172
+ }
96173
+ },
96174
+ "gpt-oss-20b": {
96175
+ "id": "gpt-oss-20b",
96176
+ "type": "llm",
96177
+ "reasoning": true,
96178
+ "tool_call": true,
96179
+ "modalities": {
96180
+ "input": [
96181
+ "text"
96182
+ ],
96183
+ "output": [
96184
+ "text"
96185
+ ]
96186
+ },
96187
+ "limit": {
96188
+ "context": 131072,
96189
+ "output": 32768
96190
+ }
96191
+ }
96192
+ }
96193
+ },
95664
96194
  "upstage": {
95665
96195
  "models": {
95666
96196
  "solar-pro2": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heventure/model-provider-x",
3
- "version": "0.2.7-beta.0",
3
+ "version": "0.2.8-beta.0",
4
4
  "description": "TUI configurator and local API proxy for wiring custom model providers into OpenCode and Claude Code.",
5
5
  "private": false,
6
6
  "license": "MIT",