ommlds 0.0.0.dev464__tar.gz → 0.0.0.dev466__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.

Potentially problematic release.


This version of ommlds might be problematic. Click here for more details.

Files changed (385) hide show
  1. {ommlds-0.0.0.dev464/ommlds.egg-info → ommlds-0.0.0.dev466}/PKG-INFO +3 -3
  2. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/.omlish-manifests.json +3 -3
  3. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/google/protocol/types.py +4 -1
  4. ommlds-0.0.0.dev466/ommlds/cli/inject.py +37 -0
  5. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/main.py +14 -11
  6. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/inject.py +10 -13
  7. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/services.py +5 -7
  8. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/state/storage.py +1 -1
  9. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/inject.py +10 -0
  10. ommlds-0.0.0.dev466/ommlds/cli/sessions/completion/configs.py +21 -0
  11. ommlds-0.0.0.dev466/ommlds/cli/sessions/completion/inject.py +28 -0
  12. ommlds-0.0.0.dev464/ommlds/cli/sessions/completion/completion.py → ommlds-0.0.0.dev466/ommlds/cli/sessions/completion/session.py +4 -9
  13. ommlds-0.0.0.dev466/ommlds/cli/sessions/embedding/configs.py +21 -0
  14. ommlds-0.0.0.dev466/ommlds/cli/sessions/embedding/inject.py +28 -0
  15. ommlds-0.0.0.dev464/ommlds/cli/sessions/embedding/embedding.py → ommlds-0.0.0.dev466/ommlds/cli/sessions/embedding/session.py +4 -9
  16. ommlds-0.0.0.dev466/ommlds/cli/sessions/inject.py +38 -0
  17. ommlds-0.0.0.dev466/ommlds/cli/state/inject.py +28 -0
  18. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/__init__.py +6 -0
  19. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/anthropic/chat.py +4 -61
  20. ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/anthropic/protocol.py +109 -0
  21. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/anthropic/stream.py +34 -17
  22. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/google/stream.py +105 -20
  23. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/format.py +19 -14
  24. ommlds-0.0.0.dev466/ommlds/minichain/chat/stream/adapters.py +35 -0
  25. ommlds-0.0.0.dev466/ommlds/minichain/chat/stream/joining.py +96 -0
  26. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/stream/types.py +17 -4
  27. ommlds-0.0.0.dev466/ommlds/wiki/utils/__init__.py +0 -0
  28. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466/ommlds.egg-info}/PKG-INFO +3 -3
  29. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds.egg-info/SOURCES.txt +11 -3
  30. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds.egg-info/requires.txt +2 -2
  31. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/pyproject.toml +3 -3
  32. ommlds-0.0.0.dev464/ommlds/cli/inject.py +0 -50
  33. ommlds-0.0.0.dev464/ommlds/cli/sessions/inject.py +0 -21
  34. ommlds-0.0.0.dev464/ommlds/minichain/chat/stream/adapters.py +0 -80
  35. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/LICENSE +0 -0
  36. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/MANIFEST.in +0 -0
  37. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/README.md +0 -0
  38. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/__about__.py +0 -0
  39. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/__init__.py +0 -0
  40. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/_hacks/__init__.py +0 -0
  41. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/_hacks/patches.py +0 -0
  42. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/__init__.py +0 -0
  43. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/__init__.py +0 -0
  44. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  45. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/_marshal.py +0 -0
  46. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  47. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/sse/_marshal.py +0 -0
  48. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  49. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/sse/events.py +0 -0
  50. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/anthropic/protocol/types.py +0 -0
  51. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/google/__init__.py +0 -0
  52. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/google/protocol/__init__.py +0 -0
  53. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/google/protocol/_marshal.py +0 -0
  54. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/llamacpp/__init__.py +0 -0
  55. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  56. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/llamacpp/logging.py +0 -0
  57. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/__init__.py +0 -0
  58. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/__main__.py +0 -0
  59. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/caching.py +0 -0
  60. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/cli.py +0 -0
  61. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/generation.py +0 -0
  62. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/limits.py +0 -0
  63. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/loading.py +0 -0
  64. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  65. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  66. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/detokenization/__init__.py +0 -0
  67. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  68. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  69. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  70. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  71. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  72. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  73. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/mlx/tokenization/types.py +0 -0
  74. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/__init__.py +0 -0
  75. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/__init__.py +0 -0
  76. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/_common.py +0 -0
  77. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/_marshal.py +0 -0
  78. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/__init__.py +0 -0
  79. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  80. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  81. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  82. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  83. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  84. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  85. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  86. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  87. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/__init__.py +0 -0
  88. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  89. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/__init__.py +0 -0
  90. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  91. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  92. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  93. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  94. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  95. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  96. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  97. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  98. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  99. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  100. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  101. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  102. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  103. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  104. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  105. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  106. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  107. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  108. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/torch/__init__.py +0 -0
  109. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/torch/backends.py +0 -0
  110. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/torch/devices.py +0 -0
  111. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/backends/torch/purge.py +0 -0
  112. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/__init__.py +0 -0
  113. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/__main__.py +0 -0
  114. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/backends/__init__.py +0 -0
  115. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/backends/inject.py +0 -0
  116. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/backends/standard.py +0 -0
  117. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/__init__.py +0 -0
  118. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/base.py +0 -0
  119. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/__init__.py +0 -0
  120. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/backends/__init__.py +0 -0
  121. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/backends/catalog.py +0 -0
  122. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/backends/inject.py +0 -0
  123. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/backends/injection.py +0 -0
  124. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/backends/types.py +0 -0
  125. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/__init__.py +0 -0
  126. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/__init__.py +0 -0
  127. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/injection.py +0 -0
  128. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/rendering.py +0 -0
  129. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/tools.py +0 -0
  130. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/ai/types.py +0 -0
  131. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/state/__init__.py +0 -0
  132. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/state/inject.py +0 -0
  133. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/state/inmemory.py +0 -0
  134. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/state/types.py +0 -0
  135. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/user/__init__.py +0 -0
  136. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/user/inject.py +0 -0
  137. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/user/interactive.py +0 -0
  138. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/user/oneshot.py +0 -0
  139. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/chat/user/types.py +0 -0
  140. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/configs.py +0 -0
  141. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/content/__init__.py +0 -0
  142. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/content/messages.py +0 -0
  143. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/content/strings.py +0 -0
  144. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/driver.py +0 -0
  145. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/phases/__init__.py +0 -0
  146. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/phases/inject.py +0 -0
  147. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/phases/injection.py +0 -0
  148. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/phases/manager.py +0 -0
  149. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/phases/types.py +0 -0
  150. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/rendering/__init__.py +0 -0
  151. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/rendering/inject.py +0 -0
  152. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/rendering/markdown.py +0 -0
  153. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/rendering/raw.py +0 -0
  154. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/rendering/types.py +0 -0
  155. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/session.py +0 -0
  156. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/__init__.py +0 -0
  157. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/confirmation.py +0 -0
  158. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/execution.py +0 -0
  159. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/inject.py +0 -0
  160. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/injection.py +0 -0
  161. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/rendering.py +0 -0
  162. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/chat/tools/weather.py +0 -0
  163. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/completion/__init__.py +0 -0
  164. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/cli/sessions/embedding/__init__.py +0 -0
  165. {ommlds-0.0.0.dev464/ommlds/datasets → ommlds-0.0.0.dev466/ommlds/cli/state}/__init__.py +0 -0
  166. /ommlds-0.0.0.dev464/ommlds/cli/state.py → /ommlds-0.0.0.dev466/ommlds/cli/state/storage.py +0 -0
  167. {ommlds-0.0.0.dev464/ommlds/datasets/lib → ommlds-0.0.0.dev466/ommlds/datasets}/__init__.py +0 -0
  168. {ommlds-0.0.0.dev464/ommlds/minichain/backends → ommlds-0.0.0.dev466/ommlds/datasets/lib}/__init__.py +0 -0
  169. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/datasets/lib/movies.py +0 -0
  170. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/huggingface.py +0 -0
  171. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/_marshal.py +0 -0
  172. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/_typedvalues.py +0 -0
  173. {ommlds-0.0.0.dev464/ommlds/minichain/backends/catalogs → ommlds-0.0.0.dev466/ommlds/minichain/backends}/__init__.py +0 -0
  174. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls → ommlds-0.0.0.dev466/ommlds/minichain/backends/catalogs}/__init__.py +0 -0
  175. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/catalogs/base.py +0 -0
  176. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/catalogs/simple.py +0 -0
  177. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/catalogs/strings.py +0 -0
  178. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/anthropic → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls}/__init__.py +0 -0
  179. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/duckduckgo → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/anthropic}/__init__.py +0 -0
  180. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  181. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/google → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/duckduckgo}/__init__.py +0 -0
  182. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  183. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/huggingface → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/google}/__init__.py +0 -0
  184. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/google/chat.py +0 -0
  185. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/google/names.py +0 -0
  186. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/google/search.py +0 -0
  187. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/google/tools.py +0 -0
  188. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/llamacpp → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/huggingface}/__init__.py +0 -0
  189. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  190. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/huggingface/repos.py +0 -0
  191. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/mlx → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/llamacpp}/__init__.py +0 -0
  192. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  193. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  194. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  195. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/llamacpp/stream.py +0 -0
  196. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/mistral.py +0 -0
  197. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/openai → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/mlx}/__init__.py +0 -0
  198. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/mlx/chat.py +0 -0
  199. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/sentencepiece → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/openai}/__init__.py +0 -0
  200. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  201. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  202. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  203. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/format2.py +0 -0
  204. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/names.py +0 -0
  205. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/openai/stream.py +0 -0
  206. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/tinygrad → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/sentencepiece}/__init__.py +0 -0
  207. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  208. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  209. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/tokenizers → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/tinygrad}/__init__.py +0 -0
  210. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/tinygrad/chat.py +0 -0
  211. {ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/transformers → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/tokenizers}/__init__.py +0 -0
  212. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  213. {ommlds-0.0.0.dev464/ommlds/minichain/backends/strings → ommlds-0.0.0.dev466/ommlds/minichain/backends/impls/transformers}/__init__.py +0 -0
  214. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  215. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  216. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/impls/transformers/transformers.py +0 -0
  217. {ommlds-0.0.0.dev464/ommlds/minichain/chat → ommlds-0.0.0.dev466/ommlds/minichain/backends/strings}/__init__.py +0 -0
  218. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/strings/manifests.py +0 -0
  219. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/strings/parsing.py +0 -0
  220. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/backends/strings/resolving.py +0 -0
  221. {ommlds-0.0.0.dev464/ommlds/minichain/chat/choices → ommlds-0.0.0.dev466/ommlds/minichain/chat}/__init__.py +0 -0
  222. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/_marshal.py +0 -0
  223. {ommlds-0.0.0.dev464/ommlds/minichain/chat/stream → ommlds-0.0.0.dev466/ommlds/minichain/chat/choices}/__init__.py +0 -0
  224. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/choices/adapters.py +0 -0
  225. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/choices/services.py +0 -0
  226. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/choices/types.py +0 -0
  227. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/formats.py +0 -0
  228. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/history.py +0 -0
  229. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/messages.py +0 -0
  230. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/metadata.py +0 -0
  231. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/services.py +0 -0
  232. {ommlds-0.0.0.dev464/ommlds/minichain/chat/tools → ommlds-0.0.0.dev466/ommlds/minichain/chat/stream}/__init__.py +0 -0
  233. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/stream/_marshal.py +0 -0
  234. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/stream/services.py +0 -0
  235. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/templating.py +0 -0
  236. {ommlds-0.0.0.dev464/ommlds/minichain/chat/transforms → ommlds-0.0.0.dev466/ommlds/minichain/chat/tools}/__init__.py +0 -0
  237. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/tools/execution.py +0 -0
  238. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/tools/ids.py +0 -0
  239. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/tools/parsing.py +0 -0
  240. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/tools/types.py +0 -0
  241. {ommlds-0.0.0.dev464/ommlds/minichain/content → ommlds-0.0.0.dev466/ommlds/minichain/chat}/transforms/__init__.py +0 -0
  242. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/transforms/base.py +0 -0
  243. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  244. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/transforms/services.py +0 -0
  245. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/chat/types.py +0 -0
  246. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/completion.py +0 -0
  247. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/configs.py +0 -0
  248. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/__init__.py +0 -0
  249. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/_marshal.py +0 -0
  250. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/images.py +0 -0
  251. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/json.py +0 -0
  252. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/materialize.py +0 -0
  253. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/metadata.py +0 -0
  254. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/namespaces.py +0 -0
  255. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/placeholders.py +0 -0
  256. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/prepare.py +0 -0
  257. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/sequence.py +0 -0
  258. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/simple.py +0 -0
  259. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/text.py +0 -0
  260. {ommlds-0.0.0.dev464/ommlds/minichain/lib → ommlds-0.0.0.dev466/ommlds/minichain/content/transforms}/__init__.py +0 -0
  261. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/transforms/base.py +0 -0
  262. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/transforms/interleave.py +0 -0
  263. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/transforms/squeeze.py +0 -0
  264. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/transforms/stringify.py +0 -0
  265. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/transforms/strings.py +0 -0
  266. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/content/types.py +0 -0
  267. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/docs/__init__.py +0 -0
  268. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/docs/docs.py +0 -0
  269. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/docs/dtypes.py +0 -0
  270. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/docs/filters.py +0 -0
  271. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/envs.py +0 -0
  272. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/json.py +0 -0
  273. {ommlds-0.0.0.dev464/ommlds/minichain/lib/code → ommlds-0.0.0.dev466/ommlds/minichain/lib}/__init__.py +0 -0
  274. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/bash.py +0 -0
  275. {ommlds-0.0.0.dev464/ommlds/minichain/lib/fs → ommlds-0.0.0.dev466/ommlds/minichain/lib/code}/__init__.py +0 -0
  276. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/code/prompts.py +0 -0
  277. {ommlds-0.0.0.dev464/ommlds/minichain/lib/fs/tools → ommlds-0.0.0.dev466/ommlds/minichain/lib/fs}/__init__.py +0 -0
  278. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/binfiles.py +0 -0
  279. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/context.py +0 -0
  280. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/errors.py +0 -0
  281. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/suggestions.py +0 -0
  282. {ommlds-0.0.0.dev464/ommlds/minichain/lib/fs/tools/recursivels → ommlds-0.0.0.dev466/ommlds/minichain/lib/fs/tools}/__init__.py +0 -0
  283. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/tools/edit.py +0 -0
  284. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/tools/ls.py +0 -0
  285. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/tools/read.py +0 -0
  286. {ommlds-0.0.0.dev464/ommlds/minichain/lib/todo → ommlds-0.0.0.dev466/ommlds/minichain/lib/fs/tools/recursivels}/__init__.py +0 -0
  287. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/tools/recursivels/execution.py +0 -0
  288. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/tools/recursivels/rendering.py +0 -0
  289. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/fs/tools/recursivels/running.py +0 -0
  290. {ommlds-0.0.0.dev464/ommlds/minichain/lib/todo/tools → ommlds-0.0.0.dev466/ommlds/minichain/lib/todo}/__init__.py +0 -0
  291. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/todo/context.py +0 -0
  292. {ommlds-0.0.0.dev464/ommlds/minichain/llms → ommlds-0.0.0.dev466/ommlds/minichain/lib/todo/tools}/__init__.py +0 -0
  293. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/todo/tools/read.py +0 -0
  294. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/todo/tools/write.py +0 -0
  295. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/lib/todo/types.py +0 -0
  296. {ommlds-0.0.0.dev464/ommlds/minichain/models → ommlds-0.0.0.dev466/ommlds/minichain/llms}/__init__.py +0 -0
  297. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/llms/_marshal.py +0 -0
  298. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/llms/tokens.py +0 -0
  299. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/llms/types.py +0 -0
  300. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/metadata.py +0 -0
  301. {ommlds-0.0.0.dev464/ommlds/minichain/models/repos → ommlds-0.0.0.dev466/ommlds/minichain/models}/__init__.py +0 -0
  302. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/models/configs.py +0 -0
  303. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/models/names.py +0 -0
  304. {ommlds-0.0.0.dev464/ommlds/minichain/registries → ommlds-0.0.0.dev466/ommlds/minichain/models/repos}/__init__.py +0 -0
  305. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/models/repos/resolving.py +0 -0
  306. {ommlds-0.0.0.dev464/ommlds/minichain/stream → ommlds-0.0.0.dev466/ommlds/minichain/registries}/__init__.py +0 -0
  307. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/registries/globals.py +0 -0
  308. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/registries/manifests.py +0 -0
  309. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/registries/registry.py +0 -0
  310. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/resources.py +0 -0
  311. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/search.py +0 -0
  312. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/__init__.py +0 -0
  313. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/_marshal.py +0 -0
  314. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/_origclasses.py +0 -0
  315. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/_typedvalues.py +0 -0
  316. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/facades.py +0 -0
  317. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/requests.py +0 -0
  318. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/responses.py +0 -0
  319. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/services/services.py +0 -0
  320. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/standard.py +0 -0
  321. {ommlds-0.0.0.dev464/ommlds/minichain/text → ommlds-0.0.0.dev466/ommlds/minichain/stream}/__init__.py +0 -0
  322. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/stream/services.py +0 -0
  323. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/stream/wrap.py +0 -0
  324. {ommlds-0.0.0.dev464/ommlds/minichain/text/toolparsing → ommlds-0.0.0.dev466/ommlds/minichain/text}/__init__.py +0 -0
  325. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/applypatch.py +0 -0
  326. {ommlds-0.0.0.dev464/ommlds/minichain/tools → ommlds-0.0.0.dev466/ommlds/minichain/text/toolparsing}/__init__.py +0 -0
  327. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/base.py +0 -0
  328. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  329. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  330. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  331. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  332. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  333. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/llamacpp/types.py +0 -0
  334. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  335. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tokens/__init__.py +0 -0
  336. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tokens/specials.py +0 -0
  337. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tokens/tokenizers.py +0 -0
  338. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tokens/types.py +0 -0
  339. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tokens/vocabs.py +0 -0
  340. {ommlds-0.0.0.dev464/ommlds/minichain/tools/execution → ommlds-0.0.0.dev466/ommlds/minichain/tools}/__init__.py +0 -0
  341. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/_marshal.py +0 -0
  342. {ommlds-0.0.0.dev464/ommlds/minichain/vectors → ommlds-0.0.0.dev466/ommlds/minichain/tools/execution}/__init__.py +0 -0
  343. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/execution/catalog.py +0 -0
  344. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/execution/context.py +0 -0
  345. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/execution/errors.py +0 -0
  346. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/execution/executors.py +0 -0
  347. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/execution/reflect.py +0 -0
  348. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/fns.py +0 -0
  349. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/jsonschema.py +0 -0
  350. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/reflect.py +0 -0
  351. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/tools/types.py +0 -0
  352. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/types.py +0 -0
  353. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/utils.py +0 -0
  354. {ommlds-0.0.0.dev464/ommlds/server → ommlds-0.0.0.dev466/ommlds/minichain/vectors}/__init__.py +0 -0
  355. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/_marshal.py +0 -0
  356. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/embeddings.py +0 -0
  357. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/index.py +0 -0
  358. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/search.py +0 -0
  359. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/similarity.py +0 -0
  360. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/stores.py +0 -0
  361. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/minichain/vectors/types.py +0 -0
  362. {ommlds-0.0.0.dev464/ommlds/tools → ommlds-0.0.0.dev466/ommlds/server}/__init__.py +0 -0
  363. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/server/__main__.py +0 -0
  364. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/server/cli.py +0 -0
  365. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/server/client.py +0 -0
  366. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/server/server.py +0 -0
  367. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/server/service.py +0 -0
  368. {ommlds-0.0.0.dev464/ommlds/wiki → ommlds-0.0.0.dev466/ommlds/tools}/__init__.py +0 -0
  369. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/tools/git.py +0 -0
  370. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/tools/ocr.py +0 -0
  371. {ommlds-0.0.0.dev464/ommlds/wiki/text → ommlds-0.0.0.dev466/ommlds/wiki}/__init__.py +0 -0
  372. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/analyze.py +0 -0
  373. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/convert.py +0 -0
  374. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/models.py +0 -0
  375. {ommlds-0.0.0.dev464/ommlds/wiki/utils → ommlds-0.0.0.dev466/ommlds/wiki/text}/__init__.py +0 -0
  376. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/text/mfh.py +0 -0
  377. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/text/wtp.py +0 -0
  378. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/utils/io.py +0 -0
  379. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/utils/progress.py +0 -0
  380. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/utils/xml.py +0 -0
  381. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds/wiki/xml.py +0 -0
  382. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds.egg-info/dependency_links.txt +0 -0
  383. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds.egg-info/entry_points.txt +0 -0
  384. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/ommlds.egg-info/top_level.txt +0 -0
  385. {ommlds-0.0.0.dev464 → ommlds-0.0.0.dev466}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev464
3
+ Version: 0.0.0.dev466
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.dev464
18
- Requires-Dist: omlish==0.0.0.dev464
17
+ Requires-Dist: omdev==0.0.0.dev466
18
+ Requires-Dist: omlish==0.0.0.dev466
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"
@@ -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": 38,
22
22
  "value": {
23
23
  "!.minichain.registries.manifests.RegistryManifest": {
24
24
  "module": "ommlds.minichain.backends.impls.anthropic.chat",
@@ -63,7 +63,7 @@
63
63
  "module": ".minichain.backends.impls.anthropic.stream",
64
64
  "attr": null,
65
65
  "file": "ommlds/minichain/backends/impls/anthropic/stream.py",
66
- "line": 33,
66
+ "line": 36,
67
67
  "value": {
68
68
  "!.minichain.registries.manifests.RegistryManifest": {
69
69
  "module": "ommlds.minichain.backends.impls.anthropic.stream",
@@ -137,7 +137,7 @@
137
137
  "module": ".minichain.backends.impls.google.stream",
138
138
  "attr": null,
139
139
  "file": "ommlds/minichain/backends/impls/google/stream.py",
140
- "line": 36,
140
+ "line": 41,
141
141
  "value": {
142
142
  "!.minichain.registries.manifests.RegistryManifest": {
143
143
  "module": "ommlds.minichain.backends.impls.google.stream",
@@ -148,11 +148,14 @@ class Part(lang.Final):
148
148
  video_metadata: VideoMetadata | None = None
149
149
 
150
150
 
151
+ ContentRole: ta.TypeAlias = ta.Literal['user', 'model']
152
+
153
+
151
154
  @dc.dataclass(frozen=True, kw_only=True)
152
155
  @_set_class_marshal_options
153
156
  class Content(lang.Final):
154
157
  parts: ta.Sequence[Part] | None = None
155
- role: ta.Literal['user', 'model'] | None = None
158
+ role: ContentRole | None = None
156
159
 
157
160
 
158
161
  ##
@@ -0,0 +1,37 @@
1
+ import typing as ta
2
+
3
+ from omlish import inject as inj
4
+ from omlish import lang
5
+
6
+
7
+ with lang.auto_proxy_import(globals()):
8
+ from .backends import inject as _backends
9
+ from .sessions import inject as _sessions
10
+ from .state import inject as _state
11
+
12
+
13
+ ##
14
+
15
+
16
+ def bind_main(
17
+ *,
18
+ session_cfg: ta.Any,
19
+ enable_backend_strings: bool = False,
20
+ ) -> inj.Elements:
21
+ els: list[inj.Elemental] = []
22
+
23
+ #
24
+
25
+ els.extend([
26
+ _backends.bind_backends(
27
+ enable_backend_strings=enable_backend_strings,
28
+ ),
29
+
30
+ _sessions.bind_sessions(session_cfg),
31
+
32
+ _state.bind_state(),
33
+ ])
34
+
35
+ #
36
+
37
+ return inj.as_elements(*els)
@@ -24,9 +24,9 @@ from omlish.subprocesses.sync import subprocesses
24
24
  from .. import minichain as mc
25
25
  from .inject import bind_main
26
26
  from .sessions.base import Session
27
- from .sessions.chat.session import ChatSession
28
- from .sessions.completion.completion import CompletionSession
29
- from .sessions.embedding.embedding import EmbeddingSession
27
+ from .sessions.chat.configs import ChatConfig
28
+ from .sessions.completion.configs import CompletionConfig
29
+ from .sessions.embedding.configs import EmbeddingConfig
30
30
 
31
31
 
32
32
  if ta.TYPE_CHECKING:
@@ -125,30 +125,33 @@ async def _a_main(args: ta.Any = None) -> None:
125
125
 
126
126
  #
127
127
 
128
- session_cfg: Session.Config
128
+ session_cfg: ta.Any
129
129
 
130
130
  if args.embed:
131
- session_cfg = EmbeddingSession.Config(
131
+ session_cfg = EmbeddingConfig(
132
132
  check.not_none(content), # noqa
133
133
  backend=args.backend,
134
134
  )
135
135
 
136
136
  elif args.completion:
137
- session_cfg = CompletionSession.Config(
137
+ session_cfg = CompletionConfig(
138
138
  check.not_none(content), # noqa
139
139
  backend=args.backend,
140
140
  )
141
141
 
142
142
  else:
143
- from ..minichain.lib.code.prompts import CODE_AGENT_SYSTEM_PROMPT
143
+ system_content: mc.Content | None = None
144
+ if (args.new or args.ephemeral) and args.code:
145
+ from ..minichain.lib.code.prompts import CODE_AGENT_SYSTEM_PROMPT
146
+ system_content = CODE_AGENT_SYSTEM_PROMPT
144
147
 
145
- session_cfg = ChatSession.Config(
148
+ session_cfg = ChatConfig(
146
149
  backend=args.backend,
147
150
  model_name=args.model_name,
148
151
  state='ephemeral' if args.ephemeral else 'new' if args.new else 'continue',
149
- initial_system_content=CODE_AGENT_SYSTEM_PROMPT if args.new and args.code else None,
152
+ initial_system_content=system_content,
150
153
  initial_user_content=content, # noqa
151
- interactive=args.interactive,
154
+ interactive=bool(args.interactive),
152
155
  markdown=bool(args.markdown),
153
156
  stream=bool(args.stream),
154
157
  enable_tools=(
@@ -171,7 +174,7 @@ async def _a_main(args: ta.Any = None) -> None:
171
174
 
172
175
  with inj.create_managed_injector(bind_main(
173
176
  session_cfg=session_cfg,
174
- enable_backend_strings=isinstance(session_cfg, ChatSession.Config),
177
+ enable_backend_strings=isinstance(session_cfg, ChatConfig),
175
178
  )) as injector:
176
179
  await injector[Session].run()
177
180
 
@@ -36,34 +36,31 @@ def bind_ai(
36
36
 
37
37
  #
38
38
 
39
+ ai_stack = inj.wrapper_binder_helper(_types.AiChatGenerator)
40
+
39
41
  if stream:
40
- ai_stack = inj.wrapper_binder_helper(_types.StreamAiChatGenerator)
42
+ stream_ai_stack = inj.wrapper_binder_helper(_types.StreamAiChatGenerator)
41
43
 
42
- els.append(ai_stack.push_bind(to_ctor=_services.ChatChoicesStreamServiceStreamAiChatGenerator, singleton=True))
44
+ els.append(stream_ai_stack.push_bind(to_ctor=_services.ChatChoicesStreamServiceStreamAiChatGenerator, singleton=True)) # noqa
43
45
 
44
46
  if not silent:
45
- els.append(ai_stack.push_bind(to_ctor=_rendering.RenderingStreamAiChatGenerator, singleton=True))
46
-
47
- if enable_tools:
48
- raise NotImplementedError
47
+ els.append(stream_ai_stack.push_bind(to_ctor=_rendering.RenderingStreamAiChatGenerator, singleton=True))
49
48
 
50
49
  els.extend([
51
- inj.bind(_types.StreamAiChatGenerator, to_key=ai_stack.top),
52
- inj.bind(_types.AiChatGenerator, to_key=_types.StreamAiChatGenerator),
50
+ inj.bind(_types.StreamAiChatGenerator, to_key=stream_ai_stack.top),
51
+ ai_stack.push_bind(to_key=_types.StreamAiChatGenerator),
53
52
  ])
54
53
 
55
54
  else:
56
- ai_stack = inj.wrapper_binder_helper(_types.AiChatGenerator)
57
-
58
55
  els.append(ai_stack.push_bind(to_ctor=_services.ChatChoicesServiceAiChatGenerator, singleton=True))
59
56
 
60
57
  if not silent:
61
58
  els.append(ai_stack.push_bind(to_ctor=_rendering.RenderingAiChatGenerator, singleton=True))
62
59
 
63
- if enable_tools:
64
- els.append(ai_stack.push_bind(to_ctor=_tools.ToolExecutingAiChatGenerator, singleton=True))
60
+ if enable_tools:
61
+ els.append(ai_stack.push_bind(to_ctor=_tools.ToolExecutingAiChatGenerator, singleton=True))
65
62
 
66
- els.append(inj.bind(_types.AiChatGenerator, to_key=ai_stack.top))
63
+ els.append(inj.bind(_types.AiChatGenerator, to_key=ai_stack.top))
67
64
 
68
65
  #
69
66
 
@@ -63,19 +63,17 @@ class ChatChoicesStreamServiceStreamAiChatGenerator(StreamAiChatGenerator):
63
63
  ) -> mc.AiChat:
64
64
  opts = self._options() if self._options is not None else []
65
65
 
66
- lst: list[str] = []
67
-
68
66
  async with self._service_provider.provide_backend() as service:
67
+ joiner = mc.AiChoiceDeltaJoiner()
68
+
69
69
  async with (await service.invoke(mc.ChatChoicesStreamRequest(chat, opts))).v as st_resp:
70
70
  async for o in st_resp:
71
+ joiner.add(o.choices)
72
+
71
73
  choice = check.single(o.choices)
72
74
 
73
75
  for delta in choice.deltas:
74
76
  if delta_callback is not None:
75
77
  await delta_callback(delta)
76
78
 
77
- c = check.isinstance(delta, mc.ContentAiChoiceDelta).c # noqa
78
- if c is not None:
79
- lst.append(check.isinstance(c, str))
80
-
81
- return [mc.AiMessage(''.join(lst))]
79
+ return check.single(joiner.build())
@@ -4,7 +4,7 @@ from omlish import check
4
4
  from omlish import lang
5
5
 
6
6
  from ...... import minichain as mc
7
- from .....state import StateStorage
7
+ from .....state.storage import StateStorage
8
8
  from .types import ChatState
9
9
  from .types import ChatStateManager
10
10
 
@@ -1,12 +1,15 @@
1
+ from omlish import dataclasses as dc
1
2
  from omlish import inject as inj
2
3
  from omlish import lang
3
4
 
5
+ from ..base import Session
4
6
  from .configs import DEFAULT_CHAT_MODEL_BACKEND
5
7
  from .configs import ChatConfig
6
8
 
7
9
 
8
10
  with lang.auto_proxy_import(globals()):
9
11
  from . import driver as _driver
12
+ from . import session as _session
10
13
  from .backends import inject as _backends
11
14
  from .chat.ai import inject as _chat_ai
12
15
  from .chat.state import inject as _chat_state
@@ -69,4 +72,11 @@ def bind_chat(cfg: ChatConfig) -> inj.Elements:
69
72
 
70
73
  #
71
74
 
75
+ els.extend([
76
+ inj.bind(_session.ChatSession.Config(**dc.asdict(cfg))),
77
+ inj.bind(Session, to_ctor=_session.ChatSession, singleton=True),
78
+ ])
79
+
80
+ #
81
+
72
82
  return inj.as_elements(*els)
@@ -0,0 +1,21 @@
1
+ import dataclasses as dc
2
+
3
+ from .... import minichain as mc
4
+
5
+
6
+ ##
7
+
8
+
9
+ DEFAULT_COMPLETION_MODEL_BACKEND = 'openai'
10
+
11
+
12
+ ##
13
+
14
+
15
+ @dc.dataclass(frozen=True)
16
+ class CompletionConfig:
17
+ content: 'mc.Content'
18
+
19
+ _: dc.KW_ONLY
20
+
21
+ backend: str | None = None
@@ -0,0 +1,28 @@
1
+ from omlish import dataclasses as dc
2
+ from omlish import inject as inj
3
+ from omlish import lang
4
+
5
+ from ..base import Session
6
+ from .configs import CompletionConfig
7
+
8
+
9
+ with lang.auto_proxy_import(globals()):
10
+ from . import session as _session
11
+
12
+
13
+ ##
14
+
15
+
16
+ def bind_completion(cfg: CompletionConfig) -> inj.Elements:
17
+ els: list[inj.Elemental] = []
18
+
19
+ #
20
+
21
+ els.extend([
22
+ inj.bind(_session.CompletionSession.Config(**dc.asdict(cfg))),
23
+ inj.bind(Session, to_ctor=_session.CompletionSession, singleton=True),
24
+ ])
25
+
26
+ #
27
+
28
+ return inj.as_elements(*els)
@@ -5,22 +5,17 @@ from omlish import lang
5
5
 
6
6
  from .... import minichain as mc
7
7
  from ..base import Session
8
+ from .configs import DEFAULT_COMPLETION_MODEL_BACKEND
9
+ from .configs import CompletionConfig
8
10
 
9
11
 
10
12
  ##
11
13
 
12
14
 
13
- DEFAULT_COMPLETION_MODEL_BACKEND = 'openai'
14
-
15
-
16
15
  class CompletionSession(Session['CompletionSession.Config']):
17
16
  @dc.dataclass(frozen=True)
18
- class Config(Session.Config):
19
- content: mc.Content
20
-
21
- _: dc.KW_ONLY
22
-
23
- backend: str | None = None
17
+ class Config(Session.Config, CompletionConfig):
18
+ pass
24
19
 
25
20
  def __init__(
26
21
  self,
@@ -0,0 +1,21 @@
1
+ import dataclasses as dc
2
+
3
+ from .... import minichain as mc
4
+
5
+
6
+ ##
7
+
8
+
9
+ DEFAULT_EMBEDDING_MODEL_BACKEND = 'openai'
10
+
11
+
12
+ ##
13
+
14
+
15
+ @dc.dataclass(frozen=True)
16
+ class EmbeddingConfig:
17
+ content: 'mc.Content'
18
+
19
+ _: dc.KW_ONLY
20
+
21
+ backend: str | None = None
@@ -0,0 +1,28 @@
1
+ from omlish import dataclasses as dc
2
+ from omlish import inject as inj
3
+ from omlish import lang
4
+
5
+ from ..base import Session
6
+ from .configs import EmbeddingConfig
7
+
8
+
9
+ with lang.auto_proxy_import(globals()):
10
+ from . import session as _session
11
+
12
+
13
+ ##
14
+
15
+
16
+ def bind_embedding(cfg: EmbeddingConfig) -> inj.Elements:
17
+ els: list[inj.Elemental] = []
18
+
19
+ #
20
+
21
+ els.extend([
22
+ inj.bind(_session.EmbeddingSession.Config(**dc.asdict(cfg))),
23
+ inj.bind(Session, to_ctor=_session.EmbeddingSession, singleton=True),
24
+ ])
25
+
26
+ #
27
+
28
+ return inj.as_elements(*els)
@@ -5,22 +5,17 @@ from omlish.formats import json
5
5
 
6
6
  from .... import minichain as mc
7
7
  from ..base import Session
8
+ from .configs import DEFAULT_EMBEDDING_MODEL_BACKEND
9
+ from .configs import EmbeddingConfig
8
10
 
9
11
 
10
12
  ##
11
13
 
12
14
 
13
- DEFAULT_EMBEDDING_MODEL_BACKEND = 'openai'
14
-
15
-
16
15
  class EmbeddingSession(Session['EmbeddingSession.Config']):
17
16
  @dc.dataclass(frozen=True)
18
- class Config(Session.Config):
19
- content: mc.Content
20
-
21
- _: dc.KW_ONLY
22
-
23
- backend: str | None = None
17
+ class Config(Session.Config, EmbeddingConfig):
18
+ pass
24
19
 
25
20
  def __init__(
26
21
  self,
@@ -0,0 +1,38 @@
1
+ import typing as ta
2
+
3
+ from omlish import inject as inj
4
+ from omlish import lang
5
+
6
+
7
+ with lang.auto_proxy_import(globals()):
8
+ from .chat import configs as _chat_cfgs
9
+ from .chat import inject as _chat_inj
10
+ from .completion import configs as _completion_cfgs
11
+ from .completion import inject as _completion_inj
12
+ from .embedding import configs as _embedding_cfgs
13
+ from .embedding import inject as _embedding_inj
14
+
15
+
16
+ ##
17
+
18
+
19
+ def bind_sessions(cfg: ta.Any) -> inj.Elements:
20
+ els: list[inj.Elemental] = []
21
+
22
+ #
23
+
24
+ if isinstance(cfg, _chat_cfgs.ChatConfig):
25
+ els.append(_chat_inj.bind_chat(cfg))
26
+
27
+ elif isinstance(cfg, _completion_cfgs.CompletionConfig):
28
+ els.append(_completion_inj.bind_completion(cfg))
29
+
30
+ elif isinstance(cfg, _embedding_cfgs.EmbeddingConfig):
31
+ els.append(_embedding_inj.bind_embedding(cfg))
32
+
33
+ else:
34
+ raise TypeError(cfg)
35
+
36
+ #
37
+
38
+ return inj.as_elements(*els)
@@ -0,0 +1,28 @@
1
+ import os.path
2
+
3
+ from omdev.home.paths import get_home_paths
4
+ from omlish import inject as inj
5
+ from omlish import lang
6
+
7
+
8
+ with lang.auto_proxy_import(globals()):
9
+ from . import storage as _storage
10
+
11
+
12
+ ##
13
+
14
+
15
+ def _provide_state_storage() -> '_storage.StateStorage':
16
+ state_dir = os.path.join(get_home_paths().state_dir, 'minichain', 'cli')
17
+ if not os.path.exists(state_dir):
18
+ os.makedirs(state_dir, exist_ok=True)
19
+ os.chmod(state_dir, 0o770) # noqa
20
+
21
+ state_file = os.path.join(state_dir, 'state.json')
22
+ return _storage.JsonFileStateStorage(state_file)
23
+
24
+
25
+ def bind_state() -> inj.Elements:
26
+ return inj.as_elements(
27
+ inj.bind(_provide_state_storage, singleton=True),
28
+ )
@@ -92,6 +92,10 @@ with _lang.auto_proxy_init(
92
92
  ChatChoicesStreamServiceChatChoicesService,
93
93
  )
94
94
 
95
+ from .chat.stream.joining import ( # noqa
96
+ AiChoiceDeltaJoiner,
97
+ )
98
+
95
99
  from .chat.stream.services import ( # noqa
96
100
  ChatChoicesStreamRequest,
97
101
  ChatChoicesStreamResponse,
@@ -109,7 +113,9 @@ with _lang.auto_proxy_init(
109
113
 
110
114
  AiChoiceDelta,
111
115
  ContentAiChoiceDelta,
116
+ AnyToolUseAiChoiceDelta,
112
117
  ToolUseAiChoiceDelta,
118
+ PartialToolUseAiChoiceDelta,
113
119
 
114
120
  AiChoiceDeltas,
115
121
  AiChoicesDeltas,
@@ -22,15 +22,14 @@ from ....chat.messages import AnyAiMessage
22
22
  from ....chat.messages import Message
23
23
  from ....chat.messages import SystemMessage
24
24
  from ....chat.messages import ToolUseMessage
25
- from ....chat.messages import ToolUseResultMessage
26
25
  from ....chat.messages import UserMessage
27
26
  from ....chat.tools.types import Tool
28
- from ....content.prepare import prepare_content_str
29
27
  from ....models.configs import ModelName
30
28
  from ....standard import ApiKey
31
- from ....tools.jsonschema import build_tool_spec_params_json_schema
32
29
  from ....tools.types import ToolUse
33
30
  from .names import MODEL_NAMES
31
+ from .protocol import build_protocol_chat_messages
32
+ from .protocol import build_protocol_tool
34
33
 
35
34
 
36
35
  ##
@@ -44,13 +43,6 @@ from .names import MODEL_NAMES
44
43
  class AnthropicChatChoicesService:
45
44
  DEFAULT_MODEL_NAME: ta.ClassVar[ModelName] = ModelName(check.not_none(MODEL_NAMES.default))
46
45
 
47
- ROLES_MAP: ta.ClassVar[ta.Mapping[type[Message], str]] = {
48
- SystemMessage: 'system',
49
- UserMessage: 'user',
50
- AiMessage: 'assistant',
51
- ToolUseMessage: 'assistant',
52
- }
53
-
54
46
  def __init__(
55
47
  self,
56
48
  *configs: ApiKey | ModelName,
@@ -78,62 +70,13 @@ class AnthropicChatChoicesService:
78
70
  *,
79
71
  max_tokens: int = 4096, # FIXME: ChatOption
80
72
  ) -> ChatChoicesResponse:
81
- messages: list[pt.Message] = []
82
- system: list[pt.Content] | None = None
83
- for i, m in enumerate(request.v):
84
- if isinstance(m, SystemMessage):
85
- if i != 0 or system is not None:
86
- raise Exception('Only supports one system message and must be first')
87
- system = [pt.Text(check.not_none(self._get_msg_content(m)))]
88
-
89
- elif isinstance(m, ToolUseResultMessage):
90
- messages.append(pt.Message(
91
- role='user',
92
- content=[pt.ToolResult(
93
- tool_use_id=check.not_none(m.tur.id),
94
- content=json.dumps_compact(msh.marshal(m.tur.c)) if not isinstance(m.tur.c, str) else m.tur.c,
95
- )],
96
- ))
97
-
98
- elif isinstance(m, AiMessage):
99
- # messages.append(pt.Message(
100
- # role=self.ROLES_MAP[type(m)], # noqa
101
- # content=[pt.Text(check.isinstance(self._get_msg_content(m), str))],
102
- # ))
103
- messages.append(pt.Message(
104
- role='assistant',
105
- content=[
106
- *([pt.Text(check.isinstance(m.c, str))] if m.c is not None else []),
107
- ],
108
- ))
109
-
110
- elif isinstance(m, ToolUseMessage):
111
- messages.append(pt.Message(
112
- role='assistant',
113
- content=[
114
- pt.ToolUse(
115
- id=check.not_none(m.tu.id),
116
- name=check.not_none(m.tu.name),
117
- input=m.tu.args,
118
- ),
119
- ],
120
- ))
121
-
122
- else:
123
- messages.append(pt.Message(
124
- role=self.ROLES_MAP[type(m)], # type: ignore[arg-type]
125
- content=[pt.Text(check.isinstance(self._get_msg_content(m), str))],
126
- ))
73
+ messages, system = build_protocol_chat_messages(request.v)
127
74
 
128
75
  tools: list[pt.ToolSpec] = []
129
76
  with tv.TypedValues(*request.options).consume() as oc:
130
77
  t: Tool
131
78
  for t in oc.pop(Tool, []):
132
- tools.append(pt.ToolSpec(
133
- name=check.not_none(t.spec.name),
134
- description=prepare_content_str(t.spec.desc),
135
- input_schema=build_tool_spec_params_json_schema(t.spec),
136
- ))
79
+ tools.append(build_protocol_tool(t))
137
80
 
138
81
  a_req = pt.MessagesRequest(
139
82
  model=MODEL_NAMES.resolve(self._model_name.v),