openrouter 0.1.2__py3-none-any.whl → 0.6.0__py3-none-any.whl

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.
Files changed (84) hide show
  1. openrouter/_version.py +2 -2
  2. openrouter/analytics.py +28 -2
  3. openrouter/api_keys.py +210 -14
  4. openrouter/chat.py +192 -200
  5. openrouter/components/__init__.py +229 -285
  6. openrouter/components/_schema10.py +39 -0
  7. openrouter/components/_schema14.py +11 -0
  8. openrouter/components/_schema17.py +154 -0
  9. openrouter/components/{_schema3.py → _schema19.py} +28 -22
  10. openrouter/components/{_schema0.py → _schema5.py} +7 -5
  11. openrouter/components/assistantmessage.py +32 -1
  12. openrouter/components/chatgenerationparams.py +57 -343
  13. openrouter/components/chatmessagecontentitemimage.py +4 -4
  14. openrouter/components/chatresponsechoice.py +1 -6
  15. openrouter/components/chatstreamingmessagechunk.py +3 -3
  16. openrouter/components/developermessage.py +41 -0
  17. openrouter/components/message.py +6 -39
  18. openrouter/components/model.py +7 -1
  19. openrouter/components/openresponsesrequest.py +31 -39
  20. openrouter/components/outputmodality.py +1 -0
  21. openrouter/components/providername.py +2 -0
  22. openrouter/components/providerpreferences.py +2 -10
  23. openrouter/components/publicendpoint.py +8 -24
  24. openrouter/components/publicpricing.py +3 -24
  25. openrouter/credits.py +86 -14
  26. openrouter/embeddings.py +92 -20
  27. openrouter/endpoints.py +62 -2
  28. openrouter/generations.py +26 -0
  29. openrouter/guardrails.py +3367 -0
  30. openrouter/models_.py +120 -12
  31. openrouter/oauth.py +90 -22
  32. openrouter/operations/__init__.py +601 -30
  33. openrouter/operations/bulkassignkeystoguardrail.py +116 -0
  34. openrouter/operations/bulkassignmemberstoguardrail.py +116 -0
  35. openrouter/operations/bulkunassignkeysfromguardrail.py +116 -0
  36. openrouter/operations/bulkunassignmembersfromguardrail.py +116 -0
  37. openrouter/operations/createauthkeyscode.py +81 -3
  38. openrouter/operations/createcoinbasecharge.py +82 -2
  39. openrouter/operations/createembeddings.py +82 -3
  40. openrouter/operations/createguardrail.py +325 -0
  41. openrouter/operations/createkeys.py +81 -3
  42. openrouter/operations/createresponses.py +84 -3
  43. openrouter/operations/deleteguardrail.py +104 -0
  44. openrouter/operations/deletekeys.py +69 -3
  45. openrouter/operations/exchangeauthcodeforapikey.py +81 -3
  46. openrouter/operations/getcredits.py +70 -1
  47. openrouter/operations/getcurrentkey.py +81 -3
  48. openrouter/operations/getgeneration.py +248 -3
  49. openrouter/operations/getguardrail.py +228 -0
  50. openrouter/operations/getkey.py +64 -1
  51. openrouter/operations/getmodels.py +95 -5
  52. openrouter/operations/getuseractivity.py +62 -1
  53. openrouter/operations/list.py +63 -1
  54. openrouter/operations/listembeddingsmodels.py +74 -0
  55. openrouter/operations/listendpoints.py +65 -2
  56. openrouter/operations/listendpointszdr.py +70 -2
  57. openrouter/operations/listguardrailkeyassignments.py +192 -0
  58. openrouter/operations/listguardrailmemberassignments.py +187 -0
  59. openrouter/operations/listguardrails.py +238 -0
  60. openrouter/operations/listkeyassignments.py +180 -0
  61. openrouter/operations/listmemberassignments.py +175 -0
  62. openrouter/operations/listmodelscount.py +74 -0
  63. openrouter/operations/listmodelsuser.py +70 -2
  64. openrouter/operations/listproviders.py +70 -2
  65. openrouter/operations/sendchatcompletionrequest.py +87 -3
  66. openrouter/operations/updateguardrail.py +334 -0
  67. openrouter/operations/updatekeys.py +63 -0
  68. openrouter/providers.py +36 -2
  69. openrouter/responses.py +178 -148
  70. openrouter/sdk.py +5 -8
  71. openrouter/types/models.py +378 -0
  72. {openrouter-0.1.2.dist-info → openrouter-0.6.0.dist-info}/METADATA +5 -1
  73. {openrouter-0.1.2.dist-info → openrouter-0.6.0.dist-info}/RECORD +76 -63
  74. {openrouter-0.1.2.dist-info → openrouter-0.6.0.dist-info}/WHEEL +1 -1
  75. openrouter/completions.py +0 -361
  76. openrouter/components/completionchoice.py +0 -82
  77. openrouter/components/completioncreateparams.py +0 -277
  78. openrouter/components/completionlogprobs.py +0 -54
  79. openrouter/components/completionresponse.py +0 -46
  80. openrouter/components/completionusage.py +0 -19
  81. openrouter/operations/getparameters.py +0 -123
  82. openrouter/parameters.py +0 -237
  83. {openrouter-0.1.2.dist-info → openrouter-0.6.0.dist-info}/licenses/LICENSE +0 -0
  84. {openrouter-0.1.2.dist-info → openrouter-0.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,378 @@
1
+ """Auto-generated by @openrouter/cli types. Do not edit manually."""
2
+ # Run `npx @openrouter/cli types` to regenerate
3
+ # Generated: 2025-12-23T14:51:29.122Z
4
+ # Model count: 351
5
+
6
+ from typing import Literal, Union
7
+ from typing_extensions import TypeAlias
8
+
9
+ # Union type of all available model IDs on OpenRouter.
10
+ # Includes base models and their variants (e.g., ":free", ":nitro").
11
+ ModelId: TypeAlias = Literal[
12
+ 'ai21/jamba-large-1.7',
13
+ 'ai21/jamba-mini-1.7',
14
+ 'aion-labs/aion-1.0',
15
+ 'aion-labs/aion-1.0-mini',
16
+ 'aion-labs/aion-rp-llama-3.1-8b',
17
+ 'alfredpros/codellama-7b-instruct-solidity',
18
+ 'alibaba/tongyi-deepresearch-30b-a3b',
19
+ 'alibaba/tongyi-deepresearch-30b-a3b:free',
20
+ 'allenai/olmo-2-0325-32b-instruct',
21
+ 'allenai/olmo-3-32b-think:free',
22
+ 'allenai/olmo-3-7b-instruct',
23
+ 'allenai/olmo-3-7b-think',
24
+ 'allenai/olmo-3.1-32b-think:free',
25
+ 'alpindale/goliath-120b',
26
+ 'amazon/nova-2-lite-v1',
27
+ 'amazon/nova-lite-v1',
28
+ 'amazon/nova-micro-v1',
29
+ 'amazon/nova-premier-v1',
30
+ 'amazon/nova-pro-v1',
31
+ 'anthracite-org/magnum-v4-72b',
32
+ 'anthropic/claude-3-haiku',
33
+ 'anthropic/claude-3-opus',
34
+ 'anthropic/claude-3.5-haiku',
35
+ 'anthropic/claude-3.5-haiku-20241022',
36
+ 'anthropic/claude-3.5-sonnet',
37
+ 'anthropic/claude-3.7-sonnet',
38
+ 'anthropic/claude-3.7-sonnet:thinking',
39
+ 'anthropic/claude-haiku-4.5',
40
+ 'anthropic/claude-opus-4',
41
+ 'anthropic/claude-opus-4.1',
42
+ 'anthropic/claude-opus-4.5',
43
+ 'anthropic/claude-sonnet-4',
44
+ 'anthropic/claude-sonnet-4.5',
45
+ 'arcee-ai/coder-large',
46
+ 'arcee-ai/maestro-reasoning',
47
+ 'arcee-ai/spotlight',
48
+ 'arcee-ai/trinity-mini',
49
+ 'arcee-ai/trinity-mini:free',
50
+ 'arcee-ai/virtuoso-large',
51
+ 'arliai/qwq-32b-arliai-rpr-v1',
52
+ 'baidu/ernie-4.5-21b-a3b',
53
+ 'baidu/ernie-4.5-21b-a3b-thinking',
54
+ 'baidu/ernie-4.5-300b-a47b',
55
+ 'baidu/ernie-4.5-vl-28b-a3b',
56
+ 'baidu/ernie-4.5-vl-424b-a47b',
57
+ 'bytedance/ui-tars-1.5-7b',
58
+ 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free',
59
+ 'cohere/command-a',
60
+ 'cohere/command-r-08-2024',
61
+ 'cohere/command-r-plus-08-2024',
62
+ 'cohere/command-r7b-12-2024',
63
+ 'deepcogito/cogito-v2-preview-llama-109b-moe',
64
+ 'deepcogito/cogito-v2-preview-llama-405b',
65
+ 'deepcogito/cogito-v2-preview-llama-70b',
66
+ 'deepcogito/cogito-v2.1-671b',
67
+ 'deepseek/deepseek-chat',
68
+ 'deepseek/deepseek-chat-v3-0324',
69
+ 'deepseek/deepseek-chat-v3.1',
70
+ 'deepseek/deepseek-prover-v2',
71
+ 'deepseek/deepseek-r1',
72
+ 'deepseek/deepseek-r1-0528',
73
+ 'deepseek/deepseek-r1-0528-qwen3-8b',
74
+ 'deepseek/deepseek-r1-0528:free',
75
+ 'deepseek/deepseek-r1-distill-llama-70b',
76
+ 'deepseek/deepseek-r1-distill-qwen-14b',
77
+ 'deepseek/deepseek-r1-distill-qwen-32b',
78
+ 'deepseek/deepseek-v3.1-terminus',
79
+ 'deepseek/deepseek-v3.1-terminus:exacto',
80
+ 'deepseek/deepseek-v3.2',
81
+ 'deepseek/deepseek-v3.2-exp',
82
+ 'deepseek/deepseek-v3.2-speciale',
83
+ 'eleutherai/llemma_7b',
84
+ 'essentialai/rnj-1-instruct',
85
+ 'google/gemini-2.0-flash-001',
86
+ 'google/gemini-2.0-flash-exp:free',
87
+ 'google/gemini-2.0-flash-lite-001',
88
+ 'google/gemini-2.5-flash',
89
+ 'google/gemini-2.5-flash-image',
90
+ 'google/gemini-2.5-flash-image-preview',
91
+ 'google/gemini-2.5-flash-lite',
92
+ 'google/gemini-2.5-flash-lite-preview-09-2025',
93
+ 'google/gemini-2.5-flash-preview-09-2025',
94
+ 'google/gemini-2.5-pro',
95
+ 'google/gemini-2.5-pro-preview',
96
+ 'google/gemini-2.5-pro-preview-05-06',
97
+ 'google/gemini-3-flash-preview',
98
+ 'google/gemini-3-pro-image-preview',
99
+ 'google/gemini-3-pro-preview',
100
+ 'google/gemma-2-27b-it',
101
+ 'google/gemma-2-9b-it',
102
+ 'google/gemma-3-12b-it',
103
+ 'google/gemma-3-12b-it:free',
104
+ 'google/gemma-3-27b-it',
105
+ 'google/gemma-3-27b-it:free',
106
+ 'google/gemma-3-4b-it',
107
+ 'google/gemma-3-4b-it:free',
108
+ 'google/gemma-3n-e2b-it:free',
109
+ 'google/gemma-3n-e4b-it',
110
+ 'google/gemma-3n-e4b-it:free',
111
+ 'gryphe/mythomax-l2-13b',
112
+ 'ibm-granite/granite-4.0-h-micro',
113
+ 'inception/mercury',
114
+ 'inception/mercury-coder',
115
+ 'inflection/inflection-3-pi',
116
+ 'inflection/inflection-3-productivity',
117
+ 'kwaipilot/kat-coder-pro:free',
118
+ 'liquid/lfm-2.2-6b',
119
+ 'liquid/lfm2-8b-a1b',
120
+ 'mancer/weaver',
121
+ 'meituan/longcat-flash-chat',
122
+ 'meta-llama/llama-3-70b-instruct',
123
+ 'meta-llama/llama-3-8b-instruct',
124
+ 'meta-llama/llama-3.1-405b',
125
+ 'meta-llama/llama-3.1-405b-instruct',
126
+ 'meta-llama/llama-3.1-405b-instruct:free',
127
+ 'meta-llama/llama-3.1-70b-instruct',
128
+ 'meta-llama/llama-3.1-8b-instruct',
129
+ 'meta-llama/llama-3.2-11b-vision-instruct',
130
+ 'meta-llama/llama-3.2-1b-instruct',
131
+ 'meta-llama/llama-3.2-3b-instruct',
132
+ 'meta-llama/llama-3.2-3b-instruct:free',
133
+ 'meta-llama/llama-3.2-90b-vision-instruct',
134
+ 'meta-llama/llama-3.3-70b-instruct',
135
+ 'meta-llama/llama-3.3-70b-instruct:free',
136
+ 'meta-llama/llama-4-maverick',
137
+ 'meta-llama/llama-4-scout',
138
+ 'meta-llama/llama-guard-2-8b',
139
+ 'meta-llama/llama-guard-3-8b',
140
+ 'meta-llama/llama-guard-4-12b',
141
+ 'microsoft/phi-3-medium-128k-instruct',
142
+ 'microsoft/phi-3-mini-128k-instruct',
143
+ 'microsoft/phi-3.5-mini-128k-instruct',
144
+ 'microsoft/phi-4',
145
+ 'microsoft/phi-4-multimodal-instruct',
146
+ 'microsoft/phi-4-reasoning-plus',
147
+ 'microsoft/wizardlm-2-8x22b',
148
+ 'minimax/minimax-01',
149
+ 'minimax/minimax-m1',
150
+ 'minimax/minimax-m2',
151
+ 'minimax/minimax-m2.1',
152
+ 'mistralai/codestral-2508',
153
+ 'mistralai/devstral-2512',
154
+ 'mistralai/devstral-2512:free',
155
+ 'mistralai/devstral-medium',
156
+ 'mistralai/devstral-small',
157
+ 'mistralai/devstral-small-2505',
158
+ 'mistralai/ministral-14b-2512',
159
+ 'mistralai/ministral-3b',
160
+ 'mistralai/ministral-3b-2512',
161
+ 'mistralai/ministral-8b',
162
+ 'mistralai/ministral-8b-2512',
163
+ 'mistralai/mistral-7b-instruct',
164
+ 'mistralai/mistral-7b-instruct-v0.1',
165
+ 'mistralai/mistral-7b-instruct-v0.2',
166
+ 'mistralai/mistral-7b-instruct-v0.3',
167
+ 'mistralai/mistral-7b-instruct:free',
168
+ 'mistralai/mistral-large',
169
+ 'mistralai/mistral-large-2407',
170
+ 'mistralai/mistral-large-2411',
171
+ 'mistralai/mistral-large-2512',
172
+ 'mistralai/mistral-medium-3',
173
+ 'mistralai/mistral-medium-3.1',
174
+ 'mistralai/mistral-nemo',
175
+ 'mistralai/mistral-saba',
176
+ 'mistralai/mistral-small-24b-instruct-2501',
177
+ 'mistralai/mistral-small-3.1-24b-instruct',
178
+ 'mistralai/mistral-small-3.1-24b-instruct:free',
179
+ 'mistralai/mistral-small-3.2-24b-instruct',
180
+ 'mistralai/mistral-small-creative',
181
+ 'mistralai/mistral-tiny',
182
+ 'mistralai/mixtral-8x22b-instruct',
183
+ 'mistralai/mixtral-8x7b-instruct',
184
+ 'mistralai/pixtral-12b',
185
+ 'mistralai/pixtral-large-2411',
186
+ 'mistralai/voxtral-small-24b-2507',
187
+ 'moonshotai/kimi-dev-72b',
188
+ 'moonshotai/kimi-k2',
189
+ 'moonshotai/kimi-k2-0905',
190
+ 'moonshotai/kimi-k2-0905:exacto',
191
+ 'moonshotai/kimi-k2-thinking',
192
+ 'moonshotai/kimi-k2:free',
193
+ 'morph/morph-v3-fast',
194
+ 'morph/morph-v3-large',
195
+ 'neversleep/llama-3.1-lumimaid-8b',
196
+ 'neversleep/noromaid-20b',
197
+ 'nex-agi/deepseek-v3.1-nex-n1:free',
198
+ 'nousresearch/deephermes-3-mistral-24b-preview',
199
+ 'nousresearch/hermes-2-pro-llama-3-8b',
200
+ 'nousresearch/hermes-3-llama-3.1-405b',
201
+ 'nousresearch/hermes-3-llama-3.1-405b:free',
202
+ 'nousresearch/hermes-3-llama-3.1-70b',
203
+ 'nousresearch/hermes-4-405b',
204
+ 'nousresearch/hermes-4-70b',
205
+ 'nvidia/llama-3.1-nemotron-70b-instruct',
206
+ 'nvidia/llama-3.1-nemotron-ultra-253b-v1',
207
+ 'nvidia/llama-3.3-nemotron-super-49b-v1.5',
208
+ 'nvidia/nemotron-3-nano-30b-a3b',
209
+ 'nvidia/nemotron-3-nano-30b-a3b:free',
210
+ 'nvidia/nemotron-nano-12b-v2-vl',
211
+ 'nvidia/nemotron-nano-12b-v2-vl:free',
212
+ 'nvidia/nemotron-nano-9b-v2',
213
+ 'nvidia/nemotron-nano-9b-v2:free',
214
+ 'openai/chatgpt-4o-latest',
215
+ 'openai/codex-mini',
216
+ 'openai/gpt-3.5-turbo',
217
+ 'openai/gpt-3.5-turbo-0613',
218
+ 'openai/gpt-3.5-turbo-16k',
219
+ 'openai/gpt-3.5-turbo-instruct',
220
+ 'openai/gpt-4',
221
+ 'openai/gpt-4-0314',
222
+ 'openai/gpt-4-1106-preview',
223
+ 'openai/gpt-4-turbo',
224
+ 'openai/gpt-4-turbo-preview',
225
+ 'openai/gpt-4.1',
226
+ 'openai/gpt-4.1-mini',
227
+ 'openai/gpt-4.1-nano',
228
+ 'openai/gpt-4o',
229
+ 'openai/gpt-4o-2024-05-13',
230
+ 'openai/gpt-4o-2024-08-06',
231
+ 'openai/gpt-4o-2024-11-20',
232
+ 'openai/gpt-4o-audio-preview',
233
+ 'openai/gpt-4o-mini',
234
+ 'openai/gpt-4o-mini-2024-07-18',
235
+ 'openai/gpt-4o-mini-search-preview',
236
+ 'openai/gpt-4o-search-preview',
237
+ 'openai/gpt-4o:extended',
238
+ 'openai/gpt-5',
239
+ 'openai/gpt-5-chat',
240
+ 'openai/gpt-5-codex',
241
+ 'openai/gpt-5-image',
242
+ 'openai/gpt-5-image-mini',
243
+ 'openai/gpt-5-mini',
244
+ 'openai/gpt-5-nano',
245
+ 'openai/gpt-5-pro',
246
+ 'openai/gpt-5.1',
247
+ 'openai/gpt-5.1-chat',
248
+ 'openai/gpt-5.1-codex',
249
+ 'openai/gpt-5.1-codex-max',
250
+ 'openai/gpt-5.1-codex-mini',
251
+ 'openai/gpt-5.2',
252
+ 'openai/gpt-5.2-chat',
253
+ 'openai/gpt-5.2-pro',
254
+ 'openai/gpt-oss-120b',
255
+ 'openai/gpt-oss-120b:exacto',
256
+ 'openai/gpt-oss-120b:free',
257
+ 'openai/gpt-oss-20b',
258
+ 'openai/gpt-oss-20b:free',
259
+ 'openai/gpt-oss-safeguard-20b',
260
+ 'openai/o1',
261
+ 'openai/o1-pro',
262
+ 'openai/o3',
263
+ 'openai/o3-deep-research',
264
+ 'openai/o3-mini',
265
+ 'openai/o3-mini-high',
266
+ 'openai/o3-pro',
267
+ 'openai/o4-mini',
268
+ 'openai/o4-mini-deep-research',
269
+ 'openai/o4-mini-high',
270
+ 'opengvlab/internvl3-78b',
271
+ 'openrouter/auto',
272
+ 'openrouter/bodybuilder',
273
+ 'perplexity/sonar',
274
+ 'perplexity/sonar-deep-research',
275
+ 'perplexity/sonar-pro',
276
+ 'perplexity/sonar-pro-search',
277
+ 'perplexity/sonar-reasoning',
278
+ 'perplexity/sonar-reasoning-pro',
279
+ 'prime-intellect/intellect-3',
280
+ 'qwen/qwen-2.5-72b-instruct',
281
+ 'qwen/qwen-2.5-7b-instruct',
282
+ 'qwen/qwen-2.5-coder-32b-instruct',
283
+ 'qwen/qwen-2.5-vl-7b-instruct',
284
+ 'qwen/qwen-2.5-vl-7b-instruct:free',
285
+ 'qwen/qwen-max',
286
+ 'qwen/qwen-plus',
287
+ 'qwen/qwen-plus-2025-07-28',
288
+ 'qwen/qwen-plus-2025-07-28:thinking',
289
+ 'qwen/qwen-turbo',
290
+ 'qwen/qwen-vl-max',
291
+ 'qwen/qwen-vl-plus',
292
+ 'qwen/qwen2.5-coder-7b-instruct',
293
+ 'qwen/qwen2.5-vl-32b-instruct',
294
+ 'qwen/qwen2.5-vl-72b-instruct',
295
+ 'qwen/qwen3-14b',
296
+ 'qwen/qwen3-235b-a22b',
297
+ 'qwen/qwen3-235b-a22b-2507',
298
+ 'qwen/qwen3-235b-a22b-thinking-2507',
299
+ 'qwen/qwen3-30b-a3b',
300
+ 'qwen/qwen3-30b-a3b-instruct-2507',
301
+ 'qwen/qwen3-30b-a3b-thinking-2507',
302
+ 'qwen/qwen3-32b',
303
+ 'qwen/qwen3-4b:free',
304
+ 'qwen/qwen3-8b',
305
+ 'qwen/qwen3-coder',
306
+ 'qwen/qwen3-coder-30b-a3b-instruct',
307
+ 'qwen/qwen3-coder-flash',
308
+ 'qwen/qwen3-coder-plus',
309
+ 'qwen/qwen3-coder:exacto',
310
+ 'qwen/qwen3-coder:free',
311
+ 'qwen/qwen3-max',
312
+ 'qwen/qwen3-next-80b-a3b-instruct',
313
+ 'qwen/qwen3-next-80b-a3b-thinking',
314
+ 'qwen/qwen3-vl-235b-a22b-instruct',
315
+ 'qwen/qwen3-vl-235b-a22b-thinking',
316
+ 'qwen/qwen3-vl-30b-a3b-instruct',
317
+ 'qwen/qwen3-vl-30b-a3b-thinking',
318
+ 'qwen/qwen3-vl-32b-instruct',
319
+ 'qwen/qwen3-vl-8b-instruct',
320
+ 'qwen/qwen3-vl-8b-thinking',
321
+ 'qwen/qwq-32b',
322
+ 'raifle/sorcererlm-8x22b',
323
+ 'relace/relace-apply-3',
324
+ 'relace/relace-search',
325
+ 'sao10k/l3-euryale-70b',
326
+ 'sao10k/l3-lunaris-8b',
327
+ 'sao10k/l3.1-70b-hanami-x1',
328
+ 'sao10k/l3.1-euryale-70b',
329
+ 'sao10k/l3.3-euryale-70b',
330
+ 'stepfun-ai/step3',
331
+ 'switchpoint/router',
332
+ 'tencent/hunyuan-a13b-instruct',
333
+ 'thedrummer/cydonia-24b-v4.1',
334
+ 'thedrummer/rocinante-12b',
335
+ 'thedrummer/skyfall-36b-v2',
336
+ 'thedrummer/unslopnemo-12b',
337
+ 'thudm/glm-4.1v-9b-thinking',
338
+ 'tngtech/deepseek-r1t-chimera',
339
+ 'tngtech/deepseek-r1t-chimera:free',
340
+ 'tngtech/deepseek-r1t2-chimera',
341
+ 'tngtech/deepseek-r1t2-chimera:free',
342
+ 'tngtech/tng-r1t-chimera',
343
+ 'tngtech/tng-r1t-chimera:free',
344
+ 'undi95/remm-slerp-l2-13b',
345
+ 'x-ai/grok-3',
346
+ 'x-ai/grok-3-beta',
347
+ 'x-ai/grok-3-mini',
348
+ 'x-ai/grok-3-mini-beta',
349
+ 'x-ai/grok-4',
350
+ 'x-ai/grok-4-fast',
351
+ 'x-ai/grok-4.1-fast',
352
+ 'x-ai/grok-code-fast-1',
353
+ 'xiaomi/mimo-v2-flash:free',
354
+ 'z-ai/glm-4-32b',
355
+ 'z-ai/glm-4.5',
356
+ 'z-ai/glm-4.5-air',
357
+ 'z-ai/glm-4.5-air:free',
358
+ 'z-ai/glm-4.5v',
359
+ 'z-ai/glm-4.6',
360
+ 'z-ai/glm-4.6:exacto',
361
+ 'z-ai/glm-4.6v',
362
+ 'z-ai/glm-4.7'
363
+ ]
364
+
365
+ # Static variants that create distinct model IDs.
366
+ # These are already present in the API response (e.g., "openai/gpt-4:free").
367
+ StaticVariant: TypeAlias = Literal['free', 'extended', 'exacto', 'thinking']
368
+
369
+ # Virtual variants used for routing hints.
370
+ # These do not create distinct model IDs but affect routing behavior.
371
+ VirtualVariant: TypeAlias = Literal['all', 'online', 'nitro', 'floor']
372
+
373
+ # All available variants.
374
+ Variant: TypeAlias = Union[StaticVariant, VirtualVariant]
375
+
376
+ # Hash of model IDs for staleness checking.
377
+ # Used by postinstall script to detect outdated types.
378
+ MODEL_HASH: str = '986e77d89072f654'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrouter
3
- Version: 0.1.2
3
+ Version: 0.6.0
4
4
  Summary: Official Python Client SDK for OpenRouter.
5
5
  Author: OpenRouter
6
6
  License: Apache-2.0
@@ -197,6 +197,8 @@ import os
197
197
  def main():
198
198
 
199
199
  with OpenRouter(
200
+ http_referer="<value>",
201
+ x_title="<value>",
200
202
  api_key=os.getenv("OPENROUTER_API_KEY", ""),
201
203
  ) as open_router:
202
204
  # Rest of application here...
@@ -206,6 +208,8 @@ def main():
206
208
  async def amain():
207
209
 
208
210
  async with OpenRouter(
211
+ http_referer="<value>",
212
+ x_title="<value>",
209
213
  api_key=os.getenv("OPENROUTER_API_KEY", ""),
210
214
  ) as open_router:
211
215
  # Rest of application here...
@@ -1,63 +1,61 @@
1
1
  openrouter/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,401
2
- openrouter/_version.py,sha256=bZbGb4lSAj3ZW9iBB0R3qP2A1OBxuUc1lG2K9hfh2nk,462
3
- openrouter/analytics.py,sha256=0yULK6M4DpIdOrHCgLF5ZmcbI0oPg7oBUp1Qx5gx2vw,9793
4
- openrouter/api_keys.py,sha256=XMPuRMfcf8on6GEjElvNNTszGHYGuMr4YKE9yFrl1js,57682
2
+ openrouter/_version.py,sha256=IwtoLJ-NbKwMKS51kGPEi6XWCzwdEqo5QVNwGqG2dSs,462
3
+ openrouter/analytics.py,sha256=WZcYoycdl4fvuCdNiV5okGucr-Shl363ip1SUHoHvyg,11275
4
+ openrouter/api_keys.py,sha256=V3rZh5sfCUf0Brp8DUK_E0BMmk9tm4x1L9WfDY-K3EI,67274
5
5
  openrouter/basesdk.py,sha256=VhwM2eELTCr-7vgi1MLohTxYmNJurxN0hwhQjJKfOsA,12595
6
6
  openrouter/beta.py,sha256=MzJTf7x1qwLAR2nd5Y4yzD8bIQCOsREEPf8uhwune_U,668
7
- openrouter/chat.py,sha256=ul2ZAqnmJM3l-UWDp_wPpF1Tl4wzqQkubR-OqgXzuBs,40937
8
- openrouter/completions.py,sha256=TB7mb7XSfflk7XtMnys0l5sTI-3RY88xKTWYw1MqdHU,14276
9
- openrouter/credits.py,sha256=h1oyFu4FoShOzFNvwHz1_ZKWJeof5Mf5V0A8OIU8Jps,18916
10
- openrouter/embeddings.py,sha256=zqbIXUtQIx_e0Zm9qZ2z1Ieo6H5ZX22MyNmA9ZLULfs,24383
11
- openrouter/endpoints.py,sha256=z50tI4vJbF6Sbq9_rKdKWIxmU1MYOfKau2K8GNnxInY,15520
12
- openrouter/generations.py,sha256=sOwPS56RWFLLVaeher1gLoYhdQLa0BcZ-TBwQsmtEAU,12092
7
+ openrouter/chat.py,sha256=O7jOcvzx6Nzg7nHTGCmgLLaATBh8D0gcK-6HkhxLdR0,39783
8
+ openrouter/credits.py,sha256=8yxKP4MnoJjtDOHTipMQ_q2ojwIeibwsamp3qnwaDMA,22230
9
+ openrouter/embeddings.py,sha256=hjULq_pDAEOiIQh-IGjb2cBYm7jefv7_9NWGvjUsFG8,27597
10
+ openrouter/endpoints.py,sha256=wQWzJh1zEFjXKBi8mHnrNgD1NSknWWZEOeFl47WtVl4,18316
11
+ openrouter/generations.py,sha256=D9szMp0tvG6R-3h8je1oENSpAKszU4BSLHY0BpfDBME,13418
12
+ openrouter/guardrails.py,sha256=8o06CYUkgflz1djWN06_PCyW3zffJAH21nxckRhn9_8,145689
13
13
  openrouter/httpclient.py,sha256=dqTPONDBpRn4ktXfcetQiRXnG93f0pJkFhqsYFhLUac,3945
14
- openrouter/models_.py,sha256=0NICD1xFjvRVzeQhNsWR26g9yEprZLyQNDhbQz5z9lI,23439
15
- openrouter/oauth.py,sha256=zjmDnnJipJVzM6dqCft5Y73KOtL69rlYPXCXHgXCoTo,21476
16
- openrouter/parameters.py,sha256=n5ff0YDwU-iImICpcpLWGGs1zl7OtzFECuE_on9ghig,9630
17
- openrouter/providers.py,sha256=UDurmmNvy1y78TGJ8KrxOwx0XY6VGw2n1ZZBv0IOI3U,7414
14
+ openrouter/models_.py,sha256=vSaMmMStctgAhvFEsqebaaLpa_okFKdEw8YI9uioJNM,29235
15
+ openrouter/oauth.py,sha256=P8EpHb9Tfv5yGa1BMTLtCeEtDi5II_fJOPVNsOa1_zs,24766
16
+ openrouter/providers.py,sha256=JQ6z_lWuWTw37aVZJNBbNALQkXmH-UBaTlkpZAYkiNg,8872
18
17
  openrouter/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
19
- openrouter/responses.py,sha256=uQc9kTnO31IpeEPmC4L0qD6LOGUgUkfQmSO1zBxEalQ,59785
20
- openrouter/sdk.py,sha256=e9a8LB2W9ECr6iCKnuzTLsXteyTaFzuGVjL6_8F44TY,9177
18
+ openrouter/responses.py,sha256=Gx-ojHfbxYI1ej9Elxgvl-odu5k6vCkdZkxFHGQ55ko,62211
19
+ openrouter/sdk.py,sha256=GvfTFAo5Mtkuh0IBA__XaCU1s3_ZP29iXhEXeM9DA6Q,8996
21
20
  openrouter/sdkconfiguration.py,sha256=Dy4l6oqgR2cdrWqL7i9nkGmjaWaS7X0m5TeOUDzHc5o,1848
22
21
  openrouter/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU1c,146
23
22
  openrouter/_hooks/registration.py,sha256=1QZB41w6If7I9dXiOSQx6dhSc6BPWrnI5Q5bMOr4iVA,624
24
23
  openrouter/_hooks/sdkhooks.py,sha256=LCCg5knZJaFz4Jo42RY9WAHZRRnDbvUE88sEKhQYXM8,2527
25
24
  openrouter/_hooks/types.py,sha256=ZFfWuTCcAptJH7HnEKcZK7K9ENY9bp6zMPbyLLbzNzQ,2989
26
- openrouter/components/__init__.py,sha256=cxRkpDVRy1vWKhjFFuHi8acvxQLtrgrwZOYw8Uz7Vi0,111081
27
- openrouter/components/_schema0.py,sha256=oyV2mhdJMiPV_ADH5bNcZxEylsfnn5sko2CYK8x9d-8,2023
28
- openrouter/components/_schema3.py,sha256=G9sb9yrQVMGAet_G7tSdxUDCSz8xAz4VhuY0kBvKP74,6530
25
+ openrouter/components/__init__.py,sha256=bseJL95eNINI9SuFINMpN29zvk3Lh8ooZSJaxeRxS_U,104834
26
+ openrouter/components/_schema10.py,sha256=s8uFQUgHrjD4abjFLxok9l7hzeKp_b8rdOgjgVnJS7M,1076
27
+ openrouter/components/_schema14.py,sha256=KIBexVtvsC7-RJWBY_MlCPwt_DK7ru2ddGSoGkn6aOQ,326
28
+ openrouter/components/_schema17.py,sha256=NOqGJcL5R1fBsaWPoSX8HIwkSo3o_3S83d0PjywEdws,3787
29
+ openrouter/components/_schema19.py,sha256=P_Tx0dfIVwufCwlQs9Jl8pz2VwkhdcNjBi0FjMHlfck,6618
30
+ openrouter/components/_schema5.py,sha256=ECn1UsWfe-hD4tDJVXyhAstq9TOeJpw0jFkP_B5u-d0,2061
29
31
  openrouter/components/activityitem.py,sha256=QYddTlC36y1VMbIviD50Qw8Rt1GODRXMV_iJuotwyNo,1920
30
- openrouter/components/assistantmessage.py,sha256=nIiDnOAxDZ4lyauJ946pYf5Wnk0Gi7R0bsoNw2UTLHM,2709
32
+ openrouter/components/assistantmessage.py,sha256=pNZYDCMCGcBSV5lGOSt6PbG6TDYLX8yE6zxOaNlU6ss,3365
31
33
  openrouter/components/badgatewayresponseerrordata.py,sha256=pojFsYueX95FC7Ic6tiEiphw4fvI9Z6Jax0QUACU-FI,1643
32
34
  openrouter/components/badrequestresponseerrordata.py,sha256=vo3KNC-cwAqaohMTV0ztfnklqWmxpC5VKUZp-3FUoYE,1643
33
35
  openrouter/components/chatcompletionfinishreason.py,sha256=oPpIHQ4HdBIcszyYlbsfPocwGUBZ2EBnwDvvUD_3sPM,367
34
36
  openrouter/components/chaterror.py,sha256=J47w1HLn4kmAxGiz4nVaMMbspoBu3s07-kkmjXaFa80,1733
35
- openrouter/components/chatgenerationparams.py,sha256=WEQXNFcSOlEAVkUUUFN6JMp3LjybFmQUlWI7LGx5Y9w,28197
37
+ openrouter/components/chatgenerationparams.py,sha256=DOoKsV3Z57au0vJyYeJhN67w16qYODID4-0Oe8FIQb8,15152
36
38
  openrouter/components/chatgenerationtokenusage.py,sha256=M5rFdUdMfg3d3yj8LQx3sdjtGPhVwcspg8vn9gRdzIs,4085
37
39
  openrouter/components/chatmessagecontentitem.py,sha256=L4luQfVHGUKnkL1w3cd-WuLtdGjY9g32yqKUuZJO7DI,1498
38
40
  openrouter/components/chatmessagecontentitemaudio.py,sha256=w2oedR10YJmBWFlsNkTqqLHt2fZHcK_zfHGV3PxY4xM,1025
39
41
  openrouter/components/chatmessagecontentitemcachecontrol.py,sha256=excB0uceH2xW4JaGnay0V9-_RhBpmzjPxtaFanxneUQ,938
40
- openrouter/components/chatmessagecontentitemimage.py,sha256=jBKcmC8ZVVXHv544EnwSOv-5iFFJYWjSNC6ypwD5ydo,1213
42
+ openrouter/components/chatmessagecontentitemimage.py,sha256=kDhC1J8fTugNiOM3pA1aD0Pdxoow3jjYDjCJecEVv08,1321
41
43
  openrouter/components/chatmessagecontentitemtext.py,sha256=o-MH8YXkQgqGlbxCjfNofc6Nmj_KQej34Gz8c37UsJM,963
42
44
  openrouter/components/chatmessagecontentitemvideo.py,sha256=g0Em43dX0xDVENIavmE0EYPuu5tiM3HLC7yfK8JkQtA,1914
43
45
  openrouter/components/chatmessagetokenlogprob.py,sha256=msS-G6Bj2_3DJggKGgXfg_7vGFC9cVcKDw46vCgsNxA,2800
44
46
  openrouter/components/chatmessagetokenlogprobs.py,sha256=HW1f8RM-gUIMf1HxIwlBPZSzfbjMfU57b8KCLqoxWYw,1625
45
47
  openrouter/components/chatmessagetoolcall.py,sha256=lEaBzI74PCCOgwks6NIZzqS3Xir79G9GQhE18TdNmtI,915
46
48
  openrouter/components/chatresponse.py,sha256=u72782C1mRmQdTJtBR3vsTd5U4rf6nEi1m1KC55PGKY,2353
47
- openrouter/components/chatresponsechoice.py,sha256=63HiWHTd18yF8U681shKEOQSQ9JjoxAFMxFxCMzbWmU,2338
49
+ openrouter/components/chatresponsechoice.py,sha256=rXANO0ovX3ow9W4i4AG7lyAQHzHVR-YasGcjc-txiSg,2121
48
50
  openrouter/components/chatstreamingchoice.py,sha256=xpHEEYnNtm3eO8pJmJb6VBHU1LEFQ02dUbZA3ZFZ_a4,2177
49
- openrouter/components/chatstreamingmessagechunk.py,sha256=FSEqVVReIn5G8Tob0t8jLitSuFdrjvzb3__tjAlUvHY,2391
51
+ openrouter/components/chatstreamingmessagechunk.py,sha256=W0K_xHT-qO4ZVKaZzqSIPmZr6x7uPwicFozkgHbXr1s,2396
50
52
  openrouter/components/chatstreamingmessagetoolcall.py,sha256=eTp291e9xwR6yCRQ_DPjfrgUGqbg2B0piNtxTfycYe8,1179
51
53
  openrouter/components/chatstreamingresponsechunk.py,sha256=cK3D1eTMB_F54Oh6bwB2rj2ODvulOH1uK6tCjU7QN3U,2927
52
54
  openrouter/components/chatstreamoptions.py,sha256=b8fwrfV7bPoX9CxoPCUuyn1_T9V5N42GrWJQCXRR63g,391
53
- openrouter/components/completionchoice.py,sha256=GXS8sDYUN2Sebb8fCSlh-VgVoY4goJqeR-2OvZdkgOE,2274
54
- openrouter/components/completioncreateparams.py,sha256=W4dzWu6RmEReeHwapP4EZ-sqaH15KYjHJjUNqiCeTVY,8068
55
- openrouter/components/completionlogprobs.py,sha256=rfOxgVXfnOV82BkpkHQEoBHY6h5-3hoVzZilWyH9Gzw,1545
56
- openrouter/components/completionresponse.py,sha256=Q_-Je-7LCU_kYlF44k2vL64wFupez0vv8AUwFHfx0wo,1290
57
- openrouter/components/completionusage.py,sha256=VeguE0iCocTv5wnXujcr2jy2Pug6YVkAGle3DAWp9ws,426
58
55
  openrouter/components/createchargerequest.py,sha256=Fc-tjZWAQeaZddgM_m6PUWlfvAin2Gdr_NRqqsPyeA8,823
59
56
  openrouter/components/datacollection.py,sha256=M0shLYdzgusCOAp6fBzqkpuk12piWejQMH_dLpuzD7M,564
60
57
  openrouter/components/defaultparameters.py,sha256=uRNuPA5WA2yK-Jdp_kXHhkt_55AFnH0DjWkjpVgwM9g,1756
58
+ openrouter/components/developermessage.py,sha256=-dZLwtOuGksKPQc84w4D47edRUIsS8XmmJA4kC7KSK0,1207
61
59
  openrouter/components/edgenetworktimeoutresponseerrordata.py,sha256=vJwUAmJpSUHK3wvtolDiDP--PufTqoBdV9BHvPR3XUs,1675
62
60
  openrouter/components/endpointstatus.py,sha256=5PVh4wrN1gJkOiI2ZsYb6VgLJrgjo5R51n7Gk-V_zYc,328
63
61
  openrouter/components/filecitation.py,sha256=biI6ox24SVT3TTp-k22K_PlD3kuTKK7lL90ZJYNORAE,497
@@ -69,8 +67,8 @@ openrouter/components/instructtype.py,sha256=mWr5X7bjGHlDXV9i6tMNGcxI27p5MOwhPqR
69
67
  openrouter/components/internalserverresponseerrordata.py,sha256=6BtoI6QZNZjdrC4tM3Q1U2-6PIIBAdYBHa1JdmZRdiE,1659
70
68
  openrouter/components/jsonschemaconfig.py,sha256=PfJ7Z5TbDlgwtVCqoJGCes96ivhxk9EdbVnm-mSf5XM,1711
71
69
  openrouter/components/listendpointsresponse.py,sha256=rtdM6ZHtxnNQJNx0IPINoqiosu50nIkFUfEM8l70g6A,4026
72
- openrouter/components/message.py,sha256=Xw75z4vPJN4O-POrIThRUoKYrYMbrvnj6MVf87DMDWo,2105
73
- openrouter/components/model.py,sha256=hG9IzmCQEQaJjlykSEyG6lT8myZmJYBmsKSD18a7SaI,4299
70
+ openrouter/components/message.py,sha256=-He18YhdDeaLOss3Gwlzn40Rrkq_n4J_VHdp3fIA3u0,1247
71
+ openrouter/components/model.py,sha256=TmxeS0wSqsAHItjgT_ZuAzQ4Wg0W7ze2dsD4VLuVbfY,4685
74
72
  openrouter/components/modelarchitecture.py,sha256=IBeSVEv4PzulcY7nATFb_886Hj5NnnIolryqe7ytBOc,3405
75
73
  openrouter/components/modelgroup.py,sha256=hN2VH_hksubq8YoOlr320yFTnAVE72Ubo6PKPPq4LEQ,617
76
74
  openrouter/components/modelscountresponse.py,sha256=Y29-2jbyoT9-kDJiALNzLzC0Sp_u-26Vj8CozEoRDyo,744
@@ -108,7 +106,7 @@ openrouter/components/openresponsesreasoningdoneevent.py,sha256=8uaytNWLnKY0zeGc
108
106
  openrouter/components/openresponsesreasoningsummarypartaddedevent.py,sha256=XIwRwP2ajJBjFikH5XaHUaWf5arv7XnOeoM-8ADoJns,1053
109
107
  openrouter/components/openresponsesreasoningsummarytextdeltaevent.py,sha256=CENzEhU9hur6ZUekCoiysSRVzfoVIHFK9aXAs5lQ760,940
110
108
  openrouter/components/openresponsesreasoningsummarytextdoneevent.py,sha256=iRWYHS1Men5in-_McPGfGTJtp-mifontwNw6VoKAmME,940
111
- openrouter/components/openresponsesrequest.py,sha256=cJZfWq-B442jCXctAdzsN3YQ6Ze17BycNIWr4kM7s3o,30625
109
+ openrouter/components/openresponsesrequest.py,sha256=Y9AJD0bw4ci9VKuyqrSsCWAzVi4YfufFlfxtjHm78dw,29516
112
110
  openrouter/components/openresponsesresponsetext.py,sha256=EvJncVKeadIuD3qBsjCCc2rpgybVMvsE-U4ZQbWMxX8,2415
113
111
  openrouter/components/openresponsesstreamevent.py,sha256=5A6qa56E3PtEN87rixCMiumQhVbfFcZIoYXA5ILkOeQ,20717
114
112
  openrouter/components/openresponsestoplogprobs.py,sha256=G6evfWbvhl0K_XapnUwN0lB67Z38NJgr6BV1GUssbXU,566
@@ -119,7 +117,7 @@ openrouter/components/openresponseswebsearchpreviewtool.py,sha256=Wn8hzIZPsCkCWh
119
117
  openrouter/components/openresponseswebsearchtool.py,sha256=0JVWrgSNw1u6SurGWZNQaMG9UrtYGOG7wA9KE3auiZE,3855
120
118
  openrouter/components/outputitemimagegenerationcall.py,sha256=KdCl0dpLsV2cxXPqAovbXXspFz-y4Y0ygRgvmzvMB5g,1897
121
119
  openrouter/components/outputmessage.py,sha256=262rM0JS75dP_TPRiUKM8HhAmo9T9MV0Rl_DxXkYfKQ,2102
122
- openrouter/components/outputmodality.py,sha256=xhd85lcYNR8kBOMPbfXvHHHZO_yYHYtwYpvIKS6MW1M,311
120
+ openrouter/components/outputmodality.py,sha256=1-8xdC-toKlwsgt9vxcbIgmhKAGPlgiFEfEI2mcczHA,328
123
121
  openrouter/components/parameter.py,sha256=3U8kFsb0EzocJa35TZ8jmKXdbNt6ypZF_T_REzA3wnY,806
124
122
  openrouter/components/payloadtoolargeresponseerrordata.py,sha256=kksPhvoVefVY_snEVvP37TEh_TlZd_fCYft0T8RA5Pc,1663
125
123
  openrouter/components/paymentrequiredresponseerrordata.py,sha256=rwnrHSbpFug6BjgVPRbgx9eZyxMqwtySBa23PMVk3B8,1663
@@ -131,14 +129,14 @@ openrouter/components/percentilethroughputcutoffs.py,sha256=oulCCmMPC6CWhZE1U-RK
131
129
  openrouter/components/perrequestlimits.py,sha256=_qhdLIdZCGoPP_V874ik7tOIaD4fm0s0F95etZCgpaU,641
132
130
  openrouter/components/preferredmaxlatency.py,sha256=VeHWgbqmPcv206NMLSR52X3Qv3cRgjb8vx4PLNWbmnA,1224
133
131
  openrouter/components/preferredminthroughput.py,sha256=ndCaNjZR1yOPhwfNsTL6-YE_3kh4h25rm_EZNsmcOOc,1282
134
- openrouter/components/providername.py,sha256=iB0z-fsODZhvvhrRvh_SM6eRQ1rvv_06jUqQ6t2pkJQ,1656
132
+ openrouter/components/providername.py,sha256=3YcQOBtVXfBbP7NgPonm3SL-gwGyjqrsnhsLpKTCH_M,1694
135
133
  openrouter/components/provideroverloadedresponseerrordata.py,sha256=mHwExxgAplc5sL0rJS0x6ajSAs2-Hu16lWy-0UX6BN0,1675
136
- openrouter/components/providerpreferences.py,sha256=iGnLzGLm8UGiDRElfOgcPo40h0r1UEm2xsfBH3fagH0,14863
134
+ openrouter/components/providerpreferences.py,sha256=wcxizxMVhWDSnNFtA8w1Utl7g1kpN-RGQ38A6RMsb1E,14359
137
135
  openrouter/components/providersort.py,sha256=YfJgDEQpTHK4MyRxlHv4LBdAraAteoOd5DATB_zRjL4,312
138
136
  openrouter/components/providersortconfig.py,sha256=Kigyy9Kd-WmBVEDM5cRErlpwlazLzgxmQpjJUFXzDCQ,1962
139
137
  openrouter/components/providersortunion.py,sha256=keZD3nNkp_UW--H9xn2pwMgMKcQDUd-a4R1wJJKKqfQ,730
140
- openrouter/components/publicendpoint.py,sha256=s4My9R8dRGzlBL8wotZAFdgCqF0c2NE4xk6M-DgdVEk,6288
141
- openrouter/components/publicpricing.py,sha256=WNSEiJroJuKy7G9ey-K2xorsBMm1hj6zl1qhOYDK0dU,2703
138
+ openrouter/components/publicendpoint.py,sha256=JVi2wmsAROvTfcePR37RfkhJgS2lQNniXlrEXxBa5TA,5102
139
+ openrouter/components/publicpricing.py,sha256=SD47ZHWw-y-u70EVncMCeHtYnEJb8Jhzur4kSCGdYIg,1362
142
140
  openrouter/components/quantization.py,sha256=1LUfelzKMuC3ZwSpkWOD1ORaNOFcepzMqDHqoYddmNw,398
143
141
  openrouter/components/reasoningsummarytext.py,sha256=qWxNZNRc2mDDKfdLzxYMn8SufkXHipjq5KeDRoWAKHs,458
144
142
  openrouter/components/reasoningsummaryverbosity.py,sha256=gWBgfnfwZH1Iq7iYH8UtDpXtP9_Hm6fJxKwZ_tZDZlo,322
@@ -206,30 +204,45 @@ openrouter/errors/unprocessableentityresponse_error.py,sha256=uepXefHSgB1-5HS3A3
206
204
  openrouter/models/__init__.py,sha256=wIW9sbvSKlrGyoPY4mXvHqw-_Inpl6zqpN6U6j-w6SU,83
207
205
  openrouter/models/internal/__init__.py,sha256=xowceJVTVAP3WRyQ0NEGkm9PAoYU1l0_VYgXZP0ZvlM,1569
208
206
  openrouter/models/internal/globals.py,sha256=fI0KPVfEWU8t5H3Wph85DiLo6NSIt69gSnCW9wLY4NI,1363
209
- openrouter/operations/__init__.py,sha256=bsNit-eFEeWWTPUO9TgzHq05ADkAWkIoMmm4nz1GpIg,17463
210
- openrouter/operations/createauthkeyscode.py,sha256=WM9oLRrH7U64XfYEpXDUDvf7w4N6qm6BUZhEXdHPKLg,4034
211
- openrouter/operations/createcoinbasecharge.py,sha256=yOkAvPj_e6rAqM6ThuZKHs7QId5m9S2vH701oNOeYAU,2241
212
- openrouter/operations/createembeddings.py,sha256=chf5gAent2rFeaRpQcBhKx5th4aZPEAYBYiUjilHANg,4125
213
- openrouter/operations/createkeys.py,sha256=P6UbY4onogiWdMCMfcnNPHvJLRSIuB-KetdHznD2PAM,8322
214
- openrouter/operations/createresponses.py,sha256=Vu1lRymqLWq4PvxkJPJIwHqFRdyyy47bI3SMuU4v2j0,1942
215
- openrouter/operations/deletekeys.py,sha256=_XTN4M6sU22DBdhZVj-4qaCo5k-CWEq1e_Xsp5fqqIU,1149
216
- openrouter/operations/exchangeauthcodeforapikey.py,sha256=rRAFH6q21ePf448YCAi1UY3aBFU__xLm4FLkYh-FKpc,3973
217
- openrouter/operations/getcredits.py,sha256=AG4qt-dIu5zCu5sjoDC5MYy-zrruDCi01AinqteVuVk,729
218
- openrouter/operations/getcurrentkey.py,sha256=NJd5s5QfvZCHjSiUPlS7rZNFm7sBQz1pyTfDmnRe_k0,5955
219
- openrouter/operations/getgeneration.py,sha256=pR3OIZa7NA5dts5VOsCYbGjSOrrC2e7uJoBXS7-ttS4,8471
220
- openrouter/operations/getkey.py,sha256=upv7udNsaAILJpqq-L4Mvn971xCts_4nQqzP3zJB9mU,5473
221
- openrouter/operations/getmodels.py,sha256=AUooAWNQiSGWrmKhEvelwjX4AdbUgBpFb2qABjAsCTQ,748
222
- openrouter/operations/getparameters.py,sha256=qk4xRSQ5h7uTO-rjSH_s0GOtMdm89wam14P1wGyTJqQ,3104
223
- openrouter/operations/getuseractivity.py,sha256=oeqU_jqy8t2xtBjnQ9opfDY-FtJlK5essI9oJvfYTjs,1252
224
- openrouter/operations/list.py,sha256=meW1unMF371YvOdNFdIjh3Ya2ADY-7xo2WQcFaKAwHk,5766
225
- openrouter/operations/listendpoints.py,sha256=keS39WecfOoZvYVZdPEN7Fuxb5LFWhgpbhNXaVReGSQ,1117
226
- openrouter/operations/listendpointszdr.py,sha256=2CdXrknZg79FTHvFOMA165epUYulrg0PpSu7IjE4rVs,591
227
- openrouter/operations/listmodelsuser.py,sha256=m_jM93D_m-MnUB6S0WUDHX1bQMP-UJimYOxAcM0Kqjw,643
228
- openrouter/operations/listproviders.py,sha256=072auQF9sz-yb0UmZAo8sRacibp0IldU0pndumAyK1g,2530
229
- openrouter/operations/sendchatcompletionrequest.py,sha256=AtBi9ZPxgU9kb0sKpt-5gCXrkgY2Qsmj_D2GNLRzOXg,1364
230
- openrouter/operations/updatekeys.py,sha256=zCKB7Gvh9kYkpcow3h6I6zSc2aqw-K0v_8Xml8iAOZ0,8618
207
+ openrouter/operations/__init__.py,sha256=kooT1113kplLe9hq1Nj8ctU81wf309toAhYQ3VbAweY,43622
208
+ openrouter/operations/bulkassignkeystoguardrail.py,sha256=WQLFuzk4V8yC9I6KzoSpXCC9b4-vRPcKjcUaU_iC9ds,3644
209
+ openrouter/operations/bulkassignmemberstoguardrail.py,sha256=hujXpHpleB_7raDbYNHTT9UwMbCOJtVCQM2nvhNAB3Y,3692
210
+ openrouter/operations/bulkunassignkeysfromguardrail.py,sha256=cGQB3TJOkDwYO9RS0FzqEg9kuvcR9koSLj6UlkdeNR4,3704
211
+ openrouter/operations/bulkunassignmembersfromguardrail.py,sha256=YmKWXJ8UghjL2q96caEQhhdb_KK5PczhKd_26067-_I,3752
212
+ openrouter/operations/createauthkeyscode.py,sha256=V7NWgsZ1jJHcnq-KMkgRQ7wewEudcCfC8iGoyqZqXIY,6508
213
+ openrouter/operations/createcoinbasecharge.py,sha256=i9c1zEWfc9a29BDyxS1QSQwxu11m0adyeiX7jOd1n7Q,4889
214
+ openrouter/operations/createembeddings.py,sha256=a-cgpQKKCsbeT0Np_qc4KOggh4ru1BtZoboBUGEnFtU,6591
215
+ openrouter/operations/createguardrail.py,sha256=Im0PGv2F7WOOp65ImiS98Weosl9e1PWyp9grxUDl28k,9925
216
+ openrouter/operations/createkeys.py,sha256=YSClA-6qxvwDac8C1NgmYywCRvn_gyIZvdUa5ZsCyOE,10748
217
+ openrouter/operations/createresponses.py,sha256=HuRTiQFsGfswpkBG0ergy9-KmFni4jVbQ0xQazdIsh0,4573
218
+ openrouter/operations/deleteguardrail.py,sha256=0-WolhOwKfaH2C2MeqBUaeFzMTEGbz9oCOr_PJsI19Q,3305
219
+ openrouter/operations/deletekeys.py,sha256=tOUt0fyRmRXYR9FwIKxUJZGbPVgFJtMDy7IScfMMyCQ,3263
220
+ openrouter/operations/exchangeauthcodeforapikey.py,sha256=BTwpOsxDENfYKg4ms6MwXmYkoLNWB_r4LXDmE5GVSPA,6489
221
+ openrouter/operations/getcredits.py,sha256=UIJtMbmDDzSqDsMfUgffi_QCnKUF_rR-e8gsV4eBmCY,2994
222
+ openrouter/operations/getcurrentkey.py,sha256=siuF3eCdAI---oGcmFp5-HoSWwQZwzkDssafpsdGBBs,8538
223
+ openrouter/operations/getgeneration.py,sha256=OEaR5gmNtnyZpQr36nq6pPHLLn814XRV-53E45U7R6I,14700
224
+ openrouter/operations/getguardrail.py,sha256=FQQrsW_fOKHe3bIdsqkyrya683haHUzEZptLmxp9Fb0,6818
225
+ openrouter/operations/getkey.py,sha256=Qk8ibYSlAQbhyyikFqeV9KZ-nmw0vCS39Pqh_VaTmXY,7579
226
+ openrouter/operations/getmodels.py,sha256=e7hHf_M2CeIqjSEdd4q-BWmh62V0iUeIxBBJKVUkl6w,3470
227
+ openrouter/operations/getuseractivity.py,sha256=VeKa1vZej_hId_2BKk_XmVahbsNdD9IXn46EVvZngLc,3332
228
+ openrouter/operations/list.py,sha256=Zic0YJlsQZM72Tcz3KR7MZdKUyBijYieFkgXXvhH7EY,7840
229
+ openrouter/operations/listembeddingsmodels.py,sha256=y8zlcAPOoWKIv9zoGwoi_IkVTT_-GJZVTt47Pi5NKOg,2492
230
+ openrouter/operations/listendpoints.py,sha256=ozG7Xls8ccIHHZVnf1yAapXMGdDmp_151ojW3NYGWhw,3250
231
+ openrouter/operations/listendpointszdr.py,sha256=0cUZOTtlDNkV2rlKAGDhdAb-7Q7VCuQzuYIijVvBUxk,2862
232
+ openrouter/operations/listguardrailkeyassignments.py,sha256=7J1O1hUPfx8LlFYgvnob5-IL7wX9LZQ02_M0pSTBTnw,5847
233
+ openrouter/operations/listguardrailmemberassignments.py,sha256=ngEobKEk97rmFyPYVspvWRx7WvIScNtVNelH4h_vwS0,5774
234
+ openrouter/operations/listguardrails.py,sha256=6SouwZcQmDP2Ht_ViPM8q9Vdg9exiXHYolvl1A5aeK0,7244
235
+ openrouter/operations/listkeyassignments.py,sha256=NRAMTR1L076tw3UPZbdOV26RRcD-Oov348b7wRed7wQ,5497
236
+ openrouter/operations/listmemberassignments.py,sha256=3RUMy0s51_n06al5otFUxTAV67GmgqI0y_TqIAOPIok,5424
237
+ openrouter/operations/listmodelscount.py,sha256=hAO2vSeCMMv9qN3kDgp01KRy2hDQfzrXD5PSuNcXblU,2472
238
+ openrouter/operations/listmodelsuser.py,sha256=53GTktQr-japrETOZcA1-NTIcYRiA1IeYocDi7Oy58g,2870
239
+ openrouter/operations/listproviders.py,sha256=K4BM1tp-cbty6mfVkQPfNjLD_Tin1B66mcS7VaTJ5kg,4776
240
+ openrouter/operations/sendchatcompletionrequest.py,sha256=JyIVOa1-_8v0eBlVTFRJbPfiNxnRNuBfIQTO2L-K4pM,4177
241
+ openrouter/operations/updateguardrail.py,sha256=r4FznymtDPPBCsnJwK7abF3C4lR6lMOduXyN_oO6pBc,10264
242
+ openrouter/operations/updatekeys.py,sha256=2aJYS1JnzNBrLFA8nSY35rmguvEMxRWXtm09UdZgK-4,10708
231
243
  openrouter/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
232
244
  openrouter/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
245
+ openrouter/types/models.py,sha256=1C-32R4HqLoHMUAfvMYRLP-dZRy28BrGyDQHPOuVFp8,12759
233
246
  openrouter/utils/__init__.py,sha256=CAG0O76aEToGKXpT6Ft87Vd-iiQTh4XdBrQ37BVbsiM,5861
234
247
  openrouter/utils/annotations.py,sha256=FvfvVTUj8TUclm4HbGgY5yi2Ap7EzGmu2UPFU4FwC1w,2755
235
248
  openrouter/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
@@ -249,8 +262,8 @@ openrouter/utils/serializers.py,sha256=Hndks5M_rJXVub_N5lu0gKZQUoEmWrn6PN7R-0Hwv
249
262
  openrouter/utils/unmarshal_json_response.py,sha256=glq_wLEH2vSvfMedJOY2dbd5T_z_I4yDxwbBJDI8OjU,875
250
263
  openrouter/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
251
264
  openrouter/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
252
- openrouter-0.1.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
253
- openrouter-0.1.2.dist-info/METADATA,sha256=AhCodjIO3ht6z7bJAUniNMA7vV3IcuASqQzjgaVBQow,7461
254
- openrouter-0.1.2.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
255
- openrouter-0.1.2.dist-info/top_level.txt,sha256=0jnlCcRirGeYZLm5ZbWQRUonIp4tTPl_9mq-ds_1SEo,11
256
- openrouter-0.1.2.dist-info/RECORD,,
265
+ openrouter-0.6.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
266
+ openrouter-0.6.0.dist-info/METADATA,sha256=ksuMIBlZ5bohmKC6lmJKq_suPBm8A0bTwyjZj1fzdGo,7579
267
+ openrouter-0.6.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
268
+ openrouter-0.6.0.dist-info/top_level.txt,sha256=0jnlCcRirGeYZLm5ZbWQRUonIp4tTPl_9mq-ds_1SEo,11
269
+ openrouter-0.6.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.10.1)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5