ommlds 0.0.0.dev480__py3-none-any.whl → 0.0.0.dev481__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 (29) hide show
  1. ommlds/.omlish-manifests.json +18 -18
  2. ommlds/backends/llamacpp/logging.py +4 -1
  3. ommlds/backends/mlx/caching.py +7 -3
  4. ommlds/backends/mlx/cli.py +10 -7
  5. ommlds/backends/mlx/generation.py +18 -16
  6. ommlds/backends/mlx/limits.py +10 -6
  7. ommlds/backends/mlx/loading.py +7 -4
  8. ommlds/backends/transformers/__init__.py +14 -0
  9. ommlds/minichain/_dataclasses.py +46282 -0
  10. ommlds/minichain/backends/impls/duckduckgo/search.py +5 -1
  11. ommlds/minichain/backends/impls/huggingface/repos.py +1 -5
  12. ommlds/minichain/backends/impls/llamacpp/chat.py +6 -3
  13. ommlds/minichain/backends/impls/llamacpp/completion.py +7 -3
  14. ommlds/minichain/backends/impls/llamacpp/stream.py +6 -3
  15. ommlds/minichain/backends/impls/mlx/chat.py +6 -3
  16. ommlds/minichain/backends/impls/sentencepiece/tokens.py +9 -6
  17. ommlds/minichain/backends/impls/tinygrad/chat.py +7 -4
  18. ommlds/minichain/backends/impls/tokenizers/tokens.py +9 -6
  19. ommlds/minichain/backends/impls/transformers/sentence.py +5 -2
  20. ommlds/minichain/backends/impls/transformers/tokens.py +9 -6
  21. ommlds/minichain/backends/impls/transformers/transformers.py +10 -8
  22. ommlds/specs/mcp/clients.py +146 -0
  23. ommlds/specs/mcp/protocol.py +123 -18
  24. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev481.dist-info}/METADATA +3 -3
  25. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev481.dist-info}/RECORD +29 -27
  26. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev481.dist-info}/WHEEL +0 -0
  27. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev481.dist-info}/entry_points.txt +0 -0
  28. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev481.dist-info}/licenses/LICENSE +0 -0
  29. {ommlds-0.0.0.dev480.dist-info → ommlds-0.0.0.dev481.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.dev481
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.dev481
18
+ Requires-Dist: omlish==0.0.0.dev481
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
@@ -25,14 +25,14 @@ ommlds/backends/groq/_marshal.py,sha256=3o4CVK9VbP_UnEbXZ4fQJuZK3Sy9xnkXTTempSDS
25
25
  ommlds/backends/groq/protocol.py,sha256=ieKrjlxcDE5RqWcugc996O5Ksy4Chse_RdigPQPbP2Y,7823
26
26
  ommlds/backends/llamacpp/__init__.py,sha256=zXFpLXE4a2vEl0jcPDyKlPHHfZ3Z8Dz0twhEIyZ8-vg,59
27
27
  ommlds/backends/llamacpp/buildwheel.py,sha256=q9ghCLVbm8Jm6syrZlBP-x1qNDd0wSl15B2OXBtDBQ8,3813
28
- ommlds/backends/llamacpp/logging.py,sha256=nCEC6ASEuTpJqx47DMLhnbr5KelDlbxhM0nKQt4bc3w,773
28
+ ommlds/backends/llamacpp/logging.py,sha256=qLTDd3JdnB-wEQ51fBJra-oTid5kO-ezHHFP7FBPcio,933
29
29
  ommlds/backends/mlx/__init__.py,sha256=caiXip6b1pc5EyA-icH44Zs7taC5bLitJQySR7mBuaI,259
30
30
  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
31
+ ommlds/backends/mlx/caching.py,sha256=XABUfeEzJT9zELMrj2inpLRxcU7CjaqQlzhRb3KKyM4,2005
32
+ ommlds/backends/mlx/cli.py,sha256=Vf-dV_g440DiQu4y5FJkBK7sddZXrLuQ2AGNgwFy3Z0,10789
33
+ ommlds/backends/mlx/generation.py,sha256=RRmcpAwjFPtuir-3cyitwOY0QCt6m9ZsUZzwYSP-36Y,9918
34
+ ommlds/backends/mlx/limits.py,sha256=UaadamBmyL8QSZEXI72X2W9_E3l6HTqBPEfdb-xDq9E,2884
35
+ ommlds/backends/mlx/loading.py,sha256=jsblR6usagSQORNH-nfSUD9jF4x9a6iati-J5PF3cf4,3665
36
36
  ommlds/backends/mlx/tokenization/LICENSE,sha256=0T9KDFIRDAqANM8DZgpgrzPq3WwnBKsw5EkrkeR3xqM,1066
37
37
  ommlds/backends/mlx/tokenization/__init__.py,sha256=0GfhhjUc4OhY_dpQncq984kcdyOCholjVNjAIAcjAHM,232
38
38
  ommlds/backends/mlx/tokenization/loading.py,sha256=OSD7-ZnLuY2Owv5MpQB8CCEPMhOPwParqMPpS5omZBI,3154
@@ -85,7 +85,7 @@ ommlds/backends/torch/__init__.py,sha256=Id8dKbxMLlp3ux62ohu9JKoXPSrM0ZXUK0eCDTY
85
85
  ommlds/backends/torch/backends.py,sha256=Bo-ZdW1n9NswvptT8bL9CssEOKwusDuBMaXVjRS8zrA,3528
86
86
  ommlds/backends/torch/devices.py,sha256=KWkeyArPdUwVqckQTJPkN-4GQdv39cpOgCMv_XfkLkQ,776
87
87
  ommlds/backends/torch/purge.py,sha256=sp6XUxNLoVCepxIPKw3tevHn-cQqgorILvIQzixauiI,1834
88
- ommlds/backends/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ ommlds/backends/transformers/__init__.py,sha256=SCQ8a-0XihXaUzSsUYGo3buRMogPmybzfmhr2OBtw3U,261
89
89
  ommlds/backends/transformers/filecache.py,sha256=ycfswt7f4qRrPSTFRhofXZaDBuDPpypEKwXzSBsBsu8,3317
90
90
  ommlds/backends/transformers/streamers.py,sha256=Hu_9lp_kUilKjOfs7Ixqr2NoA5FuRn2eRh8JdvaBDYc,1688
91
91
  ommlds/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -178,6 +178,7 @@ ommlds/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
178
  ommlds/datasets/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
179
  ommlds/datasets/lib/movies.py,sha256=LmdfoXsZU9XMM_r-sxCLv_s06BFzwWO4xUj6sc9XVcI,1961
180
180
  ommlds/minichain/__init__.py,sha256=jsluq9s-dyqsT7ertzpn0QGs6s00GvSHcAOlIrRVgx4,11439
181
+ ommlds/minichain/_dataclasses.py,sha256=hPJTKvIp4gVZgECBuQccupNgqWV-oH_NsP-HxBt6vKo,2163163
181
182
  ommlds/minichain/_marshal.py,sha256=n9PGWrHhvAmGIc7KDOYt3IF9Z6G0ncXskyICTp3Ji6k,1923
182
183
  ommlds/minichain/_typedvalues.py,sha256=Vl1Edt5khC0e5RPFBPmPCxn0IzrfVd0NHzAjAN2E6Kc,2183
183
184
  ommlds/minichain/completion.py,sha256=lQ0LfCIYZsvDqteHhhDIv16D2_gn_xMfEL0ouywE5Yo,1033
@@ -205,7 +206,7 @@ ommlds/minichain/backends/impls/anthropic/names.py,sha256=GPPeYt0CcDcDCR8I6BMd7b
205
206
  ommlds/minichain/backends/impls/anthropic/protocol.py,sha256=whPVYuKShKiMCzasHl77sCIiymhzXj8mFZXEyhZvld8,3292
206
207
  ommlds/minichain/backends/impls/anthropic/stream.py,sha256=jxKzytoYJLK9JftihGhWTcFIoXFgouQR7Yu5Q1j_ku8,8794
207
208
  ommlds/minichain/backends/impls/duckduckgo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
208
- ommlds/minichain/backends/impls/duckduckgo/search.py,sha256=igzeU9P9b1MMiu4KAJVS9H6KLIoPm68wXi4Kx3_DHyQ,940
209
+ ommlds/minichain/backends/impls/duckduckgo/search.py,sha256=HA5UriBVvNw6-6vmeYJsm83LxsFsksLtzFxj-kdzoPE,1010
209
210
  ommlds/minichain/backends/impls/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
211
  ommlds/minichain/backends/impls/dummy/chat.py,sha256=FUTvNPWmb4Hm-axglvPiqbvLwE7sajHOM5H7j9Qj2-c,2283
211
212
  ommlds/minichain/backends/impls/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -221,14 +222,14 @@ ommlds/minichain/backends/impls/groq/protocol.py,sha256=FPydA4ftMhXFLEfYjmHsmNdB
221
222
  ommlds/minichain/backends/impls/groq/stream.py,sha256=5PZHrs_QNyKofJClKq5R5aOsq-H26UeWH7uncbJGrmI,5124
222
223
  ommlds/minichain/backends/impls/huggingface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
224
  ommlds/minichain/backends/impls/huggingface/configs.py,sha256=6jsBtPNXOP57PcpxNTVLGWLc-18Iwn_lDbGouwCJTIQ,258
224
- ommlds/minichain/backends/impls/huggingface/repos.py,sha256=8BDxJmra9elSQL2vzp2nr2p4Hpq56A3zTk7hTTnfJU4,861
225
+ ommlds/minichain/backends/impls/huggingface/repos.py,sha256=NDanA_rFwT-K2gKghkHMxqejbYy6uctz10S6yREfbg0,807
225
226
  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
227
+ ommlds/minichain/backends/impls/llamacpp/chat.py,sha256=n-uL_ZBf2aB0w0LwnDvWpQuPp9OEc7B0NHHPPrthJKY,5699
228
+ ommlds/minichain/backends/impls/llamacpp/completion.py,sha256=2iMI4-DoYNiMd8TIl1D2j2vSLK9R5kodhu-5hTLsdpE,2446
228
229
  ommlds/minichain/backends/impls/llamacpp/format.py,sha256=fcLMwk7r7FbNrYCH39G3fDRInKvlPIqcoxyLj95CooA,778
229
- ommlds/minichain/backends/impls/llamacpp/stream.py,sha256=GP3RJsjLXCW2zxvn17BqRg5jbuiNMGdHz06enfsLp2k,3575
230
+ ommlds/minichain/backends/impls/llamacpp/stream.py,sha256=XMKNMGzn5dFIZCqfEQdUvyBlsse-jeSe9elfJiTEAUU,3625
230
231
  ommlds/minichain/backends/impls/mlx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
- ommlds/minichain/backends/impls/mlx/chat.py,sha256=jV3bVvXx1oGaBYTbODUIpPX4k0Vmjj4SX7x3qQMluyM,7486
232
+ ommlds/minichain/backends/impls/mlx/chat.py,sha256=tmZZAmVg-XcbxZYGNHrKC0hiJbxW88pgEHqIEC5D2Xc,7536
232
233
  ommlds/minichain/backends/impls/ollama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
234
  ommlds/minichain/backends/impls/ollama/chat.py,sha256=zBKc0CXVEuO0ntLi38gRK2S5F_FqXdHS4WJKDIaos-g,6637
234
235
  ommlds/minichain/backends/impls/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -239,15 +240,15 @@ ommlds/minichain/backends/impls/openai/format.py,sha256=dAvaqi3LhPu7N9S8BDBkuGSW
239
240
  ommlds/minichain/backends/impls/openai/names.py,sha256=5Q6tJbdEtAAsM6mzYLo6cCcMdbgzfbFXLwxVXafqYvo,1534
240
241
  ommlds/minichain/backends/impls/openai/stream.py,sha256=bsZeGUepqOl9AcN44kWk03V6q-v1ewBCfZqb_MJEfxg,5454
241
242
  ommlds/minichain/backends/impls/sentencepiece/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
- ommlds/minichain/backends/impls/sentencepiece/tokens.py,sha256=tUEBKyBgkTowssS_AdcAuPkyFzfyDfE935x4JG8PXM0,1602
243
+ ommlds/minichain/backends/impls/sentencepiece/tokens.py,sha256=S32bkN5bbAeLrRLW0VW2N4dEOKvBwt2mMS3CGbcmzQI,1679
243
244
  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
245
+ ommlds/minichain/backends/impls/tinygrad/chat.py,sha256=VtGB5YBcafGjNihSw6dkexJLnV_PD3fWQkBBC5x6cXI,4996
245
246
  ommlds/minichain/backends/impls/tokenizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
- ommlds/minichain/backends/impls/tokenizers/tokens.py,sha256=_8Q49k5YroG5wQI0cuK6kOJ3XYwjhpaAS04ejhzBsWw,1500
247
+ ommlds/minichain/backends/impls/tokenizers/tokens.py,sha256=wLz9UTWhHrrJm56ZSLZDRkrOsCF6_ydfWcL2EQgidbE,1577
247
248
  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
249
+ ommlds/minichain/backends/impls/transformers/sentence.py,sha256=0T01aY0rVauw--AdchroNkcwaK3ku0ZdP8ikcsYeHyA,1462
250
+ ommlds/minichain/backends/impls/transformers/tokens.py,sha256=ozlTX0c3sixgcgz87OwEBoVxTF69MTz46LbHzuS8r2Y,2166
251
+ ommlds/minichain/backends/impls/transformers/transformers.py,sha256=hXWNe2knROuTJoI737t5FIqUdhmldpHW89tBkfpyofM,9052
251
252
  ommlds/minichain/backends/strings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
253
  ommlds/minichain/backends/strings/manifests.py,sha256=kmlanVUAZqIh0P95Mm8H20e8ib3gEgYHHUlkCXDQGFk,413
253
254
  ommlds/minichain/backends/strings/parsing.py,sha256=Etmk04BnKvCMtGg4AgbvxsPGvfRcLldLxpdpxcozdNk,1779
@@ -403,7 +404,8 @@ ommlds/server/service.py,sha256=WleUNyWqcnvZ_CNk6h1WVSTy1_xT9wJg4dduiJilGDY,2282
403
404
  ommlds/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
404
405
  ommlds/specs/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
405
406
  ommlds/specs/mcp/_marshal.py,sha256=EGw9ZIIkH8CaOguKGl7xgMFOXh-UmbTH0VKTbLf6-jY,576
406
- ommlds/specs/mcp/protocol.py,sha256=0d3oR1NfmxNDrLaw-5EzGDdjm-zkW77XHPctmw7V0u0,5933
407
+ ommlds/specs/mcp/clients.py,sha256=l-QX7KQtsSn40Hb3cATVUqmycGQm4FDTGyljUmpGyCY,4209
408
+ ommlds/specs/mcp/protocol.py,sha256=Q3GQmNCn-fVEvivkROljeeddP1SPDI8v7o3BcxD-Roc,8993
407
409
  ommlds/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
408
410
  ommlds/tools/git.py,sha256=ILvsOFXbdDQvAHvGCSbd2fY4fswmDRXaB8yVDQymLY0,8205
409
411
  ommlds/tools/ocr.py,sha256=UP2XK4-ELyhK2BnuBr7-DwUbkDIcX9xdvfXVimM19Y8,1839
@@ -419,9 +421,9 @@ ommlds/wiki/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
419
421
  ommlds/wiki/utils/io.py,sha256=UKgDJGtmpnWvIqVd2mJc2QNPOqlToEY1GEveNp6_pMo,7088
420
422
  ommlds/wiki/utils/progress.py,sha256=EhvKcMFYtsarCQhIahlO6f0SboyAKP3UwUyrnVnP-Vk,3222
421
423
  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,,
424
+ ommlds-0.0.0.dev481.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
425
+ ommlds-0.0.0.dev481.dist-info/METADATA,sha256=ugJQpGHFV2SzmKrbwE2thAFVFoS7lr0I_iHoyC7NBVQ,3402
426
+ ommlds-0.0.0.dev481.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
427
+ ommlds-0.0.0.dev481.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
428
+ ommlds-0.0.0.dev481.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
429
+ ommlds-0.0.0.dev481.dist-info/RECORD,,