openrouter 0.0.19__py3-none-any.whl → 0.0.22__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.
- openrouter/_version.py +3 -3
- openrouter/analytics.py +2 -0
- openrouter/api_keys.py +24 -4
- openrouter/basesdk.py +6 -0
- openrouter/chat.py +154 -14
- openrouter/completions.py +2 -0
- openrouter/components/__init__.py +156 -61
- openrouter/components/_schema0.py +93 -0
- openrouter/components/chatcompletionfinishreason.py +17 -0
- openrouter/components/chatgenerationparams.py +397 -13
- openrouter/components/chatmessagecontentitem.py +1 -1
- openrouter/components/chatmessagecontentitemaudio.py +6 -25
- openrouter/components/chatmessagecontentitemcachecontrol.py +32 -0
- openrouter/components/chatmessagecontentitemtext.py +9 -2
- openrouter/components/chatmessagecontentitemvideo.py +9 -5
- openrouter/components/chatresponsechoice.py +1 -67
- openrouter/components/chatstreamingchoice.py +72 -0
- openrouter/components/chatstreamingresponsechunk.py +1 -1
- openrouter/components/completionchoice.py +18 -5
- openrouter/components/completioncreateparams.py +10 -10
- openrouter/components/completionresponse.py +3 -0
- openrouter/components/message.py +10 -9
- openrouter/components/openairesponsesannotation.py +11 -4
- openrouter/components/openairesponsesreasoningeffort.py +1 -0
- openrouter/components/openresponsesnonstreamingresponse.py +13 -10
- openrouter/components/openresponsesrequest.py +155 -81
- openrouter/components/openresponsesstreamevent.py +110 -39
- openrouter/components/outputmessage.py +10 -4
- openrouter/components/providername.py +8 -1
- openrouter/components/publicendpoint.py +49 -49
- openrouter/components/publicpricing.py +49 -49
- openrouter/components/responseformattextconfig.py +9 -7
- openrouter/components/responsesoutputitem.py +12 -10
- openrouter/components/responsesoutputmessage.py +10 -5
- openrouter/credits.py +4 -0
- openrouter/embeddings.py +4 -0
- openrouter/endpoints.py +4 -0
- openrouter/generations.py +2 -0
- openrouter/models/__init__.py +3 -0
- openrouter/models/internal/__init__.py +54 -0
- openrouter/models/internal/globals.py +41 -0
- openrouter/models_.py +6 -0
- openrouter/oauth.py +4 -0
- openrouter/operations/__init__.py +10 -1
- openrouter/operations/createembeddings.py +44 -24
- openrouter/operations/getcredits.py +19 -0
- openrouter/operations/getparameters.py +8 -1
- openrouter/operations/updatekeys.py +2 -2
- openrouter/parameters.py +2 -0
- openrouter/providers.py +2 -0
- openrouter/responses.py +88 -36
- openrouter/sdk.py +13 -0
- openrouter/sdkconfiguration.py +2 -0
- openrouter/utils/forms.py +21 -10
- openrouter/utils/queryparams.py +14 -2
- openrouter/utils/retries.py +69 -5
- {openrouter-0.0.19.dist-info → openrouter-0.0.22.dist-info}/METADATA +1 -1
- {openrouter-0.0.19.dist-info → openrouter-0.0.22.dist-info}/RECORD +61 -54
- {openrouter-0.0.19.dist-info → openrouter-0.0.22.dist-info}/WHEEL +0 -0
- {openrouter-0.0.19.dist-info → openrouter-0.0.22.dist-info}/licenses/LICENSE +0 -0
- {openrouter-0.0.19.dist-info → openrouter-0.0.22.dist-info}/top_level.txt +0 -0
openrouter/sdkconfiguration.py
CHANGED
|
@@ -10,6 +10,7 @@ from .httpclient import AsyncHttpClient, HttpClient
|
|
|
10
10
|
from .utils import Logger, RetryConfig, remove_suffix
|
|
11
11
|
from dataclasses import dataclass
|
|
12
12
|
from openrouter import components
|
|
13
|
+
from openrouter.models import internal
|
|
13
14
|
from openrouter.types import OptionalNullable, UNSET
|
|
14
15
|
from pydantic import Field
|
|
15
16
|
from typing import Callable, Dict, Optional, Tuple, Union
|
|
@@ -30,6 +31,7 @@ class SDKConfiguration:
|
|
|
30
31
|
async_client: Union[AsyncHttpClient, None]
|
|
31
32
|
async_client_supplied: bool
|
|
32
33
|
debug_logger: Logger
|
|
34
|
+
globals: internal.Globals
|
|
33
35
|
security: Optional[
|
|
34
36
|
Union[components.Security, Callable[[], components.Security]]
|
|
35
37
|
] = None
|
openrouter/utils/forms.py
CHANGED
|
@@ -142,16 +142,21 @@ def serialize_multipart_form(
|
|
|
142
142
|
if field_metadata.file:
|
|
143
143
|
if isinstance(val, List):
|
|
144
144
|
# Handle array of files
|
|
145
|
+
array_field_name = f_name + "[]"
|
|
145
146
|
for file_obj in val:
|
|
146
147
|
if not _is_set(file_obj):
|
|
147
148
|
continue
|
|
148
|
-
|
|
149
|
-
file_name, content, content_type = _extract_file_properties(
|
|
149
|
+
|
|
150
|
+
file_name, content, content_type = _extract_file_properties(
|
|
151
|
+
file_obj
|
|
152
|
+
)
|
|
150
153
|
|
|
151
154
|
if content_type is not None:
|
|
152
|
-
files.append(
|
|
155
|
+
files.append(
|
|
156
|
+
(array_field_name, (file_name, content, content_type))
|
|
157
|
+
)
|
|
153
158
|
else:
|
|
154
|
-
files.append((
|
|
159
|
+
files.append((array_field_name, (file_name, content)))
|
|
155
160
|
else:
|
|
156
161
|
# Handle single file
|
|
157
162
|
file_name, content, content_type = _extract_file_properties(val)
|
|
@@ -161,11 +166,16 @@ def serialize_multipart_form(
|
|
|
161
166
|
else:
|
|
162
167
|
files.append((f_name, (file_name, content)))
|
|
163
168
|
elif field_metadata.json:
|
|
164
|
-
files.append(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
+
files.append(
|
|
170
|
+
(
|
|
171
|
+
f_name,
|
|
172
|
+
(
|
|
173
|
+
None,
|
|
174
|
+
marshal_json(val, request_field_types[name]),
|
|
175
|
+
"application/json",
|
|
176
|
+
),
|
|
177
|
+
)
|
|
178
|
+
)
|
|
169
179
|
else:
|
|
170
180
|
if isinstance(val, List):
|
|
171
181
|
values = []
|
|
@@ -175,7 +185,8 @@ def serialize_multipart_form(
|
|
|
175
185
|
continue
|
|
176
186
|
values.append(_val_to_string(value))
|
|
177
187
|
|
|
178
|
-
|
|
188
|
+
array_field_name = f_name + "[]"
|
|
189
|
+
form[array_field_name] = values
|
|
179
190
|
else:
|
|
180
191
|
form[f_name] = _val_to_string(val)
|
|
181
192
|
return media_type, form, files
|
openrouter/utils/queryparams.py
CHANGED
|
@@ -27,12 +27,13 @@ from .forms import _populate_form
|
|
|
27
27
|
def get_query_params(
|
|
28
28
|
query_params: Any,
|
|
29
29
|
gbls: Optional[Any] = None,
|
|
30
|
+
allow_empty_value: Optional[List[str]] = None,
|
|
30
31
|
) -> Dict[str, List[str]]:
|
|
31
32
|
params: Dict[str, List[str]] = {}
|
|
32
33
|
|
|
33
|
-
globals_already_populated = _populate_query_params(query_params, gbls, params, [])
|
|
34
|
+
globals_already_populated = _populate_query_params(query_params, gbls, params, [], allow_empty_value)
|
|
34
35
|
if _is_set(gbls):
|
|
35
|
-
_populate_query_params(gbls, None, params, globals_already_populated)
|
|
36
|
+
_populate_query_params(gbls, None, params, globals_already_populated, allow_empty_value)
|
|
36
37
|
|
|
37
38
|
return params
|
|
38
39
|
|
|
@@ -42,6 +43,7 @@ def _populate_query_params(
|
|
|
42
43
|
gbls: Any,
|
|
43
44
|
query_param_values: Dict[str, List[str]],
|
|
44
45
|
skip_fields: List[str],
|
|
46
|
+
allow_empty_value: Optional[List[str]] = None,
|
|
45
47
|
) -> List[str]:
|
|
46
48
|
globals_already_populated: List[str] = []
|
|
47
49
|
|
|
@@ -69,6 +71,16 @@ def _populate_query_params(
|
|
|
69
71
|
globals_already_populated.append(name)
|
|
70
72
|
|
|
71
73
|
f_name = field.alias if field.alias is not None else name
|
|
74
|
+
|
|
75
|
+
allow_empty_set = set(allow_empty_value or [])
|
|
76
|
+
should_include_empty = f_name in allow_empty_set and (
|
|
77
|
+
value is None or value == [] or value == ""
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
if should_include_empty:
|
|
81
|
+
query_param_values[f_name] = [""]
|
|
82
|
+
continue
|
|
83
|
+
|
|
72
84
|
serialization = metadata.serialization
|
|
73
85
|
if serialization is not None:
|
|
74
86
|
serialized_parms = _get_serialized_params(
|
openrouter/utils/retries.py
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import random
|
|
5
5
|
import time
|
|
6
|
-
from
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from email.utils import parsedate_to_datetime
|
|
8
|
+
from typing import List, Optional
|
|
7
9
|
|
|
8
10
|
import httpx
|
|
9
11
|
|
|
@@ -51,9 +53,11 @@ class Retries:
|
|
|
51
53
|
|
|
52
54
|
class TemporaryError(Exception):
|
|
53
55
|
response: httpx.Response
|
|
56
|
+
retry_after: Optional[int]
|
|
54
57
|
|
|
55
58
|
def __init__(self, response: httpx.Response):
|
|
56
59
|
self.response = response
|
|
60
|
+
self.retry_after = _parse_retry_after_header(response)
|
|
57
61
|
|
|
58
62
|
|
|
59
63
|
class PermanentError(Exception):
|
|
@@ -63,6 +67,62 @@ class PermanentError(Exception):
|
|
|
63
67
|
self.inner = inner
|
|
64
68
|
|
|
65
69
|
|
|
70
|
+
def _parse_retry_after_header(response: httpx.Response) -> Optional[int]:
|
|
71
|
+
"""Parse Retry-After header from response.
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
Retry interval in milliseconds, or None if header is missing or invalid.
|
|
75
|
+
"""
|
|
76
|
+
retry_after_header = response.headers.get("retry-after")
|
|
77
|
+
if not retry_after_header:
|
|
78
|
+
return None
|
|
79
|
+
|
|
80
|
+
try:
|
|
81
|
+
seconds = float(retry_after_header)
|
|
82
|
+
return round(seconds * 1000)
|
|
83
|
+
except ValueError:
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
try:
|
|
87
|
+
retry_date = parsedate_to_datetime(retry_after_header)
|
|
88
|
+
delta = (retry_date - datetime.now(retry_date.tzinfo)).total_seconds()
|
|
89
|
+
return round(max(0, delta) * 1000)
|
|
90
|
+
except (ValueError, TypeError):
|
|
91
|
+
pass
|
|
92
|
+
|
|
93
|
+
return None
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _get_sleep_interval(
|
|
97
|
+
exception: Exception,
|
|
98
|
+
initial_interval: int,
|
|
99
|
+
max_interval: int,
|
|
100
|
+
exponent: float,
|
|
101
|
+
retries: int,
|
|
102
|
+
) -> float:
|
|
103
|
+
"""Get sleep interval for retry with exponential backoff.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
exception: The exception that triggered the retry.
|
|
107
|
+
initial_interval: Initial retry interval in milliseconds.
|
|
108
|
+
max_interval: Maximum retry interval in milliseconds.
|
|
109
|
+
exponent: Base for exponential backoff calculation.
|
|
110
|
+
retries: Current retry attempt count.
|
|
111
|
+
|
|
112
|
+
Returns:
|
|
113
|
+
Sleep interval in seconds.
|
|
114
|
+
"""
|
|
115
|
+
if (
|
|
116
|
+
isinstance(exception, TemporaryError)
|
|
117
|
+
and exception.retry_after is not None
|
|
118
|
+
and exception.retry_after > 0
|
|
119
|
+
):
|
|
120
|
+
return exception.retry_after / 1000
|
|
121
|
+
|
|
122
|
+
sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1)
|
|
123
|
+
return min(sleep, max_interval / 1000)
|
|
124
|
+
|
|
125
|
+
|
|
66
126
|
def retry(func, retries: Retries):
|
|
67
127
|
if retries.config.strategy == "backoff":
|
|
68
128
|
|
|
@@ -183,8 +243,10 @@ def retry_with_backoff(
|
|
|
183
243
|
return exception.response
|
|
184
244
|
|
|
185
245
|
raise
|
|
186
|
-
|
|
187
|
-
sleep =
|
|
246
|
+
|
|
247
|
+
sleep = _get_sleep_interval(
|
|
248
|
+
exception, initial_interval, max_interval, exponent, retries
|
|
249
|
+
)
|
|
188
250
|
time.sleep(sleep)
|
|
189
251
|
retries += 1
|
|
190
252
|
|
|
@@ -211,7 +273,9 @@ async def retry_with_backoff_async(
|
|
|
211
273
|
return exception.response
|
|
212
274
|
|
|
213
275
|
raise
|
|
214
|
-
|
|
215
|
-
sleep =
|
|
276
|
+
|
|
277
|
+
sleep = _get_sleep_interval(
|
|
278
|
+
exception, initial_interval, max_interval, exponent, retries
|
|
279
|
+
)
|
|
216
280
|
await asyncio.sleep(sleep)
|
|
217
281
|
retries += 1
|
|
@@ -1,54 +1,58 @@
|
|
|
1
1
|
openrouter/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,401
|
|
2
|
-
openrouter/_version.py,sha256=
|
|
3
|
-
openrouter/analytics.py,sha256=
|
|
4
|
-
openrouter/api_keys.py,sha256=
|
|
5
|
-
openrouter/basesdk.py,sha256=
|
|
2
|
+
openrouter/_version.py,sha256=uAc5ru6tdMIDNZqQtO4q2uOAaoZsJ6Brz4-RKOWhVds,464
|
|
3
|
+
openrouter/analytics.py,sha256=0yULK6M4DpIdOrHCgLF5ZmcbI0oPg7oBUp1Qx5gx2vw,9793
|
|
4
|
+
openrouter/api_keys.py,sha256=XMPuRMfcf8on6GEjElvNNTszGHYGuMr4YKE9yFrl1js,57682
|
|
5
|
+
openrouter/basesdk.py,sha256=VhwM2eELTCr-7vgi1MLohTxYmNJurxN0hwhQjJKfOsA,12595
|
|
6
6
|
openrouter/beta.py,sha256=MzJTf7x1qwLAR2nd5Y4yzD8bIQCOsREEPf8uhwune_U,668
|
|
7
|
-
openrouter/chat.py,sha256=
|
|
8
|
-
openrouter/completions.py,sha256=
|
|
9
|
-
openrouter/credits.py,sha256=
|
|
10
|
-
openrouter/embeddings.py,sha256=
|
|
11
|
-
openrouter/endpoints.py,sha256=
|
|
12
|
-
openrouter/generations.py,sha256=
|
|
7
|
+
openrouter/chat.py,sha256=UhcHuG_ExmS79AmRj729xroHmQq0NR7NBSZdxW0VE1k,39709
|
|
8
|
+
openrouter/completions.py,sha256=TB7mb7XSfflk7XtMnys0l5sTI-3RY88xKTWYw1MqdHU,14276
|
|
9
|
+
openrouter/credits.py,sha256=h1oyFu4FoShOzFNvwHz1_ZKWJeof5Mf5V0A8OIU8Jps,18916
|
|
10
|
+
openrouter/embeddings.py,sha256=91Ug5KhHCduhJGLqn2vlhyUPXXSMsSha-4y15OQ6EzA,24355
|
|
11
|
+
openrouter/endpoints.py,sha256=z50tI4vJbF6Sbq9_rKdKWIxmU1MYOfKau2K8GNnxInY,15520
|
|
12
|
+
openrouter/generations.py,sha256=sOwPS56RWFLLVaeher1gLoYhdQLa0BcZ-TBwQsmtEAU,12092
|
|
13
13
|
openrouter/httpclient.py,sha256=dqTPONDBpRn4ktXfcetQiRXnG93f0pJkFhqsYFhLUac,3945
|
|
14
|
-
openrouter/models_.py,sha256=
|
|
15
|
-
openrouter/oauth.py,sha256=
|
|
16
|
-
openrouter/parameters.py,sha256=
|
|
17
|
-
openrouter/providers.py,sha256=
|
|
14
|
+
openrouter/models_.py,sha256=0NICD1xFjvRVzeQhNsWR26g9yEprZLyQNDhbQz5z9lI,23439
|
|
15
|
+
openrouter/oauth.py,sha256=zjmDnnJipJVzM6dqCft5Y73KOtL69rlYPXCXHgXCoTo,21476
|
|
16
|
+
openrouter/parameters.py,sha256=DNE-FBjsaYBVAyPVBZNSAtbD9qK_LKhC5jkYsjGN-ZY,9648
|
|
17
|
+
openrouter/providers.py,sha256=UDurmmNvy1y78TGJ8KrxOwx0XY6VGw2n1ZZBv0IOI3U,7414
|
|
18
18
|
openrouter/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
|
|
19
|
-
openrouter/responses.py,sha256=
|
|
20
|
-
openrouter/sdk.py,sha256=
|
|
21
|
-
openrouter/sdkconfiguration.py,sha256=
|
|
19
|
+
openrouter/responses.py,sha256=xCGMWZacnSbaCkmsflMtztU3xpCyGjhdRZquCL8MP3c,54999
|
|
20
|
+
openrouter/sdk.py,sha256=e9a8LB2W9ECr6iCKnuzTLsXteyTaFzuGVjL6_8F44TY,9177
|
|
21
|
+
openrouter/sdkconfiguration.py,sha256=Dy4l6oqgR2cdrWqL7i9nkGmjaWaS7X0m5TeOUDzHc5o,1848
|
|
22
22
|
openrouter/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU1c,146
|
|
23
23
|
openrouter/_hooks/registration.py,sha256=1QZB41w6If7I9dXiOSQx6dhSc6BPWrnI5Q5bMOr4iVA,624
|
|
24
24
|
openrouter/_hooks/sdkhooks.py,sha256=LCCg5knZJaFz4Jo42RY9WAHZRRnDbvUE88sEKhQYXM8,2527
|
|
25
25
|
openrouter/_hooks/types.py,sha256=ZFfWuTCcAptJH7HnEKcZK7K9ENY9bp6zMPbyLLbzNzQ,2989
|
|
26
|
-
openrouter/components/__init__.py,sha256=
|
|
26
|
+
openrouter/components/__init__.py,sha256=CX4x2gUaMKtdllZ3GpK8lKE8uQEknVMkIyAB11jBYCE,99191
|
|
27
|
+
openrouter/components/_schema0.py,sha256=zx1Af9o-sIptU4SVKEEZkMTSFRYLJc0G-_zhvZdarf8,2005
|
|
27
28
|
openrouter/components/activityitem.py,sha256=QYddTlC36y1VMbIviD50Qw8Rt1GODRXMV_iJuotwyNo,1920
|
|
28
29
|
openrouter/components/assistantmessage.py,sha256=nIiDnOAxDZ4lyauJ946pYf5Wnk0Gi7R0bsoNw2UTLHM,2709
|
|
29
30
|
openrouter/components/badgatewayresponseerrordata.py,sha256=pojFsYueX95FC7Ic6tiEiphw4fvI9Z6Jax0QUACU-FI,1643
|
|
30
31
|
openrouter/components/badrequestresponseerrordata.py,sha256=vo3KNC-cwAqaohMTV0ztfnklqWmxpC5VKUZp-3FUoYE,1643
|
|
32
|
+
openrouter/components/chatcompletionfinishreason.py,sha256=oPpIHQ4HdBIcszyYlbsfPocwGUBZ2EBnwDvvUD_3sPM,367
|
|
31
33
|
openrouter/components/chaterror.py,sha256=J47w1HLn4kmAxGiz4nVaMMbspoBu3s07-kkmjXaFa80,1733
|
|
32
|
-
openrouter/components/chatgenerationparams.py,sha256=
|
|
34
|
+
openrouter/components/chatgenerationparams.py,sha256=F23HDWMPA3b_gHgqQyGqBzkaNTpyuxoS8yYTsdsC_hI,22933
|
|
33
35
|
openrouter/components/chatgenerationtokenusage.py,sha256=nvu42A6gxY2W2sSDjg5QocVygD7xzPZtQ8AAOltCwoU,3994
|
|
34
|
-
openrouter/components/chatmessagecontentitem.py,sha256=
|
|
35
|
-
openrouter/components/chatmessagecontentitemaudio.py,sha256=
|
|
36
|
+
openrouter/components/chatmessagecontentitem.py,sha256=L4luQfVHGUKnkL1w3cd-WuLtdGjY9g32yqKUuZJO7DI,1498
|
|
37
|
+
openrouter/components/chatmessagecontentitemaudio.py,sha256=w2oedR10YJmBWFlsNkTqqLHt2fZHcK_zfHGV3PxY4xM,1025
|
|
38
|
+
openrouter/components/chatmessagecontentitemcachecontrol.py,sha256=excB0uceH2xW4JaGnay0V9-_RhBpmzjPxtaFanxneUQ,938
|
|
36
39
|
openrouter/components/chatmessagecontentitemimage.py,sha256=jBKcmC8ZVVXHv544EnwSOv-5iFFJYWjSNC6ypwD5ydo,1213
|
|
37
|
-
openrouter/components/chatmessagecontentitemtext.py,sha256=
|
|
38
|
-
openrouter/components/chatmessagecontentitemvideo.py,sha256=
|
|
40
|
+
openrouter/components/chatmessagecontentitemtext.py,sha256=o-MH8YXkQgqGlbxCjfNofc6Nmj_KQej34Gz8c37UsJM,963
|
|
41
|
+
openrouter/components/chatmessagecontentitemvideo.py,sha256=g0Em43dX0xDVENIavmE0EYPuu5tiM3HLC7yfK8JkQtA,1914
|
|
39
42
|
openrouter/components/chatmessagetokenlogprob.py,sha256=LOpaP2pLKkv4avuk8KXKWZlfmLBOAQfwVZqDx0hRRpw,2708
|
|
40
43
|
openrouter/components/chatmessagetokenlogprobs.py,sha256=HW1f8RM-gUIMf1HxIwlBPZSzfbjMfU57b8KCLqoxWYw,1625
|
|
41
44
|
openrouter/components/chatmessagetoolcall.py,sha256=lEaBzI74PCCOgwks6NIZzqS3Xir79G9GQhE18TdNmtI,915
|
|
42
45
|
openrouter/components/chatresponse.py,sha256=u72782C1mRmQdTJtBR3vsTd5U4rf6nEi1m1KC55PGKY,2353
|
|
43
|
-
openrouter/components/chatresponsechoice.py,sha256=
|
|
46
|
+
openrouter/components/chatresponsechoice.py,sha256=rXANO0ovX3ow9W4i4AG7lyAQHzHVR-YasGcjc-txiSg,2121
|
|
47
|
+
openrouter/components/chatstreamingchoice.py,sha256=xpHEEYnNtm3eO8pJmJb6VBHU1LEFQ02dUbZA3ZFZ_a4,2177
|
|
44
48
|
openrouter/components/chatstreamingmessagechunk.py,sha256=WYWJKPKpII6ffV5Z8OlKN9xfB-hkVUl1Xss3Dqn7Lbw,2125
|
|
45
49
|
openrouter/components/chatstreamingmessagetoolcall.py,sha256=eTp291e9xwR6yCRQ_DPjfrgUGqbg2B0piNtxTfycYe8,1179
|
|
46
|
-
openrouter/components/chatstreamingresponsechunk.py,sha256=
|
|
50
|
+
openrouter/components/chatstreamingresponsechunk.py,sha256=cK3D1eTMB_F54Oh6bwB2rj2ODvulOH1uK6tCjU7QN3U,2927
|
|
47
51
|
openrouter/components/chatstreamoptions.py,sha256=b8fwrfV7bPoX9CxoPCUuyn1_T9V5N42GrWJQCXRR63g,391
|
|
48
|
-
openrouter/components/completionchoice.py,sha256=
|
|
49
|
-
openrouter/components/completioncreateparams.py,sha256=
|
|
52
|
+
openrouter/components/completionchoice.py,sha256=GXS8sDYUN2Sebb8fCSlh-VgVoY4goJqeR-2OvZdkgOE,2274
|
|
53
|
+
openrouter/components/completioncreateparams.py,sha256=W4dzWu6RmEReeHwapP4EZ-sqaH15KYjHJjUNqiCeTVY,8068
|
|
50
54
|
openrouter/components/completionlogprobs.py,sha256=rfOxgVXfnOV82BkpkHQEoBHY6h5-3hoVzZilWyH9Gzw,1545
|
|
51
|
-
openrouter/components/completionresponse.py,sha256=
|
|
55
|
+
openrouter/components/completionresponse.py,sha256=Q_-Je-7LCU_kYlF44k2vL64wFupez0vv8AUwFHfx0wo,1290
|
|
52
56
|
openrouter/components/completionusage.py,sha256=VeguE0iCocTv5wnXujcr2jy2Pug6YVkAGle3DAWp9ws,426
|
|
53
57
|
openrouter/components/createchargerequest.py,sha256=Fc-tjZWAQeaZddgM_m6PUWlfvAin2Gdr_NRqqsPyeA8,823
|
|
54
58
|
openrouter/components/datacollection.py,sha256=M0shLYdzgusCOAp6fBzqkpuk12piWejQMH_dLpuzD7M,564
|
|
@@ -64,7 +68,7 @@ openrouter/components/instructtype.py,sha256=mWr5X7bjGHlDXV9i6tMNGcxI27p5MOwhPqR
|
|
|
64
68
|
openrouter/components/internalserverresponseerrordata.py,sha256=6BtoI6QZNZjdrC4tM3Q1U2-6PIIBAdYBHa1JdmZRdiE,1659
|
|
65
69
|
openrouter/components/jsonschemaconfig.py,sha256=PfJ7Z5TbDlgwtVCqoJGCes96ivhxk9EdbVnm-mSf5XM,1711
|
|
66
70
|
openrouter/components/listendpointsresponse.py,sha256=rtdM6ZHtxnNQJNx0IPINoqiosu50nIkFUfEM8l70g6A,4026
|
|
67
|
-
openrouter/components/message.py,sha256=
|
|
71
|
+
openrouter/components/message.py,sha256=Xw75z4vPJN4O-POrIThRUoKYrYMbrvnj6MVf87DMDWo,2105
|
|
68
72
|
openrouter/components/model.py,sha256=hG9IzmCQEQaJjlykSEyG6lT8myZmJYBmsKSD18a7SaI,4299
|
|
69
73
|
openrouter/components/modelarchitecture.py,sha256=IBeSVEv4PzulcY7nATFb_886Hj5NnnIolryqe7ytBOc,3405
|
|
70
74
|
openrouter/components/modelgroup.py,sha256=hN2VH_hksubq8YoOlr320yFTnAVE72Ubo6PKPPq4LEQ,617
|
|
@@ -72,13 +76,13 @@ openrouter/components/modelscountresponse.py,sha256=Y29-2jbyoT9-kDJiALNzLzC0Sp_u
|
|
|
72
76
|
openrouter/components/modelslistresponse.py,sha256=OuooH3wJd-uzStN7bTWoYSyFOppEhvA8TiabHjmxx20,538
|
|
73
77
|
openrouter/components/namedtoolchoice.py,sha256=UddzhENYc6B6bUnxPCqA4iqOyw33Zhc8C0Zb3_8il3U,827
|
|
74
78
|
openrouter/components/notfoundresponseerrordata.py,sha256=MZCphi3GBTXbb-s7NmhLmc6lxH4vSLcjV6UAScoI8-o,1635
|
|
75
|
-
openrouter/components/openairesponsesannotation.py,sha256=
|
|
79
|
+
openrouter/components/openairesponsesannotation.py,sha256=PKm5Pl0rjHrTi7tZh4KVw-VGelpvsptzmcV1QLaE92M,902
|
|
76
80
|
openrouter/components/openairesponsesincludable.py,sha256=SvIzHnJ9bSOU8F30s8hbUfE2-YCMerRneyOT5C-DRYk,473
|
|
77
81
|
openrouter/components/openairesponsesincompletedetails.py,sha256=FZaKZE4f6ryvDba7jChfXSRO_8KUkr9Vjj4QwYkt7PE,747
|
|
78
82
|
openrouter/components/openairesponsesinput_union.py,sha256=WItKe1RteSuaxAUxmsB_XrEarfllddf190g48eYNGXA,9148
|
|
79
83
|
openrouter/components/openairesponsesprompt.py,sha256=Z2dZ1-ZehXXwiKr0pcSMcwmMSszZ90JSQRuH8o_m4-Y,2079
|
|
80
84
|
openrouter/components/openairesponsesreasoningconfig.py,sha256=1Wwb1eA1tTHzWZQtZYP5b_x5TJdIc-ftXh6ywtqQuM8,2018
|
|
81
|
-
openrouter/components/openairesponsesreasoningeffort.py,sha256=
|
|
85
|
+
openrouter/components/openairesponsesreasoningeffort.py,sha256=3hp6Wx7_fzWf9PjPhMepdZdfmOEAt4iKmTpditov35s,373
|
|
82
86
|
openrouter/components/openairesponsesrefusalcontent.py,sha256=Y5KQD2-rLr4lv-C9-NKeJZsmoKYW6C_oq-Lch_4Zndc,504
|
|
83
87
|
openrouter/components/openairesponsesresponsestatus.py,sha256=pTo8MQQN5e-qDnkQk15YLX4xse0giYEO8qQ2QWjjb3c,394
|
|
84
88
|
openrouter/components/openairesponsesservicetier.py,sha256=6Fd5GbV_AtTxYhKlpet-NGjpDIKew5URl7ZXMXA0WhY,356
|
|
@@ -95,7 +99,7 @@ openrouter/components/openresponsesimagegencallpartialimage.py,sha256=wAMoO2c33D
|
|
|
95
99
|
openrouter/components/openresponsesinput.py,sha256=jX5v37zM165aVil1jwQt_cn-hLZ65DvvtbijaAVd6fA,3050
|
|
96
100
|
openrouter/components/openresponsesinputmessageitem.py,sha256=h3fOAIUhQhidnOxblqKATGFQoMK0O9lYR7U_zjWH3DI,2655
|
|
97
101
|
openrouter/components/openresponseslogprobs.py,sha256=p8FHlBBE-LY_jiPlRBKfrlhoqS0jIc8tGtee2WhCcqY,749
|
|
98
|
-
openrouter/components/openresponsesnonstreamingresponse.py,sha256=
|
|
102
|
+
openrouter/components/openresponsesnonstreamingresponse.py,sha256=BYEyKJea0egr-08mcs-qlVlfBDarNaCmUJKP8q7Ti7A,10765
|
|
99
103
|
openrouter/components/openresponsesreasoning.py,sha256=sntuEIBjgmvILsi8-lHGkQaZEnkF5P4tFDlhJ1ZCkh8,3934
|
|
100
104
|
openrouter/components/openresponsesreasoningconfig.py,sha256=XpPdnMcm8iAf-cjtdDOBZXqAh8mFzevIHezRYrbnJT4,2366
|
|
101
105
|
openrouter/components/openresponsesreasoningdeltaevent.py,sha256=08rTivGkzk1m0iiIPWI3nnDWM57GuAtQFtTiPKtPWHE,855
|
|
@@ -103,9 +107,9 @@ openrouter/components/openresponsesreasoningdoneevent.py,sha256=8uaytNWLnKY0zeGc
|
|
|
103
107
|
openrouter/components/openresponsesreasoningsummarypartaddedevent.py,sha256=XIwRwP2ajJBjFikH5XaHUaWf5arv7XnOeoM-8ADoJns,1053
|
|
104
108
|
openrouter/components/openresponsesreasoningsummarytextdeltaevent.py,sha256=CENzEhU9hur6ZUekCoiysSRVzfoVIHFK9aXAs5lQ760,940
|
|
105
109
|
openrouter/components/openresponsesreasoningsummarytextdoneevent.py,sha256=iRWYHS1Men5in-_McPGfGTJtp-mifontwNw6VoKAmME,940
|
|
106
|
-
openrouter/components/openresponsesrequest.py,sha256=
|
|
110
|
+
openrouter/components/openresponsesrequest.py,sha256=nVdsUZa3d0ULaXIFEXYxOStVG9hXy8mu34MYY7H_ads,26563
|
|
107
111
|
openrouter/components/openresponsesresponsetext.py,sha256=EvJncVKeadIuD3qBsjCCc2rpgybVMvsE-U4ZQbWMxX8,2415
|
|
108
|
-
openrouter/components/openresponsesstreamevent.py,sha256=
|
|
112
|
+
openrouter/components/openresponsesstreamevent.py,sha256=5A6qa56E3PtEN87rixCMiumQhVbfFcZIoYXA5ILkOeQ,20717
|
|
109
113
|
openrouter/components/openresponsestoplogprobs.py,sha256=G6evfWbvhl0K_XapnUwN0lB67Z38NJgr6BV1GUssbXU,566
|
|
110
114
|
openrouter/components/openresponsesusage.py,sha256=es0cr2zM1W9YMTdIlSrOsnShYn4lluHS4OKmOsMW_8Q,3877
|
|
111
115
|
openrouter/components/openresponseswebsearch20250826tool.py,sha256=tMNWgY5CZOf987Kcm8VKykXpqp0u3txA8bu5G8Fgh4Y,3980
|
|
@@ -113,24 +117,24 @@ openrouter/components/openresponseswebsearchpreview20250311tool.py,sha256=BPG7yC
|
|
|
113
117
|
openrouter/components/openresponseswebsearchpreviewtool.py,sha256=Wn8hzIZPsCkCWhytK55VYYsmmw7Q-mNnWTC_j9wEmqo,2485
|
|
114
118
|
openrouter/components/openresponseswebsearchtool.py,sha256=0JVWrgSNw1u6SurGWZNQaMG9UrtYGOG7wA9KE3auiZE,3855
|
|
115
119
|
openrouter/components/outputitemimagegenerationcall.py,sha256=KdCl0dpLsV2cxXPqAovbXXspFz-y4Y0ygRgvmzvMB5g,1897
|
|
116
|
-
openrouter/components/outputmessage.py,sha256=
|
|
120
|
+
openrouter/components/outputmessage.py,sha256=262rM0JS75dP_TPRiUKM8HhAmo9T9MV0Rl_DxXkYfKQ,2102
|
|
117
121
|
openrouter/components/outputmodality.py,sha256=xhd85lcYNR8kBOMPbfXvHHHZO_yYHYtwYpvIKS6MW1M,311
|
|
118
122
|
openrouter/components/parameter.py,sha256=ffPZ8lvlReTST8pTkyDyJVvLTOT0VxqVYktbSX_ulGE,778
|
|
119
123
|
openrouter/components/payloadtoolargeresponseerrordata.py,sha256=kksPhvoVefVY_snEVvP37TEh_TlZd_fCYft0T8RA5Pc,1663
|
|
120
124
|
openrouter/components/paymentrequiredresponseerrordata.py,sha256=rwnrHSbpFug6BjgVPRbgx9eZyxMqwtySBa23PMVk3B8,1663
|
|
121
125
|
openrouter/components/perrequestlimits.py,sha256=_qhdLIdZCGoPP_V874ik7tOIaD4fm0s0F95etZCgpaU,641
|
|
122
|
-
openrouter/components/providername.py,sha256=
|
|
126
|
+
openrouter/components/providername.py,sha256=QXfEPxkvag6Rwq-_Adj4z0pw6KKLILfUSd4H1OPtVHg,1638
|
|
123
127
|
openrouter/components/provideroverloadedresponseerrordata.py,sha256=mHwExxgAplc5sL0rJS0x6ajSAs2-Hu16lWy-0UX6BN0,1675
|
|
124
128
|
openrouter/components/providersort.py,sha256=wseCudRZlwH_oL9cEbxZAcrpB-NiS-ZM36rz9_cG0rg,438
|
|
125
|
-
openrouter/components/publicendpoint.py,sha256=
|
|
126
|
-
openrouter/components/publicpricing.py,sha256=
|
|
129
|
+
openrouter/components/publicendpoint.py,sha256=MsBM-x0Wsk1bn030ITPDM2qjKT0bU-mcflwP8zd7dEc,5506
|
|
130
|
+
openrouter/components/publicpricing.py,sha256=WNSEiJroJuKy7G9ey-K2xorsBMm1hj6zl1qhOYDK0dU,2703
|
|
127
131
|
openrouter/components/quantization.py,sha256=1LUfelzKMuC3ZwSpkWOD1ORaNOFcepzMqDHqoYddmNw,398
|
|
128
132
|
openrouter/components/reasoningsummarytext.py,sha256=qWxNZNRc2mDDKfdLzxYMn8SufkXHipjq5KeDRoWAKHs,458
|
|
129
133
|
openrouter/components/reasoningsummaryverbosity.py,sha256=gWBgfnfwZH1Iq7iYH8UtDpXtP9_Hm6fJxKwZ_tZDZlo,322
|
|
130
134
|
openrouter/components/reasoningtextcontent.py,sha256=Gzwq-VaWqaOgrpDoX1PVI1gt0otxihahfe-nYLKkmoo,460
|
|
131
135
|
openrouter/components/requesttimeoutresponseerrordata.py,sha256=3e3u6xPbIQwOum5YmJW9FLXa4etzxjKm4bq6xKGJFMY,1659
|
|
132
136
|
openrouter/components/responseformatjsonschema.py,sha256=K4mwkL7L5WxfmEcvzoSTLp6N-AFRUmVYa2FP2ljakjc,820
|
|
133
|
-
openrouter/components/responseformattextconfig.py,sha256=
|
|
137
|
+
openrouter/components/responseformattextconfig.py,sha256=yh3y9bCkrS7gQukbx7c308qA15zjdAb_fBFLr1lv_q4,1272
|
|
134
138
|
openrouter/components/responseformattextgrammar.py,sha256=Q2DPRH3Wksm3MO7QLuWeWSa2jA3wwjlr5MkVmSn7icU,667
|
|
135
139
|
openrouter/components/responseinputaudio.py,sha256=4Km_5juNvX_vVErka_jdBDYYXX590lpPsKy-hRSHRRo,1192
|
|
136
140
|
openrouter/components/responseinputfile.py,sha256=coTGm0a2-anr4_S9LmMrvPhcW4md4SwCfqLgypw-HD0,1855
|
|
@@ -142,11 +146,11 @@ openrouter/components/responsesformatjsonobject.py,sha256=35NlMHHjC3134fMUp26L_O
|
|
|
142
146
|
openrouter/components/responsesformattext.py,sha256=rjXcUvQXyrP6fnLazKPxPMT9ojBTADS701tVsXjn-5Q,494
|
|
143
147
|
openrouter/components/responsesformattextjsonschemaconfig.py,sha256=_SGg5IEMjv05aTX7UA4YKn5P1O4xdwk6TuVHh24Lhno,2011
|
|
144
148
|
openrouter/components/responsesimagegenerationcall.py,sha256=oJET3kwqCnyFFeai--GF723D0-7c7iNnKxjTt_IQO7o,1892
|
|
145
|
-
openrouter/components/responsesoutputitem.py,sha256=
|
|
149
|
+
openrouter/components/responsesoutputitem.py,sha256=qYZ2TzdX1X0mzTWoUhJWNac31v_0TSftxtF_jwz5n0M,2040
|
|
146
150
|
openrouter/components/responsesoutputitemfilesearchcall.py,sha256=ou-dka6s-ocLVyJ7qfLBASTWKrUfmT2AjTCCIOttB0c,849
|
|
147
151
|
openrouter/components/responsesoutputitemfunctioncall.py,sha256=RvuLqQWJTPpy6YUshnI-zg1e3B52H56ADF2k3yYwrfs,1684
|
|
148
152
|
openrouter/components/responsesoutputitemreasoning.py,sha256=tMXNoZeteIdukaworDC6YgOMMKOS9vLba-l3poAokrQ,3140
|
|
149
|
-
openrouter/components/responsesoutputmessage.py,sha256=
|
|
153
|
+
openrouter/components/responsesoutputmessage.py,sha256=chGqzUvf-V6bLSpnbYFKsQ3hbCFQO1jxUYJToIAQz2E,2424
|
|
150
154
|
openrouter/components/responsessearchcontextsize.py,sha256=vOLimyA8tQU1vBnV8HUxMKuxPZaLh2MVHZJHT6oCYdc,372
|
|
151
155
|
openrouter/components/responseswebsearchcalloutput.py,sha256=K5e_QNyRMaM4cCNYb9yUm5b1Fbazxc16JBKJ0yo_dPU,770
|
|
152
156
|
openrouter/components/responseswebsearchuserlocation.py,sha256=ya3YynvWPGPMCg3el4Tc7VeJEVTHpvn7N4D55RfPZvs,2059
|
|
@@ -185,20 +189,23 @@ openrouter/errors/serviceunavailableresponse_error.py,sha256=4EyyLOwAcn3vRh8jUjQ
|
|
|
185
189
|
openrouter/errors/toomanyrequestsresponse_error.py,sha256=Hc9WBP8MSX7-rXNPzg52_8RhSCnEsXMA3JQIytORlik,1219
|
|
186
190
|
openrouter/errors/unauthorizedresponse_error.py,sha256=g25pLdBp9XbCanNkTNnS3X6EPIi6wX4kUWjCRBrfuPQ,1214
|
|
187
191
|
openrouter/errors/unprocessableentityresponse_error.py,sha256=uepXefHSgB1-5HS3A3dMJGeorsd8JE4PKmV5vH68OQ4,1266
|
|
188
|
-
openrouter/
|
|
192
|
+
openrouter/models/__init__.py,sha256=wIW9sbvSKlrGyoPY4mXvHqw-_Inpl6zqpN6U6j-w6SU,83
|
|
193
|
+
openrouter/models/internal/__init__.py,sha256=xowceJVTVAP3WRyQ0NEGkm9PAoYU1l0_VYgXZP0ZvlM,1569
|
|
194
|
+
openrouter/models/internal/globals.py,sha256=fI0KPVfEWU8t5H3Wph85DiLo6NSIt69gSnCW9wLY4NI,1363
|
|
195
|
+
openrouter/operations/__init__.py,sha256=Tk9uPjJplDiwJSi3MP11DkSGX7rzhlocC5I92k6Uqso,18457
|
|
189
196
|
openrouter/operations/createauthkeyscode.py,sha256=WM9oLRrH7U64XfYEpXDUDvf7w4N6qm6BUZhEXdHPKLg,4034
|
|
190
197
|
openrouter/operations/createcoinbasecharge.py,sha256=yOkAvPj_e6rAqM6ThuZKHs7QId5m9S2vH701oNOeYAU,2241
|
|
191
|
-
openrouter/operations/createembeddings.py,sha256=
|
|
198
|
+
openrouter/operations/createembeddings.py,sha256=gVbSAz3q-sb3MAyfXJfogCFpsjARpsaG6buhFehn5AE,14572
|
|
192
199
|
openrouter/operations/createkeys.py,sha256=P6UbY4onogiWdMCMfcnNPHvJLRSIuB-KetdHznD2PAM,8322
|
|
193
200
|
openrouter/operations/createresponses.py,sha256=Vu1lRymqLWq4PvxkJPJIwHqFRdyyy47bI3SMuU4v2j0,1942
|
|
194
201
|
openrouter/operations/deletekeys.py,sha256=_XTN4M6sU22DBdhZVj-4qaCo5k-CWEq1e_Xsp5fqqIU,1149
|
|
195
202
|
openrouter/operations/exchangeauthcodeforapikey.py,sha256=rRAFH6q21ePf448YCAi1UY3aBFU__xLm4FLkYh-FKpc,3973
|
|
196
|
-
openrouter/operations/getcredits.py,sha256=
|
|
203
|
+
openrouter/operations/getcredits.py,sha256=AG4qt-dIu5zCu5sjoDC5MYy-zrruDCi01AinqteVuVk,729
|
|
197
204
|
openrouter/operations/getcurrentkey.py,sha256=NJd5s5QfvZCHjSiUPlS7rZNFm7sBQz1pyTfDmnRe_k0,5955
|
|
198
205
|
openrouter/operations/getgeneration.py,sha256=vp1Mp7Bb4TezPuciT8uPS4n42c_3tgaMe9d9HFAxShw,8270
|
|
199
206
|
openrouter/operations/getkey.py,sha256=upv7udNsaAILJpqq-L4Mvn971xCts_4nQqzP3zJB9mU,5473
|
|
200
207
|
openrouter/operations/getmodels.py,sha256=AUooAWNQiSGWrmKhEvelwjX4AdbUgBpFb2qABjAsCTQ,748
|
|
201
|
-
openrouter/operations/getparameters.py,sha256=
|
|
208
|
+
openrouter/operations/getparameters.py,sha256=IJkLfTYkl4GbuCt7snilZIo84X-EpgNAMYmUN-wVaHQ,4419
|
|
202
209
|
openrouter/operations/getuseractivity.py,sha256=oeqU_jqy8t2xtBjnQ9opfDY-FtJlK5essI9oJvfYTjs,1252
|
|
203
210
|
openrouter/operations/list.py,sha256=meW1unMF371YvOdNFdIjh3Ya2ADY-7xo2WQcFaKAwHk,5766
|
|
204
211
|
openrouter/operations/listendpoints.py,sha256=keS39WecfOoZvYVZdPEN7Fuxb5LFWhgpbhNXaVReGSQ,1117
|
|
@@ -206,7 +213,7 @@ openrouter/operations/listendpointszdr.py,sha256=2CdXrknZg79FTHvFOMA165epUYulrg0
|
|
|
206
213
|
openrouter/operations/listmodelsuser.py,sha256=m_jM93D_m-MnUB6S0WUDHX1bQMP-UJimYOxAcM0Kqjw,643
|
|
207
214
|
openrouter/operations/listproviders.py,sha256=072auQF9sz-yb0UmZAo8sRacibp0IldU0pndumAyK1g,2530
|
|
208
215
|
openrouter/operations/sendchatcompletionrequest.py,sha256=AtBi9ZPxgU9kb0sKpt-5gCXrkgY2Qsmj_D2GNLRzOXg,1364
|
|
209
|
-
openrouter/operations/updatekeys.py,sha256=
|
|
216
|
+
openrouter/operations/updatekeys.py,sha256=zCKB7Gvh9kYkpcow3h6I6zSc2aqw-K0v_8Xml8iAOZ0,8618
|
|
210
217
|
openrouter/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
|
|
211
218
|
openrouter/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
|
|
212
219
|
openrouter/utils/__init__.py,sha256=CAG0O76aEToGKXpT6Ft87Vd-iiQTh4XdBrQ37BVbsiM,5861
|
|
@@ -214,22 +221,22 @@ openrouter/utils/annotations.py,sha256=FvfvVTUj8TUclm4HbGgY5yi2Ap7EzGmu2UPFU4FwC
|
|
|
214
221
|
openrouter/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
|
|
215
222
|
openrouter/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
|
|
216
223
|
openrouter/utils/eventstreaming.py,sha256=SgFqMcUOYKlrTQ4gAp_dNcKLvDXukeiEMNU3DP8mXk8,6692
|
|
217
|
-
openrouter/utils/forms.py,sha256=
|
|
224
|
+
openrouter/utils/forms.py,sha256=HzltKnYH5-ULoEz8JYfIUcw13I9dMZjw-1lQKNkH5fw,7178
|
|
218
225
|
openrouter/utils/headers.py,sha256=cPxWSmUILrefTGDzTH1Hdj7_Hlsj-EY6K5Tyc4iH4dk,3663
|
|
219
226
|
openrouter/utils/logger.py,sha256=pY0WTOJsLRsvqbx-hT5lWAXoNUhY3Ksjj8rYwdk3TrQ,679
|
|
220
227
|
openrouter/utils/metadata.py,sha256=Per2KFXXOqOtoUWXrlIfjrSrBg199KrRW0nKQDgHIBU,3136
|
|
221
228
|
openrouter/utils/oauth_create_authorization_url.py,sha256=qD_lrqu6nzy1Vuism1jCxF3bQ_GoboWlhwsah1dFOjU,2726
|
|
222
229
|
openrouter/utils/oauth_create_sha256_code_challenge.py,sha256=y0fP_Rz7BghoNxspfURna0EL3f8gj1Msi6dt0qbELmU,3549
|
|
223
|
-
openrouter/utils/queryparams.py,sha256=
|
|
230
|
+
openrouter/utils/queryparams.py,sha256=dxtFQDJ8dlbm_hh_fhdFC1qMWOOHR2MszNycKmME8bQ,6326
|
|
224
231
|
openrouter/utils/requestbodies.py,sha256=ySjEyjcLi731LNUahWvLOrES2HihuA8VrOJx4eQ7Qzg,2101
|
|
225
|
-
openrouter/utils/retries.py,sha256=
|
|
232
|
+
openrouter/utils/retries.py,sha256=stPJEFtmK8gOM6aT0DpEJp9Z39oXX1-8I69jpa2n3Ww,8130
|
|
226
233
|
openrouter/utils/security.py,sha256=k3p0ma6HKapq-eK6WPNjfglReZ5HEs3YggbSTLBnR5A,6014
|
|
227
234
|
openrouter/utils/serializers.py,sha256=Hndks5M_rJXVub_N5lu0gKZQUoEmWrn6PN7R-0HwvOE,5999
|
|
228
235
|
openrouter/utils/unmarshal_json_response.py,sha256=glq_wLEH2vSvfMedJOY2dbd5T_z_I4yDxwbBJDI8OjU,875
|
|
229
236
|
openrouter/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
230
237
|
openrouter/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
|
231
|
-
openrouter-0.0.
|
|
232
|
-
openrouter-0.0.
|
|
233
|
-
openrouter-0.0.
|
|
234
|
-
openrouter-0.0.
|
|
235
|
-
openrouter-0.0.
|
|
238
|
+
openrouter-0.0.22.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
239
|
+
openrouter-0.0.22.dist-info/METADATA,sha256=50uVWHeME3Mwuud2KH3Czbj2cHEX9Bi-mGCb3GHBo1Y,7462
|
|
240
|
+
openrouter-0.0.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
241
|
+
openrouter-0.0.22.dist-info/top_level.txt,sha256=0jnlCcRirGeYZLm5ZbWQRUonIp4tTPl_9mq-ds_1SEo,11
|
|
242
|
+
openrouter-0.0.22.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|