ommlds 0.0.0.dev480__py3-none-any.whl → 0.0.0.dev482__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 (43) hide show
  1. ommlds/.omlish-manifests.json +18 -18
  2. ommlds/backends/anthropic/protocol/__init__.py +13 -1
  3. ommlds/backends/anthropic/protocol/_dataclasses.py +4375 -0
  4. ommlds/backends/google/protocol/__init__.py +13 -0
  5. ommlds/backends/google/protocol/_dataclasses.py +8748 -0
  6. ommlds/backends/groq/__init__.py +7 -0
  7. ommlds/backends/groq/_dataclasses.py +6651 -0
  8. ommlds/backends/llamacpp/logging.py +4 -1
  9. ommlds/backends/mlx/caching.py +7 -3
  10. ommlds/backends/mlx/cli.py +10 -7
  11. ommlds/backends/mlx/generation.py +18 -16
  12. ommlds/backends/mlx/limits.py +10 -6
  13. ommlds/backends/mlx/loading.py +7 -4
  14. ommlds/backends/ollama/__init__.py +7 -0
  15. ommlds/backends/ollama/_dataclasses.py +3458 -0
  16. ommlds/backends/openai/protocol/__init__.py +15 -1
  17. ommlds/backends/openai/protocol/_dataclasses.py +10458 -0
  18. ommlds/backends/tavily/__init__.py +7 -0
  19. ommlds/backends/tavily/_dataclasses.py +2907 -0
  20. ommlds/backends/transformers/__init__.py +14 -0
  21. ommlds/cli/__init__.py +7 -0
  22. ommlds/cli/_dataclasses.py +10630 -0
  23. ommlds/minichain/_dataclasses.py +42199 -0
  24. ommlds/minichain/backends/impls/duckduckgo/search.py +5 -1
  25. ommlds/minichain/backends/impls/huggingface/repos.py +1 -5
  26. ommlds/minichain/backends/impls/llamacpp/chat.py +6 -3
  27. ommlds/minichain/backends/impls/llamacpp/completion.py +7 -3
  28. ommlds/minichain/backends/impls/llamacpp/stream.py +6 -3
  29. ommlds/minichain/backends/impls/mlx/chat.py +6 -3
  30. ommlds/minichain/backends/impls/sentencepiece/tokens.py +9 -6
  31. ommlds/minichain/backends/impls/tinygrad/chat.py +7 -4
  32. ommlds/minichain/backends/impls/tokenizers/tokens.py +9 -6
  33. ommlds/minichain/backends/impls/transformers/sentence.py +5 -2
  34. ommlds/minichain/backends/impls/transformers/tokens.py +9 -6
  35. ommlds/minichain/backends/impls/transformers/transformers.py +10 -8
  36. ommlds/specs/mcp/clients.py +146 -0
  37. ommlds/specs/mcp/protocol.py +123 -18
  38. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev482.dist-info}/METADATA +3 -3
  39. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev482.dist-info}/RECORD +43 -34
  40. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev482.dist-info}/WHEEL +0 -0
  41. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev482.dist-info}/entry_points.txt +0 -0
  42. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev482.dist-info}/licenses/LICENSE +0 -0
  43. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev482.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,15 @@
1
1
  """
2
2
  https://modelcontextprotocol.io/specification/2025-06-18
3
3
  https://modelcontextprotocol.io/specification/2025-06-18/schema
4
+
5
+ TODO:
6
+ - https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/cancellation
7
+ - https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/progress
8
+ - https://modelcontextprotocol.io/specification/2025-06-18/client/sampling
9
+ - https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation
10
+ - https://modelcontextprotocol.io/specification/2025-06-18/server/prompts
11
+ - https://modelcontextprotocol.io/specification/2025-06-18/server/resources
12
+ - https://modelcontextprotocol.io/specification/2025-06-18/server/utilities/logging
4
13
  """
5
14
  import abc
6
15
  import typing as ta
@@ -11,6 +20,16 @@ from omlish import lang
11
20
  from omlish import marshal as msh
12
21
 
13
22
 
23
+ ClientRequestT = ta.TypeVar('ClientRequestT', bound='ClientRequest')
24
+ ClientResultT = ta.TypeVar('ClientResultT', bound='ClientResult')
25
+
26
+ ServerRequestT = ta.TypeVar('ServerRequestT', bound='ServerRequest')
27
+ ServerResultT = ta.TypeVar('ServerResultT', bound='ServerResult')
28
+
29
+ CursorClientRequestT = ta.TypeVar('CursorClientRequestT', bound='CursorClientRequest')
30
+ CursorClientResultT = ta.TypeVar('CursorClientResultT', bound='CursorClientResult')
31
+
32
+
14
33
  msh.register_global_module_import('._marshal', __package__)
15
34
 
16
35
 
@@ -41,27 +60,36 @@ class Message(lang.Sealed, lang.Abstract):
41
60
  raise NotImplementedError
42
61
 
43
62
 
44
- class ClientRequest(Message, lang.Abstract):
63
+ #
64
+
65
+
66
+ class ClientRequest(Message, lang.Abstract, ta.Generic[ClientResultT]):
45
67
  pass
46
68
 
47
69
 
48
- class ClientResult(Message, lang.Abstract):
70
+ class ClientResult(Message, lang.Abstract, ta.Generic[ClientRequestT]):
49
71
  pass
50
72
 
51
73
 
52
- class ServerRequest(Message, lang.Abstract):
74
+ #
75
+
76
+
77
+ class ServerRequest(Message, lang.Abstract, ta.Generic[ServerResultT]):
53
78
  pass
54
79
 
55
80
 
56
- class ServerResult(Message, lang.Abstract):
81
+ class ServerResult(Message, lang.Abstract, ta.Generic[ServerRequestT]):
57
82
  pass
58
83
 
59
84
 
85
+ #
86
+
87
+
60
88
  class Notification(Message, lang.Abstract):
61
89
  pass
62
90
 
63
91
 
64
- #
92
+ ##
65
93
 
66
94
 
67
95
  @dc.dataclass(frozen=True, kw_only=True)
@@ -84,7 +112,7 @@ DEFAULT_PROTOCOL_VERSION = '2025-06-18'
84
112
 
85
113
  @dc.dataclass(frozen=True, kw_only=True)
86
114
  @_set_class_marshal_options
87
- class ClientCapabilities:
115
+ class ClientCapabilities(lang.Final):
88
116
  elicitation: ta.Any | None = None
89
117
 
90
118
  experimental: ta.Mapping[str, ta.Any] | None = None
@@ -101,7 +129,7 @@ class ClientCapabilities:
101
129
 
102
130
  @dc.dataclass(frozen=True, kw_only=True)
103
131
  @_set_class_marshal_options
104
- class InitializeRequest(ClientRequest):
132
+ class InitializeRequest(ClientRequest['InitializeResult']):
105
133
  json_rpc_method_name: ta.ClassVar[str] = 'initialize'
106
134
 
107
135
  client_info: Implementation
@@ -143,12 +171,13 @@ class ServerCapabilities:
143
171
 
144
172
  @dc.dataclass(frozen=True, kw_only=True)
145
173
  @_set_class_marshal_options
146
- class InitializeResult(ClientResult, WithMeta):
174
+ class InitializeResult(ClientResult[InitializeRequest], WithMeta):
147
175
  json_rpc_method_name: ta.ClassVar[str] = 'initialize'
148
176
 
149
177
  server_info: Implementation
150
178
  protocol_version: str
151
179
  capabilities: ServerCapabilities
180
+ instructions: str | None = None
152
181
 
153
182
 
154
183
  @dc.dataclass(frozen=True, kw_only=True)
@@ -160,6 +189,19 @@ class InitializedNotification(Notification):
160
189
  ##
161
190
 
162
191
 
192
+ @dc.dataclass(frozen=True, kw_only=True)
193
+ class CursorClientRequest(ClientRequest[CursorClientResultT], lang.Abstract):
194
+ cursor: str | None = None
195
+
196
+
197
+ @dc.dataclass(frozen=True, kw_only=True)
198
+ class CursorClientResult(ClientResult[CursorClientRequestT], lang.Abstract):
199
+ next_cursor: str | None = None
200
+
201
+
202
+ ##
203
+
204
+
163
205
  @dc.dataclass(frozen=True, kw_only=True)
164
206
  @_set_class_marshal_options
165
207
  class ToolAnnotations(lang.Final):
@@ -172,7 +214,7 @@ class ToolAnnotations(lang.Final):
172
214
 
173
215
  @dc.dataclass(frozen=True, kw_only=True)
174
216
  @_set_class_marshal_options
175
- class Tool(lang.Final):
217
+ class Tool(WithMeta, lang.Final):
176
218
  name: str
177
219
  title: str | None = None
178
220
 
@@ -186,19 +228,16 @@ class Tool(lang.Final):
186
228
 
187
229
  @dc.dataclass(frozen=True, kw_only=True)
188
230
  @_set_class_marshal_options
189
- class ListToolsRequest(ClientRequest):
231
+ class ListToolsRequest(CursorClientRequest['ListToolsResult']):
190
232
  json_rpc_method_name: ta.ClassVar[str] = 'tools/list'
191
233
 
192
- cursor: str | None = None
193
-
194
234
 
195
235
  @dc.dataclass(frozen=True, kw_only=True)
196
236
  @_set_class_marshal_options
197
- class ListToolsResult(ClientResult, WithMeta):
237
+ class ListToolsResult(CursorClientResult[ListToolsRequest], WithMeta):
198
238
  json_rpc_method_name: ta.ClassVar[str] = 'tools/list'
199
239
 
200
240
  tools: ta.Sequence[Tool]
201
- next_cursor: str | None = None
202
241
 
203
242
 
204
243
  ##
@@ -219,7 +258,7 @@ class TextContentBlock(ContentBlock, lang.Final):
219
258
 
220
259
  @dc.dataclass(frozen=True, kw_only=True)
221
260
  @_set_class_marshal_options
222
- class CallToolRequest(ClientRequest):
261
+ class CallToolRequest(ClientRequest['CallToolResult']):
223
262
  json_rpc_method_name: ta.ClassVar[str] = 'tools/call'
224
263
 
225
264
  name: str
@@ -228,7 +267,7 @@ class CallToolRequest(ClientRequest):
228
267
 
229
268
  @dc.dataclass(frozen=True, kw_only=True)
230
269
  @_set_class_marshal_options
231
- class CallToolResult(ClientResult, WithMeta):
270
+ class CallToolResult(ClientResult[CallToolRequest], WithMeta):
232
271
  json_rpc_method_name: ta.ClassVar[str] = 'tools/call'
233
272
 
234
273
  content: ta.Sequence[ContentBlock]
@@ -241,16 +280,82 @@ class CallToolResult(ClientResult, WithMeta):
241
280
 
242
281
  @dc.dataclass(frozen=True, kw_only=True)
243
282
  @_set_class_marshal_options
244
- class PingRequest(ClientRequest, WithMeta):
283
+ class PingClientRequest(ClientRequest['PingClientResult'], WithMeta):
245
284
  json_rpc_method_name: ta.ClassVar[str] = 'ping'
246
285
 
247
286
 
248
287
  @dc.dataclass(frozen=True, kw_only=True)
249
288
  @_set_class_marshal_options
250
- class PingResult(ClientResult):
289
+ class PingClientResult(ClientResult[PingClientRequest]):
251
290
  json_rpc_method_name: ta.ClassVar[str] = 'ping'
252
291
 
253
292
 
293
+ @dc.dataclass(frozen=True, kw_only=True)
294
+ @_set_class_marshal_options
295
+ class PingServerRequest(ServerRequest['PingServerResult'], WithMeta):
296
+ json_rpc_method_name: ta.ClassVar[str] = 'ping'
297
+
298
+
299
+ @dc.dataclass(frozen=True, kw_only=True)
300
+ @_set_class_marshal_options
301
+ class PingServerResult(ServerResult[PingServerRequest]):
302
+ json_rpc_method_name: ta.ClassVar[str] = 'ping'
303
+
304
+
305
+ ##
306
+
307
+
308
+ @dc.dataclass(frozen=True, kw_only=True)
309
+ @_set_class_marshal_options
310
+ class PromptArgument(lang.Final):
311
+ name: str
312
+ title: str | None = None
313
+
314
+ description: str | None = None
315
+
316
+ required: bool | None = None
317
+
318
+
319
+ @dc.dataclass(frozen=True, kw_only=True)
320
+ @_set_class_marshal_options
321
+ class Prompt(WithMeta, lang.Final):
322
+ name: str
323
+ title: str | None = None
324
+
325
+ description: str | None = None
326
+
327
+ arguments: ta.Sequence[PromptArgument] | None = None
328
+
329
+
330
+ @dc.dataclass(frozen=True, kw_only=True)
331
+ @_set_class_marshal_options
332
+ class ListPromptsRequest(CursorClientRequest['ListPromptsResult']):
333
+ json_rpc_method_name: ta.ClassVar[str] = 'prompts/list'
334
+
335
+
336
+ @dc.dataclass(frozen=True, kw_only=True)
337
+ @_set_class_marshal_options
338
+ class ListPromptsResult(CursorClientResult[ListPromptsRequest], WithMeta):
339
+ json_rpc_method_name: ta.ClassVar[str] = 'prompts/list'
340
+
341
+ prompts: ta.Sequence[Prompt]
342
+
343
+
344
+ ##
345
+
346
+
347
+ LoggingLevel: ta.TypeAlias = ta.Literal[
348
+ 'debug',
349
+ 'info',
350
+ 'notice',
351
+ 'warning',
352
+ 'error',
353
+ 'critical',
354
+ 'alert',
355
+ 'emergency',
356
+ ]
357
+
358
+
254
359
  ##
255
360
 
256
361
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev480
3
+ Version: 0.0.0.dev482
4
4
  Summary: ommlds
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,8 +14,8 @@ 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: omdev==0.0.0.dev480
18
- Requires-Dist: omlish==0.0.0.dev480
17
+ Requires-Dist: omdev==0.0.0.dev482
18
+ Requires-Dist: omlish==0.0.0.dev482
19
19
  Provides-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"
@@ -1,4 +1,4 @@
1
- ommlds/.omlish-manifests.json,sha256=koMWePQD2sG43b8onS-VgcRO6w0-uO_ICl0Gx7T-1gg,26200
1
+ ommlds/.omlish-manifests.json,sha256=T-lGNCch3r9dTEDqxkUzixnMVqIbFX7Z_RLfOHV8KvM,26200
2
2
  ommlds/__about__.py,sha256=0sYCKIIYzKeM_JN_D_NolfISOQw6HQWh1IpUKABZ2HY,1865
3
3
  ommlds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  ommlds/_hacks/__init__.py,sha256=ajfw7dMKH8UuloeQ5MSxWwgAmdWf2v8gm-K3uLP9wtY,196
@@ -9,7 +9,8 @@ ommlds/_hacks/patches.py,sha256=Dsz4GcgRXd1zi18jiDO2C_8IF12VTsysjthiOQz-h80,1871
9
9
  ommlds/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  ommlds/backends/huggingface.py,sha256=JfEyfKOxU3-SY_ojtXBJFNeD-NIuKjvMe3GL3e93wNA,1175
11
11
  ommlds/backends/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- ommlds/backends/anthropic/protocol/__init__.py,sha256=bWNQbfEt7jLss6s03c0sBRCsx32POdgkO5VeNe0K3SU,132
12
+ ommlds/backends/anthropic/protocol/__init__.py,sha256=g05gJKHqrySqtvMBAaZUueRxYafBTGOLw7FfEDiXi34,248
13
+ ommlds/backends/anthropic/protocol/_dataclasses.py,sha256=7tBzcLmg9ZrEkMuuXBhyySMmXmtQYH3pQICC4IzoXHA,214792
13
14
  ommlds/backends/anthropic/protocol/_marshal.py,sha256=RHbwekaw21lTS_1KBX9z6dLpbmWmyYUE5j6Uyq1tn0w,539
14
15
  ommlds/backends/anthropic/protocol/types.py,sha256=f-_VXg_-KlhGIKp0R8vL50Rg_ZxqiBvQUGexQaDf8HY,2761
15
16
  ommlds/backends/anthropic/protocol/sse/__init__.py,sha256=LpijqXk0ceMDcgwOvZ8iLoh0I328JSfG8V0JalcZD3I,98
@@ -17,22 +18,24 @@ ommlds/backends/anthropic/protocol/sse/_marshal.py,sha256=2No-qWRKV9ilOhC5NqHAA9
17
18
  ommlds/backends/anthropic/protocol/sse/assemble.py,sha256=MVpA0iSU2LNMXy4VpIVV8Oe7nj3dgmXpfLe-7nnA5QE,6552
18
19
  ommlds/backends/anthropic/protocol/sse/events.py,sha256=pLscyLFpxcrtOijNPRgivrxYBFpE270oDW1dECjGtFg,2507
19
20
  ommlds/backends/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- ommlds/backends/google/protocol/__init__.py,sha256=OWmhuCS_sZ08ZaBtSSDRIudHKzkzgmqxY-3jgQxTidw,105
21
+ ommlds/backends/google/protocol/__init__.py,sha256=5fguMBg9qGfTEvEBCgjFbDBfRzaiRdil6d1DakJGvPY,214
22
+ ommlds/backends/google/protocol/_dataclasses.py,sha256=iwuTFL4SFSJM8VPQE8Fwt-gRllpsGoz6YL2-Ur6nqOQ,439227
21
23
  ommlds/backends/google/protocol/_marshal.py,sha256=LWikcdMDrKQ0lMtclNXwK9qamijUBzK62nrEVo2OFtc,305
22
24
  ommlds/backends/google/protocol/types.py,sha256=JDft5-5sPuy8sFWTvid4JuC9a9EnuQizt9dyAV2L56s,17536
23
- ommlds/backends/groq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ ommlds/backends/groq/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
26
+ ommlds/backends/groq/_dataclasses.py,sha256=T1D5dyQOrIculv00fBHylSHflE0FnOeULUP3bGfl-GM,334606
24
27
  ommlds/backends/groq/_marshal.py,sha256=3o4CVK9VbP_UnEbXZ4fQJuZK3Sy9xnkXTTempSDSvgE,602
25
28
  ommlds/backends/groq/protocol.py,sha256=ieKrjlxcDE5RqWcugc996O5Ksy4Chse_RdigPQPbP2Y,7823
26
29
  ommlds/backends/llamacpp/__init__.py,sha256=zXFpLXE4a2vEl0jcPDyKlPHHfZ3Z8Dz0twhEIyZ8-vg,59
27
30
  ommlds/backends/llamacpp/buildwheel.py,sha256=q9ghCLVbm8Jm6syrZlBP-x1qNDd0wSl15B2OXBtDBQ8,3813
28
- ommlds/backends/llamacpp/logging.py,sha256=nCEC6ASEuTpJqx47DMLhnbr5KelDlbxhM0nKQt4bc3w,773
31
+ ommlds/backends/llamacpp/logging.py,sha256=qLTDd3JdnB-wEQ51fBJra-oTid5kO-ezHHFP7FBPcio,933
29
32
  ommlds/backends/mlx/__init__.py,sha256=caiXip6b1pc5EyA-icH44Zs7taC5bLitJQySR7mBuaI,259
30
33
  ommlds/backends/mlx/__main__.py,sha256=gFhR9DikwDZk0LqgdR3qq_aXQHThUOPllDmHDOfnFAU,67
31
- ommlds/backends/mlx/caching.py,sha256=jPhVclrm8RckXiJLY-iokCSGjMfVMr_VH8fTFYA3FBA,1912
32
- ommlds/backends/mlx/cli.py,sha256=In4gGBqvFApLE-vNMi6bqba7Xa-SZfCmSSGuRCDCjlU,10685
33
- ommlds/backends/mlx/generation.py,sha256=e53MT80QJI6KhUr9UNnJkx9h3bUFtn1dy9K-R57c6hk,9785
34
- ommlds/backends/mlx/limits.py,sha256=GZfad6q14fvFHoPfovdnH3jnM1qGvdprfQk_pMWqI5g,2780
35
- ommlds/backends/mlx/loading.py,sha256=5M18MPeXiIsPV5Laww6gu3KicLKJ11G0OJMjyixDa9c,3585
34
+ ommlds/backends/mlx/caching.py,sha256=XABUfeEzJT9zELMrj2inpLRxcU7CjaqQlzhRb3KKyM4,2005
35
+ ommlds/backends/mlx/cli.py,sha256=Vf-dV_g440DiQu4y5FJkBK7sddZXrLuQ2AGNgwFy3Z0,10789
36
+ ommlds/backends/mlx/generation.py,sha256=RRmcpAwjFPtuir-3cyitwOY0QCt6m9ZsUZzwYSP-36Y,9918
37
+ ommlds/backends/mlx/limits.py,sha256=UaadamBmyL8QSZEXI72X2W9_E3l6HTqBPEfdb-xDq9E,2884
38
+ ommlds/backends/mlx/loading.py,sha256=jsblR6usagSQORNH-nfSUD9jF4x9a6iati-J5PF3cf4,3665
36
39
  ommlds/backends/mlx/tokenization/LICENSE,sha256=0T9KDFIRDAqANM8DZgpgrzPq3WwnBKsw5EkrkeR3xqM,1066
37
40
  ommlds/backends/mlx/tokenization/__init__.py,sha256=0GfhhjUc4OhY_dpQncq984kcdyOCholjVNjAIAcjAHM,232
38
41
  ommlds/backends/mlx/tokenization/loading.py,sha256=OSD7-ZnLuY2Owv5MpQB8CCEPMhOPwParqMPpS5omZBI,3154
@@ -43,11 +46,13 @@ ommlds/backends/mlx/tokenization/detokenization/base.py,sha256=Tezf8Anh-w7BxpNQs
43
46
  ommlds/backends/mlx/tokenization/detokenization/bpe.py,sha256=cIw6-r-cyXTfZdyfGRgohrElMIqeLKfMRb8R1H_56nY,3659
44
47
  ommlds/backends/mlx/tokenization/detokenization/naive.py,sha256=6L-SvphzP1z16cmVB4QC9VraF7khE8ZcvKqIwwFqN6U,1779
45
48
  ommlds/backends/mlx/tokenization/detokenization/spm.py,sha256=IYSnEm-C0z_o5TKLJE_Rj6P0nNd-prT6psVPKsERWAE,1751
46
- ommlds/backends/ollama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ ommlds/backends/ollama/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
50
+ ommlds/backends/ollama/_dataclasses.py,sha256=yYoTUMetL3Lxw6_iU46sq_F1P6wn-ZhatKnzwxmheac,186186
47
51
  ommlds/backends/ollama/protocol.py,sha256=1rBZOIb080MsWMfgU4d59wDQhW5EiyBYKgnFbBnLatg,4437
48
52
  ommlds/backends/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- ommlds/backends/openai/protocol/__init__.py,sha256=gYPUQ94GfoIAgU5TGoaC0OVGkWuplrHg-s83ynT9f-4,1750
53
+ ommlds/backends/openai/protocol/__init__.py,sha256=S-p81JfMaS0nwdII9jyhcmj0c5fJJD5sHwphnY45WdI,1862
50
54
  ommlds/backends/openai/protocol/_common.py,sha256=r4EXmw1fBFHjU5vbWTDvlM_fsafdIVg3d3PNw4F9m-Q,313
55
+ ommlds/backends/openai/protocol/_dataclasses.py,sha256=ZIUbrNhlGb43V-a0W4Gw9kcMk2QJ3gLALXZEtOepSCw,509775
51
56
  ommlds/backends/openai/protocol/_marshal.py,sha256=V9s7old4lRzabr28kKVMNfa5lkrJ_F1MqYfAEed4cMo,839
52
57
  ommlds/backends/openai/protocol/completionusage.py,sha256=hoJ68nUU3IoCl1QVT8tcprQRbAZbgksCdnYrQS8xdPs,944
53
58
  ommlds/backends/openai/protocol/chatcompletion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -58,7 +63,8 @@ ommlds/backends/openai/protocol/chatcompletion/request.py,sha256=ywr80FNdh3G_vJh
58
63
  ommlds/backends/openai/protocol/chatcompletion/response.py,sha256=_e-uw9fbpudTJsha5Jl5e99oVj7Ddf1WCcB0oGUycW0,2755
59
64
  ommlds/backends/openai/protocol/chatcompletion/responseformat.py,sha256=UtkyOKlEMVv_OyeLYvL4dROV4ZdqUge7MmuBFQGTn7k,999
60
65
  ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py,sha256=VTj9aI_wqcOArzHFG8W4R8RCIJZ8izpIUosVzAnrhQ8,573
61
- ommlds/backends/tavily/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ ommlds/backends/tavily/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
67
+ ommlds/backends/tavily/_dataclasses.py,sha256=E0gOEwDz4j1cMs4CqTmVEfk2iNgtMkVZBg9n-uB9DXE,150404
62
68
  ommlds/backends/tavily/protocol.py,sha256=8ioCdovoD3dwfsK-B2YSQCh-6CyujaxzUaEUJ8yL1EA,5930
63
69
  ommlds/backends/tinygrad/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
70
  ommlds/backends/tinygrad/tinygrad.py,sha256=Va2mI11Q76IN9vLCYozMRXbEDVKxjKvRI0iQXJNJtJI,342
@@ -85,11 +91,12 @@ ommlds/backends/torch/__init__.py,sha256=Id8dKbxMLlp3ux62ohu9JKoXPSrM0ZXUK0eCDTY
85
91
  ommlds/backends/torch/backends.py,sha256=Bo-ZdW1n9NswvptT8bL9CssEOKwusDuBMaXVjRS8zrA,3528
86
92
  ommlds/backends/torch/devices.py,sha256=KWkeyArPdUwVqckQTJPkN-4GQdv39cpOgCMv_XfkLkQ,776
87
93
  ommlds/backends/torch/purge.py,sha256=sp6XUxNLoVCepxIPKw3tevHn-cQqgorILvIQzixauiI,1834
88
- ommlds/backends/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
+ ommlds/backends/transformers/__init__.py,sha256=SCQ8a-0XihXaUzSsUYGo3buRMogPmybzfmhr2OBtw3U,261
89
95
  ommlds/backends/transformers/filecache.py,sha256=ycfswt7f4qRrPSTFRhofXZaDBuDPpypEKwXzSBsBsu8,3317
90
96
  ommlds/backends/transformers/streamers.py,sha256=Hu_9lp_kUilKjOfs7Ixqr2NoA5FuRn2eRh8JdvaBDYc,1688
91
- ommlds/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
+ ommlds/cli/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
92
98
  ommlds/cli/__main__.py,sha256=1ffCb0fcUOJMzxROJmJRXQ8PSOVYv7KrcuBtT95cf0c,140
99
+ ommlds/cli/_dataclasses.py,sha256=fS1iySsbx_ZGC4vApyM_DXdrED1dlsB4XUHPuP47tIk,495212
93
100
  ommlds/cli/asyncs.py,sha256=NAMzzaZq7ORjlbbBB_Y9vcM9qoBpGf4VJNtl_3p_8G4,629
94
101
  ommlds/cli/inject.py,sha256=CdG-Zgq3T0pDWLhHRZSqlkR4W2mS7LlCOHD2uP1llf0,610
95
102
  ommlds/cli/main.py,sha256=IhiHpFpUMCYuoQZakRrRXif6mmFwmSjvL5-zyPAmuD4,9067
@@ -178,6 +185,7 @@ ommlds/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
185
  ommlds/datasets/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
186
  ommlds/datasets/lib/movies.py,sha256=LmdfoXsZU9XMM_r-sxCLv_s06BFzwWO4xUj6sc9XVcI,1961
180
187
  ommlds/minichain/__init__.py,sha256=jsluq9s-dyqsT7ertzpn0QGs6s00GvSHcAOlIrRVgx4,11439
188
+ ommlds/minichain/_dataclasses.py,sha256=29Zy3am8SsfzuYL6h7OLPZyh_lSK9uucckylf-CBGXM,2068457
181
189
  ommlds/minichain/_marshal.py,sha256=n9PGWrHhvAmGIc7KDOYt3IF9Z6G0ncXskyICTp3Ji6k,1923
182
190
  ommlds/minichain/_typedvalues.py,sha256=Vl1Edt5khC0e5RPFBPmPCxn0IzrfVd0NHzAjAN2E6Kc,2183
183
191
  ommlds/minichain/completion.py,sha256=lQ0LfCIYZsvDqteHhhDIv16D2_gn_xMfEL0ouywE5Yo,1033
@@ -205,7 +213,7 @@ ommlds/minichain/backends/impls/anthropic/names.py,sha256=GPPeYt0CcDcDCR8I6BMd7b
205
213
  ommlds/minichain/backends/impls/anthropic/protocol.py,sha256=whPVYuKShKiMCzasHl77sCIiymhzXj8mFZXEyhZvld8,3292
206
214
  ommlds/minichain/backends/impls/anthropic/stream.py,sha256=jxKzytoYJLK9JftihGhWTcFIoXFgouQR7Yu5Q1j_ku8,8794
207
215
  ommlds/minichain/backends/impls/duckduckgo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
208
- ommlds/minichain/backends/impls/duckduckgo/search.py,sha256=igzeU9P9b1MMiu4KAJVS9H6KLIoPm68wXi4Kx3_DHyQ,940
216
+ ommlds/minichain/backends/impls/duckduckgo/search.py,sha256=HA5UriBVvNw6-6vmeYJsm83LxsFsksLtzFxj-kdzoPE,1010
209
217
  ommlds/minichain/backends/impls/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
218
  ommlds/minichain/backends/impls/dummy/chat.py,sha256=FUTvNPWmb4Hm-axglvPiqbvLwE7sajHOM5H7j9Qj2-c,2283
211
219
  ommlds/minichain/backends/impls/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -221,14 +229,14 @@ ommlds/minichain/backends/impls/groq/protocol.py,sha256=FPydA4ftMhXFLEfYjmHsmNdB
221
229
  ommlds/minichain/backends/impls/groq/stream.py,sha256=5PZHrs_QNyKofJClKq5R5aOsq-H26UeWH7uncbJGrmI,5124
222
230
  ommlds/minichain/backends/impls/huggingface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
231
  ommlds/minichain/backends/impls/huggingface/configs.py,sha256=6jsBtPNXOP57PcpxNTVLGWLc-18Iwn_lDbGouwCJTIQ,258
224
- ommlds/minichain/backends/impls/huggingface/repos.py,sha256=8BDxJmra9elSQL2vzp2nr2p4Hpq56A3zTk7hTTnfJU4,861
232
+ ommlds/minichain/backends/impls/huggingface/repos.py,sha256=NDanA_rFwT-K2gKghkHMxqejbYy6uctz10S6yREfbg0,807
225
233
  ommlds/minichain/backends/impls/llamacpp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- ommlds/minichain/backends/impls/llamacpp/chat.py,sha256=J6Jslx9atAtWvLdrVtvRboQUBzRX7Z5aHlo0dK5X78A,5649
227
- ommlds/minichain/backends/impls/llamacpp/completion.py,sha256=oJ2I6wUoIPXYLm9Vc7dwOPgqbevatTjNBZ-jXeM24tQ,2372
234
+ ommlds/minichain/backends/impls/llamacpp/chat.py,sha256=n-uL_ZBf2aB0w0LwnDvWpQuPp9OEc7B0NHHPPrthJKY,5699
235
+ ommlds/minichain/backends/impls/llamacpp/completion.py,sha256=2iMI4-DoYNiMd8TIl1D2j2vSLK9R5kodhu-5hTLsdpE,2446
228
236
  ommlds/minichain/backends/impls/llamacpp/format.py,sha256=fcLMwk7r7FbNrYCH39G3fDRInKvlPIqcoxyLj95CooA,778
229
- ommlds/minichain/backends/impls/llamacpp/stream.py,sha256=GP3RJsjLXCW2zxvn17BqRg5jbuiNMGdHz06enfsLp2k,3575
237
+ ommlds/minichain/backends/impls/llamacpp/stream.py,sha256=XMKNMGzn5dFIZCqfEQdUvyBlsse-jeSe9elfJiTEAUU,3625
230
238
  ommlds/minichain/backends/impls/mlx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
- ommlds/minichain/backends/impls/mlx/chat.py,sha256=jV3bVvXx1oGaBYTbODUIpPX4k0Vmjj4SX7x3qQMluyM,7486
239
+ ommlds/minichain/backends/impls/mlx/chat.py,sha256=tmZZAmVg-XcbxZYGNHrKC0hiJbxW88pgEHqIEC5D2Xc,7536
232
240
  ommlds/minichain/backends/impls/ollama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
241
  ommlds/minichain/backends/impls/ollama/chat.py,sha256=zBKc0CXVEuO0ntLi38gRK2S5F_FqXdHS4WJKDIaos-g,6637
234
242
  ommlds/minichain/backends/impls/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -239,15 +247,15 @@ ommlds/minichain/backends/impls/openai/format.py,sha256=dAvaqi3LhPu7N9S8BDBkuGSW
239
247
  ommlds/minichain/backends/impls/openai/names.py,sha256=5Q6tJbdEtAAsM6mzYLo6cCcMdbgzfbFXLwxVXafqYvo,1534
240
248
  ommlds/minichain/backends/impls/openai/stream.py,sha256=bsZeGUepqOl9AcN44kWk03V6q-v1ewBCfZqb_MJEfxg,5454
241
249
  ommlds/minichain/backends/impls/sentencepiece/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
- ommlds/minichain/backends/impls/sentencepiece/tokens.py,sha256=tUEBKyBgkTowssS_AdcAuPkyFzfyDfE935x4JG8PXM0,1602
250
+ ommlds/minichain/backends/impls/sentencepiece/tokens.py,sha256=S32bkN5bbAeLrRLW0VW2N4dEOKvBwt2mMS3CGbcmzQI,1679
243
251
  ommlds/minichain/backends/impls/tinygrad/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
- ommlds/minichain/backends/impls/tinygrad/chat.py,sha256=OBPkyY4FyUWT-KwumAPSubqXsgWeaa31mp-j-RT7crU,4944
252
+ ommlds/minichain/backends/impls/tinygrad/chat.py,sha256=VtGB5YBcafGjNihSw6dkexJLnV_PD3fWQkBBC5x6cXI,4996
245
253
  ommlds/minichain/backends/impls/tokenizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
- ommlds/minichain/backends/impls/tokenizers/tokens.py,sha256=_8Q49k5YroG5wQI0cuK6kOJ3XYwjhpaAS04ejhzBsWw,1500
254
+ ommlds/minichain/backends/impls/tokenizers/tokens.py,sha256=wLz9UTWhHrrJm56ZSLZDRkrOsCF6_ydfWcL2EQgidbE,1577
247
255
  ommlds/minichain/backends/impls/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
- ommlds/minichain/backends/impls/transformers/sentence.py,sha256=1bFJ-ND3MOkj7mNsPuISrQCpqTs7npmmNmYcc2go-Fk,1393
249
- ommlds/minichain/backends/impls/transformers/tokens.py,sha256=uS3-IWOJRUMBfPDVRrp3SCaXdE1yzEdKHQcyv0JZQIw,2089
250
- ommlds/minichain/backends/impls/transformers/transformers.py,sha256=irBOBBQlZyv2M63YIW01VJvXXzZwn30ddRbONIKDd44,9081
256
+ ommlds/minichain/backends/impls/transformers/sentence.py,sha256=0T01aY0rVauw--AdchroNkcwaK3ku0ZdP8ikcsYeHyA,1462
257
+ ommlds/minichain/backends/impls/transformers/tokens.py,sha256=ozlTX0c3sixgcgz87OwEBoVxTF69MTz46LbHzuS8r2Y,2166
258
+ ommlds/minichain/backends/impls/transformers/transformers.py,sha256=hXWNe2knROuTJoI737t5FIqUdhmldpHW89tBkfpyofM,9052
251
259
  ommlds/minichain/backends/strings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
260
  ommlds/minichain/backends/strings/manifests.py,sha256=kmlanVUAZqIh0P95Mm8H20e8ib3gEgYHHUlkCXDQGFk,413
253
261
  ommlds/minichain/backends/strings/parsing.py,sha256=Etmk04BnKvCMtGg4AgbvxsPGvfRcLldLxpdpxcozdNk,1779
@@ -403,7 +411,8 @@ ommlds/server/service.py,sha256=WleUNyWqcnvZ_CNk6h1WVSTy1_xT9wJg4dduiJilGDY,2282
403
411
  ommlds/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
404
412
  ommlds/specs/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
405
413
  ommlds/specs/mcp/_marshal.py,sha256=EGw9ZIIkH8CaOguKGl7xgMFOXh-UmbTH0VKTbLf6-jY,576
406
- ommlds/specs/mcp/protocol.py,sha256=0d3oR1NfmxNDrLaw-5EzGDdjm-zkW77XHPctmw7V0u0,5933
414
+ ommlds/specs/mcp/clients.py,sha256=l-QX7KQtsSn40Hb3cATVUqmycGQm4FDTGyljUmpGyCY,4209
415
+ ommlds/specs/mcp/protocol.py,sha256=Q3GQmNCn-fVEvivkROljeeddP1SPDI8v7o3BcxD-Roc,8993
407
416
  ommlds/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
408
417
  ommlds/tools/git.py,sha256=ILvsOFXbdDQvAHvGCSbd2fY4fswmDRXaB8yVDQymLY0,8205
409
418
  ommlds/tools/ocr.py,sha256=UP2XK4-ELyhK2BnuBr7-DwUbkDIcX9xdvfXVimM19Y8,1839
@@ -419,9 +428,9 @@ ommlds/wiki/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
419
428
  ommlds/wiki/utils/io.py,sha256=UKgDJGtmpnWvIqVd2mJc2QNPOqlToEY1GEveNp6_pMo,7088
420
429
  ommlds/wiki/utils/progress.py,sha256=EhvKcMFYtsarCQhIahlO6f0SboyAKP3UwUyrnVnP-Vk,3222
421
430
  ommlds/wiki/utils/xml.py,sha256=sNJNkZ9rT8B-kJMO6bRz8J1USy4fyPx0m2PwTX7vxYY,3846
422
- ommlds-0.0.0.dev480.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
423
- ommlds-0.0.0.dev480.dist-info/METADATA,sha256=3pqqB1uWAhSaAvJpcWPfW7USY30b7HfTIyariP7dFQ0,3402
424
- ommlds-0.0.0.dev480.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
425
- ommlds-0.0.0.dev480.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
426
- ommlds-0.0.0.dev480.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
427
- ommlds-0.0.0.dev480.dist-info/RECORD,,
431
+ ommlds-0.0.0.dev482.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
432
+ ommlds-0.0.0.dev482.dist-info/METADATA,sha256=7VO8fBUSvf6PJma-B0VTUjI99EcPDHk5bkL7KN4xo2g,3402
433
+ ommlds-0.0.0.dev482.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
434
+ ommlds-0.0.0.dev482.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
435
+ ommlds-0.0.0.dev482.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
436
+ ommlds-0.0.0.dev482.dist-info/RECORD,,