ommlds 0.0.0.dev499__py3-none-any.whl → 0.0.0.dev503__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.
- ommlds/.omlish-manifests.json +20 -9
- ommlds/__about__.py +1 -1
- ommlds/backends/anthropic/protocol/sse/events.py +2 -0
- ommlds/backends/groq/clients.py +9 -0
- ommlds/cli/_dataclasses.py +22 -72
- ommlds/cli/backends/inject.py +20 -0
- ommlds/cli/backends/meta.py +47 -0
- ommlds/cli/sessions/chat/drivers/ai/tools.py +3 -7
- ommlds/cli/sessions/chat/facades/commands/base.py +1 -1
- ommlds/cli/sessions/chat/interfaces/textual/app.py +1 -1
- ommlds/minichain/__init__.py +47 -6
- ommlds/minichain/_dataclasses.py +533 -132
- ommlds/minichain/backends/impls/anthropic/names.py +3 -3
- ommlds/minichain/backends/impls/anthropic/stream.py +1 -1
- ommlds/minichain/backends/impls/cerebras/names.py +15 -0
- ommlds/minichain/backends/impls/cerebras/stream.py +1 -1
- ommlds/minichain/backends/impls/google/names.py +6 -0
- ommlds/minichain/backends/impls/google/stream.py +1 -1
- ommlds/minichain/backends/impls/groq/chat.py +2 -0
- ommlds/minichain/backends/impls/groq/stream.py +3 -1
- ommlds/minichain/backends/impls/ollama/chat.py +1 -1
- ommlds/minichain/backends/impls/openai/format.py +2 -1
- ommlds/minichain/backends/impls/openai/stream.py +33 -1
- ommlds/minichain/chat/messages.py +1 -1
- ommlds/minichain/chat/stream/joining.py +36 -12
- ommlds/minichain/chat/transforms/metadata.py +3 -3
- ommlds/minichain/content/standard.py +1 -1
- ommlds/minichain/content/transform/json.py +1 -1
- ommlds/minichain/content/transform/metadata.py +1 -1
- ommlds/minichain/content/transform/standard.py +2 -2
- ommlds/minichain/content/transform/strings.py +1 -1
- ommlds/minichain/content/transform/templates.py +1 -1
- ommlds/minichain/metadata.py +13 -16
- ommlds/minichain/resources.py +22 -1
- ommlds/minichain/services/README.md +154 -0
- ommlds/minichain/services/__init__.py +6 -2
- ommlds/minichain/services/_marshal.py +46 -10
- ommlds/minichain/services/_origclasses.py +11 -0
- ommlds/minichain/services/_typedvalues.py +8 -3
- ommlds/minichain/services/requests.py +73 -3
- ommlds/minichain/services/responses.py +73 -3
- ommlds/minichain/services/services.py +9 -0
- ommlds/minichain/stream/services.py +24 -1
- ommlds/minichain/tools/reflect.py +3 -3
- ommlds/minichain/wrappers/firstinwins.py +29 -2
- ommlds/minichain/wrappers/instrument.py +146 -0
- ommlds/minichain/wrappers/retry.py +93 -3
- ommlds/minichain/wrappers/services.py +26 -0
- {ommlds-0.0.0.dev499.dist-info → ommlds-0.0.0.dev503.dist-info}/METADATA +6 -6
- {ommlds-0.0.0.dev499.dist-info → ommlds-0.0.0.dev503.dist-info}/RECORD +54 -52
- ommlds/minichain/stream/wrap.py +0 -62
- {ommlds-0.0.0.dev499.dist-info → ommlds-0.0.0.dev503.dist-info}/WHEEL +0 -0
- {ommlds-0.0.0.dev499.dist-info → ommlds-0.0.0.dev503.dist-info}/entry_points.txt +0 -0
- {ommlds-0.0.0.dev499.dist-info → ommlds-0.0.0.dev503.dist-info}/licenses/LICENSE +0 -0
- {ommlds-0.0.0.dev499.dist-info → ommlds-0.0.0.dev503.dist-info}/top_level.txt +0 -0
ommlds/.omlish-manifests.json
CHANGED
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"model_names": {
|
|
45
45
|
"default": "claude",
|
|
46
46
|
"aliases": {
|
|
47
|
-
"claude-opus-4-
|
|
48
|
-
"claude-opus-4-
|
|
49
|
-
"claude-opus": "claude-opus-4-
|
|
47
|
+
"claude-opus-4-5-20251101": null,
|
|
48
|
+
"claude-opus-4-5": "claude-opus-4-5-20251101",
|
|
49
|
+
"claude-opus": "claude-opus-4-5",
|
|
50
50
|
"claude-sonnet-4-5-20250929": null,
|
|
51
51
|
"claude-sonnet-4-5": "claude-sonnet-4-5-20250929",
|
|
52
52
|
"claude-sonnet": "claude-sonnet-4-5",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"module": ".minichain.backends.impls.cerebras.names",
|
|
94
94
|
"attr": "_BACKEND_STRINGS_MANIFEST",
|
|
95
95
|
"file": "ommlds/minichain/backends/impls/cerebras/names.py",
|
|
96
|
-
"line":
|
|
96
|
+
"line": 37,
|
|
97
97
|
"value": {
|
|
98
98
|
"!.minichain.backends.strings.manifests.BackendStringsManifest": {
|
|
99
99
|
"service_cls_names": [
|
|
@@ -106,8 +106,15 @@
|
|
|
106
106
|
"aliases": {
|
|
107
107
|
"llama3.1-8b": null,
|
|
108
108
|
"llama-3.3-70b": null,
|
|
109
|
+
"llama3": "llama-3.3-70b",
|
|
109
110
|
"gpt-oss-120b": null,
|
|
110
|
-
"
|
|
111
|
+
"gpt-oss": "gpt-oss-120b",
|
|
112
|
+
"qwen-3-32b": null,
|
|
113
|
+
"qwen3": "qwen-3-32b",
|
|
114
|
+
"qwen-3-235b-a22b-instruct-2507": null,
|
|
115
|
+
"qwen-3-235b": "qwen-3-235b-a22b-instruct-2507",
|
|
116
|
+
"zai-glm-4.7": null,
|
|
117
|
+
"glm": "zai-glm-4.7"
|
|
111
118
|
}
|
|
112
119
|
}
|
|
113
120
|
}
|
|
@@ -210,7 +217,7 @@
|
|
|
210
217
|
"module": ".minichain.backends.impls.google.names",
|
|
211
218
|
"attr": "_BACKEND_STRINGS_MANIFEST",
|
|
212
219
|
"file": "ommlds/minichain/backends/impls/google/names.py",
|
|
213
|
-
"line":
|
|
220
|
+
"line": 38,
|
|
214
221
|
"value": {
|
|
215
222
|
"!.minichain.backends.strings.manifests.BackendStringsManifest": {
|
|
216
223
|
"service_cls_names": [
|
|
@@ -221,6 +228,10 @@
|
|
|
221
228
|
"model_names": {
|
|
222
229
|
"default": "gemini",
|
|
223
230
|
"aliases": {
|
|
231
|
+
"gemini-3-pro-preview": null,
|
|
232
|
+
"gemini-3-pro": "gemini-3-pro-preview",
|
|
233
|
+
"gemini-3-flash-preview": null,
|
|
234
|
+
"gemini-3-flash": "gemini-3-flash-preview",
|
|
224
235
|
"gemini-2.5-pro": null,
|
|
225
236
|
"gemini-2.5-flash": null,
|
|
226
237
|
"gemini-2.5-flash-lite": null,
|
|
@@ -252,7 +263,7 @@
|
|
|
252
263
|
"module": ".minichain.backends.impls.groq.chat",
|
|
253
264
|
"attr": null,
|
|
254
265
|
"file": "ommlds/minichain/backends/impls/groq/chat.py",
|
|
255
|
-
"line":
|
|
266
|
+
"line": 27,
|
|
256
267
|
"value": {
|
|
257
268
|
"!.minichain.registries.manifests.RegistryManifest": {
|
|
258
269
|
"module": "ommlds.minichain.backends.impls.groq.chat",
|
|
@@ -291,7 +302,7 @@
|
|
|
291
302
|
"module": ".minichain.backends.impls.groq.stream",
|
|
292
303
|
"attr": null,
|
|
293
304
|
"file": "ommlds/minichain/backends/impls/groq/stream.py",
|
|
294
|
-
"line":
|
|
305
|
+
"line": 34,
|
|
295
306
|
"value": {
|
|
296
307
|
"!.minichain.registries.manifests.RegistryManifest": {
|
|
297
308
|
"module": "ommlds.minichain.backends.impls.groq.stream",
|
|
@@ -636,7 +647,7 @@
|
|
|
636
647
|
"module": ".minichain.backends.impls.openai.stream",
|
|
637
648
|
"attr": null,
|
|
638
649
|
"file": "ommlds/minichain/backends/impls/openai/stream.py",
|
|
639
|
-
"line":
|
|
650
|
+
"line": 45,
|
|
640
651
|
"value": {
|
|
641
652
|
"!.minichain.registries.manifests.RegistryManifest": {
|
|
642
653
|
"module": "ommlds.minichain.backends.impls.openai.stream",
|
ommlds/__about__.py
CHANGED
ommlds/cli/_dataclasses.py
CHANGED
|
@@ -3124,23 +3124,22 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
|
|
|
3124
3124
|
@_register(
|
|
3125
3125
|
plan_repr=(
|
|
3126
3126
|
"Plans(tup=(CopyPlan(fields=('command', 'argv', 'help', 'arg_error')), EqPlan(fields=('command', 'argv', 'help'"
|
|
3127
|
-
", 'arg_error')),
|
|
3128
|
-
",
|
|
3129
|
-
"
|
|
3130
|
-
"
|
|
3131
|
-
"
|
|
3132
|
-
",
|
|
3133
|
-
"
|
|
3134
|
-
"
|
|
3135
|
-
"
|
|
3136
|
-
"
|
|
3137
|
-
"
|
|
3138
|
-
"
|
|
3139
|
-
"
|
|
3140
|
-
"
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
plan_repr_sha1='02a8469353c0212e2a85695c052b1bb12a809b51',
|
|
3127
|
+
", 'arg_error')), HashPlan(action='set_none', fields=None, cache=None), InitPlan(fields=(InitPlan.Field(name='c"
|
|
3128
|
+
"ommand', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, ove"
|
|
3129
|
+
"rride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name="
|
|
3130
|
+
"'argv', annotation=OpRef(name='init.fields.1.annotation'), default=None, default_factory=None, init=True, over"
|
|
3131
|
+
"ride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='"
|
|
3132
|
+
"help', annotation=OpRef(name='init.fields.2.annotation'), default=None, default_factory=None, init=True, overr"
|
|
3133
|
+
"ide=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='a"
|
|
3134
|
+
"rg_error', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default'), def"
|
|
3135
|
+
"ault_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check"
|
|
3136
|
+
"_type=None)), self_param='self', std_params=('command', 'argv', 'help', 'arg_error'), kw_only_params=(), froze"
|
|
3137
|
+
"n=False, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(na"
|
|
3138
|
+
"me='command', kw_only=False, fn=None), ReprPlan.Field(name='argv', kw_only=False, fn=None), ReprPlan.Field(nam"
|
|
3139
|
+
"e='help', kw_only=False, fn=None), ReprPlan.Field(name='arg_error', kw_only=False, fn=None)), id=False, terse="
|
|
3140
|
+
"False, default_fn=None)))"
|
|
3141
|
+
),
|
|
3142
|
+
plan_repr_sha1='0843ef2470048b534567b0a1d3bd52e06d96c21b',
|
|
3144
3143
|
op_ref_idents=(
|
|
3145
3144
|
'__dataclass__init__fields__0__annotation',
|
|
3146
3145
|
'__dataclass__init__fields__1__annotation',
|
|
@@ -3152,7 +3151,7 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
|
|
|
3152
3151
|
('ommlds.cli.sessions.chat.facades.facade', 'ArgsCommandError'),
|
|
3153
3152
|
),
|
|
3154
3153
|
)
|
|
3155
|
-
def
|
|
3154
|
+
def _process_dataclass__0843ef2470048b534567b0a1d3bd52e06d96c21b():
|
|
3156
3155
|
def _process_dataclass(
|
|
3157
3156
|
*,
|
|
3158
3157
|
__dataclass__cls,
|
|
@@ -3207,56 +3206,7 @@ def _process_dataclass__02a8469353c0212e2a85695c052b1bb12a809b51():
|
|
|
3207
3206
|
raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
|
|
3208
3207
|
setattr(__dataclass__cls, '__eq__', __eq__)
|
|
3209
3208
|
|
|
3210
|
-
|
|
3211
|
-
'command',
|
|
3212
|
-
'argv',
|
|
3213
|
-
'help',
|
|
3214
|
-
'arg_error',
|
|
3215
|
-
}
|
|
3216
|
-
|
|
3217
|
-
def __setattr__(self, name, value):
|
|
3218
|
-
if (
|
|
3219
|
-
type(self) is __dataclass__cls
|
|
3220
|
-
or name in __dataclass___setattr_frozen_fields
|
|
3221
|
-
):
|
|
3222
|
-
raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
|
|
3223
|
-
super(__dataclass__cls, self).__setattr__(name, value)
|
|
3224
|
-
|
|
3225
|
-
__setattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__setattr__"
|
|
3226
|
-
if '__setattr__' in __dataclass__cls.__dict__:
|
|
3227
|
-
raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
|
|
3228
|
-
setattr(__dataclass__cls, '__setattr__', __setattr__)
|
|
3229
|
-
|
|
3230
|
-
__dataclass___delattr_frozen_fields = {
|
|
3231
|
-
'command',
|
|
3232
|
-
'argv',
|
|
3233
|
-
'help',
|
|
3234
|
-
'arg_error',
|
|
3235
|
-
}
|
|
3236
|
-
|
|
3237
|
-
def __delattr__(self, name):
|
|
3238
|
-
if (
|
|
3239
|
-
type(self) is __dataclass__cls
|
|
3240
|
-
or name in __dataclass___delattr_frozen_fields
|
|
3241
|
-
):
|
|
3242
|
-
raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
|
|
3243
|
-
super(__dataclass__cls, self).__delattr__(name)
|
|
3244
|
-
|
|
3245
|
-
__delattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__delattr__"
|
|
3246
|
-
if '__delattr__' in __dataclass__cls.__dict__:
|
|
3247
|
-
raise __dataclass__TypeError(f"Cannot overwrite attribute __delattr__ in class {__dataclass__cls.__name__}")
|
|
3248
|
-
setattr(__dataclass__cls, '__delattr__', __delattr__)
|
|
3249
|
-
|
|
3250
|
-
def __hash__(self):
|
|
3251
|
-
return hash((
|
|
3252
|
-
self.command,
|
|
3253
|
-
self.argv,
|
|
3254
|
-
self.help,
|
|
3255
|
-
self.arg_error,
|
|
3256
|
-
))
|
|
3257
|
-
|
|
3258
|
-
__hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
|
|
3259
|
-
setattr(__dataclass__cls, '__hash__', __hash__)
|
|
3209
|
+
setattr(__dataclass__cls, '__hash__', None)
|
|
3260
3210
|
|
|
3261
3211
|
def __init__(
|
|
3262
3212
|
self,
|
|
@@ -3265,10 +3215,10 @@ def _process_dataclass__02a8469353c0212e2a85695c052b1bb12a809b51():
|
|
|
3265
3215
|
help: __dataclass__init__fields__2__annotation,
|
|
3266
3216
|
arg_error: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
|
|
3267
3217
|
) -> __dataclass__None:
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3218
|
+
self.command = command
|
|
3219
|
+
self.argv = argv
|
|
3220
|
+
self.help = help
|
|
3221
|
+
self.arg_error = arg_error
|
|
3272
3222
|
|
|
3273
3223
|
__init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
|
|
3274
3224
|
if '__init__' in __dataclass__cls.__dict__:
|
ommlds/cli/backends/inject.py
CHANGED
|
@@ -91,6 +91,26 @@ def bind_backends(cfg: BackendConfig = BackendConfig()) -> inj.Elements:
|
|
|
91
91
|
else:
|
|
92
92
|
lst.append(bp_stack.push_bind(to_ctor=bp_impl, singleton=True))
|
|
93
93
|
|
|
94
|
+
if bp_iface is _types.ChatChoicesServiceBackendProvider:
|
|
95
|
+
rt_key: inj.Key = inj.Key(_meta.RetryBackendProvider, tag=bp_iface)
|
|
96
|
+
lst.extend([
|
|
97
|
+
inj.private(
|
|
98
|
+
inj.bind(_types.BackendProvider, to_key=bp_stack.top),
|
|
99
|
+
inj.bind(rt_key, to_ctor=_meta.RetryBackendProvider, singleton=True, expose=True),
|
|
100
|
+
),
|
|
101
|
+
bp_stack.push_bind(to_key=rt_key),
|
|
102
|
+
])
|
|
103
|
+
|
|
104
|
+
elif bp_iface is _types.ChatChoicesStreamServiceBackendProvider:
|
|
105
|
+
rts_key: inj.Key = inj.Key(_meta.RetryStreamBackendProvider, tag=bp_iface)
|
|
106
|
+
lst.extend([
|
|
107
|
+
inj.private(
|
|
108
|
+
inj.bind(_types.BackendProvider, to_key=bp_stack.top),
|
|
109
|
+
inj.bind(rts_key, to_ctor=_meta.RetryStreamBackendProvider, singleton=True, expose=True),
|
|
110
|
+
),
|
|
111
|
+
bp_stack.push_bind(to_key=rts_key),
|
|
112
|
+
])
|
|
113
|
+
|
|
94
114
|
lst.append(inj.bind(bp_iface, to_key=bp_stack.top))
|
|
95
115
|
|
|
96
116
|
#
|
ommlds/cli/backends/meta.py
CHANGED
|
@@ -6,6 +6,7 @@ from .types import BackendProvider
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
ServiceT = ta.TypeVar('ServiceT', bound=mc.Service)
|
|
9
|
+
StreamServiceT = ta.TypeVar('StreamServiceT', bound=mc.Service)
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
##
|
|
@@ -33,3 +34,49 @@ class FirstInWinsBackendProvider(BackendProvider[ServiceT]):
|
|
|
33
34
|
yield AsyncioFirstInWinsService(*svcs)
|
|
34
35
|
|
|
35
36
|
return inner()
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
##
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class RetryBackendProvider(BackendProvider):
|
|
43
|
+
def __init__(
|
|
44
|
+
self,
|
|
45
|
+
backend_provider: BackendProvider,
|
|
46
|
+
) -> None:
|
|
47
|
+
super().__init__()
|
|
48
|
+
|
|
49
|
+
self._backend_provider = backend_provider
|
|
50
|
+
|
|
51
|
+
def provide_backend(self) -> ta.AsyncContextManager:
|
|
52
|
+
@contextlib.asynccontextmanager
|
|
53
|
+
async def inner():
|
|
54
|
+
async with contextlib.AsyncExitStack() as aes:
|
|
55
|
+
yield mc.RetryService(
|
|
56
|
+
await aes.enter_async_context(self._backend_provider.provide_backend()),
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
return inner()
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class RetryStreamBackendProvider(BackendProvider):
|
|
66
|
+
def __init__(
|
|
67
|
+
self,
|
|
68
|
+
backend_provider: BackendProvider,
|
|
69
|
+
) -> None:
|
|
70
|
+
super().__init__()
|
|
71
|
+
|
|
72
|
+
self._backend_provider = backend_provider
|
|
73
|
+
|
|
74
|
+
def provide_backend(self) -> ta.AsyncContextManager:
|
|
75
|
+
@contextlib.asynccontextmanager
|
|
76
|
+
async def inner():
|
|
77
|
+
async with contextlib.AsyncExitStack() as aes:
|
|
78
|
+
yield mc.RetryStreamService(
|
|
79
|
+
await aes.enter_async_context(self._backend_provider.provide_backend()),
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
return inner()
|
|
@@ -24,17 +24,13 @@ class ToolExecutingAiChatGenerator(AiChatGenerator):
|
|
|
24
24
|
while True:
|
|
25
25
|
new = await self._wrapped.get_next_ai_messages([*chat, *out])
|
|
26
26
|
|
|
27
|
-
out.extend(new)
|
|
28
|
-
|
|
29
27
|
cont = False
|
|
30
28
|
|
|
31
29
|
for msg in new:
|
|
30
|
+
out.append(msg)
|
|
31
|
+
|
|
32
32
|
if isinstance(msg, mc.ToolUseMessage):
|
|
33
|
-
trm = await self._executor.execute_tool_use(
|
|
34
|
-
msg.tu,
|
|
35
|
-
# fs_tool_context,
|
|
36
|
-
# todo_tool_context, # noqa
|
|
37
|
-
)
|
|
33
|
+
trm = await self._executor.execute_tool_use(msg.tu)
|
|
38
34
|
|
|
39
35
|
out.append(trm)
|
|
40
36
|
|
ommlds/minichain/__init__.py
CHANGED
|
@@ -427,11 +427,18 @@ with _lang.auto_proxy_init(
|
|
|
427
427
|
##
|
|
428
428
|
|
|
429
429
|
from .services import ( # noqa
|
|
430
|
+
ServiceFacade,
|
|
431
|
+
facade,
|
|
432
|
+
|
|
433
|
+
RequestMetadata,
|
|
434
|
+
RequestMetadatas,
|
|
430
435
|
Request,
|
|
436
|
+
|
|
437
|
+
ResponseMetadata,
|
|
438
|
+
ResponseMetadatas,
|
|
431
439
|
Response,
|
|
440
|
+
|
|
432
441
|
Service,
|
|
433
|
-
ServiceFacade,
|
|
434
|
-
facade,
|
|
435
442
|
)
|
|
436
443
|
|
|
437
444
|
##
|
|
@@ -450,10 +457,6 @@ with _lang.auto_proxy_init(
|
|
|
450
457
|
new_stream_response,
|
|
451
458
|
)
|
|
452
459
|
|
|
453
|
-
from .stream.wrap import ( # noqa
|
|
454
|
-
WrappedStreamService,
|
|
455
|
-
)
|
|
456
|
-
|
|
457
460
|
##
|
|
458
461
|
|
|
459
462
|
from .tools.execution.catalog import ( # noqa
|
|
@@ -596,6 +599,44 @@ with _lang.auto_proxy_init(
|
|
|
596
599
|
|
|
597
600
|
##
|
|
598
601
|
|
|
602
|
+
from .wrappers.retry import ( # noqa
|
|
603
|
+
AnyRetryService,
|
|
604
|
+
|
|
605
|
+
RetryServiceMaxRetriesExceededError,
|
|
606
|
+
RetryServiceOutput,
|
|
607
|
+
|
|
608
|
+
RetryService,
|
|
609
|
+
|
|
610
|
+
RetryStreamService,
|
|
611
|
+
)
|
|
612
|
+
|
|
613
|
+
from .wrappers.services import ( # noqa
|
|
614
|
+
WrappedRequestV,
|
|
615
|
+
WrappedOptionT,
|
|
616
|
+
WrappedResponseV,
|
|
617
|
+
WrappedOutputT,
|
|
618
|
+
WrappedRequest,
|
|
619
|
+
WrappedResponse,
|
|
620
|
+
WrappedService,
|
|
621
|
+
|
|
622
|
+
WrapperService,
|
|
623
|
+
MultiWrapperService,
|
|
624
|
+
|
|
625
|
+
wrap_service,
|
|
626
|
+
)
|
|
627
|
+
|
|
628
|
+
from .wrappers.stream import ( # noqa
|
|
629
|
+
WrappedStreamOutputT,
|
|
630
|
+
WrappedStreamOptions,
|
|
631
|
+
WrappedStreamRequest,
|
|
632
|
+
WrappedStreamResponse,
|
|
633
|
+
WrappedStreamService,
|
|
634
|
+
|
|
635
|
+
WrapperStreamService,
|
|
636
|
+
)
|
|
637
|
+
|
|
638
|
+
##
|
|
639
|
+
|
|
599
640
|
from .completion import ( # noqa
|
|
600
641
|
CompletionOption,
|
|
601
642
|
CompletionOptions,
|