ommlds 0.0.0.dev456__py3-none-any.whl → 0.0.0.dev485__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 (212) hide show
  1. ommlds/.omlish-manifests.json +314 -33
  2. ommlds/__about__.py +15 -9
  3. ommlds/_hacks/__init__.py +4 -0
  4. ommlds/_hacks/funcs.py +110 -0
  5. ommlds/_hacks/names.py +158 -0
  6. ommlds/_hacks/params.py +73 -0
  7. ommlds/_hacks/patches.py +0 -3
  8. ommlds/backends/anthropic/protocol/__init__.py +13 -1
  9. ommlds/backends/anthropic/protocol/_dataclasses.py +1625 -0
  10. ommlds/backends/anthropic/protocol/sse/assemble.py +22 -6
  11. ommlds/backends/anthropic/protocol/sse/events.py +13 -0
  12. ommlds/backends/google/protocol/__init__.py +13 -0
  13. ommlds/backends/google/protocol/_dataclasses.py +5997 -0
  14. ommlds/backends/google/protocol/types.py +5 -1
  15. ommlds/backends/groq/__init__.py +7 -0
  16. ommlds/backends/groq/_dataclasses.py +3901 -0
  17. ommlds/backends/groq/_marshal.py +23 -0
  18. ommlds/backends/groq/protocol.py +249 -0
  19. ommlds/backends/llamacpp/logging.py +4 -1
  20. ommlds/backends/mlx/caching.py +7 -3
  21. ommlds/backends/mlx/cli.py +10 -7
  22. ommlds/backends/mlx/generation.py +18 -16
  23. ommlds/backends/mlx/limits.py +10 -6
  24. ommlds/backends/mlx/loading.py +65 -5
  25. ommlds/backends/ollama/__init__.py +7 -0
  26. ommlds/backends/ollama/_dataclasses.py +3458 -0
  27. ommlds/backends/ollama/protocol.py +170 -0
  28. ommlds/backends/openai/protocol/__init__.py +15 -1
  29. ommlds/backends/openai/protocol/_dataclasses.py +7708 -0
  30. ommlds/backends/tavily/__init__.py +7 -0
  31. ommlds/backends/tavily/_dataclasses.py +1734 -0
  32. ommlds/backends/tavily/protocol.py +301 -0
  33. ommlds/backends/tinygrad/models/llama3/__init__.py +22 -14
  34. ommlds/backends/transformers/__init__.py +14 -0
  35. ommlds/backends/transformers/filecache.py +109 -0
  36. ommlds/backends/transformers/streamers.py +73 -0
  37. ommlds/cli/__init__.py +7 -0
  38. ommlds/cli/_dataclasses.py +2562 -0
  39. ommlds/cli/asyncs.py +30 -0
  40. ommlds/cli/backends/catalog.py +93 -0
  41. ommlds/cli/backends/configs.py +9 -0
  42. ommlds/cli/backends/inject.py +31 -36
  43. ommlds/cli/backends/injection.py +16 -0
  44. ommlds/cli/backends/types.py +46 -0
  45. ommlds/cli/content/messages.py +34 -0
  46. ommlds/cli/content/strings.py +42 -0
  47. ommlds/cli/inject.py +15 -32
  48. ommlds/cli/inputs/__init__.py +0 -0
  49. ommlds/cli/inputs/asyncs.py +32 -0
  50. ommlds/cli/inputs/sync.py +75 -0
  51. ommlds/cli/main.py +267 -128
  52. ommlds/cli/rendering/__init__.py +0 -0
  53. ommlds/cli/rendering/configs.py +9 -0
  54. ommlds/cli/rendering/inject.py +31 -0
  55. ommlds/cli/rendering/markdown.py +52 -0
  56. ommlds/cli/rendering/raw.py +73 -0
  57. ommlds/cli/rendering/types.py +21 -0
  58. ommlds/cli/secrets.py +21 -0
  59. ommlds/cli/sessions/base.py +1 -1
  60. ommlds/cli/sessions/chat/chat/__init__.py +0 -0
  61. ommlds/cli/sessions/chat/chat/ai/__init__.py +0 -0
  62. ommlds/cli/sessions/chat/chat/ai/configs.py +11 -0
  63. ommlds/cli/sessions/chat/chat/ai/inject.py +74 -0
  64. ommlds/cli/sessions/chat/chat/ai/injection.py +14 -0
  65. ommlds/cli/sessions/chat/chat/ai/rendering.py +70 -0
  66. ommlds/cli/sessions/chat/chat/ai/services.py +79 -0
  67. ommlds/cli/sessions/chat/chat/ai/tools.py +44 -0
  68. ommlds/cli/sessions/chat/chat/ai/types.py +28 -0
  69. ommlds/cli/sessions/chat/chat/state/__init__.py +0 -0
  70. ommlds/cli/sessions/chat/chat/state/configs.py +11 -0
  71. ommlds/cli/sessions/chat/chat/state/inject.py +36 -0
  72. ommlds/cli/sessions/chat/chat/state/inmemory.py +33 -0
  73. ommlds/cli/sessions/chat/chat/state/storage.py +52 -0
  74. ommlds/cli/sessions/chat/chat/state/types.py +38 -0
  75. ommlds/cli/sessions/chat/chat/user/__init__.py +0 -0
  76. ommlds/cli/sessions/chat/chat/user/configs.py +17 -0
  77. ommlds/cli/sessions/chat/chat/user/inject.py +62 -0
  78. ommlds/cli/sessions/chat/chat/user/interactive.py +31 -0
  79. ommlds/cli/sessions/chat/chat/user/oneshot.py +25 -0
  80. ommlds/cli/sessions/chat/chat/user/types.py +15 -0
  81. ommlds/cli/sessions/chat/configs.py +27 -0
  82. ommlds/cli/sessions/chat/driver.py +43 -0
  83. ommlds/cli/sessions/chat/inject.py +33 -65
  84. ommlds/cli/sessions/chat/phases/__init__.py +0 -0
  85. ommlds/cli/sessions/chat/phases/inject.py +27 -0
  86. ommlds/cli/sessions/chat/phases/injection.py +14 -0
  87. ommlds/cli/sessions/chat/phases/manager.py +29 -0
  88. ommlds/cli/sessions/chat/phases/types.py +29 -0
  89. ommlds/cli/sessions/chat/session.py +27 -0
  90. ommlds/cli/sessions/chat/tools/__init__.py +0 -0
  91. ommlds/cli/sessions/chat/tools/configs.py +22 -0
  92. ommlds/cli/sessions/chat/tools/confirmation.py +46 -0
  93. ommlds/cli/sessions/chat/tools/execution.py +66 -0
  94. ommlds/cli/sessions/chat/tools/fs/__init__.py +0 -0
  95. ommlds/cli/sessions/chat/tools/fs/configs.py +12 -0
  96. ommlds/cli/sessions/chat/tools/fs/inject.py +35 -0
  97. ommlds/cli/sessions/chat/tools/inject.py +88 -0
  98. ommlds/cli/sessions/chat/tools/injection.py +44 -0
  99. ommlds/cli/sessions/chat/tools/rendering.py +58 -0
  100. ommlds/cli/sessions/chat/tools/todo/__init__.py +0 -0
  101. ommlds/cli/sessions/chat/tools/todo/configs.py +12 -0
  102. ommlds/cli/sessions/chat/tools/todo/inject.py +31 -0
  103. ommlds/cli/sessions/chat/tools/weather/__init__.py +0 -0
  104. ommlds/cli/sessions/chat/tools/weather/configs.py +12 -0
  105. ommlds/cli/sessions/chat/tools/weather/inject.py +22 -0
  106. ommlds/cli/{tools/weather.py → sessions/chat/tools/weather/tools.py} +1 -1
  107. ommlds/cli/sessions/completion/configs.py +21 -0
  108. ommlds/cli/sessions/completion/inject.py +42 -0
  109. ommlds/cli/sessions/completion/session.py +35 -0
  110. ommlds/cli/sessions/embedding/configs.py +21 -0
  111. ommlds/cli/sessions/embedding/inject.py +42 -0
  112. ommlds/cli/sessions/embedding/session.py +33 -0
  113. ommlds/cli/sessions/inject.py +28 -11
  114. ommlds/cli/state/__init__.py +0 -0
  115. ommlds/cli/state/inject.py +28 -0
  116. ommlds/cli/{state.py → state/storage.py} +41 -24
  117. ommlds/minichain/__init__.py +46 -17
  118. ommlds/minichain/_dataclasses.py +15401 -0
  119. ommlds/minichain/backends/catalogs/base.py +20 -1
  120. ommlds/minichain/backends/catalogs/simple.py +2 -2
  121. ommlds/minichain/backends/catalogs/strings.py +10 -8
  122. ommlds/minichain/backends/impls/anthropic/chat.py +31 -65
  123. ommlds/minichain/backends/impls/anthropic/names.py +3 -4
  124. ommlds/minichain/backends/impls/anthropic/protocol.py +109 -0
  125. ommlds/minichain/backends/impls/anthropic/stream.py +53 -31
  126. ommlds/minichain/backends/impls/duckduckgo/search.py +5 -1
  127. ommlds/minichain/backends/impls/dummy/__init__.py +0 -0
  128. ommlds/minichain/backends/impls/dummy/chat.py +69 -0
  129. ommlds/minichain/backends/impls/google/chat.py +9 -2
  130. ommlds/minichain/backends/impls/google/search.py +6 -1
  131. ommlds/minichain/backends/impls/google/stream.py +122 -32
  132. ommlds/minichain/backends/impls/groq/__init__.py +0 -0
  133. ommlds/minichain/backends/impls/groq/chat.py +75 -0
  134. ommlds/minichain/backends/impls/groq/names.py +48 -0
  135. ommlds/minichain/backends/impls/groq/protocol.py +143 -0
  136. ommlds/minichain/backends/impls/groq/stream.py +125 -0
  137. ommlds/minichain/backends/impls/huggingface/repos.py +1 -5
  138. ommlds/minichain/backends/impls/llamacpp/chat.py +15 -3
  139. ommlds/minichain/backends/impls/llamacpp/completion.py +7 -3
  140. ommlds/minichain/backends/impls/llamacpp/stream.py +38 -19
  141. ommlds/minichain/backends/impls/mistral.py +9 -2
  142. ommlds/minichain/backends/impls/mlx/chat.py +100 -23
  143. ommlds/minichain/backends/impls/ollama/__init__.py +0 -0
  144. ommlds/minichain/backends/impls/ollama/chat.py +199 -0
  145. ommlds/minichain/backends/impls/openai/chat.py +14 -7
  146. ommlds/minichain/backends/impls/openai/completion.py +9 -2
  147. ommlds/minichain/backends/impls/openai/embedding.py +9 -2
  148. ommlds/minichain/backends/impls/openai/format.py +115 -109
  149. ommlds/minichain/backends/impls/openai/names.py +31 -5
  150. ommlds/minichain/backends/impls/openai/stream.py +33 -27
  151. ommlds/minichain/backends/impls/sentencepiece/tokens.py +9 -6
  152. ommlds/minichain/backends/impls/tavily.py +66 -0
  153. ommlds/minichain/backends/impls/tinygrad/chat.py +17 -14
  154. ommlds/minichain/backends/impls/tokenizers/tokens.py +9 -6
  155. ommlds/minichain/backends/impls/transformers/sentence.py +5 -2
  156. ommlds/minichain/backends/impls/transformers/tokens.py +10 -7
  157. ommlds/minichain/backends/impls/transformers/transformers.py +139 -20
  158. ommlds/minichain/backends/strings/parsing.py +1 -1
  159. ommlds/minichain/backends/strings/resolving.py +4 -1
  160. ommlds/minichain/chat/choices/stream/__init__.py +0 -0
  161. ommlds/minichain/chat/choices/stream/adapters.py +35 -0
  162. ommlds/minichain/chat/choices/stream/joining.py +31 -0
  163. ommlds/minichain/chat/choices/stream/services.py +45 -0
  164. ommlds/minichain/chat/choices/stream/types.py +43 -0
  165. ommlds/minichain/chat/stream/_marshal.py +4 -4
  166. ommlds/minichain/chat/stream/joining.py +85 -0
  167. ommlds/minichain/chat/stream/services.py +15 -15
  168. ommlds/minichain/chat/stream/types.py +24 -18
  169. ommlds/minichain/llms/types.py +4 -0
  170. ommlds/minichain/registries/globals.py +18 -4
  171. ommlds/minichain/resources.py +28 -3
  172. ommlds/minichain/search.py +1 -1
  173. ommlds/minichain/standard.py +8 -0
  174. ommlds/minichain/stream/services.py +19 -16
  175. ommlds/minichain/tools/reflect.py +5 -1
  176. ommlds/nanochat/LICENSE +21 -0
  177. ommlds/nanochat/__init__.py +0 -0
  178. ommlds/nanochat/rustbpe/LICENSE +21 -0
  179. ommlds/nanochat/tokenizers.py +406 -0
  180. ommlds/specs/__init__.py +0 -0
  181. ommlds/specs/mcp/__init__.py +0 -0
  182. ommlds/specs/mcp/_marshal.py +23 -0
  183. ommlds/specs/mcp/clients.py +146 -0
  184. ommlds/specs/mcp/protocol.py +371 -0
  185. ommlds/tools/git.py +13 -6
  186. ommlds/tools/ocr.py +1 -8
  187. ommlds/wiki/analyze.py +2 -2
  188. ommlds/wiki/text/mfh.py +1 -5
  189. ommlds/wiki/text/wtp.py +1 -3
  190. ommlds/wiki/utils/xml.py +5 -5
  191. {ommlds-0.0.0.dev456.dist-info → ommlds-0.0.0.dev485.dist-info}/METADATA +22 -19
  192. {ommlds-0.0.0.dev456.dist-info → ommlds-0.0.0.dev485.dist-info}/RECORD +198 -95
  193. ommlds/cli/backends/standard.py +0 -20
  194. ommlds/cli/sessions/chat/base.py +0 -42
  195. ommlds/cli/sessions/chat/code.py +0 -129
  196. ommlds/cli/sessions/chat/interactive.py +0 -71
  197. ommlds/cli/sessions/chat/printing.py +0 -97
  198. ommlds/cli/sessions/chat/prompt.py +0 -151
  199. ommlds/cli/sessions/chat/state.py +0 -110
  200. ommlds/cli/sessions/chat/tools.py +0 -100
  201. ommlds/cli/sessions/completion/completion.py +0 -44
  202. ommlds/cli/sessions/embedding/embedding.py +0 -42
  203. ommlds/cli/tools/config.py +0 -14
  204. ommlds/cli/tools/inject.py +0 -75
  205. ommlds/minichain/backends/impls/openai/format2.py +0 -210
  206. ommlds/minichain/chat/stream/adapters.py +0 -80
  207. /ommlds/{huggingface.py → backends/huggingface.py} +0 -0
  208. /ommlds/cli/{tools → content}/__init__.py +0 -0
  209. {ommlds-0.0.0.dev456.dist-info → ommlds-0.0.0.dev485.dist-info}/WHEEL +0 -0
  210. {ommlds-0.0.0.dev456.dist-info → ommlds-0.0.0.dev485.dist-info}/entry_points.txt +0 -0
  211. {ommlds-0.0.0.dev456.dist-info → ommlds-0.0.0.dev485.dist-info}/licenses/LICENSE +0 -0
  212. {ommlds-0.0.0.dev456.dist-info → ommlds-0.0.0.dev485.dist-info}/top_level.txt +0 -0
@@ -18,7 +18,7 @@
18
18
  "module": ".minichain.backends.impls.anthropic.chat",
19
19
  "attr": null,
20
20
  "file": "ommlds/minichain/backends/impls/anthropic/chat.py",
21
- "line": 39,
21
+ "line": 42,
22
22
  "value": {
23
23
  "!.minichain.registries.manifests.RegistryManifest": {
24
24
  "module": "ommlds.minichain.backends.impls.anthropic.chat",
@@ -33,7 +33,7 @@
33
33
  "module": ".minichain.backends.impls.anthropic.names",
34
34
  "attr": "_BACKEND_STRINGS_MANIFEST",
35
35
  "file": "ommlds/minichain/backends/impls/anthropic/names.py",
36
- "line": 35,
36
+ "line": 34,
37
37
  "value": {
38
38
  "!.minichain.backends.strings.manifests.BackendStringsManifest": {
39
39
  "service_cls_names": [
@@ -50,10 +50,9 @@
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",
53
- "claude-3-5-haiku-latest": null,
54
- "claude-haiku-3-5-latest": "claude-3-5-haiku-latest",
55
- "claude-haiku-3-5": "claude-haiku-3-5-latest",
56
- "claude-haiku": "claude-haiku-3-5",
53
+ "claude-haiku-4-5-20251001": null,
54
+ "claude-haiku-4-5": "claude-haiku-4-5-20251001",
55
+ "claude-haiku": "claude-haiku-4-5",
57
56
  "claude": "claude-haiku"
58
57
  }
59
58
  }
@@ -64,7 +63,7 @@
64
63
  "module": ".minichain.backends.impls.anthropic.stream",
65
64
  "attr": null,
66
65
  "file": "ommlds/minichain/backends/impls/anthropic/stream.py",
67
- "line": 33,
66
+ "line": 36,
68
67
  "value": {
69
68
  "!.minichain.registries.manifests.RegistryManifest": {
70
69
  "module": "ommlds.minichain.backends.impls.anthropic.stream",
@@ -79,7 +78,7 @@
79
78
  "module": ".minichain.backends.impls.duckduckgo.search",
80
79
  "attr": null,
81
80
  "file": "ommlds/minichain/backends/impls/duckduckgo/search.py",
82
- "line": 13,
81
+ "line": 17,
83
82
  "value": {
84
83
  "!.minichain.registries.manifests.RegistryManifest": {
85
84
  "module": "ommlds.minichain.backends.impls.duckduckgo.search",
@@ -92,6 +91,52 @@
92
91
  }
93
92
  }
94
93
  },
94
+ {
95
+ "module": ".minichain.backends.impls.dummy.chat",
96
+ "attr": null,
97
+ "file": "ommlds/minichain/backends/impls/dummy/chat.py",
98
+ "line": 26,
99
+ "value": {
100
+ "!.minichain.registries.manifests.RegistryManifest": {
101
+ "module": "ommlds.minichain.backends.impls.dummy.chat",
102
+ "attr": "DummyChatChoicesService",
103
+ "name": "dummy",
104
+ "aliases": null,
105
+ "type": "ChatChoicesService"
106
+ }
107
+ }
108
+ },
109
+ {
110
+ "module": ".minichain.backends.impls.dummy.chat",
111
+ "attr": null,
112
+ "file": "ommlds/minichain/backends/impls/dummy/chat.py",
113
+ "line": 39,
114
+ "value": {
115
+ "!.minichain.registries.manifests.RegistryManifest": {
116
+ "module": "ommlds.minichain.backends.impls.dummy.chat",
117
+ "attr": "DummyChatChoicesStreamService",
118
+ "name": "dummy",
119
+ "aliases": null,
120
+ "type": "ChatChoicesStreamService"
121
+ }
122
+ }
123
+ },
124
+ {
125
+ "module": ".minichain.backends.impls.dummy.chat",
126
+ "attr": null,
127
+ "file": "ommlds/minichain/backends/impls/dummy/chat.py",
128
+ "line": 63,
129
+ "value": {
130
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
131
+ "service_cls_names": [
132
+ "ChatChoicesService",
133
+ "ChatChoicesStreamService"
134
+ ],
135
+ "backend_name": "dummy",
136
+ "model_names": null
137
+ }
138
+ }
139
+ },
95
140
  {
96
141
  "module": ".minichain.backends.impls.google.chat",
97
142
  "attr": null,
@@ -138,7 +183,7 @@
138
183
  "module": ".minichain.backends.impls.google.stream",
139
184
  "attr": null,
140
185
  "file": "ommlds/minichain/backends/impls/google/stream.py",
141
- "line": 36,
186
+ "line": 41,
142
187
  "value": {
143
188
  "!.minichain.registries.manifests.RegistryManifest": {
144
189
  "module": "ommlds.minichain.backends.impls.google.stream",
@@ -149,11 +194,65 @@
149
194
  }
150
195
  }
151
196
  },
197
+ {
198
+ "module": ".minichain.backends.impls.groq.chat",
199
+ "attr": null,
200
+ "file": "ommlds/minichain/backends/impls/groq/chat.py",
201
+ "line": 26,
202
+ "value": {
203
+ "!.minichain.registries.manifests.RegistryManifest": {
204
+ "module": "ommlds.minichain.backends.impls.groq.chat",
205
+ "attr": "GroqChatChoicesService",
206
+ "name": "groq",
207
+ "aliases": null,
208
+ "type": "ChatChoicesService"
209
+ }
210
+ }
211
+ },
212
+ {
213
+ "module": ".minichain.backends.impls.groq.names",
214
+ "attr": "_BACKEND_STRINGS_MANIFEST",
215
+ "file": "ommlds/minichain/backends/impls/groq/names.py",
216
+ "line": 40,
217
+ "value": {
218
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
219
+ "service_cls_names": [
220
+ "ChatChoicesService",
221
+ "ChatChoicesStreamService"
222
+ ],
223
+ "backend_name": "groq",
224
+ "model_names": {
225
+ "default": "gpt-oss-120b",
226
+ "aliases": {
227
+ "gpt-oss-120b": "openai/gpt-oss-120b",
228
+ "openai/gpt-oss-120b": null,
229
+ "gpt-oss-20b": "openai/gpt-oss-20b",
230
+ "openai/gpt-oss-20b": null
231
+ }
232
+ }
233
+ }
234
+ }
235
+ },
236
+ {
237
+ "module": ".minichain.backends.impls.groq.stream",
238
+ "attr": null,
239
+ "file": "ommlds/minichain/backends/impls/groq/stream.py",
240
+ "line": 33,
241
+ "value": {
242
+ "!.minichain.registries.manifests.RegistryManifest": {
243
+ "module": "ommlds.minichain.backends.impls.groq.stream",
244
+ "attr": "GroqChatChoicesStreamService",
245
+ "name": "groq",
246
+ "aliases": null,
247
+ "type": "ChatChoicesStreamService"
248
+ }
249
+ }
250
+ },
152
251
  {
153
252
  "module": ".minichain.backends.impls.huggingface.repos",
154
253
  "attr": null,
155
254
  "file": "ommlds/minichain/backends/impls/huggingface/repos.py",
156
- "line": 24,
255
+ "line": 20,
157
256
  "value": {
158
257
  "!.minichain.registries.manifests.RegistryManifest": {
159
258
  "module": "ommlds.minichain.backends.impls.huggingface.repos",
@@ -170,7 +269,22 @@
170
269
  "module": ".minichain.backends.impls.llamacpp.chat",
171
270
  "attr": null,
172
271
  "file": "ommlds/minichain/backends/impls/llamacpp/chat.py",
173
- "line": 33,
272
+ "line": 36,
273
+ "value": {
274
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
275
+ "service_cls_names": [
276
+ "ChatChoicesService"
277
+ ],
278
+ "backend_name": "llamacpp",
279
+ "model_names": null
280
+ }
281
+ }
282
+ },
283
+ {
284
+ "module": ".minichain.backends.impls.llamacpp.chat",
285
+ "attr": null,
286
+ "file": "ommlds/minichain/backends/impls/llamacpp/chat.py",
287
+ "line": 45,
174
288
  "value": {
175
289
  "!.minichain.registries.manifests.RegistryManifest": {
176
290
  "module": "ommlds.minichain.backends.impls.llamacpp.chat",
@@ -185,7 +299,7 @@
185
299
  "module": ".minichain.backends.impls.llamacpp.completion",
186
300
  "attr": null,
187
301
  "file": "ommlds/minichain/backends/impls/llamacpp/completion.py",
188
- "line": 24,
302
+ "line": 28,
189
303
  "value": {
190
304
  "!.minichain.registries.manifests.RegistryManifest": {
191
305
  "module": "ommlds.minichain.backends.impls.llamacpp.completion",
@@ -200,7 +314,22 @@
200
314
  "module": ".minichain.backends.impls.llamacpp.stream",
201
315
  "attr": null,
202
316
  "file": "ommlds/minichain/backends/impls/llamacpp/stream.py",
203
- "line": 32,
317
+ "line": 35,
318
+ "value": {
319
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
320
+ "service_cls_names": [
321
+ "ChatChoicesStreamService"
322
+ ],
323
+ "backend_name": "llamacpp",
324
+ "model_names": null
325
+ }
326
+ }
327
+ },
328
+ {
329
+ "module": ".minichain.backends.impls.llamacpp.stream",
330
+ "attr": null,
331
+ "file": "ommlds/minichain/backends/impls/llamacpp/stream.py",
332
+ "line": 44,
204
333
  "value": {
205
334
  "!.minichain.registries.manifests.RegistryManifest": {
206
335
  "module": "ommlds.minichain.backends.impls.llamacpp.stream",
@@ -230,11 +359,12 @@
230
359
  "module": ".minichain.backends.impls.mlx.chat",
231
360
  "attr": null,
232
361
  "file": "ommlds/minichain/backends/impls/mlx/chat.py",
233
- "line": 28,
362
+ "line": 42,
234
363
  "value": {
235
364
  "!.minichain.backends.strings.manifests.BackendStringsManifest": {
236
365
  "service_cls_names": [
237
- "ChatChoicesService"
366
+ "ChatChoicesService",
367
+ "ChatChoicesStreamService"
238
368
  ],
239
369
  "backend_name": "mlx",
240
370
  "model_names": null
@@ -245,7 +375,7 @@
245
375
  "module": ".minichain.backends.impls.mlx.chat",
246
376
  "attr": null,
247
377
  "file": "ommlds/minichain/backends/impls/mlx/chat.py",
248
- "line": 37,
378
+ "line": 136,
249
379
  "value": {
250
380
  "!.minichain.registries.manifests.RegistryManifest": {
251
381
  "module": "ommlds.minichain.backends.impls.mlx.chat",
@@ -256,6 +386,67 @@
256
386
  }
257
387
  }
258
388
  },
389
+ {
390
+ "module": ".minichain.backends.impls.mlx.chat",
391
+ "attr": null,
392
+ "file": "ommlds/minichain/backends/impls/mlx/chat.py",
393
+ "line": 167,
394
+ "value": {
395
+ "!.minichain.registries.manifests.RegistryManifest": {
396
+ "module": "ommlds.minichain.backends.impls.mlx.chat",
397
+ "attr": "MlxChatChoicesStreamService",
398
+ "name": "mlx",
399
+ "aliases": null,
400
+ "type": "ChatChoicesStreamService"
401
+ }
402
+ }
403
+ },
404
+ {
405
+ "module": ".minichain.backends.impls.ollama.chat",
406
+ "attr": null,
407
+ "file": "ommlds/minichain/backends/impls/ollama/chat.py",
408
+ "line": 38,
409
+ "value": {
410
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
411
+ "service_cls_names": [
412
+ "ChatChoicesService",
413
+ "ChatChoicesStreamService"
414
+ ],
415
+ "backend_name": "ollama",
416
+ "model_names": null
417
+ }
418
+ }
419
+ },
420
+ {
421
+ "module": ".minichain.backends.impls.ollama.chat",
422
+ "attr": null,
423
+ "file": "ommlds/minichain/backends/impls/ollama/chat.py",
424
+ "line": 96,
425
+ "value": {
426
+ "!.minichain.registries.manifests.RegistryManifest": {
427
+ "module": "ommlds.minichain.backends.impls.ollama.chat",
428
+ "attr": "OllamaChatChoicesService",
429
+ "name": "ollama",
430
+ "aliases": null,
431
+ "type": "ChatChoicesService"
432
+ }
433
+ }
434
+ },
435
+ {
436
+ "module": ".minichain.backends.impls.ollama.chat",
437
+ "attr": null,
438
+ "file": "ommlds/minichain/backends/impls/ollama/chat.py",
439
+ "line": 143,
440
+ "value": {
441
+ "!.minichain.registries.manifests.RegistryManifest": {
442
+ "module": "ommlds.minichain.backends.impls.ollama.chat",
443
+ "attr": "OllamaChatChoicesStreamService",
444
+ "name": "ollama",
445
+ "aliases": null,
446
+ "type": "ChatChoicesStreamService"
447
+ }
448
+ }
449
+ },
259
450
  {
260
451
  "module": ".minichain.backends.impls.openai.chat",
261
452
  "attr": null,
@@ -303,9 +494,9 @@
303
494
  },
304
495
  {
305
496
  "module": ".minichain.backends.impls.openai.names",
306
- "attr": "_BACKEND_STRINGS_MANIFEST",
497
+ "attr": "_CHAT_BACKEND_STRINGS_MANIFEST",
307
498
  "file": "ommlds/minichain/backends/impls/openai/names.py",
308
- "line": 63,
499
+ "line": 65,
309
500
  "value": {
310
501
  "!.minichain.backends.strings.manifests.BackendStringsManifest": {
311
502
  "service_cls_names": [
@@ -329,6 +520,7 @@
329
520
  "gpt-5-chat-latest": null,
330
521
  "gpt-5-mini": null,
331
522
  "gpt-5-nano": null,
523
+ "gpt-5.1": null,
332
524
  "gpt3.5-turbo": "gpt-3.5-turbo",
333
525
  "gpt3.5-turbo-instruct": "gpt-3.5-turbo-instruct",
334
526
  "gpt4": "gpt-4",
@@ -342,8 +534,9 @@
342
534
  "gpt5-chat-latest": "gpt-5-chat-latest",
343
535
  "gpt5-mini": "gpt-5-mini",
344
536
  "gpt5-nano": "gpt-5-nano",
345
- "gpt": "gpt-4o",
346
- "gpt-mini": "gpt-4o-mini",
537
+ "gpt5.1": "gpt-5.1",
538
+ "gpt": "gpt-5.1",
539
+ "gpt-mini": "gpt-5-mini",
347
540
  "o3": null,
348
541
  "o3-mini": null,
349
542
  "o4-mini": null,
@@ -353,11 +546,41 @@
353
546
  }
354
547
  }
355
548
  },
549
+ {
550
+ "module": ".minichain.backends.impls.openai.names",
551
+ "attr": "_COMPLETION_BACKEND_STRINGS_MANIFEST",
552
+ "file": "ommlds/minichain/backends/impls/openai/names.py",
553
+ "line": 79,
554
+ "value": {
555
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
556
+ "service_cls_names": [
557
+ "CompletionService"
558
+ ],
559
+ "backend_name": "openai",
560
+ "model_names": null
561
+ }
562
+ }
563
+ },
564
+ {
565
+ "module": ".minichain.backends.impls.openai.names",
566
+ "attr": "_EMBEDDING_BACKEND_STRINGS_MANIFEST",
567
+ "file": "ommlds/minichain/backends/impls/openai/names.py",
568
+ "line": 91,
569
+ "value": {
570
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
571
+ "service_cls_names": [
572
+ "EmbeddingService"
573
+ ],
574
+ "backend_name": "openai",
575
+ "model_names": null
576
+ }
577
+ }
578
+ },
356
579
  {
357
580
  "module": ".minichain.backends.impls.openai.stream",
358
581
  "attr": null,
359
582
  "file": "ommlds/minichain/backends/impls/openai/stream.py",
360
- "line": 37,
583
+ "line": 38,
361
584
  "value": {
362
585
  "!.minichain.registries.manifests.RegistryManifest": {
363
586
  "module": "ommlds.minichain.backends.impls.openai.stream",
@@ -368,16 +591,31 @@
368
591
  }
369
592
  }
370
593
  },
594
+ {
595
+ "module": ".minichain.backends.impls.tavily",
596
+ "attr": null,
597
+ "file": "ommlds/minichain/backends/impls/tavily.py",
598
+ "line": 19,
599
+ "value": {
600
+ "!.minichain.registries.manifests.RegistryManifest": {
601
+ "module": "ommlds.minichain.backends.impls.tavily",
602
+ "attr": "TavilySearchService",
603
+ "name": "tavily",
604
+ "aliases": null,
605
+ "type": "SearchService"
606
+ }
607
+ }
608
+ },
371
609
  {
372
610
  "module": ".minichain.backends.impls.tinygrad.chat",
373
611
  "attr": null,
374
612
  "file": "ommlds/minichain/backends/impls/tinygrad/chat.py",
375
- "line": 115,
613
+ "line": 118,
376
614
  "value": {
377
615
  "!.minichain.registries.manifests.RegistryManifest": {
378
616
  "module": "ommlds.minichain.backends.impls.tinygrad.chat",
379
617
  "attr": "TinygradLlama3ChatChoicesService",
380
- "name": "tinygrad_llama3",
618
+ "name": "tinygrad-llama3",
381
619
  "aliases": null,
382
620
  "type": "ChatChoicesService"
383
621
  }
@@ -387,12 +625,12 @@
387
625
  "module": ".minichain.backends.impls.tinygrad.chat",
388
626
  "attr": null,
389
627
  "file": "ommlds/minichain/backends/impls/tinygrad/chat.py",
390
- "line": 135,
628
+ "line": 138,
391
629
  "value": {
392
630
  "!.minichain.registries.manifests.RegistryManifest": {
393
631
  "module": "ommlds.minichain.backends.impls.tinygrad.chat",
394
632
  "attr": "TinygradLlama3ChatChoicesStreamService",
395
- "name": "tinygrad_llama3",
633
+ "name": "tinygrad-llama3",
396
634
  "aliases": null,
397
635
  "type": "ChatChoicesStreamService"
398
636
  }
@@ -402,14 +640,14 @@
402
640
  "module": ".minichain.backends.impls.tinygrad.chat",
403
641
  "attr": null,
404
642
  "file": "ommlds/minichain/backends/impls/tinygrad/chat.py",
405
- "line": 166,
643
+ "line": 169,
406
644
  "value": {
407
645
  "!.minichain.backends.strings.manifests.BackendStringsManifest": {
408
646
  "service_cls_names": [
409
647
  "ChatChoicesService",
410
648
  "ChatChoicesStreamService"
411
649
  ],
412
- "backend_name": "tinygrad_llama3",
650
+ "backend_name": "tinygrad-llama3",
413
651
  "model_names": null
414
652
  }
415
653
  }
@@ -418,7 +656,7 @@
418
656
  "module": ".minichain.backends.impls.transformers.sentence",
419
657
  "attr": null,
420
658
  "file": "ommlds/minichain/backends/impls/transformers/sentence.py",
421
- "line": 19,
659
+ "line": 22,
422
660
  "value": {
423
661
  "!.minichain.registries.manifests.RegistryManifest": {
424
662
  "module": "ommlds.minichain.backends.impls.transformers.sentence",
@@ -435,7 +673,23 @@
435
673
  "module": ".minichain.backends.impls.transformers.transformers",
436
674
  "attr": null,
437
675
  "file": "ommlds/minichain/backends/impls/transformers/transformers.py",
438
- "line": 43,
676
+ "line": 52,
677
+ "value": {
678
+ "!.minichain.backends.strings.manifests.BackendStringsManifest": {
679
+ "service_cls_names": [
680
+ "ChatChoicesService",
681
+ "ChatChoicesStreamService"
682
+ ],
683
+ "backend_name": "transformers",
684
+ "model_names": null
685
+ }
686
+ }
687
+ },
688
+ {
689
+ "module": ".minichain.backends.impls.transformers.transformers",
690
+ "attr": null,
691
+ "file": "ommlds/minichain/backends/impls/transformers/transformers.py",
692
+ "line": 68,
439
693
  "value": {
440
694
  "!.minichain.registries.manifests.RegistryManifest": {
441
695
  "module": "ommlds.minichain.backends.impls.transformers.transformers",
@@ -452,7 +706,7 @@
452
706
  "module": ".minichain.backends.impls.transformers.transformers",
453
707
  "attr": null,
454
708
  "file": "ommlds/minichain/backends/impls/transformers/transformers.py",
455
- "line": 131,
709
+ "line": 199,
456
710
  "value": {
457
711
  "!.minichain.registries.manifests.RegistryManifest": {
458
712
  "module": "ommlds.minichain.backends.impls.transformers.transformers",
@@ -465,6 +719,21 @@
465
719
  }
466
720
  }
467
721
  },
722
+ {
723
+ "module": ".minichain.backends.impls.transformers.transformers",
724
+ "attr": null,
725
+ "file": "ommlds/minichain/backends/impls/transformers/transformers.py",
726
+ "line": 229,
727
+ "value": {
728
+ "!.minichain.registries.manifests.RegistryManifest": {
729
+ "module": "ommlds.minichain.backends.impls.transformers.transformers",
730
+ "attr": "TransformersChatChoicesStreamService",
731
+ "name": "transformers",
732
+ "aliases": null,
733
+ "type": "ChatChoicesStreamService"
734
+ }
735
+ }
736
+ },
468
737
  {
469
738
  "module": ".minichain.chat.choices.services",
470
739
  "attr": null,
@@ -477,6 +746,18 @@
477
746
  }
478
747
  }
479
748
  },
749
+ {
750
+ "module": ".minichain.chat.choices.stream.services",
751
+ "attr": null,
752
+ "file": "ommlds/minichain/chat/choices/stream/services.py",
753
+ "line": 28,
754
+ "value": {
755
+ "!.minichain.registries.manifests.RegistryTypeManifest": {
756
+ "module": "ommlds.minichain.chat.choices.stream.services",
757
+ "attr": "ChatChoicesStreamService"
758
+ }
759
+ }
760
+ },
480
761
  {
481
762
  "module": ".minichain.chat.services",
482
763
  "attr": null,
@@ -497,7 +778,7 @@
497
778
  "value": {
498
779
  "!.minichain.registries.manifests.RegistryTypeManifest": {
499
780
  "module": "ommlds.minichain.chat.stream.services",
500
- "attr": "ChatChoicesStreamService"
781
+ "attr": "ChatStreamService"
501
782
  }
502
783
  }
503
784
  },
@@ -592,7 +873,7 @@
592
873
  "module": ".tools.git",
593
874
  "attr": null,
594
875
  "file": "ommlds/tools/git.py",
595
- "line": 188,
876
+ "line": 190,
596
877
  "value": {
597
878
  "!omdev.tools.git.messages.GitMessageGeneratorManifest": {
598
879
  "module": "ommlds.tools.git",
@@ -606,7 +887,7 @@
606
887
  "module": ".tools.ocr",
607
888
  "attr": "_CLI_MODULE",
608
889
  "file": "ommlds/tools/ocr.py",
609
- "line": 89,
890
+ "line": 82,
610
891
  "value": {
611
892
  "!omdev.cli.types.CliModule": {
612
893
  "name": "ocr",
ommlds/__about__.py CHANGED
@@ -14,31 +14,35 @@ class Project(ProjectBase):
14
14
 
15
15
  optional_dependencies = {
16
16
  'backends': [
17
- # 'diffusers ~= 0.35',
17
+ # 'diffusers ~= 0.36',
18
18
 
19
19
  'llama-cpp-python ~= 0.3',
20
20
 
21
- 'mlx ~= 0.29',
21
+ 'mlx ~= 0.30; sys_platform == "darwin"',
22
22
  'mlx-lm ~= 0.28; sys_platform == "darwin"',
23
23
 
24
24
  # 'sentencepiece ~= 0.2', # FIXME: https://github.com/google/sentencepiece/issues/1121
25
25
 
26
- 'tiktoken ~= 0.11',
26
+ 'tiktoken ~= 0.12',
27
27
 
28
28
  # 'tinygrad @ git+https://github.com/tinygrad/tinygrad',
29
29
  'tinygrad ~= 0.11',
30
30
 
31
31
  'tokenizers ~= 0.22',
32
32
 
33
- 'torch ~= 2.8',
33
+ 'torch ~= 2.9',
34
34
 
35
- 'transformers ~= 4.56',
35
+ 'transformers ~= 4.57',
36
36
  'sentence-transformers ~= 5.1',
37
37
  ],
38
38
 
39
39
  'huggingface': [
40
- 'huggingface-hub ~= 0.35',
41
- 'datasets ~= 4.1',
40
+ 'huggingface-hub ~= 0.36',
41
+ 'datasets ~= 4.4',
42
+ ],
43
+
44
+ 'nanochat': [
45
+ 'regex >= 2025.0',
42
46
  ],
43
47
 
44
48
  'numpy': [
@@ -52,11 +56,11 @@ class Project(ProjectBase):
52
56
  ],
53
57
 
54
58
  'pillow': [
55
- 'pillow ~= 11.3',
59
+ 'pillow ~= 12.0',
56
60
  ],
57
61
 
58
62
  'search': [
59
- 'ddgs ~= 9.6',
63
+ 'ddgs ~= 9.9',
60
64
  ],
61
65
 
62
66
  'wiki': [
@@ -76,6 +80,8 @@ class Project(ProjectBase):
76
80
 
77
81
 
78
82
  class Setuptools(SetuptoolsBase):
83
+ rs = True
84
+
79
85
  find_packages = {
80
86
  'include': [Project.name, f'{Project.name}.*'],
81
87
  'exclude': [*SetuptoolsBase.find_packages['exclude']],
ommlds/_hacks/__init__.py CHANGED
@@ -0,0 +1,4 @@
1
+ """
2
+ Currently, and ideally, the only thing this codebase will ever interact with requiring these kinds of awful hacks is ML
3
+ code - thus these 'helpers' are kept here, not in the core library.
4
+ """