ommlds 0.0.0.dev487__py3-none-any.whl → 0.0.0.dev488__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 (36) hide show
  1. ommlds/.omlish-manifests.json +54 -0
  2. ommlds/__about__.py +1 -1
  3. ommlds/backends/cerebras/__init__.py +7 -0
  4. ommlds/backends/cerebras/_dataclasses.py +4254 -0
  5. ommlds/backends/cerebras/_marshal.py +24 -0
  6. ommlds/backends/cerebras/protocol.py +312 -0
  7. ommlds/cli/_dataclasses.py +272 -88
  8. ommlds/cli/main.py +29 -9
  9. ommlds/cli/secrets.py +1 -0
  10. ommlds/cli/sessions/chat/chat/user/configs.py +0 -1
  11. ommlds/cli/sessions/chat/chat/user/inject.py +0 -7
  12. ommlds/cli/sessions/chat/configs.py +2 -0
  13. ommlds/cli/sessions/chat/inject.py +3 -0
  14. ommlds/cli/sessions/chat/interface/__init__.py +0 -0
  15. ommlds/cli/sessions/chat/interface/bare/__init__.py +0 -0
  16. ommlds/cli/sessions/chat/interface/bare/inject.py +28 -0
  17. ommlds/cli/sessions/chat/interface/bare/interface.py +19 -0
  18. ommlds/cli/sessions/chat/interface/base.py +13 -0
  19. ommlds/cli/sessions/chat/interface/configs.py +15 -0
  20. ommlds/cli/sessions/chat/interface/inject.py +24 -0
  21. ommlds/cli/sessions/chat/interface/textual/__init__.py +0 -0
  22. ommlds/cli/sessions/chat/interface/textual/app.py +14 -0
  23. ommlds/cli/sessions/chat/interface/textual/inject.py +20 -0
  24. ommlds/cli/sessions/chat/interface/textual/interface.py +22 -0
  25. ommlds/cli/sessions/chat/session.py +12 -4
  26. ommlds/minichain/backends/impls/cerebras/__init__.py +0 -0
  27. ommlds/minichain/backends/impls/cerebras/chat.py +80 -0
  28. ommlds/minichain/backends/impls/cerebras/names.py +30 -0
  29. ommlds/minichain/backends/impls/cerebras/protocol.py +143 -0
  30. ommlds/minichain/backends/impls/cerebras/stream.py +125 -0
  31. {ommlds-0.0.0.dev487.dist-info → ommlds-0.0.0.dev488.dist-info}/METADATA +6 -6
  32. {ommlds-0.0.0.dev487.dist-info → ommlds-0.0.0.dev488.dist-info}/RECORD +36 -16
  33. {ommlds-0.0.0.dev487.dist-info → ommlds-0.0.0.dev488.dist-info}/WHEEL +0 -0
  34. {ommlds-0.0.0.dev487.dist-info → ommlds-0.0.0.dev488.dist-info}/entry_points.txt +0 -0
  35. {ommlds-0.0.0.dev487.dist-info → ommlds-0.0.0.dev488.dist-info}/licenses/LICENSE +0 -0
  36. {ommlds-0.0.0.dev487.dist-info → ommlds-0.0.0.dev488.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,125 @@
1
+ import typing as ta
2
+
3
+ from omlish import check
4
+ from omlish import marshal as msh
5
+ from omlish import typedvalues as tv
6
+ from omlish.formats import json
7
+ from omlish.http import all as http
8
+ from omlish.http import sse
9
+ from omlish.io.buffers import DelimitingBuffer
10
+
11
+ from .....backends.cerebras import protocol as pt
12
+ from ....chat.choices.services import ChatChoicesOutputs
13
+ from ....chat.choices.stream.services import ChatChoicesStreamRequest
14
+ from ....chat.choices.stream.services import ChatChoicesStreamResponse
15
+ from ....chat.choices.stream.services import static_check_is_chat_choices_stream_service
16
+ from ....chat.choices.stream.types import AiChoicesDeltas
17
+ from ....chat.tools.types import Tool
18
+ from ....configs import Config
19
+ from ....resources import UseResources
20
+ from ....standard import ApiKey
21
+ from ....stream.services import StreamResponseSink
22
+ from ....stream.services import new_stream_response
23
+ from .chat import CerebrasChatChoicesService
24
+ from .names import MODEL_NAMES
25
+ from .protocol import build_cer_request_messages
26
+ from .protocol import build_cer_request_tool
27
+ from .protocol import build_mc_ai_choice_deltas
28
+
29
+
30
+ ##
31
+
32
+
33
+ # @omlish-manifest $.minichain.registries.manifests.RegistryManifest(
34
+ # name='cerebras',
35
+ # type='ChatChoicesStreamService',
36
+ # )
37
+ @static_check_is_chat_choices_stream_service
38
+ class CerebrasChatChoicesStreamService:
39
+ def __init__(
40
+ self,
41
+ *configs: Config,
42
+ http_client: http.AsyncHttpClient | None = None,
43
+ ) -> None:
44
+ super().__init__()
45
+
46
+ self._http_client = http_client
47
+
48
+ with tv.consume(*configs) as cc:
49
+ self._model_name = cc.pop(CerebrasChatChoicesService.DEFAULT_MODEL_NAME)
50
+ self._api_key = ApiKey.pop_secret(cc, env='CEREBRAS_API_KEY')
51
+
52
+ READ_CHUNK_SIZE: ta.ClassVar[int] = -1
53
+
54
+ async def invoke(self, request: ChatChoicesStreamRequest) -> ChatChoicesStreamResponse:
55
+ tools: list[pt.ChatCompletionRequest.Tool] = []
56
+ with tv.TypedValues(*request.options).consume() as oc:
57
+ t: Tool
58
+ for t in oc.pop(Tool, []):
59
+ tools.append(build_cer_request_tool(t))
60
+
61
+ cer_request = pt.ChatCompletionRequest(
62
+ messages=build_cer_request_messages(request.v),
63
+ model=MODEL_NAMES.resolve(self._model_name.v),
64
+ tools=tools or None,
65
+ stream=True,
66
+ )
67
+
68
+ raw_request = msh.marshal(cer_request)
69
+
70
+ http_request = http.HttpRequest(
71
+ 'https://api.cerebras.ai/v1/chat/completions',
72
+ headers={
73
+ http.consts.HEADER_CONTENT_TYPE: http.consts.CONTENT_TYPE_JSON,
74
+ http.consts.HEADER_AUTH: http.consts.format_bearer_auth_header(check.not_none(self._api_key).reveal()),
75
+ },
76
+ data=json.dumps(raw_request).encode('utf-8'),
77
+ )
78
+
79
+ async with UseResources.or_new(request.options) as rs:
80
+ http_client = await rs.enter_async_context(http.manage_async_client(self._http_client))
81
+ http_response = await rs.enter_async_context(await http_client.stream_request(http_request))
82
+
83
+ async def inner(sink: StreamResponseSink[AiChoicesDeltas]) -> ta.Sequence[ChatChoicesOutputs]:
84
+ db = DelimitingBuffer([b'\r', b'\n', b'\r\n'])
85
+ sd = sse.SseDecoder()
86
+ while True:
87
+ b = await http_response.stream.read1(self.READ_CHUNK_SIZE)
88
+ for l in db.feed(b):
89
+ if isinstance(l, DelimitingBuffer.Incomplete):
90
+ # FIXME: handle
91
+ return []
92
+
93
+ # FIXME: https://platform.openai.com/docs/guides/function-calling?api-mode=responses#streaming
94
+ for so in sd.process_line(l):
95
+ if isinstance(so, sse.SseEvent) and so.type == b'message':
96
+ ss = so.data.decode('utf-8')
97
+ if ss == '[DONE]':
98
+ return []
99
+
100
+ sj = json.loads(ss) # ChatCompletionChunk
101
+
102
+ check.state(sj['object'] == 'chat.completion.chunk')
103
+
104
+ ccc = msh.unmarshal(sj, pt.ChatCompletionChunk)
105
+
106
+ # FIXME: stop reason
107
+ if not ccc.choices:
108
+ continue
109
+
110
+ if any(choice.finish_reason for choice in ccc.choices):
111
+ check.state(all(choice.finish_reason for choice in ccc.choices))
112
+ break
113
+
114
+ await sink.emit(AiChoicesDeltas([
115
+ build_mc_ai_choice_deltas(choice.delta)
116
+ for choice in ccc.choices
117
+ ]))
118
+
119
+ if not b:
120
+ return []
121
+
122
+ # raw_response = json.loads(check.not_none(http_response.data).decode('utf-8'))
123
+ # return rh.build_response(raw_response)
124
+
125
+ return await new_stream_response(rs, inner)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev487
3
+ Version: 0.0.0.dev488
4
4
  Summary: ommlds
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,9 +14,9 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev487
17
+ Requires-Dist: omlish==0.0.0.dev488
18
18
  Provides-Extra: all
19
- Requires-Dist: omdev==0.0.0.dev487; extra == "all"
19
+ Requires-Dist: omdev==0.0.0.dev488; extra == "all"
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.30; sys_platform == "darwin" and extra == "all"
22
22
  Requires-Dist: mlx-lm~=0.28; sys_platform == "darwin" and extra == "all"
@@ -25,7 +25,7 @@ Requires-Dist: tinygrad~=0.11; extra == "all"
25
25
  Requires-Dist: tokenizers~=0.22; extra == "all"
26
26
  Requires-Dist: torch~=2.9; extra == "all"
27
27
  Requires-Dist: transformers~=4.57; extra == "all"
28
- Requires-Dist: sentence-transformers~=5.1; extra == "all"
28
+ Requires-Dist: sentence-transformers~=5.2; extra == "all"
29
29
  Requires-Dist: huggingface-hub~=0.36; extra == "all"
30
30
  Requires-Dist: datasets~=4.4; extra == "all"
31
31
  Requires-Dist: regex>=2025.0; extra == "all"
@@ -38,7 +38,7 @@ Requires-Dist: mwparserfromhell~=0.7; extra == "all"
38
38
  Requires-Dist: wikitextparser~=0.56; extra == "all"
39
39
  Requires-Dist: lxml>=5.3; python_version < "3.13" and extra == "all"
40
40
  Provides-Extra: omdev
41
- Requires-Dist: omdev==0.0.0.dev487; extra == "omdev"
41
+ Requires-Dist: omdev==0.0.0.dev488; extra == "omdev"
42
42
  Provides-Extra: backends
43
43
  Requires-Dist: llama-cpp-python~=0.3; extra == "backends"
44
44
  Requires-Dist: mlx~=0.30; sys_platform == "darwin" and extra == "backends"
@@ -48,7 +48,7 @@ Requires-Dist: tinygrad~=0.11; extra == "backends"
48
48
  Requires-Dist: tokenizers~=0.22; extra == "backends"
49
49
  Requires-Dist: torch~=2.9; extra == "backends"
50
50
  Requires-Dist: transformers~=4.57; extra == "backends"
51
- Requires-Dist: sentence-transformers~=5.1; extra == "backends"
51
+ Requires-Dist: sentence-transformers~=5.2; extra == "backends"
52
52
  Provides-Extra: huggingface
53
53
  Requires-Dist: huggingface-hub~=0.36; extra == "huggingface"
54
54
  Requires-Dist: datasets~=4.4; extra == "huggingface"
@@ -1,5 +1,5 @@
1
- ommlds/.omlish-manifests.json,sha256=yK0cA7mLFsZKuzVooF6fF6BhCRjbZ73d8pblEkLUsc8,26200
2
- ommlds/__about__.py,sha256=qfeQ6miEt4bO6LdLNb7kNqab6GA_7Oi9kPGR4wHcoOM,1900
1
+ ommlds/.omlish-manifests.json,sha256=GK2z4amhnfODpo7Y5eiHis85o0RtuNz2pLF359R73-E,27810
2
+ ommlds/__about__.py,sha256=gnCMdmCDHlxqHPcTXICOiu9Z9QQUAOUMmRttpexOzA0,1900
3
3
  ommlds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  ommlds/_hacks/__init__.py,sha256=ajfw7dMKH8UuloeQ5MSxWwgAmdWf2v8gm-K3uLP9wtY,196
5
5
  ommlds/_hacks/funcs.py,sha256=8XseIblP7yolDUD7WQSGn1LP90IQzByVejSzphAPDyM,2861
@@ -17,6 +17,10 @@ ommlds/backends/anthropic/protocol/sse/__init__.py,sha256=LpijqXk0ceMDcgwOvZ8iLo
17
17
  ommlds/backends/anthropic/protocol/sse/_marshal.py,sha256=2No-qWRKV9ilOhC5NqHAA92DJF0fAcr4-OPvEP0KOjQ,627
18
18
  ommlds/backends/anthropic/protocol/sse/assemble.py,sha256=MVpA0iSU2LNMXy4VpIVV8Oe7nj3dgmXpfLe-7nnA5QE,6552
19
19
  ommlds/backends/anthropic/protocol/sse/events.py,sha256=pLscyLFpxcrtOijNPRgivrxYBFpE270oDW1dECjGtFg,2507
20
+ ommlds/backends/cerebras/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
21
+ ommlds/backends/cerebras/_dataclasses.py,sha256=Z4NZSwc1mFZqScqRWvv-LK69bsX2XFYkzw9oqk6nKgM,215150
22
+ ommlds/backends/cerebras/_marshal.py,sha256=KqhIymYaVUJ5-XubSHLDiEagK_jmp-738mbduazlEE8,658
23
+ ommlds/backends/cerebras/protocol.py,sha256=gfOdPgJRg0XsZIMgrZh8yppAB7iuzgSVM8qFv2Spq_I,8848
20
24
  ommlds/backends/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
25
  ommlds/backends/google/protocol/__init__.py,sha256=5fguMBg9qGfTEvEBCgjFbDBfRzaiRdil6d1DakJGvPY,214
22
26
  ommlds/backends/google/protocol/_dataclasses.py,sha256=tySVfhYQuufyrsB2-kPBPVFqtu86IjhiED_O3HHcH3o,305060
@@ -96,11 +100,11 @@ ommlds/backends/transformers/filecache.py,sha256=ycfswt7f4qRrPSTFRhofXZaDBuDPpyp
96
100
  ommlds/backends/transformers/streamers.py,sha256=Hu_9lp_kUilKjOfs7Ixqr2NoA5FuRn2eRh8JdvaBDYc,1688
97
101
  ommlds/cli/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
98
102
  ommlds/cli/__main__.py,sha256=1ffCb0fcUOJMzxROJmJRXQ8PSOVYv7KrcuBtT95cf0c,140
99
- ommlds/cli/_dataclasses.py,sha256=yXvetsypIhkqXpUIA4AZCUoXkzv_3hBSj2nG_YxE8F4,121231
103
+ ommlds/cli/_dataclasses.py,sha256=eD6xmF2ZZkiOfNjdpXP8no6nz4XGjl_3Y4JiJdN44Kc,130497
100
104
  ommlds/cli/asyncs.py,sha256=NAMzzaZq7ORjlbbBB_Y9vcM9qoBpGf4VJNtl_3p_8G4,629
101
105
  ommlds/cli/inject.py,sha256=CdG-Zgq3T0pDWLhHRZSqlkR4W2mS7LlCOHD2uP1llf0,610
102
- ommlds/cli/main.py,sha256=IhiHpFpUMCYuoQZakRrRXif6mmFwmSjvL5-zyPAmuD4,9067
103
- ommlds/cli/secrets.py,sha256=LAlpESndxbEJLF2ohJQQJUEODsY5Vqv3wH8_TDRExHw,441
106
+ ommlds/cli/main.py,sha256=D8TKCHJEJ5nLVAmTMVOdaUDrHYQJbFAlO0u7fR_APJ0,9633
107
+ ommlds/cli/secrets.py,sha256=8GHlewS3yeFDfFNekaYwRm4nG9l3nd-Mc8tKl9Ma_Uo,469
104
108
  ommlds/cli/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
109
  ommlds/cli/backends/catalog.py,sha256=hLcBXBCiB7eKT_2yv8kyLD5f94LV7vCcOe144URuJxs,3225
106
110
  ommlds/cli/backends/configs.py,sha256=RvNWxsJDSsHc0eWA6hI1_3n__HU7rXAUmzS06ykMPh0,137
@@ -123,10 +127,10 @@ ommlds/cli/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
123
127
  ommlds/cli/sessions/base.py,sha256=diwERBpapd73Cn2T2_ctEIfhzjzJ1DTzjcExxwxccqw,464
124
128
  ommlds/cli/sessions/inject.py,sha256=9SrtsozIhqok3jZtepKTJwpOxHkU7FrqKw6pc78mEO4,926
125
129
  ommlds/cli/sessions/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- ommlds/cli/sessions/chat/configs.py,sha256=IN2JMJv_Vat8K8-1GUgfOjQG_jzeJ4aKpGoztX498iE,636
130
+ ommlds/cli/sessions/chat/configs.py,sha256=cboswtxSsL9ueZ_ualVy2avU4I3DRWuVM34S5ACImTg,734
127
131
  ommlds/cli/sessions/chat/driver.py,sha256=ddnCYTKqWiPxV8U4UbFwb7E3yi81ItjZ9j3AJd3a3Mk,1395
128
- ommlds/cli/sessions/chat/inject.py,sha256=uLOSGyVI6UsZxeYw62w4Sl1GmuxGpcRnJRXCmzj4xBA,1463
129
- ommlds/cli/sessions/chat/session.py,sha256=DOkCg_PLdleyYFQa2WLAOBWwgQeuVITJ6rY_sqk3sCc,533
132
+ ommlds/cli/sessions/chat/inject.py,sha256=paMPTWRQpHTiRfTgv9ZrCQOo_QRGsfJ2ca6EPHjhZYg,1562
133
+ ommlds/cli/sessions/chat/session.py,sha256=O5hju0S78zo0K3bCwCg1GIdhZkUYt2H2gpl-efJnUMY,800
130
134
  ommlds/cli/sessions/chat/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
135
  ommlds/cli/sessions/chat/chat/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
136
  ommlds/cli/sessions/chat/chat/ai/configs.py,sha256=zIth9PKJ9u68Mblctraj2HQcEuiztKGF5sPeJZ-OABw,182
@@ -143,11 +147,22 @@ ommlds/cli/sessions/chat/chat/state/inmemory.py,sha256=4wX-8NA8SUTytXeUaTMaI64KB
143
147
  ommlds/cli/sessions/chat/chat/state/storage.py,sha256=gKUNsNj3TtH67-FOuHXrQlDsESeIYDUHPhn7unTQCx8,1447
144
148
  ommlds/cli/sessions/chat/chat/state/types.py,sha256=NsHCZNeBfLW1BMVB2rn-DUqA9C5w2vp-_3UjjKl4QRo,806
145
149
  ommlds/cli/sessions/chat/chat/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- ommlds/cli/sessions/chat/chat/user/configs.py,sha256=QdsHopwQnShreEgLMlFEdLo1c4ursmL09woXiwJLv1o,364
147
- ommlds/cli/sessions/chat/chat/user/inject.py,sha256=9HGjOxgfuLRAKDDozO0UhH2mnVrE2fQqUmkji20BZS8,2444
150
+ ommlds/cli/sessions/chat/chat/user/configs.py,sha256=qsiua5CkTRPhO4prORK-GXauUhWRZ3psfpoHvuj8EyA,311
151
+ ommlds/cli/sessions/chat/chat/user/inject.py,sha256=cnG04z35Svy-6sle2_Z_2a9rlbBefi6syi-MZyiXJa8,2056
148
152
  ommlds/cli/sessions/chat/chat/user/interactive.py,sha256=SHeiuhkCkM0SM0dTph-W-qk9VLBMuwL1nTE-Moex2qA,862
149
153
  ommlds/cli/sessions/chat/chat/user/oneshot.py,sha256=jPrZBBuf-olBfPF7CPTYK7-Dr7EvSriU7L0nORHfbv4,588
150
154
  ommlds/cli/sessions/chat/chat/user/types.py,sha256=MNlhMxlLtxVod9rUZlSPvRaippPAXEdX_GHh73QLeSg,262
155
+ ommlds/cli/sessions/chat/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
+ ommlds/cli/sessions/chat/interface/base.py,sha256=3z7yI-ow7037_n6VanQYZjOgKL_iRZ8FB6JP553SY7M,198
157
+ ommlds/cli/sessions/chat/interface/configs.py,sha256=xu9nUAI9opNR7X4m92JKr5HhXPNNflHUHQ4UbOPmVMg,244
158
+ ommlds/cli/sessions/chat/interface/inject.py,sha256=Ip-srA7ONGF-YgbLikwfTd3O1UoxeDTMI6CnPpc6A80,493
159
+ ommlds/cli/sessions/chat/interface/bare/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ ommlds/cli/sessions/chat/interface/bare/inject.py,sha256=edyEuvNSdxG3EAb0aDku_QEVPftc_I7e_EJMLNa7Stw,853
161
+ ommlds/cli/sessions/chat/interface/bare/interface.py,sha256=X-M0fyyY6FlJbY_ToJOMGJrPwbx68Hi1y9GfkhdPLKA,336
162
+ ommlds/cli/sessions/chat/interface/textual/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
+ ommlds/cli/sessions/chat/interface/textual/app.py,sha256=MZGjY8d8KfV58zhT_0bCRn3-2-ole3FCa-rTVY9EE_A,233
164
+ ommlds/cli/sessions/chat/interface/textual/inject.py,sha256=Gqlm7yem3exApLnt_ylSke7Uw-POanno-otdQFxdiSw,399
165
+ ommlds/cli/sessions/chat/interface/textual/interface.py,sha256=SISY0RardWhYdXfpVMTTjNlaeUIu9lgFIxKkDn0_SwA,417
151
166
  ommlds/cli/sessions/chat/phases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
167
  ommlds/cli/sessions/chat/phases/inject.py,sha256=m9GcCVcp1GnNKN1qwDSgTkfp3e107wXgPeEHDLbfG8s,448
153
168
  ommlds/cli/sessions/chat/phases/injection.py,sha256=ZUFRRLp3HNhKaPBW6aiw5XFEGNkqTj8WVSlXM0kg0y0,326
@@ -212,6 +227,11 @@ ommlds/minichain/backends/impls/anthropic/chat.py,sha256=e4Kcbjvca_yaZsNB_-h335g
212
227
  ommlds/minichain/backends/impls/anthropic/names.py,sha256=GPPeYt0CcDcDCR8I6BMd7bMjC_Zk_bjnLLpF9ClwXcg,1099
213
228
  ommlds/minichain/backends/impls/anthropic/protocol.py,sha256=whPVYuKShKiMCzasHl77sCIiymhzXj8mFZXEyhZvld8,3292
214
229
  ommlds/minichain/backends/impls/anthropic/stream.py,sha256=jxKzytoYJLK9JftihGhWTcFIoXFgouQR7Yu5Q1j_ku8,8794
230
+ ommlds/minichain/backends/impls/cerebras/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
+ ommlds/minichain/backends/impls/cerebras/chat.py,sha256=FbwXrOMbHIIzO8gLZsyI3faYJYFYWPcxZTMxcpIaB4Y,2858
232
+ ommlds/minichain/backends/impls/cerebras/names.py,sha256=NcJF7Py3y8EiQUJ5gL3KV2l25rpsi4Hc3_bwHv7lncQ,574
233
+ ommlds/minichain/backends/impls/cerebras/protocol.py,sha256=DhDXzV6YCE0l8EwsObS9eYAd_9Zvt06ch5uuJHzcdAQ,5239
234
+ ommlds/minichain/backends/impls/cerebras/stream.py,sha256=gMGlP_QNQ9h8qGZSoFwEZ-mpND7_hx86y3smrsLrUX8,5150
215
235
  ommlds/minichain/backends/impls/duckduckgo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
236
  ommlds/minichain/backends/impls/duckduckgo/search.py,sha256=HA5UriBVvNw6-6vmeYJsm83LxsFsksLtzFxj-kdzoPE,1010
217
237
  ommlds/minichain/backends/impls/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -428,9 +448,9 @@ ommlds/wiki/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
428
448
  ommlds/wiki/utils/io.py,sha256=UKgDJGtmpnWvIqVd2mJc2QNPOqlToEY1GEveNp6_pMo,7088
429
449
  ommlds/wiki/utils/progress.py,sha256=EhvKcMFYtsarCQhIahlO6f0SboyAKP3UwUyrnVnP-Vk,3222
430
450
  ommlds/wiki/utils/xml.py,sha256=sNJNkZ9rT8B-kJMO6bRz8J1USy4fyPx0m2PwTX7vxYY,3846
431
- ommlds-0.0.0.dev487.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
432
- ommlds-0.0.0.dev487.dist-info/METADATA,sha256=zNidxj78G8t4sL-LE_MkkplkdwxnKQTYe6vSwQ4o9pw,3493
433
- ommlds-0.0.0.dev487.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
434
- ommlds-0.0.0.dev487.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
435
- ommlds-0.0.0.dev487.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
436
- ommlds-0.0.0.dev487.dist-info/RECORD,,
451
+ ommlds-0.0.0.dev488.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
452
+ ommlds-0.0.0.dev488.dist-info/METADATA,sha256=q5zXFLRuFUGT23QClBchanPGY_rKEPUHSRZxpsRAWLA,3493
453
+ ommlds-0.0.0.dev488.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
454
+ ommlds-0.0.0.dev488.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
455
+ ommlds-0.0.0.dev488.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
456
+ ommlds-0.0.0.dev488.dist-info/RECORD,,