ommlds 0.0.0.dev476__tar.gz → 0.0.0.dev478__tar.gz

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 (430) hide show
  1. {ommlds-0.0.0.dev476/ommlds.egg-info → ommlds-0.0.0.dev478}/PKG-INFO +3 -3
  2. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/.omlish-manifests.json +18 -6
  3. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/groq/protocol.py +69 -4
  4. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/rendering.py +3 -3
  5. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/services.py +2 -2
  6. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/types.py +1 -1
  7. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/configs.py +9 -0
  8. ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/fs/configs.py +12 -0
  9. ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/fs/inject.py +35 -0
  10. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/inject.py +11 -64
  11. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/injection.py +14 -0
  12. ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/todo/configs.py +12 -0
  13. ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/todo/inject.py +31 -0
  14. ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/weather/configs.py +12 -0
  15. ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/weather/inject.py +22 -0
  16. ommlds-0.0.0.dev476/ommlds/cli/sessions/chat/tools/weather.py → ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/weather/tools.py +1 -1
  17. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/__init__.py +39 -22
  18. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/anthropic/stream.py +11 -11
  19. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/dummy/chat.py +7 -7
  20. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/google/stream.py +9 -9
  21. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/groq/chat.py +11 -5
  22. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/groq/names.py +13 -0
  23. ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/groq/protocol.py +143 -0
  24. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/groq/stream.py +14 -10
  25. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/llamacpp/stream.py +7 -7
  26. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/mlx/chat.py +7 -7
  27. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/ollama/chat.py +7 -7
  28. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/openai/format.py +10 -10
  29. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/openai/names.py +2 -2
  30. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/openai/stream.py +8 -8
  31. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/tinygrad/chat.py +7 -7
  32. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/transformers/transformers.py +7 -7
  33. {ommlds-0.0.0.dev476/ommlds/minichain/chat → ommlds-0.0.0.dev478/ommlds/minichain/chat/choices}/stream/adapters.py +7 -7
  34. ommlds-0.0.0.dev478/ommlds/minichain/chat/choices/stream/joining.py +31 -0
  35. {ommlds-0.0.0.dev476/ommlds/minichain/chat → ommlds-0.0.0.dev478/ommlds/minichain/chat/choices}/stream/services.py +6 -6
  36. ommlds-0.0.0.dev478/ommlds/minichain/chat/choices/stream/types.py +43 -0
  37. ommlds-0.0.0.dev478/ommlds/minichain/chat/stream/_marshal.py +16 -0
  38. ommlds-0.0.0.dev478/ommlds/minichain/chat/stream/joining.py +85 -0
  39. ommlds-0.0.0.dev478/ommlds/minichain/chat/stream/services.py +45 -0
  40. ommlds-0.0.0.dev478/ommlds/minichain/chat/stream/types.py +72 -0
  41. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/reflect.py +5 -1
  42. ommlds-0.0.0.dev478/ommlds/tools/__init__.py +0 -0
  43. ommlds-0.0.0.dev478/ommlds/wiki/__init__.py +0 -0
  44. ommlds-0.0.0.dev478/ommlds/wiki/text/__init__.py +0 -0
  45. ommlds-0.0.0.dev478/ommlds/wiki/utils/__init__.py +0 -0
  46. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478/ommlds.egg-info}/PKG-INFO +3 -3
  47. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds.egg-info/SOURCES.txt +15 -2
  48. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds.egg-info/requires.txt +2 -2
  49. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/pyproject.toml +3 -3
  50. ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/groq/protocol.py +0 -46
  51. ommlds-0.0.0.dev476/ommlds/minichain/chat/stream/_marshal.py +0 -16
  52. ommlds-0.0.0.dev476/ommlds/minichain/chat/stream/joining.py +0 -96
  53. ommlds-0.0.0.dev476/ommlds/minichain/chat/stream/types.py +0 -82
  54. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/LICENSE +0 -0
  55. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/MANIFEST.in +0 -0
  56. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/README.md +0 -0
  57. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/__about__.py +0 -0
  58. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/__init__.py +0 -0
  59. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/_hacks/__init__.py +0 -0
  60. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/_hacks/funcs.py +0 -0
  61. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/_hacks/names.py +0 -0
  62. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/_hacks/params.py +0 -0
  63. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/_hacks/patches.py +0 -0
  64. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/__init__.py +0 -0
  65. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/__init__.py +0 -0
  66. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  67. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/_marshal.py +0 -0
  68. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  69. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/sse/_marshal.py +0 -0
  70. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  71. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/sse/events.py +0 -0
  72. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/anthropic/protocol/types.py +0 -0
  73. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/google/__init__.py +0 -0
  74. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/google/protocol/__init__.py +0 -0
  75. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/google/protocol/_marshal.py +0 -0
  76. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/google/protocol/types.py +0 -0
  77. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/groq/__init__.py +0 -0
  78. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/groq/_marshal.py +0 -0
  79. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/huggingface.py +0 -0
  80. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/llamacpp/__init__.py +0 -0
  81. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  82. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/llamacpp/logging.py +0 -0
  83. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/__init__.py +0 -0
  84. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/__main__.py +0 -0
  85. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/caching.py +0 -0
  86. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/cli.py +0 -0
  87. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/generation.py +0 -0
  88. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/limits.py +0 -0
  89. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/loading.py +0 -0
  90. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  91. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  92. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/detokenization/__init__.py +0 -0
  93. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  94. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  95. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  96. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  97. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  98. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  99. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/mlx/tokenization/types.py +0 -0
  100. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/ollama/__init__.py +0 -0
  101. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/ollama/protocol.py +0 -0
  102. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/__init__.py +0 -0
  103. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/__init__.py +0 -0
  104. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/_common.py +0 -0
  105. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/_marshal.py +0 -0
  106. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/__init__.py +0 -0
  107. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  108. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  109. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  110. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  111. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  112. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  113. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  114. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  115. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/__init__.py +0 -0
  116. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  117. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/__init__.py +0 -0
  118. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  119. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  120. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  121. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  122. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  123. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  124. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  125. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  126. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  127. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  128. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  129. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  130. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  131. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  132. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  133. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  134. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  135. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  136. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/torch/__init__.py +0 -0
  137. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/torch/backends.py +0 -0
  138. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/torch/devices.py +0 -0
  139. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/torch/purge.py +0 -0
  140. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/transformers/__init__.py +0 -0
  141. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/transformers/filecache.py +0 -0
  142. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/backends/transformers/streamers.py +0 -0
  143. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/__init__.py +0 -0
  144. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/__main__.py +0 -0
  145. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/asyncs.py +0 -0
  146. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/backends/__init__.py +0 -0
  147. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/backends/catalog.py +0 -0
  148. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/backends/configs.py +0 -0
  149. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/backends/inject.py +0 -0
  150. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/backends/injection.py +0 -0
  151. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/backends/types.py +0 -0
  152. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/content/__init__.py +0 -0
  153. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/content/messages.py +0 -0
  154. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/content/strings.py +0 -0
  155. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/inject.py +0 -0
  156. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/inputs/__init__.py +0 -0
  157. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/inputs/asyncs.py +0 -0
  158. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/inputs/sync.py +0 -0
  159. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/main.py +0 -0
  160. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/rendering/__init__.py +0 -0
  161. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/rendering/configs.py +0 -0
  162. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/rendering/inject.py +0 -0
  163. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/rendering/markdown.py +0 -0
  164. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/rendering/raw.py +0 -0
  165. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/rendering/types.py +0 -0
  166. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/secrets.py +0 -0
  167. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/__init__.py +0 -0
  168. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/base.py +0 -0
  169. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/__init__.py +0 -0
  170. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/__init__.py +0 -0
  171. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/__init__.py +0 -0
  172. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/configs.py +0 -0
  173. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/inject.py +0 -0
  174. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/injection.py +0 -0
  175. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/ai/tools.py +0 -0
  176. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/state/__init__.py +0 -0
  177. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/state/configs.py +0 -0
  178. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/state/inject.py +0 -0
  179. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/state/inmemory.py +0 -0
  180. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/state/storage.py +0 -0
  181. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/state/types.py +0 -0
  182. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/user/__init__.py +0 -0
  183. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/user/configs.py +0 -0
  184. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/user/inject.py +0 -0
  185. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/user/interactive.py +0 -0
  186. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/user/oneshot.py +0 -0
  187. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/chat/user/types.py +0 -0
  188. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/configs.py +0 -0
  189. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/driver.py +0 -0
  190. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/inject.py +0 -0
  191. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/phases/__init__.py +0 -0
  192. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/phases/inject.py +0 -0
  193. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/phases/injection.py +0 -0
  194. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/phases/manager.py +0 -0
  195. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/phases/types.py +0 -0
  196. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/session.py +0 -0
  197. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/__init__.py +0 -0
  198. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/confirmation.py +0 -0
  199. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/execution.py +0 -0
  200. {ommlds-0.0.0.dev476/ommlds/cli/sessions/completion → ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/fs}/__init__.py +0 -0
  201. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/chat/tools/rendering.py +0 -0
  202. {ommlds-0.0.0.dev476/ommlds/cli/sessions/embedding → ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/todo}/__init__.py +0 -0
  203. {ommlds-0.0.0.dev476/ommlds/cli/state → ommlds-0.0.0.dev478/ommlds/cli/sessions/chat/tools/weather}/__init__.py +0 -0
  204. {ommlds-0.0.0.dev476/ommlds/datasets → ommlds-0.0.0.dev478/ommlds/cli/sessions/completion}/__init__.py +0 -0
  205. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/completion/configs.py +0 -0
  206. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/completion/inject.py +0 -0
  207. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/completion/session.py +0 -0
  208. {ommlds-0.0.0.dev476/ommlds/datasets/lib → ommlds-0.0.0.dev478/ommlds/cli/sessions/embedding}/__init__.py +0 -0
  209. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/embedding/configs.py +0 -0
  210. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/embedding/inject.py +0 -0
  211. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/embedding/session.py +0 -0
  212. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/sessions/inject.py +0 -0
  213. {ommlds-0.0.0.dev476/ommlds/minichain/backends → ommlds-0.0.0.dev478/ommlds/cli/state}/__init__.py +0 -0
  214. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/state/inject.py +0 -0
  215. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/cli/state/storage.py +0 -0
  216. {ommlds-0.0.0.dev476/ommlds/minichain/backends/catalogs → ommlds-0.0.0.dev478/ommlds/datasets}/__init__.py +0 -0
  217. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls → ommlds-0.0.0.dev478/ommlds/datasets/lib}/__init__.py +0 -0
  218. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/datasets/lib/movies.py +0 -0
  219. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/_marshal.py +0 -0
  220. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/_typedvalues.py +0 -0
  221. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/anthropic → ommlds-0.0.0.dev478/ommlds/minichain/backends}/__init__.py +0 -0
  222. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/duckduckgo → ommlds-0.0.0.dev478/ommlds/minichain/backends/catalogs}/__init__.py +0 -0
  223. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/catalogs/base.py +0 -0
  224. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/catalogs/simple.py +0 -0
  225. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/catalogs/strings.py +0 -0
  226. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/dummy → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls}/__init__.py +0 -0
  227. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/google → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/anthropic}/__init__.py +0 -0
  228. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/anthropic/chat.py +0 -0
  229. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  230. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/anthropic/protocol.py +0 -0
  231. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/groq → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/duckduckgo}/__init__.py +0 -0
  232. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  233. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/huggingface → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/dummy}/__init__.py +0 -0
  234. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/llamacpp → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/google}/__init__.py +0 -0
  235. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/google/chat.py +0 -0
  236. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/google/names.py +0 -0
  237. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/google/search.py +0 -0
  238. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/google/tools.py +0 -0
  239. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/mlx → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/groq}/__init__.py +0 -0
  240. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/ollama → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/huggingface}/__init__.py +0 -0
  241. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  242. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/huggingface/repos.py +0 -0
  243. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/openai → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/llamacpp}/__init__.py +0 -0
  244. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  245. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  246. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  247. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/mistral.py +0 -0
  248. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/sentencepiece → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/mlx}/__init__.py +0 -0
  249. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/tinygrad → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/ollama}/__init__.py +0 -0
  250. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/tokenizers → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/openai}/__init__.py +0 -0
  251. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  252. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  253. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  254. {ommlds-0.0.0.dev476/ommlds/minichain/backends/impls/transformers → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/sentencepiece}/__init__.py +0 -0
  255. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  256. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  257. {ommlds-0.0.0.dev476/ommlds/minichain/backends/strings → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/tinygrad}/__init__.py +0 -0
  258. {ommlds-0.0.0.dev476/ommlds/minichain/chat → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/tokenizers}/__init__.py +0 -0
  259. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  260. {ommlds-0.0.0.dev476/ommlds/minichain/chat/choices → ommlds-0.0.0.dev478/ommlds/minichain/backends/impls/transformers}/__init__.py +0 -0
  261. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  262. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  263. {ommlds-0.0.0.dev476/ommlds/minichain/chat/stream → ommlds-0.0.0.dev478/ommlds/minichain/backends/strings}/__init__.py +0 -0
  264. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/strings/manifests.py +0 -0
  265. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/strings/parsing.py +0 -0
  266. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/backends/strings/resolving.py +0 -0
  267. {ommlds-0.0.0.dev476/ommlds/minichain/chat/tools → ommlds-0.0.0.dev478/ommlds/minichain/chat}/__init__.py +0 -0
  268. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/_marshal.py +0 -0
  269. {ommlds-0.0.0.dev476/ommlds/minichain/chat/transforms → ommlds-0.0.0.dev478/ommlds/minichain/chat/choices}/__init__.py +0 -0
  270. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/choices/adapters.py +0 -0
  271. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/choices/services.py +0 -0
  272. {ommlds-0.0.0.dev476/ommlds/minichain/content/transforms → ommlds-0.0.0.dev478/ommlds/minichain/chat/choices/stream}/__init__.py +0 -0
  273. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/choices/types.py +0 -0
  274. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/formats.py +0 -0
  275. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/history.py +0 -0
  276. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/messages.py +0 -0
  277. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/metadata.py +0 -0
  278. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/services.py +0 -0
  279. {ommlds-0.0.0.dev476/ommlds/minichain/lib → ommlds-0.0.0.dev478/ommlds/minichain/chat/stream}/__init__.py +0 -0
  280. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/templating.py +0 -0
  281. {ommlds-0.0.0.dev476/ommlds/minichain/lib/code → ommlds-0.0.0.dev478/ommlds/minichain/chat/tools}/__init__.py +0 -0
  282. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/tools/execution.py +0 -0
  283. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/tools/ids.py +0 -0
  284. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/tools/parsing.py +0 -0
  285. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/tools/types.py +0 -0
  286. {ommlds-0.0.0.dev476/ommlds/minichain/lib/fs → ommlds-0.0.0.dev478/ommlds/minichain/chat/transforms}/__init__.py +0 -0
  287. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/transforms/base.py +0 -0
  288. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  289. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/transforms/services.py +0 -0
  290. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/chat/types.py +0 -0
  291. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/completion.py +0 -0
  292. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/configs.py +0 -0
  293. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/__init__.py +0 -0
  294. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/_marshal.py +0 -0
  295. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/images.py +0 -0
  296. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/json.py +0 -0
  297. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/materialize.py +0 -0
  298. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/metadata.py +0 -0
  299. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/namespaces.py +0 -0
  300. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/placeholders.py +0 -0
  301. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/prepare.py +0 -0
  302. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/sequence.py +0 -0
  303. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/simple.py +0 -0
  304. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/text.py +0 -0
  305. {ommlds-0.0.0.dev476/ommlds/minichain/lib/fs/tools → ommlds-0.0.0.dev478/ommlds/minichain/content/transforms}/__init__.py +0 -0
  306. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/transforms/base.py +0 -0
  307. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/transforms/interleave.py +0 -0
  308. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/transforms/squeeze.py +0 -0
  309. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/transforms/stringify.py +0 -0
  310. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/transforms/strings.py +0 -0
  311. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/content/types.py +0 -0
  312. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/docs/__init__.py +0 -0
  313. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/docs/docs.py +0 -0
  314. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/docs/dtypes.py +0 -0
  315. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/docs/filters.py +0 -0
  316. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/envs.py +0 -0
  317. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/json.py +0 -0
  318. {ommlds-0.0.0.dev476/ommlds/minichain/lib/fs/tools/recursivels → ommlds-0.0.0.dev478/ommlds/minichain/lib}/__init__.py +0 -0
  319. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/bash.py +0 -0
  320. {ommlds-0.0.0.dev476/ommlds/minichain/lib/todo → ommlds-0.0.0.dev478/ommlds/minichain/lib/code}/__init__.py +0 -0
  321. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/code/prompts.py +0 -0
  322. {ommlds-0.0.0.dev476/ommlds/minichain/lib/todo/tools → ommlds-0.0.0.dev478/ommlds/minichain/lib/fs}/__init__.py +0 -0
  323. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/binfiles.py +0 -0
  324. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/context.py +0 -0
  325. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/errors.py +0 -0
  326. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/suggestions.py +0 -0
  327. {ommlds-0.0.0.dev476/ommlds/minichain/llms → ommlds-0.0.0.dev478/ommlds/minichain/lib/fs/tools}/__init__.py +0 -0
  328. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/tools/edit.py +0 -0
  329. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/tools/ls.py +0 -0
  330. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/tools/read.py +0 -0
  331. {ommlds-0.0.0.dev476/ommlds/minichain/models → ommlds-0.0.0.dev478/ommlds/minichain/lib/fs/tools/recursivels}/__init__.py +0 -0
  332. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/tools/recursivels/execution.py +0 -0
  333. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/tools/recursivels/rendering.py +0 -0
  334. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/fs/tools/recursivels/running.py +0 -0
  335. {ommlds-0.0.0.dev476/ommlds/minichain/models/repos → ommlds-0.0.0.dev478/ommlds/minichain/lib/todo}/__init__.py +0 -0
  336. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/todo/context.py +0 -0
  337. {ommlds-0.0.0.dev476/ommlds/minichain/registries → ommlds-0.0.0.dev478/ommlds/minichain/lib/todo/tools}/__init__.py +0 -0
  338. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/todo/tools/read.py +0 -0
  339. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/todo/tools/write.py +0 -0
  340. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/lib/todo/types.py +0 -0
  341. {ommlds-0.0.0.dev476/ommlds/minichain/stream → ommlds-0.0.0.dev478/ommlds/minichain/llms}/__init__.py +0 -0
  342. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/llms/_marshal.py +0 -0
  343. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/llms/tokens.py +0 -0
  344. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/llms/types.py +0 -0
  345. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/metadata.py +0 -0
  346. {ommlds-0.0.0.dev476/ommlds/minichain/text → ommlds-0.0.0.dev478/ommlds/minichain/models}/__init__.py +0 -0
  347. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/models/configs.py +0 -0
  348. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/models/names.py +0 -0
  349. {ommlds-0.0.0.dev476/ommlds/minichain/text/toolparsing → ommlds-0.0.0.dev478/ommlds/minichain/models/repos}/__init__.py +0 -0
  350. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/models/repos/resolving.py +0 -0
  351. {ommlds-0.0.0.dev476/ommlds/minichain/tools → ommlds-0.0.0.dev478/ommlds/minichain/registries}/__init__.py +0 -0
  352. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/registries/globals.py +0 -0
  353. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/registries/manifests.py +0 -0
  354. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/registries/registry.py +0 -0
  355. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/resources.py +0 -0
  356. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/search.py +0 -0
  357. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/__init__.py +0 -0
  358. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/_marshal.py +0 -0
  359. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/_origclasses.py +0 -0
  360. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/_typedvalues.py +0 -0
  361. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/facades.py +0 -0
  362. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/requests.py +0 -0
  363. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/responses.py +0 -0
  364. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/services/services.py +0 -0
  365. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/standard.py +0 -0
  366. {ommlds-0.0.0.dev476/ommlds/minichain/tools/execution → ommlds-0.0.0.dev478/ommlds/minichain/stream}/__init__.py +0 -0
  367. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/stream/services.py +0 -0
  368. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/stream/wrap.py +0 -0
  369. {ommlds-0.0.0.dev476/ommlds/minichain/vectors → ommlds-0.0.0.dev478/ommlds/minichain/text}/__init__.py +0 -0
  370. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/applypatch.py +0 -0
  371. {ommlds-0.0.0.dev476/ommlds/nanochat → ommlds-0.0.0.dev478/ommlds/minichain/text/toolparsing}/__init__.py +0 -0
  372. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/base.py +0 -0
  373. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  374. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  375. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  376. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  377. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  378. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/llamacpp/types.py +0 -0
  379. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  380. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tokens/__init__.py +0 -0
  381. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tokens/specials.py +0 -0
  382. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tokens/tokenizers.py +0 -0
  383. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tokens/types.py +0 -0
  384. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tokens/vocabs.py +0 -0
  385. {ommlds-0.0.0.dev476/ommlds/server → ommlds-0.0.0.dev478/ommlds/minichain/tools}/__init__.py +0 -0
  386. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/_marshal.py +0 -0
  387. {ommlds-0.0.0.dev476/ommlds/tools → ommlds-0.0.0.dev478/ommlds/minichain/tools/execution}/__init__.py +0 -0
  388. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/execution/catalog.py +0 -0
  389. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/execution/context.py +0 -0
  390. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/execution/errors.py +0 -0
  391. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/execution/executors.py +0 -0
  392. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/execution/reflect.py +0 -0
  393. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/fns.py +0 -0
  394. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/jsonschema.py +0 -0
  395. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/tools/types.py +0 -0
  396. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/types.py +0 -0
  397. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/utils.py +0 -0
  398. {ommlds-0.0.0.dev476/ommlds/wiki → ommlds-0.0.0.dev478/ommlds/minichain/vectors}/__init__.py +0 -0
  399. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/_marshal.py +0 -0
  400. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/embeddings.py +0 -0
  401. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/index.py +0 -0
  402. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/search.py +0 -0
  403. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/similarity.py +0 -0
  404. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/stores.py +0 -0
  405. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/minichain/vectors/types.py +0 -0
  406. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/nanochat/LICENSE +0 -0
  407. {ommlds-0.0.0.dev476/ommlds/wiki/text → ommlds-0.0.0.dev478/ommlds/nanochat}/__init__.py +0 -0
  408. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/nanochat/rustbpe/LICENSE +0 -0
  409. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/nanochat/tokenizers.py +0 -0
  410. {ommlds-0.0.0.dev476/ommlds/wiki/utils → ommlds-0.0.0.dev478/ommlds/server}/__init__.py +0 -0
  411. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/server/__main__.py +0 -0
  412. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/server/cli.py +0 -0
  413. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/server/client.py +0 -0
  414. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/server/server.py +0 -0
  415. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/server/service.py +0 -0
  416. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/tools/git.py +0 -0
  417. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/tools/ocr.py +0 -0
  418. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/analyze.py +0 -0
  419. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/convert.py +0 -0
  420. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/models.py +0 -0
  421. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/text/mfh.py +0 -0
  422. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/text/wtp.py +0 -0
  423. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/utils/io.py +0 -0
  424. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/utils/progress.py +0 -0
  425. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/utils/xml.py +0 -0
  426. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds/wiki/xml.py +0 -0
  427. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds.egg-info/dependency_links.txt +0 -0
  428. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds.egg-info/entry_points.txt +0 -0
  429. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/ommlds.egg-info/top_level.txt +0 -0
  430. {ommlds-0.0.0.dev476 → ommlds-0.0.0.dev478}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev476
3
+ Version: 0.0.0.dev478
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.dev476
18
- Requires-Dist: omlish==0.0.0.dev476
17
+ Requires-Dist: omdev==0.0.0.dev478
18
+ Requires-Dist: omlish==0.0.0.dev478
19
19
  Provides-Extra: all
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.29; extra == "all"
@@ -198,7 +198,7 @@
198
198
  "module": ".minichain.backends.impls.groq.chat",
199
199
  "attr": null,
200
200
  "file": "ommlds/minichain/backends/impls/groq/chat.py",
201
- "line": 24,
201
+ "line": 26,
202
202
  "value": {
203
203
  "!.minichain.registries.manifests.RegistryManifest": {
204
204
  "module": "ommlds.minichain.backends.impls.groq.chat",
@@ -213,7 +213,7 @@
213
213
  "module": ".minichain.backends.impls.groq.names",
214
214
  "attr": "_BACKEND_STRINGS_MANIFEST",
215
215
  "file": "ommlds/minichain/backends/impls/groq/names.py",
216
- "line": 27,
216
+ "line": 40,
217
217
  "value": {
218
218
  "!.minichain.backends.strings.manifests.BackendStringsManifest": {
219
219
  "service_cls_names": [
@@ -237,7 +237,7 @@
237
237
  "module": ".minichain.backends.impls.groq.stream",
238
238
  "attr": null,
239
239
  "file": "ommlds/minichain/backends/impls/groq/stream.py",
240
- "line": 31,
240
+ "line": 33,
241
241
  "value": {
242
242
  "!.minichain.registries.manifests.RegistryManifest": {
243
243
  "module": "ommlds.minichain.backends.impls.groq.stream",
@@ -533,8 +533,8 @@
533
533
  "gpt5-chat-latest": "gpt-5-chat-latest",
534
534
  "gpt5-mini": "gpt-5-mini",
535
535
  "gpt5-nano": "gpt-5-nano",
536
- "gpt": "gpt-4o",
537
- "gpt-mini": "gpt-4o-mini",
536
+ "gpt": "gpt-5",
537
+ "gpt-mini": "gpt-5-mini",
538
538
  "o3": null,
539
539
  "o3-mini": null,
540
540
  "o4-mini": null,
@@ -729,6 +729,18 @@
729
729
  }
730
730
  }
731
731
  },
732
+ {
733
+ "module": ".minichain.chat.choices.stream.services",
734
+ "attr": null,
735
+ "file": "ommlds/minichain/chat/choices/stream/services.py",
736
+ "line": 28,
737
+ "value": {
738
+ "!.minichain.registries.manifests.RegistryTypeManifest": {
739
+ "module": "ommlds.minichain.chat.choices.stream.services",
740
+ "attr": "ChatChoicesStreamService"
741
+ }
742
+ }
743
+ },
732
744
  {
733
745
  "module": ".minichain.chat.services",
734
746
  "attr": null,
@@ -749,7 +761,7 @@
749
761
  "value": {
750
762
  "!.minichain.registries.manifests.RegistryTypeManifest": {
751
763
  "module": "ommlds.minichain.chat.stream.services",
752
- "attr": "ChatChoicesStreamService"
764
+ "attr": "ChatStreamService"
753
765
  }
754
766
  }
755
767
  },
@@ -103,13 +103,41 @@ class ChatCompletionRequest(lang.Final):
103
103
  stream: bool | None = None
104
104
  stream_options: ta.Mapping[str, ta.Any] | None = None
105
105
  temperature: float | None = None
106
- tool_choice: str | None = None
107
- tools: ta.Sequence[ta.Mapping[str, ta.Any]] | None = None
106
+ ool_choice: str | None = None
107
+
108
+ @dc.dataclass(frozen=True, kw_only=True)
109
+ @_set_class_marshal_options
110
+ class Tool(lang.Final):
111
+ @dc.dataclass(frozen=True, kw_only=True)
112
+ @_set_class_marshal_options
113
+ class Function(lang.Final):
114
+ description: str | None = None
115
+ name: str
116
+ parameters: ta.Mapping[str, ta.Any] | None = None # json schema
117
+ strict: bool | None = None
118
+
119
+ function: Function
120
+ type: ta.Literal['function', 'browser_search', 'code_interpreter'] = 'function'
121
+
122
+ tools: ta.Sequence[Tool] | None = None
123
+
108
124
  top_logprobs: int | None = None
109
125
  top_p: float | None = None
110
126
  user: str | None = None
111
127
 
112
128
 
129
+ @dc.dataclass(frozen=True, kw_only=True)
130
+ @_set_class_marshal_options
131
+ class ExecutedTool(lang.Final):
132
+ arguments: str
133
+ index: int
134
+ type: str
135
+ browser_results: ta.Sequence[ta.Any] | None = None
136
+ code_results: ta.Sequence[ta.Any] | None = None
137
+ output: str | None = None
138
+ search_results: ta.Any | None = None
139
+
140
+
113
141
  @dc.dataclass(frozen=True, kw_only=True)
114
142
  @_set_class_marshal_options
115
143
  class ChatCompletionResponse(lang.Final):
@@ -125,10 +153,27 @@ class ChatCompletionResponse(lang.Final):
125
153
  class Message(lang.Final):
126
154
  annotations: ta.Sequence[ta.Mapping[str, ta.Any]] | None = None
127
155
  content: str | None = None
128
- executed_tools: ta.Sequence[ta.Mapping[str, ta.Any]] | None = None
156
+
157
+ executed_tools: ta.Sequence[ExecutedTool] | None = None
158
+
129
159
  reasoning: str | None = None
130
160
  role: ta.Literal['assistant'] = 'assistant'
131
- tool_calls: ta.Sequence[ta.Mapping[str, ta.Any]] | None = None
161
+
162
+ @dc.dataclass(frozen=True, kw_only=True)
163
+ @_set_class_marshal_options
164
+ class ToolCall(lang.Final):
165
+ id: str
166
+
167
+ @dc.dataclass(frozen=True, kw_only=True)
168
+ @_set_class_marshal_options
169
+ class Function(lang.Final):
170
+ arguments: str
171
+ name: str
172
+
173
+ function: Function
174
+ type: ta.Literal['function'] = 'function'
175
+
176
+ tool_calls: ta.Sequence[ToolCall] | None = None
132
177
 
133
178
  message: Message
134
179
 
@@ -167,6 +212,26 @@ class ChatCompletionChunk(lang.Final):
167
212
  channel: str | None = None
168
213
  reasoning: str | None = None
169
214
 
215
+ @dc.dataclass(frozen=True, kw_only=True)
216
+ @_set_class_marshal_options
217
+ class ToolCall(lang.Final):
218
+ index: int
219
+ id: str | None = None
220
+
221
+ @dc.dataclass(frozen=True, kw_only=True)
222
+ @_set_class_marshal_options
223
+ class Function(lang.Final):
224
+ arguments: str | None = None
225
+ name: str | None = None
226
+
227
+ function: Function | None = None
228
+
229
+ type: ta.Literal['function'] = 'function'
230
+
231
+ tool_calls: ta.Sequence[ToolCall] | None = None
232
+
233
+ executed_tools: ta.Sequence[ExecutedTool] | None = None
234
+
170
235
  delta: Delta
171
236
  logprobs: ta.Mapping[str, ta.Any] | None = None
172
237
  finish_reason: ta.Literal['stop', 'length', 'tool_calls', 'function_call'] | None = None
@@ -57,11 +57,11 @@ class RenderingStreamAiChatGenerator(StreamAiChatGenerator):
57
57
  async def get_next_ai_messages_streamed(
58
58
  self,
59
59
  chat: 'mc.Chat',
60
- delta_callback: ta.Callable[['mc.AiChoiceDelta'], ta.Awaitable[None]] | None = None,
60
+ delta_callback: ta.Callable[['mc.AiDelta'], ta.Awaitable[None]] | None = None,
61
61
  ) -> mc.Chat:
62
62
  async with self._renderer.create_context() as renderer:
63
- async def inner(delta: mc.AiChoiceDelta) -> None:
64
- if isinstance(delta, mc.ContentAiChoiceDelta):
63
+ async def inner(delta: mc.AiDelta) -> None:
64
+ if isinstance(delta, mc.ContentAiDelta):
65
65
  await renderer.render_content(delta.c)
66
66
 
67
67
  if delta_callback is not None:
@@ -59,12 +59,12 @@ class ChatChoicesStreamServiceStreamAiChatGenerator(StreamAiChatGenerator):
59
59
  async def get_next_ai_messages_streamed(
60
60
  self,
61
61
  chat: 'mc.Chat',
62
- delta_callback: ta.Callable[['mc.AiChoiceDelta'], ta.Awaitable[None]] | None = None,
62
+ delta_callback: ta.Callable[['mc.AiDelta'], ta.Awaitable[None]] | None = None,
63
63
  ) -> mc.AiChat:
64
64
  opts = self._options() if self._options is not None else []
65
65
 
66
66
  async with self._service_provider.provide_backend() as service:
67
- joiner = mc.AiChoiceDeltaJoiner()
67
+ joiner = mc.AiChoicesDeltaJoiner()
68
68
 
69
69
  async with (await service.invoke(mc.ChatChoicesStreamRequest(chat, opts))).v as st_resp:
70
70
  async for o in st_resp:
@@ -23,6 +23,6 @@ class StreamAiChatGenerator(AiChatGenerator, lang.Abstract):
23
23
  def get_next_ai_messages_streamed(
24
24
  self,
25
25
  chat: 'mc.Chat',
26
- delta_callback: ta.Callable[['mc.AiChoiceDelta'], ta.Awaitable[None]] | None = None,
26
+ delta_callback: ta.Callable[['mc.AiDelta'], ta.Awaitable[None]] | None = None,
27
27
  ) -> ta.Awaitable['mc.Chat']:
28
28
  raise NotImplementedError
@@ -1,6 +1,7 @@
1
1
  import typing as ta
2
2
 
3
3
  from omlish import dataclasses as dc
4
+ from omlish import lang
4
5
 
5
6
 
6
7
  ##
@@ -11,3 +12,11 @@ class ToolsConfig:
11
12
  silent: bool = False
12
13
  dangerous_no_confirmation: bool = False
13
14
  enabled_tools: ta.Iterable[str] | None = None
15
+
16
+
17
+ ##
18
+
19
+
20
+ @dc.dataclass(frozen=True, kw_only=True)
21
+ class ToolSetConfig(lang.Abstract):
22
+ pass
@@ -0,0 +1,12 @@
1
+ from omlish import dataclasses as dc
2
+ from omlish import lang
3
+
4
+ from ..configs import ToolSetConfig
5
+
6
+
7
+ ##
8
+
9
+
10
+ @dc.dataclass(frozen=True, kw_only=True)
11
+ class FsToolSetConfig(ToolSetConfig, lang.Final):
12
+ pass
@@ -0,0 +1,35 @@
1
+ import os
2
+
3
+ from omlish import inject as inj
4
+
5
+ from ..injection import ToolSetBinder
6
+ from ..injection import bind_tool_context_provider_to_key
7
+ from ..injection import tool_catalog_entries
8
+ from .configs import FsToolSetConfig
9
+
10
+
11
+ ##
12
+
13
+
14
+ def bind_fs_tools(cfg: FsToolSetConfig) -> inj.Elements:
15
+ from ......minichain.lib.fs.context import FsContext
16
+ from ......minichain.lib.fs.tools.ls import ls_tool
17
+ from ......minichain.lib.fs.tools.read import read_tool
18
+
19
+ return inj.as_elements(
20
+ tool_catalog_entries().bind_item_consts(
21
+ ls_tool(),
22
+ read_tool(),
23
+ ),
24
+
25
+ inj.bind(FsContext(
26
+ root_dir=os.getcwd(),
27
+ )),
28
+ bind_tool_context_provider_to_key(FsContext),
29
+ )
30
+
31
+
32
+ ##
33
+
34
+
35
+ FS_TOOL_SET_BINDER = ToolSetBinder(FsToolSetConfig, bind_fs_tools)
@@ -1,13 +1,10 @@
1
- import os
2
- import typing as ta
3
-
4
1
  from omlish import check
5
2
  from omlish import inject as inj
6
3
  from omlish import lang
7
4
 
8
5
  from ..... import minichain as mc
9
6
  from .configs import ToolsConfig
10
- from .injection import bind_tool_context_provider_to_key
7
+ from .injection import ToolSetBinder
11
8
  from .injection import tool_catalog_entries
12
9
  from .injection import tool_context_providers
13
10
 
@@ -21,65 +18,6 @@ with lang.auto_proxy_import(globals()):
21
18
  ##
22
19
 
23
20
 
24
- _TOOL_BINDERS: dict[str, ta.Callable[[], inj.Elements]] = {}
25
-
26
-
27
- def _tool_binder(name: str) -> ta.Callable[[ta.Callable[[], inj.Elements]], ta.Callable[[], inj.Elements]]:
28
- def inner(fn):
29
- check.not_in(name, _TOOL_BINDERS)
30
- _TOOL_BINDERS[name] = fn
31
- return fn
32
- return inner
33
-
34
-
35
- #
36
-
37
-
38
- @_tool_binder('weather')
39
- def _bind_weather_tool() -> inj.Elements:
40
- from .weather import WEATHER_TOOL
41
-
42
- return inj.as_elements(
43
- tool_catalog_entries().bind_item_consts(WEATHER_TOOL),
44
- )
45
-
46
-
47
- @_tool_binder('todo')
48
- def _bind_todo_tools() -> inj.Elements:
49
- from .....minichain.lib.todo.context import TodoContext
50
- from .....minichain.lib.todo.tools.read import todo_read_tool
51
- from .....minichain.lib.todo.tools.write import todo_write_tool
52
-
53
- return inj.as_elements(
54
- tool_catalog_entries().bind_item_consts(
55
- todo_read_tool(),
56
- todo_write_tool(),
57
- ),
58
-
59
- inj.bind(TodoContext()),
60
- bind_tool_context_provider_to_key(TodoContext),
61
- )
62
-
63
-
64
- @_tool_binder('fs')
65
- def _bind_fs_tools() -> inj.Elements:
66
- from .....minichain.lib.fs.context import FsContext
67
- from .....minichain.lib.fs.tools.ls import ls_tool
68
- from .....minichain.lib.fs.tools.read import read_tool
69
-
70
- return inj.as_elements(
71
- tool_catalog_entries().bind_item_consts(
72
- ls_tool(),
73
- read_tool(),
74
- ),
75
-
76
- inj.bind(FsContext(
77
- root_dir=os.getcwd(),
78
- )),
79
- bind_tool_context_provider_to_key(FsContext),
80
- )
81
-
82
-
83
21
  # if tools_config.enable_unsafe_tools_do_not_use_lol:
84
22
  # from ...minichain.lib.bash import bash_tool
85
23
  # els.append(bind_tool(bash_tool()))
@@ -103,7 +41,16 @@ def bind_tools(cfg: ToolsConfig = ToolsConfig()) -> inj.Elements:
103
41
  els.append(tool_catalog_entries().bind_items_provider(singleton=True))
104
42
 
105
43
  for etn in check.not_isinstance(cfg.enabled_tools or [], str):
106
- els.append(_TOOL_BINDERS[etn]())
44
+ from .fs.inject import FS_TOOL_SET_BINDER
45
+ from .todo.inject import TODO_TOOL_SET_BINDER
46
+ from .weather.inject import WEATHER_TOOL_SET_BINDER
47
+ ts_binder: ToolSetBinder = { # type: ignore[assignment] # FIXME: placeholder obviously lol
48
+ 'fs': FS_TOOL_SET_BINDER,
49
+ 'todo': TODO_TOOL_SET_BINDER,
50
+ 'weather': WEATHER_TOOL_SET_BINDER,
51
+ }[etn]
52
+
53
+ els.append(ts_binder.fn(ts_binder.cfg_cls()))
107
54
 
108
55
  #
109
56
 
@@ -1,15 +1,20 @@
1
1
  import typing as ta
2
2
 
3
+ from omlish import dataclasses as dc
3
4
  from omlish import inject as inj
4
5
  from omlish import lang
5
6
 
6
7
  from ..... import minichain as mc
8
+ from .configs import ToolSetConfig
7
9
 
8
10
 
9
11
  with lang.auto_proxy_import(globals()):
10
12
  from . import execution as _execution
11
13
 
12
14
 
15
+ ToolSetConfigT = ta.TypeVar('ToolSetConfigT', bound='ToolSetConfig')
16
+
17
+
13
18
  ##
14
19
 
15
20
 
@@ -28,3 +33,12 @@ def bind_tool_context_provider_to_key(key: ta.Any) -> inj.Elements:
28
33
  lambda v: _execution.ToolContextProvider(lambda: [v]),
29
34
  v=key,
30
35
  ), singleton=True)
36
+
37
+
38
+ ##
39
+
40
+
41
+ @dc.dataclass(frozen=True)
42
+ class ToolSetBinder(lang.Final, ta.Generic[ToolSetConfigT]):
43
+ cfg_cls: type[ToolSetConfig]
44
+ fn: ta.Callable[[ToolSetConfigT], inj.Elements]
@@ -0,0 +1,12 @@
1
+ from omlish import dataclasses as dc
2
+ from omlish import lang
3
+
4
+ from ..configs import ToolSetConfig
5
+
6
+
7
+ ##
8
+
9
+
10
+ @dc.dataclass(frozen=True, kw_only=True)
11
+ class TodoToolSetConfig(ToolSetConfig, lang.Final):
12
+ pass
@@ -0,0 +1,31 @@
1
+ from omlish import inject as inj
2
+
3
+ from ..injection import ToolSetBinder
4
+ from ..injection import bind_tool_context_provider_to_key
5
+ from ..injection import tool_catalog_entries
6
+ from .configs import TodoToolSetConfig
7
+
8
+
9
+ ##
10
+
11
+
12
+ def bind_todo_tools(cfg: TodoToolSetConfig) -> inj.Elements:
13
+ from ......minichain.lib.todo.context import TodoContext
14
+ from ......minichain.lib.todo.tools.read import todo_read_tool
15
+ from ......minichain.lib.todo.tools.write import todo_write_tool
16
+
17
+ return inj.as_elements(
18
+ tool_catalog_entries().bind_item_consts(
19
+ todo_read_tool(),
20
+ todo_write_tool(),
21
+ ),
22
+
23
+ inj.bind(TodoContext()),
24
+ bind_tool_context_provider_to_key(TodoContext),
25
+ )
26
+
27
+
28
+ ##
29
+
30
+
31
+ TODO_TOOL_SET_BINDER = ToolSetBinder(TodoToolSetConfig, bind_todo_tools)
@@ -0,0 +1,12 @@
1
+ from omlish import dataclasses as dc
2
+ from omlish import lang
3
+
4
+ from ..configs import ToolSetConfig
5
+
6
+
7
+ ##
8
+
9
+
10
+ @dc.dataclass(frozen=True, kw_only=True)
11
+ class WeatherToolSetConfig(ToolSetConfig, lang.Final):
12
+ pass
@@ -0,0 +1,22 @@
1
+ from omlish import inject as inj
2
+
3
+ from ..injection import ToolSetBinder
4
+ from ..injection import tool_catalog_entries
5
+ from .configs import WeatherToolSetConfig
6
+
7
+
8
+ ##
9
+
10
+
11
+ def bind_weather_tools(cfg: WeatherToolSetConfig) -> inj.Elements:
12
+ from .tools import WEATHER_TOOL
13
+
14
+ return inj.as_elements(
15
+ tool_catalog_entries().bind_item_consts(WEATHER_TOOL),
16
+ )
17
+
18
+
19
+ ##
20
+
21
+
22
+ WEATHER_TOOL_SET_BINDER = ToolSetBinder(WeatherToolSetConfig, bind_weather_tools)
@@ -1,4 +1,4 @@
1
- from ..... import minichain as mc
1
+ from ...... import minichain as mc
2
2
 
3
3
 
4
4
  ##
@@ -65,6 +65,33 @@ with _lang.auto_proxy_init(
65
65
 
66
66
  ##
67
67
 
68
+ from .chat.choices.stream.adapters import ( # noqa
69
+ ChatChoicesStreamServiceChatChoicesService,
70
+ )
71
+
72
+ from .chat.choices.stream.joining import ( # noqa
73
+ AiChoicesDeltaJoiner,
74
+ )
75
+
76
+ from .chat.choices.stream.services import ( # noqa
77
+ ChatChoicesStreamRequest,
78
+ ChatChoicesStreamResponse,
79
+ ChatChoicesStreamService,
80
+ AbstractChatChoicesStreamService,
81
+ static_check_is_chat_choices_stream_service,
82
+ )
83
+
84
+ from .chat.choices.stream.types import ( # noqa
85
+ ChatChoicesStreamOption,
86
+ ChatChoicesStreamOptions,
87
+
88
+ ChatChoicesStreamOutput,
89
+ ChatChoicesStreamOutputs,
90
+
91
+ AiChoiceDeltas,
92
+ AiChoicesDeltas,
93
+ )
94
+
68
95
  from .chat.choices.adapters import ( # noqa
69
96
  ChatChoicesServiceChatService,
70
97
  )
@@ -88,37 +115,27 @@ with _lang.auto_proxy_init(
88
115
  AiChoices,
89
116
  )
90
117
 
91
- from .chat.stream.adapters import ( # noqa
92
- ChatChoicesStreamServiceChatChoicesService,
93
- )
94
-
95
118
  from .chat.stream.joining import ( # noqa
96
- AiChoiceDeltaJoiner,
119
+ AiDeltaJoiner,
97
120
  )
98
121
 
99
122
  from .chat.stream.services import ( # noqa
100
- ChatChoicesStreamRequest,
101
- ChatChoicesStreamResponse,
102
- ChatChoicesStreamService,
103
- AbstractChatChoicesStreamService,
104
- static_check_is_chat_choices_stream_service,
123
+ ChatStreamRequest,
124
+ ChatStreamResponse,
125
+ ChatStreamService,
126
+ AbstractChatStreamService,
127
+ static_check_is_chat_stream_service,
105
128
  )
106
129
 
107
130
  from .chat.stream.types import ( # noqa
108
- ChatChoicesStreamOption,
109
- ChatChoicesStreamOptions,
131
+ AiDelta,
132
+ AiDeltas,
110
133
 
111
- ChatChoicesStreamOutput,
112
- ChatChoicesStreamOutputs,
113
-
114
- AiChoiceDelta,
115
- ContentAiChoiceDelta,
116
- AnyToolUseAiChoiceDelta,
117
- ToolUseAiChoiceDelta,
118
- PartialToolUseAiChoiceDelta,
134
+ ContentAiDelta,
119
135
 
120
- AiChoiceDeltas,
121
- AiChoicesDeltas,
136
+ AnyToolUseAiDelta,
137
+ ToolUseAiDelta,
138
+ PartialToolUseAiDelta,
122
139
  )
123
140
 
124
141
  from .chat.tools.execution import ( # noqa
@@ -11,13 +11,13 @@ from omlish.io.buffers import DelimitingBuffer
11
11
  from .....backends.anthropic.protocol import types as pt
12
12
  from .....backends.anthropic.protocol.sse.events import AnthropicSseDecoderEvents
13
13
  from ....chat.choices.services import ChatChoicesOutputs
14
- from ....chat.stream.services import ChatChoicesStreamRequest
15
- from ....chat.stream.services import ChatChoicesStreamResponse
16
- from ....chat.stream.services import static_check_is_chat_choices_stream_service
17
- from ....chat.stream.types import AiChoiceDeltas
18
- from ....chat.stream.types import AiChoicesDeltas
19
- from ....chat.stream.types import ContentAiChoiceDelta
20
- from ....chat.stream.types import PartialToolUseAiChoiceDelta
14
+ from ....chat.choices.stream.services import ChatChoicesStreamRequest
15
+ from ....chat.choices.stream.services import ChatChoicesStreamResponse
16
+ from ....chat.choices.stream.services import static_check_is_chat_choices_stream_service
17
+ from ....chat.choices.stream.types import AiChoiceDeltas
18
+ from ....chat.choices.stream.types import AiChoicesDeltas
19
+ from ....chat.stream.types import ContentAiDelta
20
+ from ....chat.stream.types import PartialToolUseAiDelta
21
21
  from ....chat.tools.types import Tool
22
22
  from ....configs import Config
23
23
  from ....resources import UseResources
@@ -131,12 +131,12 @@ class AnthropicChatChoicesStreamService:
131
131
  cbk_start = ae
132
132
 
133
133
  if isinstance(ae.content_block, AnthropicSseDecoderEvents.ContentBlockStart.Text): # noqa
134
- await sink.emit(AiChoicesDeltas([AiChoiceDeltas([ContentAiChoiceDelta(
134
+ await sink.emit(AiChoicesDeltas([AiChoiceDeltas([ContentAiDelta(
135
135
  ae.content_block.text,
136
136
  )])]))
137
137
 
138
138
  elif isinstance(ae.content_block, AnthropicSseDecoderEvents.ContentBlockStart.ToolUse): # noqa
139
- await sink.emit(AiChoicesDeltas([AiChoiceDeltas([PartialToolUseAiChoiceDelta( # noqa
139
+ await sink.emit(AiChoicesDeltas([AiChoiceDeltas([PartialToolUseAiDelta( # noqa
140
140
  id=ae.content_block.id,
141
141
  name=ae.content_block.name,
142
142
  raw_args=ae.content_block.input,
@@ -149,12 +149,12 @@ class AnthropicChatChoicesStreamService:
149
149
  check.not_none(cbk_start)
150
150
 
151
151
  if isinstance(ae.delta, AnthropicSseDecoderEvents.ContentBlockDelta.TextDelta):
152
- await sink.emit(AiChoicesDeltas([AiChoiceDeltas([ContentAiChoiceDelta(
152
+ await sink.emit(AiChoicesDeltas([AiChoiceDeltas([ContentAiDelta(
153
153
  ae.delta.text,
154
154
  )])]))
155
155
 
156
156
  elif isinstance(ae.delta, AnthropicSseDecoderEvents.ContentBlockDelta.InputJsonDelta): # noqa
157
- await sink.emit(AiChoicesDeltas([AiChoiceDeltas([PartialToolUseAiChoiceDelta( # noqa
157
+ await sink.emit(AiChoicesDeltas([AiChoiceDeltas([PartialToolUseAiDelta( # noqa
158
158
  raw_args=ae.delta.partial_json,
159
159
  )])]))
160
160