ommlds 0.0.0.dev463__tar.gz → 0.0.0.dev464__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 (388) hide show
  1. {ommlds-0.0.0.dev463/ommlds.egg-info → ommlds-0.0.0.dev464}/PKG-INFO +3 -3
  2. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/inject.py +0 -5
  3. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/main.py +26 -54
  4. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/backends/catalog.py +5 -5
  5. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/backends/inject.py +37 -0
  6. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/backends/injection.py +16 -0
  7. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/backends/types.py +3 -3
  8. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/ai/inject.py +81 -0
  9. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/ai/injection.py +14 -0
  10. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/ai/rendering.py +13 -10
  11. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/ai/services.py +81 -0
  12. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/ai/tools.py +44 -0
  13. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/ai/types.py +5 -5
  14. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/state/inject.py +40 -0
  15. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/state/inmemory.py +1 -1
  16. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/state/storage.py +1 -1
  17. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/state/types.py +1 -1
  18. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/user/inject.py +61 -0
  19. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/user/interactive.py +1 -1
  20. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/user/oneshot.py +1 -1
  21. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/chat/user/types.py +1 -1
  22. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/configs.py +4 -1
  23. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/content/messages.py +6 -2
  24. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/content/strings.py +2 -2
  25. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/driver.py +2 -2
  26. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/inject.py +72 -0
  27. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/phases/inject.py +27 -0
  28. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/phases/injection.py +14 -0
  29. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/phases.py → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/phases/manager.py +2 -28
  30. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/phases/types.py +29 -0
  31. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/rendering/inject.py +32 -0
  32. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/rendering/markdown.py +2 -2
  33. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/rendering/raw.py +6 -6
  34. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/rendering/types.py +1 -1
  35. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/session.py +1 -1
  36. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/tools/confirmation.py +4 -4
  37. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/tools/execution.py +18 -5
  38. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/tools/inject.py +145 -0
  39. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/tools/injection.py +29 -0
  40. ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/tools/rendering.py +58 -0
  41. {ommlds-0.0.0.dev463/ommlds/cli → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/tools/weather.py +1 -1
  42. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/inject.py +2 -7
  43. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464/ommlds.egg-info}/PKG-INFO +3 -3
  44. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds.egg-info/SOURCES.txt +46 -44
  45. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds.egg-info/requires.txt +2 -2
  46. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/pyproject.toml +3 -3
  47. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/base.py +0 -42
  48. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/code.py +0 -125
  49. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/inject.py +0 -98
  50. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/interactive.py +0 -70
  51. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/printing.py +0 -126
  52. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/prompt.py +0 -161
  53. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/state.py +0 -110
  54. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat/tools.py +0 -97
  55. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/_inject.py +0 -105
  56. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/chat/ai/services.py +0 -70
  57. ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/inject.py +0 -143
  58. ommlds-0.0.0.dev463/ommlds/cli/tools/config.py +0 -14
  59. ommlds-0.0.0.dev463/ommlds/cli/tools/inject.py +0 -75
  60. ommlds-0.0.0.dev463/ommlds/wiki/utils/__init__.py +0 -0
  61. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/LICENSE +0 -0
  62. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/MANIFEST.in +0 -0
  63. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/README.md +0 -0
  64. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/.omlish-manifests.json +0 -0
  65. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/__about__.py +0 -0
  66. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/__init__.py +0 -0
  67. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/_hacks/__init__.py +0 -0
  68. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/_hacks/patches.py +0 -0
  69. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/__init__.py +0 -0
  70. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/__init__.py +0 -0
  71. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  72. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/_marshal.py +0 -0
  73. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  74. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/sse/_marshal.py +0 -0
  75. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  76. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/sse/events.py +0 -0
  77. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/anthropic/protocol/types.py +0 -0
  78. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/google/__init__.py +0 -0
  79. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/google/protocol/__init__.py +0 -0
  80. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/google/protocol/_marshal.py +0 -0
  81. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/google/protocol/types.py +0 -0
  82. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/llamacpp/__init__.py +0 -0
  83. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  84. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/llamacpp/logging.py +0 -0
  85. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/__init__.py +0 -0
  86. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/__main__.py +0 -0
  87. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/caching.py +0 -0
  88. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/cli.py +0 -0
  89. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/generation.py +0 -0
  90. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/limits.py +0 -0
  91. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/loading.py +0 -0
  92. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  93. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  94. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/detokenization/__init__.py +0 -0
  95. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  96. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  97. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  98. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  99. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  100. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  101. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/mlx/tokenization/types.py +0 -0
  102. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/__init__.py +0 -0
  103. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/__init__.py +0 -0
  104. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/_common.py +0 -0
  105. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/_marshal.py +0 -0
  106. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/__init__.py +0 -0
  107. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  108. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  109. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  110. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  111. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  112. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  113. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  114. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  115. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/__init__.py +0 -0
  116. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  117. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/__init__.py +0 -0
  118. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  119. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  120. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  121. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  122. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  123. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  124. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  125. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  126. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  127. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  128. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  129. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  130. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  131. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  132. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  133. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  134. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  135. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  136. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/torch/__init__.py +0 -0
  137. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/torch/backends.py +0 -0
  138. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/torch/devices.py +0 -0
  139. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/backends/torch/purge.py +0 -0
  140. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/__init__.py +0 -0
  141. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/__main__.py +0 -0
  142. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/backends/__init__.py +0 -0
  143. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/backends/inject.py +0 -0
  144. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/backends/standard.py +0 -0
  145. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/__init__.py +0 -0
  146. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/base.py +0 -0
  147. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/chat/__init__.py +0 -0
  148. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/backends}/__init__.py +0 -0
  149. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/backends → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat}/__init__.py +0 -0
  150. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/chat → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/ai}/__init__.py +0 -0
  151. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/chat/ai → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/state}/__init__.py +0 -0
  152. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/chat/state → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/chat/user}/__init__.py +0 -0
  153. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/chat/user → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/content}/__init__.py +0 -0
  154. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2/content → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat/phases}/__init__.py +0 -0
  155. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/rendering/__init__.py +0 -0
  156. {ommlds-0.0.0.dev463/ommlds/cli/sessions/chat2 → ommlds-0.0.0.dev464/ommlds/cli/sessions/chat}/tools/__init__.py +0 -0
  157. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/completion/__init__.py +0 -0
  158. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/completion/completion.py +0 -0
  159. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/embedding/__init__.py +0 -0
  160. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/sessions/embedding/embedding.py +0 -0
  161. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/cli/state.py +0 -0
  162. {ommlds-0.0.0.dev463/ommlds/cli/tools → ommlds-0.0.0.dev464/ommlds/datasets}/__init__.py +0 -0
  163. {ommlds-0.0.0.dev463/ommlds/datasets → ommlds-0.0.0.dev464/ommlds/datasets/lib}/__init__.py +0 -0
  164. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/datasets/lib/movies.py +0 -0
  165. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/huggingface.py +0 -0
  166. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/__init__.py +0 -0
  167. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/_marshal.py +0 -0
  168. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/_typedvalues.py +0 -0
  169. {ommlds-0.0.0.dev463/ommlds/datasets/lib → ommlds-0.0.0.dev464/ommlds/minichain/backends}/__init__.py +0 -0
  170. {ommlds-0.0.0.dev463/ommlds/minichain/backends → ommlds-0.0.0.dev464/ommlds/minichain/backends/catalogs}/__init__.py +0 -0
  171. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/catalogs/base.py +0 -0
  172. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/catalogs/simple.py +0 -0
  173. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/catalogs/strings.py +0 -0
  174. {ommlds-0.0.0.dev463/ommlds/minichain/backends/catalogs → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls}/__init__.py +0 -0
  175. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/anthropic}/__init__.py +0 -0
  176. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/anthropic/chat.py +0 -0
  177. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  178. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/anthropic/stream.py +0 -0
  179. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/anthropic → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/duckduckgo}/__init__.py +0 -0
  180. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  181. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/duckduckgo → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/google}/__init__.py +0 -0
  182. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/google/chat.py +0 -0
  183. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/google/names.py +0 -0
  184. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/google/search.py +0 -0
  185. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/google/stream.py +0 -0
  186. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/google/tools.py +0 -0
  187. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/google → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/huggingface}/__init__.py +0 -0
  188. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  189. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/huggingface/repos.py +0 -0
  190. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/huggingface → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/llamacpp}/__init__.py +0 -0
  191. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  192. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  193. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  194. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/llamacpp/stream.py +0 -0
  195. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/mistral.py +0 -0
  196. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/llamacpp → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/mlx}/__init__.py +0 -0
  197. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/mlx/chat.py +0 -0
  198. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/mlx → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/openai}/__init__.py +0 -0
  199. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  200. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  201. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  202. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/format.py +0 -0
  203. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/format2.py +0 -0
  204. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/names.py +0 -0
  205. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/openai/stream.py +0 -0
  206. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/openai → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/sentencepiece}/__init__.py +0 -0
  207. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  208. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  209. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/sentencepiece → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/tinygrad}/__init__.py +0 -0
  210. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/tinygrad/chat.py +0 -0
  211. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/tinygrad → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/tokenizers}/__init__.py +0 -0
  212. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  213. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/tokenizers → ommlds-0.0.0.dev464/ommlds/minichain/backends/impls/transformers}/__init__.py +0 -0
  214. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  215. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  216. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/impls/transformers/transformers.py +0 -0
  217. {ommlds-0.0.0.dev463/ommlds/minichain/backends/impls/transformers → ommlds-0.0.0.dev464/ommlds/minichain/backends/strings}/__init__.py +0 -0
  218. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/strings/manifests.py +0 -0
  219. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/strings/parsing.py +0 -0
  220. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/backends/strings/resolving.py +0 -0
  221. {ommlds-0.0.0.dev463/ommlds/minichain/backends/strings → ommlds-0.0.0.dev464/ommlds/minichain/chat}/__init__.py +0 -0
  222. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/_marshal.py +0 -0
  223. {ommlds-0.0.0.dev463/ommlds/minichain/chat → ommlds-0.0.0.dev464/ommlds/minichain/chat/choices}/__init__.py +0 -0
  224. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/choices/adapters.py +0 -0
  225. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/choices/services.py +0 -0
  226. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/choices/types.py +0 -0
  227. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/formats.py +0 -0
  228. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/history.py +0 -0
  229. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/messages.py +0 -0
  230. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/metadata.py +0 -0
  231. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/services.py +0 -0
  232. {ommlds-0.0.0.dev463/ommlds/minichain/chat/choices → ommlds-0.0.0.dev464/ommlds/minichain/chat/stream}/__init__.py +0 -0
  233. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/stream/_marshal.py +0 -0
  234. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/stream/adapters.py +0 -0
  235. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/stream/services.py +0 -0
  236. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/stream/types.py +0 -0
  237. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/templating.py +0 -0
  238. {ommlds-0.0.0.dev463/ommlds/minichain/chat/stream → ommlds-0.0.0.dev464/ommlds/minichain/chat/tools}/__init__.py +0 -0
  239. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/tools/execution.py +0 -0
  240. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/tools/ids.py +0 -0
  241. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/tools/parsing.py +0 -0
  242. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/tools/types.py +0 -0
  243. {ommlds-0.0.0.dev463/ommlds/minichain/chat/tools → ommlds-0.0.0.dev464/ommlds/minichain/chat/transforms}/__init__.py +0 -0
  244. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/transforms/base.py +0 -0
  245. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  246. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/transforms/services.py +0 -0
  247. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/chat/types.py +0 -0
  248. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/completion.py +0 -0
  249. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/configs.py +0 -0
  250. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/__init__.py +0 -0
  251. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/_marshal.py +0 -0
  252. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/images.py +0 -0
  253. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/json.py +0 -0
  254. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/materialize.py +0 -0
  255. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/metadata.py +0 -0
  256. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/namespaces.py +0 -0
  257. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/placeholders.py +0 -0
  258. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/prepare.py +0 -0
  259. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/sequence.py +0 -0
  260. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/simple.py +0 -0
  261. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/text.py +0 -0
  262. {ommlds-0.0.0.dev463/ommlds/minichain/chat → ommlds-0.0.0.dev464/ommlds/minichain/content}/transforms/__init__.py +0 -0
  263. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/transforms/base.py +0 -0
  264. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/transforms/interleave.py +0 -0
  265. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/transforms/squeeze.py +0 -0
  266. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/transforms/stringify.py +0 -0
  267. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/transforms/strings.py +0 -0
  268. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/content/types.py +0 -0
  269. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/docs/__init__.py +0 -0
  270. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/docs/docs.py +0 -0
  271. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/docs/dtypes.py +0 -0
  272. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/docs/filters.py +0 -0
  273. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/envs.py +0 -0
  274. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/json.py +0 -0
  275. {ommlds-0.0.0.dev463/ommlds/minichain/content/transforms → ommlds-0.0.0.dev464/ommlds/minichain/lib}/__init__.py +0 -0
  276. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/bash.py +0 -0
  277. {ommlds-0.0.0.dev463/ommlds/minichain/lib → ommlds-0.0.0.dev464/ommlds/minichain/lib/code}/__init__.py +0 -0
  278. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/code/prompts.py +0 -0
  279. {ommlds-0.0.0.dev463/ommlds/minichain/lib/code → ommlds-0.0.0.dev464/ommlds/minichain/lib/fs}/__init__.py +0 -0
  280. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/binfiles.py +0 -0
  281. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/context.py +0 -0
  282. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/errors.py +0 -0
  283. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/suggestions.py +0 -0
  284. {ommlds-0.0.0.dev463/ommlds/minichain/lib/fs → ommlds-0.0.0.dev464/ommlds/minichain/lib/fs/tools}/__init__.py +0 -0
  285. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/tools/edit.py +0 -0
  286. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/tools/ls.py +0 -0
  287. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/tools/read.py +0 -0
  288. {ommlds-0.0.0.dev463/ommlds/minichain/lib/fs/tools → ommlds-0.0.0.dev464/ommlds/minichain/lib/fs/tools/recursivels}/__init__.py +0 -0
  289. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/tools/recursivels/execution.py +0 -0
  290. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/tools/recursivels/rendering.py +0 -0
  291. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/fs/tools/recursivels/running.py +0 -0
  292. {ommlds-0.0.0.dev463/ommlds/minichain/lib/fs/tools/recursivels → ommlds-0.0.0.dev464/ommlds/minichain/lib/todo}/__init__.py +0 -0
  293. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/todo/context.py +0 -0
  294. {ommlds-0.0.0.dev463/ommlds/minichain/lib/todo → ommlds-0.0.0.dev464/ommlds/minichain/lib/todo/tools}/__init__.py +0 -0
  295. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/todo/tools/read.py +0 -0
  296. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/todo/tools/write.py +0 -0
  297. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/lib/todo/types.py +0 -0
  298. {ommlds-0.0.0.dev463/ommlds/minichain/lib/todo/tools → ommlds-0.0.0.dev464/ommlds/minichain/llms}/__init__.py +0 -0
  299. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/llms/_marshal.py +0 -0
  300. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/llms/tokens.py +0 -0
  301. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/llms/types.py +0 -0
  302. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/metadata.py +0 -0
  303. {ommlds-0.0.0.dev463/ommlds/minichain/llms → ommlds-0.0.0.dev464/ommlds/minichain/models}/__init__.py +0 -0
  304. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/models/configs.py +0 -0
  305. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/models/names.py +0 -0
  306. {ommlds-0.0.0.dev463/ommlds/minichain/models → ommlds-0.0.0.dev464/ommlds/minichain/models/repos}/__init__.py +0 -0
  307. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/models/repos/resolving.py +0 -0
  308. {ommlds-0.0.0.dev463/ommlds/minichain/models/repos → ommlds-0.0.0.dev464/ommlds/minichain/registries}/__init__.py +0 -0
  309. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/registries/globals.py +0 -0
  310. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/registries/manifests.py +0 -0
  311. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/registries/registry.py +0 -0
  312. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/resources.py +0 -0
  313. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/search.py +0 -0
  314. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/__init__.py +0 -0
  315. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/_marshal.py +0 -0
  316. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/_origclasses.py +0 -0
  317. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/_typedvalues.py +0 -0
  318. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/facades.py +0 -0
  319. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/requests.py +0 -0
  320. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/responses.py +0 -0
  321. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/services/services.py +0 -0
  322. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/standard.py +0 -0
  323. {ommlds-0.0.0.dev463/ommlds/minichain/registries → ommlds-0.0.0.dev464/ommlds/minichain/stream}/__init__.py +0 -0
  324. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/stream/services.py +0 -0
  325. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/stream/wrap.py +0 -0
  326. {ommlds-0.0.0.dev463/ommlds/minichain/stream → ommlds-0.0.0.dev464/ommlds/minichain/text}/__init__.py +0 -0
  327. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/applypatch.py +0 -0
  328. {ommlds-0.0.0.dev463/ommlds/minichain/text → ommlds-0.0.0.dev464/ommlds/minichain/text/toolparsing}/__init__.py +0 -0
  329. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/base.py +0 -0
  330. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  331. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  332. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  333. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  334. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  335. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/llamacpp/types.py +0 -0
  336. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  337. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tokens/__init__.py +0 -0
  338. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tokens/specials.py +0 -0
  339. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tokens/tokenizers.py +0 -0
  340. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tokens/types.py +0 -0
  341. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tokens/vocabs.py +0 -0
  342. {ommlds-0.0.0.dev463/ommlds/minichain/text/toolparsing → ommlds-0.0.0.dev464/ommlds/minichain/tools}/__init__.py +0 -0
  343. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/_marshal.py +0 -0
  344. {ommlds-0.0.0.dev463/ommlds/minichain/tools → ommlds-0.0.0.dev464/ommlds/minichain/tools/execution}/__init__.py +0 -0
  345. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/execution/catalog.py +0 -0
  346. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/execution/context.py +0 -0
  347. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/execution/errors.py +0 -0
  348. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/execution/executors.py +0 -0
  349. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/execution/reflect.py +0 -0
  350. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/fns.py +0 -0
  351. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/jsonschema.py +0 -0
  352. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/reflect.py +0 -0
  353. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/tools/types.py +0 -0
  354. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/types.py +0 -0
  355. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/utils.py +0 -0
  356. {ommlds-0.0.0.dev463/ommlds/minichain/tools/execution → ommlds-0.0.0.dev464/ommlds/minichain/vectors}/__init__.py +0 -0
  357. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/_marshal.py +0 -0
  358. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/embeddings.py +0 -0
  359. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/index.py +0 -0
  360. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/search.py +0 -0
  361. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/similarity.py +0 -0
  362. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/stores.py +0 -0
  363. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/minichain/vectors/types.py +0 -0
  364. {ommlds-0.0.0.dev463/ommlds/minichain/vectors → ommlds-0.0.0.dev464/ommlds/server}/__init__.py +0 -0
  365. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/server/__main__.py +0 -0
  366. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/server/cli.py +0 -0
  367. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/server/client.py +0 -0
  368. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/server/server.py +0 -0
  369. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/server/service.py +0 -0
  370. {ommlds-0.0.0.dev463/ommlds/server → ommlds-0.0.0.dev464/ommlds/tools}/__init__.py +0 -0
  371. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/tools/git.py +0 -0
  372. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/tools/ocr.py +0 -0
  373. {ommlds-0.0.0.dev463/ommlds/tools → ommlds-0.0.0.dev464/ommlds/wiki}/__init__.py +0 -0
  374. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/analyze.py +0 -0
  375. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/convert.py +0 -0
  376. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/models.py +0 -0
  377. {ommlds-0.0.0.dev463/ommlds/wiki → ommlds-0.0.0.dev464/ommlds/wiki/text}/__init__.py +0 -0
  378. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/text/mfh.py +0 -0
  379. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/text/wtp.py +0 -0
  380. {ommlds-0.0.0.dev463/ommlds/wiki/text → ommlds-0.0.0.dev464/ommlds/wiki/utils}/__init__.py +0 -0
  381. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/utils/io.py +0 -0
  382. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/utils/progress.py +0 -0
  383. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/utils/xml.py +0 -0
  384. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds/wiki/xml.py +0 -0
  385. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds.egg-info/dependency_links.txt +0 -0
  386. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds.egg-info/entry_points.txt +0 -0
  387. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/ommlds.egg-info/top_level.txt +0 -0
  388. {ommlds-0.0.0.dev463 → ommlds-0.0.0.dev464}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev463
3
+ Version: 0.0.0.dev464
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.dev463
18
- Requires-Dist: omlish==0.0.0.dev463
17
+ Requires-Dist: omdev==0.0.0.dev464
18
+ Requires-Dist: omlish==0.0.0.dev464
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"
@@ -10,8 +10,6 @@ with lang.auto_proxy_import(globals()):
10
10
  from .backends import inject as backends_inj
11
11
  from .sessions import base as sessions_base
12
12
  from .sessions import inject as sessions_inj
13
- from .tools import config as tools_cfg
14
- from .tools import inject as tools_inj
15
13
 
16
14
 
17
15
  ##
@@ -33,7 +31,6 @@ def _provide_state_storage() -> 'state.StateStorage':
33
31
  def bind_main(
34
32
  *,
35
33
  session_cfg: 'sessions_base.Session.Config',
36
- tools_config: 'tools_cfg.ToolsConfig',
37
34
  enable_backend_strings: bool = False,
38
35
  ) -> inj.Elements:
39
36
  els: list[inj.Elemental] = [
@@ -42,8 +39,6 @@ def bind_main(
42
39
  ),
43
40
 
44
41
  sessions_inj.bind_sessions(session_cfg),
45
-
46
- tools_inj.bind_tools(tools_config),
47
42
  ]
48
43
 
49
44
  #
@@ -24,13 +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.code import CodeChatSession
28
- from .sessions.chat.interactive import InteractiveChatSession
29
- from .sessions.chat.prompt import PromptChatSession
30
- from .sessions.chat2.session import Chat2Session
27
+ from .sessions.chat.session import ChatSession
31
28
  from .sessions.completion.completion import CompletionSession
32
29
  from .sessions.embedding.embedding import EmbeddingSession
33
- from .tools.config import ToolsConfig
34
30
 
35
31
 
36
32
  if ta.TYPE_CHECKING:
@@ -57,6 +53,7 @@ async def _a_main(args: ta.Any = None) -> None:
57
53
  parser.add_argument('-C', '--completion', action='store_true')
58
54
 
59
55
  parser.add_argument('-n', '--new', action='store_true')
56
+ parser.add_argument('--ephemeral', action='store_true')
60
57
 
61
58
  parser.add_argument('-e', '--editor', action='store_true')
62
59
  parser.add_argument('-i', '--interactive', action='store_true')
@@ -67,8 +64,6 @@ async def _a_main(args: ta.Any = None) -> None:
67
64
  parser.add_argument('-E', '--embed', action='store_true')
68
65
  parser.add_argument('-j', '--image', action='store_true')
69
66
 
70
- parser.add_argument('-2', '--two', action='store_true')
71
-
72
67
  parser.add_argument('--enable-fs-tools', action='store_true')
73
68
  parser.add_argument('--enable-todo-tools', action='store_true')
74
69
  parser.add_argument('--enable-unsafe-tools-do-not-use-lol', action='store_true')
@@ -93,6 +88,7 @@ async def _a_main(args: ta.Any = None) -> None:
93
88
  elif args.interactive:
94
89
  if args.prompt:
95
90
  raise ValueError('Must not provide prompt')
91
+ content = None
96
92
 
97
93
  elif args.code:
98
94
  if args.prompt:
@@ -131,34 +127,7 @@ async def _a_main(args: ta.Any = None) -> None:
131
127
 
132
128
  session_cfg: Session.Config
133
129
 
134
- if args.two:
135
- session_cfg = Chat2Session.Config(
136
- backend=args.backend,
137
- model_name=args.model_name,
138
- state='ephemeral',
139
- initial_content=content, # noqa
140
- # dangerous_no_tool_confirmation=bool(args.dangerous_no_tool_confirmation),
141
- )
142
-
143
- elif args.interactive:
144
- session_cfg = InteractiveChatSession.Config(
145
- backend=args.backend,
146
- model_name=args.model_name,
147
- new=bool(args.new),
148
- dangerous_no_tool_confirmation=bool(args.dangerous_no_tool_confirmation),
149
- )
150
-
151
- elif args.code:
152
- session_cfg = CodeChatSession.Config(
153
- backend=args.backend,
154
- model_name=args.model_name,
155
- new=bool(args.new),
156
- dangerous_no_tool_confirmation=bool(args.dangerous_no_tool_confirmation),
157
- initial_message=content, # noqa
158
- markdown=bool(args.markdown),
159
- )
160
-
161
- elif args.embed:
130
+ if args.embed:
162
131
  session_cfg = EmbeddingSession.Config(
163
132
  check.not_none(content), # noqa
164
133
  backend=args.backend,
@@ -171,35 +140,38 @@ async def _a_main(args: ta.Any = None) -> None:
171
140
  )
172
141
 
173
142
  else:
174
- session_cfg = PromptChatSession.Config(
175
- check.not_none(content), # noqa
143
+ from ..minichain.lib.code.prompts import CODE_AGENT_SYSTEM_PROMPT
144
+
145
+ session_cfg = ChatSession.Config(
176
146
  backend=args.backend,
177
147
  model_name=args.model_name,
178
- new=bool(args.new),
179
- stream=bool(args.stream),
148
+ 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,
150
+ initial_user_content=content, # noqa
151
+ interactive=args.interactive,
180
152
  markdown=bool(args.markdown),
153
+ stream=bool(args.stream),
154
+ enable_tools=(
155
+ args.enable_fs_tools or
156
+ args.enable_todo_tools or
157
+ args.enable_unsafe_tools_do_not_use_lol or
158
+ args.enable_test_weather_tool or
159
+ args.code
160
+ ),
161
+ enabled_tools={
162
+ *(['fs'] if args.enable_fs_tools else []),
163
+ *(['todo'] if args.enable_todo_tools else []),
164
+ *(['weather'] if args.enable_test_weather_tool else []),
165
+ # FIXME: enable_unsafe_tools_do_not_use_lol
166
+ },
181
167
  dangerous_no_tool_confirmation=bool(args.dangerous_no_tool_confirmation),
182
168
  )
183
169
 
184
170
  #
185
171
 
186
- tools_config = ToolsConfig(
187
- enable_fs_tools=args.enable_fs_tools or args.code,
188
- enable_todo_tools=args.enable_todo_tools or args.code,
189
- enable_unsafe_tools_do_not_use_lol=args.enable_unsafe_tools_do_not_use_lol,
190
- enable_test_weather_tool=args.enable_test_weather_tool,
191
- )
192
-
193
- #
194
-
195
172
  with inj.create_managed_injector(bind_main(
196
173
  session_cfg=session_cfg,
197
- tools_config=tools_config,
198
- enable_backend_strings=isinstance(session_cfg, (
199
- Chat2Session.Config,
200
- CodeChatSession.Config,
201
- PromptChatSession.Config,
202
- )),
174
+ enable_backend_strings=isinstance(session_cfg, ChatSession.Config),
203
175
  )) as injector:
204
176
  await injector[Session].run()
205
177
 
@@ -20,7 +20,7 @@ class _CatalogBackendProvider(BackendProvider[ServiceT], lang.Abstract):
20
20
  self,
21
21
  *,
22
22
  name: BackendName,
23
- catalog: mc.BackendCatalog,
23
+ catalog: 'mc.BackendCatalog',
24
24
  configs: BackendConfigs | None = None,
25
25
  ) -> None:
26
26
  super().__init__()
@@ -41,16 +41,16 @@ class _CatalogBackendProvider(BackendProvider[ServiceT], lang.Abstract):
41
41
 
42
42
 
43
43
  class CatalogChatChoicesServiceBackendProvider(
44
- _CatalogBackendProvider[mc.ChatChoicesService],
44
+ _CatalogBackendProvider['mc.ChatChoicesService'],
45
45
  ChatChoicesServiceBackendProvider,
46
46
  ):
47
- def provide_backend(self) -> ta.AsyncContextManager[mc.ChatChoicesService]:
47
+ def provide_backend(self) -> ta.AsyncContextManager['mc.ChatChoicesService']:
48
48
  return self._provide_backend(mc.ChatChoicesService) # type: ignore[type-abstract]
49
49
 
50
50
 
51
51
  class CatalogChatChoicesStreamServiceBackendProvider(
52
- _CatalogBackendProvider[mc.ChatChoicesStreamService],
52
+ _CatalogBackendProvider['mc.ChatChoicesStreamService'],
53
53
  ChatChoicesStreamServiceBackendProvider,
54
54
  ):
55
- def provide_backend(self) -> ta.AsyncContextManager[mc.ChatChoicesStreamService]:
55
+ def provide_backend(self) -> ta.AsyncContextManager['mc.ChatChoicesStreamService']:
56
56
  return self._provide_backend(mc.ChatChoicesStreamService) # type: ignore[type-abstract]
@@ -0,0 +1,37 @@
1
+ from omlish import inject as inj
2
+ from omlish import lang
3
+
4
+ from .injection import backend_configs
5
+
6
+
7
+ with lang.auto_proxy_import(globals()):
8
+ from . import catalog as _catalog
9
+ from . import types as _types
10
+
11
+
12
+ ##
13
+
14
+
15
+ def bind_backends(
16
+ *,
17
+ backend: str | None = None,
18
+ ) -> inj.Elements:
19
+ els: list[inj.Elemental] = []
20
+
21
+ #
22
+
23
+ els.append(backend_configs().bind_items_provider(singleton=True))
24
+
25
+ #
26
+
27
+ if backend is not None:
28
+ els.append(inj.bind(_types.BackendName, to_const=backend))
29
+
30
+ els.extend([
31
+ inj.bind(_types.ChatChoicesServiceBackendProvider, to_ctor=_catalog.CatalogChatChoicesServiceBackendProvider, singleton=True), # noqa
32
+ inj.bind(_types.ChatChoicesStreamServiceBackendProvider, to_ctor=_catalog.CatalogChatChoicesStreamServiceBackendProvider, singleton=True), # noqa
33
+ ])
34
+
35
+ #
36
+
37
+ return inj.as_elements(*els)
@@ -0,0 +1,16 @@
1
+ from omlish import inject as inj
2
+ from omlish import lang
3
+
4
+ from ..... import minichain as mc
5
+
6
+
7
+ with lang.auto_proxy_import(globals()):
8
+ from . import types as _types
9
+
10
+
11
+ ##
12
+
13
+
14
+ @lang.cached_function
15
+ def backend_configs() -> 'inj.ItemsBinderHelper[mc.Config]':
16
+ return inj.items_binder_helper[mc.Config](_types.BackendConfigs)
@@ -13,7 +13,7 @@ ServiceT = ta.TypeVar('ServiceT', bound=mc.Service)
13
13
 
14
14
 
15
15
  BackendName = ta.NewType('BackendName', str)
16
- BackendConfigs = ta.NewType('BackendConfigs', ta.Sequence[mc.Config])
16
+ BackendConfigs = ta.NewType('BackendConfigs', ta.Sequence['mc.Config'])
17
17
 
18
18
 
19
19
  ##
@@ -28,9 +28,9 @@ class BackendProvider(lang.Abstract, ta.Generic[ServiceT]):
28
28
  ##
29
29
 
30
30
 
31
- class ChatChoicesServiceBackendProvider(BackendProvider[mc.ChatChoicesService], lang.Abstract):
31
+ class ChatChoicesServiceBackendProvider(BackendProvider['mc.ChatChoicesService'], lang.Abstract):
32
32
  pass
33
33
 
34
34
 
35
- class ChatChoicesStreamServiceBackendProvider(BackendProvider[mc.ChatChoicesStreamService], lang.Abstract):
35
+ class ChatChoicesStreamServiceBackendProvider(BackendProvider['mc.ChatChoicesStreamService'], lang.Abstract):
36
36
  pass
@@ -0,0 +1,81 @@
1
+ from omlish import inject as inj
2
+ from omlish import lang
3
+
4
+ from ...... import minichain as mc
5
+ from .injection import chat_options_providers
6
+
7
+
8
+ with lang.auto_proxy_import(globals()):
9
+ from . import rendering as _rendering
10
+ from . import services as _services
11
+ from . import tools as _tools
12
+ from . import types as _types
13
+
14
+
15
+ ##
16
+
17
+
18
+ def bind_ai(
19
+ *,
20
+ stream: bool = False,
21
+ silent: bool = False,
22
+ enable_tools: bool = False,
23
+ ) -> inj.Elements:
24
+ els: list[inj.Elemental] = []
25
+
26
+ #
27
+
28
+ els.append(chat_options_providers().bind_items_provider(singleton=True))
29
+
30
+ def _provide_chat_choices_options_provider(
31
+ ps: _services.ChatChoicesServiceOptionsProviders,
32
+ ) -> _services.ChatChoicesServiceOptionsProvider:
33
+ return _services.ChatChoicesServiceOptionsProvider(lambda: [o for p in ps for o in p()])
34
+
35
+ els.append(inj.bind(_provide_chat_choices_options_provider, singleton=True))
36
+
37
+ #
38
+
39
+ if stream:
40
+ ai_stack = inj.wrapper_binder_helper(_types.StreamAiChatGenerator)
41
+
42
+ els.append(ai_stack.push_bind(to_ctor=_services.ChatChoicesStreamServiceStreamAiChatGenerator, singleton=True))
43
+
44
+ if not silent:
45
+ els.append(ai_stack.push_bind(to_ctor=_rendering.RenderingStreamAiChatGenerator, singleton=True))
46
+
47
+ if enable_tools:
48
+ raise NotImplementedError
49
+
50
+ els.extend([
51
+ inj.bind(_types.StreamAiChatGenerator, to_key=ai_stack.top),
52
+ inj.bind(_types.AiChatGenerator, to_key=_types.StreamAiChatGenerator),
53
+ ])
54
+
55
+ else:
56
+ ai_stack = inj.wrapper_binder_helper(_types.AiChatGenerator)
57
+
58
+ els.append(ai_stack.push_bind(to_ctor=_services.ChatChoicesServiceAiChatGenerator, singleton=True))
59
+
60
+ if not silent:
61
+ els.append(ai_stack.push_bind(to_ctor=_rendering.RenderingAiChatGenerator, singleton=True))
62
+
63
+ if enable_tools:
64
+ els.append(ai_stack.push_bind(to_ctor=_tools.ToolExecutingAiChatGenerator, singleton=True))
65
+
66
+ els.append(inj.bind(_types.AiChatGenerator, to_key=ai_stack.top))
67
+
68
+ #
69
+
70
+ if enable_tools:
71
+ def _provide_tools_chat_choices_options_provider(tc: mc.ToolCatalog) -> _services.ChatChoicesServiceOptionsProvider: # noqa
72
+ return _services.ChatChoicesServiceOptionsProvider(lambda: [
73
+ mc.Tool(tce.spec)
74
+ for tce in tc.by_name.values()
75
+ ])
76
+
77
+ els.append(chat_options_providers().bind_item(to_fn=_provide_tools_chat_choices_options_provider, singleton=True)) # noqa
78
+
79
+ #
80
+
81
+ return inj.as_elements(*els)
@@ -0,0 +1,14 @@
1
+ from omlish import inject as inj
2
+ from omlish import lang
3
+
4
+
5
+ with lang.auto_proxy_import(globals()):
6
+ from . import services as _services
7
+
8
+
9
+ ##
10
+
11
+
12
+ @lang.cached_function
13
+ def chat_options_providers() -> 'inj.ItemsBinderHelper[_services.ChatChoicesServiceOptionsProvider]':
14
+ return inj.items_binder_helper[_services.ChatChoicesServiceOptionsProvider](_services.ChatChoicesServiceOptionsProviders) # noqa
@@ -4,6 +4,7 @@ from ...... import minichain as mc
4
4
  from ...content.messages import MessageContentExtractor
5
5
  from ...content.messages import MessageContentExtractorImpl
6
6
  from ...rendering.types import ContentRendering
7
+ from ...rendering.types import StreamContentRendering
7
8
  from .types import AiChatGenerator
8
9
  from .types import StreamAiChatGenerator
9
10
 
@@ -27,7 +28,7 @@ class RenderingAiChatGenerator(AiChatGenerator):
27
28
  self._extractor = extractor
28
29
  self._renderer = renderer
29
30
 
30
- async def get_next_ai_messages(self, chat: mc.Chat) -> mc.AiChat:
31
+ async def get_next_ai_messages(self, chat: 'mc.Chat') -> 'mc.Chat':
31
32
  out = await self._wrapped.get_next_ai_messages(chat)
32
33
 
33
34
  for msg in out:
@@ -43,7 +44,7 @@ class RenderingStreamAiChatGenerator(StreamAiChatGenerator):
43
44
  *,
44
45
  wrapped: StreamAiChatGenerator,
45
46
  extractor: MessageContentExtractor | None = None,
46
- renderer: ContentRendering,
47
+ renderer: StreamContentRendering,
47
48
  ) -> None:
48
49
  super().__init__()
49
50
 
@@ -55,13 +56,15 @@ class RenderingStreamAiChatGenerator(StreamAiChatGenerator):
55
56
 
56
57
  async def get_next_ai_messages_streamed(
57
58
  self,
58
- chat: mc.Chat,
59
- delta_callback: ta.Callable[[mc.AiChoiceDelta], ta.Awaitable[None]] | None = None,
60
- ) -> mc.AiChat:
61
- async def inner(delta: mc.AiChoiceDelta) -> None:
62
- # FIXME: render lol
59
+ chat: 'mc.Chat',
60
+ delta_callback: ta.Callable[['mc.AiChoiceDelta'], ta.Awaitable[None]] | None = None,
61
+ ) -> mc.Chat:
62
+ async with self._renderer.create_context() as renderer:
63
+ async def inner(delta: mc.AiChoiceDelta) -> None:
64
+ if isinstance(delta, mc.ContentAiChoiceDelta):
65
+ await renderer.render_content(delta.c)
63
66
 
64
- if delta_callback is not None:
65
- await delta_callback(delta)
67
+ if delta_callback is not None:
68
+ await delta_callback(delta)
66
69
 
67
- return await self._wrapped.get_next_ai_messages_streamed(chat, delta_callback=inner)
70
+ return await self._wrapped.get_next_ai_messages_streamed(chat, delta_callback=inner)
@@ -0,0 +1,81 @@
1
+ import typing as ta
2
+
3
+ from omlish import check
4
+ from omlish import lang
5
+
6
+ from ...... import minichain as mc
7
+ from ...backends.types import ChatChoicesServiceBackendProvider
8
+ from ...backends.types import ChatChoicesStreamServiceBackendProvider
9
+ from .types import AiChatGenerator
10
+ from .types import StreamAiChatGenerator
11
+
12
+
13
+ ##
14
+
15
+
16
+ class ChatChoicesServiceOptionsProvider(lang.Func0[ta.Sequence['mc.ChatChoicesOptions']]):
17
+ pass
18
+
19
+
20
+ ChatChoicesServiceOptionsProviders = ta.NewType('ChatChoicesServiceOptionsProviders', ta.Sequence[ChatChoicesServiceOptionsProvider]) # noqa
21
+
22
+
23
+ ##
24
+
25
+
26
+ class ChatChoicesServiceAiChatGenerator(AiChatGenerator):
27
+ def __init__(
28
+ self,
29
+ service_provider: ChatChoicesServiceBackendProvider,
30
+ *,
31
+ options: ChatChoicesServiceOptionsProvider | None = None,
32
+ ) -> None:
33
+ super().__init__()
34
+
35
+ self._service_provider = service_provider
36
+ self._options = options
37
+
38
+ async def get_next_ai_messages(self, chat: 'mc.Chat') -> 'mc.Chat':
39
+ opts = self._options() if self._options is not None else []
40
+
41
+ async with self._service_provider.provide_backend() as service:
42
+ resp = await service.invoke(mc.ChatChoicesRequest(chat, opts))
43
+
44
+ return check.single(resp.v).ms
45
+
46
+
47
+ class ChatChoicesStreamServiceStreamAiChatGenerator(StreamAiChatGenerator):
48
+ def __init__(
49
+ self,
50
+ service_provider: ChatChoicesStreamServiceBackendProvider,
51
+ *,
52
+ options: ChatChoicesServiceOptionsProvider | None = None,
53
+ ) -> None:
54
+ super().__init__()
55
+
56
+ self._service_provider = service_provider
57
+ self._options = options
58
+
59
+ async def get_next_ai_messages_streamed(
60
+ self,
61
+ chat: 'mc.Chat',
62
+ delta_callback: ta.Callable[['mc.AiChoiceDelta'], ta.Awaitable[None]] | None = None,
63
+ ) -> mc.AiChat:
64
+ opts = self._options() if self._options is not None else []
65
+
66
+ lst: list[str] = []
67
+
68
+ async with self._service_provider.provide_backend() as service:
69
+ async with (await service.invoke(mc.ChatChoicesStreamRequest(chat, opts))).v as st_resp:
70
+ async for o in st_resp:
71
+ choice = check.single(o.choices)
72
+
73
+ for delta in choice.deltas:
74
+ if delta_callback is not None:
75
+ await delta_callback(delta)
76
+
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))]
@@ -0,0 +1,44 @@
1
+ from ...... import minichain as mc
2
+ from ...tools.execution import ToolUseExecutor
3
+ from .types import AiChatGenerator
4
+
5
+
6
+ ##
7
+
8
+
9
+ class ToolExecutingAiChatGenerator(AiChatGenerator):
10
+ def __init__(
11
+ self,
12
+ *,
13
+ wrapped: AiChatGenerator,
14
+ executor: ToolUseExecutor,
15
+ ) -> None:
16
+ super().__init__()
17
+
18
+ self._wrapped = wrapped
19
+ self._executor = executor
20
+
21
+ async def get_next_ai_messages(self, chat: 'mc.Chat') -> 'mc.Chat':
22
+ out: list[mc.Message] = []
23
+
24
+ while True:
25
+ new = await self._wrapped.get_next_ai_messages([*chat, *out])
26
+
27
+ out.extend(new)
28
+
29
+ cont = False
30
+
31
+ for msg in new:
32
+ if isinstance(msg, mc.ToolUseMessage):
33
+ trm = await self._executor.execute_tool_use(
34
+ msg.tu,
35
+ # fs_tool_context,
36
+ # todo_tool_context, # noqa
37
+ )
38
+
39
+ out.append(trm)
40
+
41
+ cont = True
42
+
43
+ if not cont:
44
+ return out
@@ -11,18 +11,18 @@ from ...... import minichain as mc
11
11
 
12
12
  class AiChatGenerator(lang.Abstract):
13
13
  @abc.abstractmethod
14
- def get_next_ai_messages(self, chat: mc.Chat) -> ta.Awaitable[mc.AiChat]:
14
+ def get_next_ai_messages(self, chat: 'mc.Chat') -> ta.Awaitable['mc.Chat']:
15
15
  raise NotImplementedError
16
16
 
17
17
 
18
18
  class StreamAiChatGenerator(AiChatGenerator, lang.Abstract):
19
- def get_next_ai_messages(self, chat: mc.Chat) -> ta.Awaitable[mc.AiChat]:
19
+ def get_next_ai_messages(self, chat: 'mc.Chat') -> ta.Awaitable['mc.Chat']:
20
20
  return self.get_next_ai_messages_streamed(chat)
21
21
 
22
22
  @abc.abstractmethod
23
23
  def get_next_ai_messages_streamed(
24
24
  self,
25
- chat: mc.Chat,
26
- delta_callback: ta.Callable[[mc.AiChoiceDelta], ta.Awaitable[None]] | None = None,
27
- ) -> ta.Awaitable[mc.AiChat]:
25
+ chat: 'mc.Chat',
26
+ delta_callback: ta.Callable[['mc.AiChoiceDelta'], ta.Awaitable[None]] | None = None,
27
+ ) -> ta.Awaitable['mc.Chat']:
28
28
  raise NotImplementedError
@@ -0,0 +1,40 @@
1
+ import typing as ta
2
+
3
+ from omlish import inject as inj
4
+ from omlish import lang
5
+
6
+ from ...phases.injection import phase_callbacks
7
+ from ...phases.types import ChatPhase
8
+ from ...phases.types import ChatPhaseCallback
9
+
10
+
11
+ with lang.auto_proxy_import(globals()):
12
+ from . import inmemory as _inmemory
13
+ from . import storage as _storage
14
+ from . import types as _types
15
+
16
+
17
+ ##
18
+
19
+
20
+ def bind_state(
21
+ *,
22
+ state: ta.Literal['new', 'continue', 'ephemeral'] = 'continue',
23
+ ) -> inj.Elements:
24
+ els: list[inj.Elemental] = []
25
+
26
+ if state in ('continue', 'new'):
27
+ els.append(inj.bind(_types.ChatStateManager, to_ctor=_storage.StateStorageChatStateManager, singleton=True))
28
+
29
+ if state == 'new':
30
+ els.append(phase_callbacks().bind_item(to_fn=lang.typed_lambda(cm=_types.ChatStateManager)(
31
+ lambda cm: ChatPhaseCallback(ChatPhase.STARTING, cm.clear_state),
32
+ )))
33
+
34
+ elif state == 'ephemeral':
35
+ els.append(inj.bind(_types.ChatStateManager, to_ctor=_inmemory.InMemoryChatStateManager, singleton=True))
36
+
37
+ else:
38
+ raise TypeError(state)
39
+
40
+ return inj.as_elements(*els)
@@ -25,7 +25,7 @@ class InMemoryChatStateManager(ChatStateManager):
25
25
  self._state = ChatState()
26
26
  return self._state
27
27
 
28
- async def extend_chat(self, chat_additions: mc.Chat) -> ChatState:
28
+ async def extend_chat(self, chat_additions: 'mc.Chat') -> ChatState:
29
29
  self._state = dc.replace(
30
30
  self._state,
31
31
  chat=[*self._state.chat, *chat_additions],
@@ -41,7 +41,7 @@ class StateStorageChatStateManager(ChatStateManager):
41
41
  self._state = state
42
42
  return state
43
43
 
44
- async def extend_chat(self, chat_additions: mc.Chat) -> ChatState:
44
+ async def extend_chat(self, chat_additions: 'mc.Chat') -> ChatState:
45
45
  state = await self.get_state()
46
46
  state = dc.replace(
47
47
  state,
@@ -34,5 +34,5 @@ class ChatStateManager(lang.Abstract):
34
34
  raise NotImplementedError
35
35
 
36
36
  @abc.abstractmethod
37
- def extend_chat(self, chat_additions: mc.Chat) -> ta.Awaitable[ChatState]:
37
+ def extend_chat(self, chat_additions: 'mc.Chat') -> ta.Awaitable[ChatState]:
38
38
  raise NotImplementedError