ommlds 0.0.0.dev499__tar.gz → 0.0.0.dev500__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. {ommlds-0.0.0.dev499/ommlds.egg-info → ommlds-0.0.0.dev500}/PKG-INFO +6 -6
  2. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/.omlish-manifests.json +2 -2
  3. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/__about__.py +1 -1
  4. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/sse/events.py +2 -0
  5. ommlds-0.0.0.dev500/ommlds/backends/groq/clients.py +9 -0
  6. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/groq/chat.py +2 -0
  7. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/groq/stream.py +2 -0
  8. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/wrappers/firstinwins.py +28 -1
  9. ommlds-0.0.0.dev500/ommlds/minichain/wrappers/retry.py +147 -0
  10. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500/ommlds.egg-info}/PKG-INFO +6 -6
  11. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds.egg-info/SOURCES.txt +1 -0
  12. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds.egg-info/requires.txt +5 -5
  13. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/pyproject.toml +6 -6
  14. ommlds-0.0.0.dev499/ommlds/minichain/wrappers/retry.py +0 -78
  15. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/LICENSE +0 -0
  16. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/MANIFEST.in +0 -0
  17. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/README.md +0 -0
  18. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/README.md +0 -0
  19. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/__init__.py +0 -0
  20. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/_hacks/__init__.py +0 -0
  21. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/_hacks/funcs.py +0 -0
  22. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/_hacks/names.py +0 -0
  23. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/_hacks/params.py +0 -0
  24. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/_hacks/patches.py +0 -0
  25. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/__init__.py +0 -0
  26. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/__init__.py +0 -0
  27. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  28. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/_dataclasses.py +0 -0
  29. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/_marshal.py +0 -0
  30. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  31. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/sse/_marshal.py +0 -0
  32. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  33. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/anthropic/protocol/types.py +0 -0
  34. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/cerebras/__init__.py +0 -0
  35. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/cerebras/_dataclasses.py +0 -0
  36. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/cerebras/_marshal.py +0 -0
  37. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/cerebras/protocol.py +0 -0
  38. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/google/__init__.py +0 -0
  39. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/google/protocol/__init__.py +0 -0
  40. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/google/protocol/_dataclasses.py +0 -0
  41. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/google/protocol/_marshal.py +0 -0
  42. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/google/protocol/types.py +0 -0
  43. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/groq/__init__.py +0 -0
  44. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/groq/_dataclasses.py +0 -0
  45. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/groq/_marshal.py +0 -0
  46. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/groq/protocol.py +0 -0
  47. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/huggingface.py +0 -0
  48. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/llamacpp/__init__.py +0 -0
  49. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  50. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/llamacpp/logging.py +0 -0
  51. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/__init__.py +0 -0
  52. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/__main__.py +0 -0
  53. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/caching.py +0 -0
  54. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/cli.py +0 -0
  55. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/generation.py +0 -0
  56. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/limits.py +0 -0
  57. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/loading.py +0 -0
  58. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  59. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  60. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/detokenization/__init__.py +0 -0
  61. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  62. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  63. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  64. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  65. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  66. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  67. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/mlx/tokenization/types.py +0 -0
  68. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/ollama/__init__.py +0 -0
  69. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/ollama/_dataclasses.py +0 -0
  70. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/ollama/protocol.py +0 -0
  71. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/__init__.py +0 -0
  72. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/__init__.py +0 -0
  73. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/_common.py +0 -0
  74. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/_dataclasses.py +0 -0
  75. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/_marshal.py +0 -0
  76. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/__init__.py +0 -0
  77. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  78. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  79. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  80. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  81. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  82. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  83. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  84. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  85. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tavily/__init__.py +0 -0
  86. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tavily/_dataclasses.py +0 -0
  87. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tavily/protocol.py +0 -0
  88. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/__init__.py +0 -0
  89. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  90. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/__init__.py +0 -0
  91. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  92. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  93. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  94. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  95. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  96. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  97. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  98. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  99. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  100. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  101. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  102. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  103. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  104. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  105. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  106. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  107. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  108. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  109. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/torch/__init__.py +0 -0
  110. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/torch/backends.py +0 -0
  111. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/torch/devices.py +0 -0
  112. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/torch/purge.py +0 -0
  113. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/transformers/__init__.py +0 -0
  114. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/transformers/filecache.py +0 -0
  115. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/backends/transformers/streamers.py +0 -0
  116. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/__init__.py +0 -0
  117. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/__main__.py +0 -0
  118. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/_dataclasses.py +0 -0
  119. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/asyncs.py +0 -0
  120. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/__init__.py +0 -0
  121. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/catalog.py +0 -0
  122. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/configs.py +0 -0
  123. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/inject.py +0 -0
  124. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/injection.py +0 -0
  125. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/meta.py +0 -0
  126. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/backends/types.py +0 -0
  127. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/content/__init__.py +0 -0
  128. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/content/messages.py +0 -0
  129. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/content/strings.py +0 -0
  130. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/inject.py +0 -0
  131. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/inputs/__init__.py +0 -0
  132. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/inputs/asyncs.py +0 -0
  133. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/inputs/sync.py +0 -0
  134. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/main.py +0 -0
  135. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/rendering/__init__.py +0 -0
  136. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/rendering/configs.py +0 -0
  137. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/rendering/inject.py +0 -0
  138. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/rendering/markdown.py +0 -0
  139. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/rendering/raw.py +0 -0
  140. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/rendering/types.py +0 -0
  141. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/secrets.py +0 -0
  142. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/__init__.py +0 -0
  143. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/base.py +0 -0
  144. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/__init__.py +0 -0
  145. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/configs.py +0 -0
  146. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/__init__.py +0 -0
  147. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/__init__.py +0 -0
  148. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/configs.py +0 -0
  149. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/events.py +0 -0
  150. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/inject.py +0 -0
  151. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/injection.py +0 -0
  152. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/rendering.py +0 -0
  153. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/services.py +0 -0
  154. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/tools.py +0 -0
  155. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/ai/types.py +0 -0
  156. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/configs.py +0 -0
  157. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/events/__init__.py +0 -0
  158. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/events/inject.py +0 -0
  159. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/events/injection.py +0 -0
  160. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/events/manager.py +0 -0
  161. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/events/types.py +0 -0
  162. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/impl.py +0 -0
  163. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/inject.py +0 -0
  164. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/phases/__init__.py +0 -0
  165. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/phases/inject.py +0 -0
  166. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/phases/injection.py +0 -0
  167. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/phases/manager.py +0 -0
  168. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/phases/types.py +0 -0
  169. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/__init__.py +0 -0
  170. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/configs.py +0 -0
  171. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/ids.py +0 -0
  172. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/inject.py +0 -0
  173. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/inmemory.py +0 -0
  174. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/storage.py +0 -0
  175. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/state/types.py +0 -0
  176. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/__init__.py +0 -0
  177. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/configs.py +0 -0
  178. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/confirmation.py +0 -0
  179. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/errorhandling.py +0 -0
  180. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/execution.py +0 -0
  181. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/fs/__init__.py +0 -0
  182. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/fs/configs.py +0 -0
  183. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/fs/inject.py +0 -0
  184. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/inject.py +0 -0
  185. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/injection.py +0 -0
  186. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/rendering.py +0 -0
  187. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/todo/__init__.py +0 -0
  188. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/todo/configs.py +0 -0
  189. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/todo/inject.py +0 -0
  190. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/weather/__init__.py +0 -0
  191. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/weather/configs.py +0 -0
  192. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/weather/inject.py +0 -0
  193. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/tools/weather/tools.py +0 -0
  194. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/types.py +0 -0
  195. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/user/__init__.py +0 -0
  196. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/user/configs.py +0 -0
  197. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/drivers/user/inject.py +0 -0
  198. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/__init__.py +0 -0
  199. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/__init__.py +0 -0
  200. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/base.py +0 -0
  201. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/configs.py +0 -0
  202. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/inject.py +0 -0
  203. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/injection.py +0 -0
  204. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/manager.py +0 -0
  205. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/simple.py +0 -0
  206. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/commands/types.py +0 -0
  207. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/configs.py +0 -0
  208. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/facade.py +0 -0
  209. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/inject.py +0 -0
  210. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/facades/ui.py +0 -0
  211. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/inject.py +0 -0
  212. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/__init__.py +0 -0
  213. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/bare/__init__.py +0 -0
  214. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/bare/configs.py +0 -0
  215. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/bare/inject.py +0 -0
  216. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/bare/interactive.py +0 -0
  217. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/bare/oneshot.py +0 -0
  218. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/bare/tools.py +0 -0
  219. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/base.py +0 -0
  220. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/configs.py +0 -0
  221. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/inject.py +0 -0
  222. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/__init__.py +0 -0
  223. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/app.py +0 -0
  224. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/configs.py +0 -0
  225. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/facades.py +0 -0
  226. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/inject.py +0 -0
  227. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/interface.py +0 -0
  228. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/styles/__init__.py +0 -0
  229. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/styles/input.tcss +0 -0
  230. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/styles/markdown.tcss +0 -0
  231. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/styles/messages.tcss +0 -0
  232. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/tools.py +0 -0
  233. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/widgets/__init__.py +0 -0
  234. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/widgets/input.py +0 -0
  235. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/interfaces/textual/widgets/messages.py +0 -0
  236. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/chat/session.py +0 -0
  237. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/completion/__init__.py +0 -0
  238. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/completion/configs.py +0 -0
  239. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/completion/inject.py +0 -0
  240. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/completion/session.py +0 -0
  241. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/configs.py +0 -0
  242. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/embedding/__init__.py +0 -0
  243. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/embedding/configs.py +0 -0
  244. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/embedding/inject.py +0 -0
  245. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/embedding/session.py +0 -0
  246. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/sessions/inject.py +0 -0
  247. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/state/__init__.py +0 -0
  248. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/state/inject.py +0 -0
  249. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/cli/state/storage.py +0 -0
  250. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/datasets/__init__.py +0 -0
  251. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/datasets/lib/__init__.py +0 -0
  252. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/datasets/lib/movies.py +0 -0
  253. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/__init__.py +0 -0
  254. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/_dataclasses.py +0 -0
  255. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/_marshal.py +0 -0
  256. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/_typedvalues.py +0 -0
  257. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/__init__.py +0 -0
  258. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/catalogs/__init__.py +0 -0
  259. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/catalogs/base.py +0 -0
  260. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/catalogs/simple.py +0 -0
  261. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/catalogs/strings.py +0 -0
  262. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/__init__.py +0 -0
  263. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/anthropic/__init__.py +0 -0
  264. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/anthropic/chat.py +0 -0
  265. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  266. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/anthropic/protocol.py +0 -0
  267. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/anthropic/stream.py +0 -0
  268. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/cerebras/__init__.py +0 -0
  269. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/cerebras/chat.py +0 -0
  270. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/cerebras/names.py +0 -0
  271. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/cerebras/protocol.py +0 -0
  272. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/cerebras/stream.py +0 -0
  273. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/duckduckgo/__init__.py +0 -0
  274. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  275. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/dummy/__init__.py +0 -0
  276. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/dummy/chat.py +0 -0
  277. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/google/__init__.py +0 -0
  278. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/google/chat.py +0 -0
  279. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/google/names.py +0 -0
  280. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/google/search.py +0 -0
  281. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/google/stream.py +0 -0
  282. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/google/tools.py +0 -0
  283. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/groq/__init__.py +0 -0
  284. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/groq/names.py +0 -0
  285. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/groq/protocol.py +0 -0
  286. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/huggingface/__init__.py +0 -0
  287. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  288. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/huggingface/repos.py +0 -0
  289. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/llamacpp/__init__.py +0 -0
  290. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  291. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  292. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  293. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/llamacpp/stream.py +0 -0
  294. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/mistral.py +0 -0
  295. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/mlx/__init__.py +0 -0
  296. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/mlx/chat.py +0 -0
  297. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/ollama/__init__.py +0 -0
  298. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/ollama/chat.py +0 -0
  299. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/ollama/protocol.py +0 -0
  300. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/__init__.py +0 -0
  301. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  302. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  303. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  304. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/format.py +0 -0
  305. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/names.py +0 -0
  306. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/openai/stream.py +0 -0
  307. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/sentencepiece/__init__.py +0 -0
  308. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  309. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  310. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/tavily.py +0 -0
  311. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/tinygrad/__init__.py +0 -0
  312. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/tinygrad/chat.py +0 -0
  313. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/tokenizers/__init__.py +0 -0
  314. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  315. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/transformers/__init__.py +0 -0
  316. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  317. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  318. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/impls/transformers/transformers.py +0 -0
  319. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/strings/__init__.py +0 -0
  320. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/strings/manifests.py +0 -0
  321. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/strings/parsing.py +0 -0
  322. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/backends/strings/resolving.py +0 -0
  323. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/__init__.py +0 -0
  324. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/_marshal.py +0 -0
  325. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/__init__.py +0 -0
  326. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/adapters.py +0 -0
  327. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/services.py +0 -0
  328. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/stream/__init__.py +0 -0
  329. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/stream/adapters.py +0 -0
  330. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/stream/joining.py +0 -0
  331. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/stream/services.py +0 -0
  332. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/stream/types.py +0 -0
  333. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/choices/types.py +0 -0
  334. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/content.py +0 -0
  335. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/formats.py +0 -0
  336. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/history.py +0 -0
  337. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/messages.py +0 -0
  338. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/metadata.py +0 -0
  339. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/services.py +0 -0
  340. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/stream/__init__.py +0 -0
  341. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/stream/_marshal.py +0 -0
  342. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/stream/joining.py +0 -0
  343. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/stream/services.py +0 -0
  344. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/stream/types.py +0 -0
  345. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/templating.py +0 -0
  346. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/tools/__init__.py +0 -0
  347. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/tools/execution.py +0 -0
  348. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/tools/ids.py +0 -0
  349. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/tools/parsing.py +0 -0
  350. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/tools/types.py +0 -0
  351. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/transforms/__init__.py +0 -0
  352. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/transforms/base.py +0 -0
  353. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  354. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/transforms/services.py +0 -0
  355. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/chat/types.py +0 -0
  356. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/completion.py +0 -0
  357. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/configs.py +0 -0
  358. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/__init__.py +0 -0
  359. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/_marshal.py +0 -0
  360. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/code.py +0 -0
  361. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/composite.py +0 -0
  362. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/content.py +0 -0
  363. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/dynamic.py +0 -0
  364. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/emphasis.py +0 -0
  365. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/images.py +0 -0
  366. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/json.py +0 -0
  367. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/link.py +0 -0
  368. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/markdown.py +0 -0
  369. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/metadata.py +0 -0
  370. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/namespaces.py +0 -0
  371. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/placeholders.py +0 -0
  372. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/quote.py +0 -0
  373. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/raw.py +0 -0
  374. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/recursive.py +0 -0
  375. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/section.py +0 -0
  376. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/sequence.py +0 -0
  377. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/standard.py +0 -0
  378. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/tag.py +0 -0
  379. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/templates.py +0 -0
  380. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/text.py +0 -0
  381. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/__init__.py +0 -0
  382. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/json.py +0 -0
  383. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/markdown.py +0 -0
  384. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/materialize.py +0 -0
  385. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/metadata.py +0 -0
  386. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/prepare.py +0 -0
  387. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/recursive.py +0 -0
  388. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/standard.py +0 -0
  389. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/stringify.py +0 -0
  390. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/strings.py +0 -0
  391. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/transform/templates.py +0 -0
  392. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/content/visitors.py +0 -0
  393. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/docs/__init__.py +0 -0
  394. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/docs/docs.py +0 -0
  395. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/docs/dtypes.py +0 -0
  396. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/docs/filters.py +0 -0
  397. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/envs.py +0 -0
  398. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/json.py +0 -0
  399. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/__init__.py +0 -0
  400. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/bash.py +0 -0
  401. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/code/__init__.py +0 -0
  402. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/code/prompts.py +0 -0
  403. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/__init__.py +0 -0
  404. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/binfiles.py +0 -0
  405. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/context.py +0 -0
  406. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/errors.py +0 -0
  407. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/suggestions.py +0 -0
  408. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/__init__.py +0 -0
  409. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/edit.py +0 -0
  410. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/ls.py +0 -0
  411. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/read.py +0 -0
  412. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/recursivels/__init__.py +0 -0
  413. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/recursivels/execution.py +0 -0
  414. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/recursivels/rendering.py +0 -0
  415. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/fs/tools/recursivels/running.py +0 -0
  416. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/todo/__init__.py +0 -0
  417. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/todo/context.py +0 -0
  418. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/todo/tools/__init__.py +0 -0
  419. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/todo/tools/read.py +0 -0
  420. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/todo/tools/write.py +0 -0
  421. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/lib/todo/types.py +0 -0
  422. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/llms/__init__.py +0 -0
  423. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/llms/_marshal.py +0 -0
  424. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/llms/tokens.py +0 -0
  425. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/llms/types.py +0 -0
  426. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/metadata.py +0 -0
  427. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/models/__init__.py +0 -0
  428. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/models/configs.py +0 -0
  429. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/models/names.py +0 -0
  430. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/models/repos/__init__.py +0 -0
  431. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/models/repos/resolving.py +0 -0
  432. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/registries/__init__.py +0 -0
  433. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/registries/globals.py +0 -0
  434. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/registries/manifests.py +0 -0
  435. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/registries/registry.py +0 -0
  436. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/resources.py +0 -0
  437. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/search.py +0 -0
  438. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/__init__.py +0 -0
  439. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/_marshal.py +0 -0
  440. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/_origclasses.py +0 -0
  441. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/_typedvalues.py +0 -0
  442. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/facades.py +0 -0
  443. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/requests.py +0 -0
  444. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/responses.py +0 -0
  445. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/services/services.py +0 -0
  446. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/standard.py +0 -0
  447. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/stream/__init__.py +0 -0
  448. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/stream/services.py +0 -0
  449. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/stream/wrap.py +0 -0
  450. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/__init__.py +0 -0
  451. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/applypatch.py +0 -0
  452. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/__init__.py +0 -0
  453. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/base.py +0 -0
  454. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  455. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  456. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  457. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  458. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  459. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/llamacpp/types.py +0 -0
  460. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  461. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tokens/__init__.py +0 -0
  462. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tokens/specials.py +0 -0
  463. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tokens/tokenizers.py +0 -0
  464. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tokens/types.py +0 -0
  465. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tokens/vocabs.py +0 -0
  466. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/__init__.py +0 -0
  467. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/_marshal.py +0 -0
  468. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/__init__.py +0 -0
  469. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/catalog.py +0 -0
  470. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/context.py +0 -0
  471. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/errorhandling.py +0 -0
  472. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/errors.py +0 -0
  473. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/executors.py +0 -0
  474. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/execution/reflect.py +0 -0
  475. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/fns.py +0 -0
  476. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/jsonschema.py +0 -0
  477. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/reflect.py +0 -0
  478. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/tools/types.py +0 -0
  479. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/types.py +0 -0
  480. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/utils.py +0 -0
  481. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/__init__.py +0 -0
  482. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/_marshal.py +0 -0
  483. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/embeddings.py +0 -0
  484. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/index.py +0 -0
  485. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/search.py +0 -0
  486. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/similarity.py +0 -0
  487. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/stores.py +0 -0
  488. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/vectors/types.py +0 -0
  489. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/wrappers/__init__.py +0 -0
  490. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/wrappers/services.py +0 -0
  491. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/minichain/wrappers/stream.py +0 -0
  492. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/nanochat/LICENSE +0 -0
  493. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/nanochat/__init__.py +0 -0
  494. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/nanochat/rustbpe/LICENSE +0 -0
  495. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/nanochat/rustbpe/README.md +0 -0
  496. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/nanochat/tokenizers.py +0 -0
  497. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/server/__init__.py +0 -0
  498. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/server/__main__.py +0 -0
  499. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/server/cli.py +0 -0
  500. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/server/client.py +0 -0
  501. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/server/server.py +0 -0
  502. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/server/service.py +0 -0
  503. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/specs/__init__.py +0 -0
  504. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/specs/mcp/__init__.py +0 -0
  505. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/specs/mcp/_marshal.py +0 -0
  506. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/specs/mcp/clients.py +0 -0
  507. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/specs/mcp/protocol.py +0 -0
  508. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/tools/__init__.py +0 -0
  509. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/tools/git.py +0 -0
  510. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/tools/ocr.py +0 -0
  511. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/__init__.py +0 -0
  512. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/analyze.py +0 -0
  513. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/convert.py +0 -0
  514. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/models.py +0 -0
  515. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/text/__init__.py +0 -0
  516. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/text/mfh.py +0 -0
  517. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/text/wtp.py +0 -0
  518. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/utils/__init__.py +0 -0
  519. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/utils/io.py +0 -0
  520. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/utils/progress.py +0 -0
  521. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/utils/xml.py +0 -0
  522. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds/wiki/xml.py +0 -0
  523. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds.egg-info/dependency_links.txt +0 -0
  524. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds.egg-info/entry_points.txt +0 -0
  525. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/ommlds.egg-info/top_level.txt +0 -0
  526. {ommlds-0.0.0.dev499 → ommlds-0.0.0.dev500}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev499
3
+ Version: 0.0.0.dev500
4
4
  Summary: ommlds
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,9 +14,9 @@ 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: omlish==0.0.0.dev499
17
+ Requires-Dist: omlish==0.0.0.dev500
18
18
  Provides-Extra: all
19
- Requires-Dist: omdev==0.0.0.dev499; extra == "all"
19
+ Requires-Dist: omdev==0.0.0.dev500; extra == "all"
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.30; sys_platform == "darwin" and extra == "all"
22
22
  Requires-Dist: mlx-lm~=0.29; sys_platform == "darwin" and extra == "all"
@@ -32,13 +32,13 @@ Requires-Dist: regex>=2025.0; extra == "all"
32
32
  Requires-Dist: numpy>=1.26; extra == "all"
33
33
  Requires-Dist: pytesseract~=0.3; extra == "all"
34
34
  Requires-Dist: rapidocr-onnxruntime~=1.4; extra == "all"
35
- Requires-Dist: pillow~=12.0; extra == "all"
35
+ Requires-Dist: pillow~=12.1; extra == "all"
36
36
  Requires-Dist: ddgs~=9.10; extra == "all"
37
37
  Requires-Dist: mwparserfromhell~=0.7; extra == "all"
38
38
  Requires-Dist: wikitextparser~=0.56; extra == "all"
39
39
  Requires-Dist: lxml>=5.3; python_version < "3.13" and extra == "all"
40
40
  Provides-Extra: omdev
41
- Requires-Dist: omdev==0.0.0.dev499; extra == "omdev"
41
+ Requires-Dist: omdev==0.0.0.dev500; extra == "omdev"
42
42
  Provides-Extra: backends
43
43
  Requires-Dist: llama-cpp-python~=0.3; extra == "backends"
44
44
  Requires-Dist: mlx~=0.30; sys_platform == "darwin" and extra == "backends"
@@ -60,7 +60,7 @@ Provides-Extra: ocr
60
60
  Requires-Dist: pytesseract~=0.3; extra == "ocr"
61
61
  Requires-Dist: rapidocr-onnxruntime~=1.4; extra == "ocr"
62
62
  Provides-Extra: pillow
63
- Requires-Dist: pillow~=12.0; extra == "pillow"
63
+ Requires-Dist: pillow~=12.1; extra == "pillow"
64
64
  Provides-Extra: search
65
65
  Requires-Dist: ddgs~=9.10; extra == "search"
66
66
  Provides-Extra: wiki
@@ -252,7 +252,7 @@
252
252
  "module": ".minichain.backends.impls.groq.chat",
253
253
  "attr": null,
254
254
  "file": "ommlds/minichain/backends/impls/groq/chat.py",
255
- "line": 26,
255
+ "line": 27,
256
256
  "value": {
257
257
  "!.minichain.registries.manifests.RegistryManifest": {
258
258
  "module": "ommlds.minichain.backends.impls.groq.chat",
@@ -291,7 +291,7 @@
291
291
  "module": ".minichain.backends.impls.groq.stream",
292
292
  "attr": null,
293
293
  "file": "ommlds/minichain/backends/impls/groq/stream.py",
294
- "line": 33,
294
+ "line": 34,
295
295
  "value": {
296
296
  "!.minichain.registries.manifests.RegistryManifest": {
297
297
  "module": "ommlds.minichain.backends.impls.groq.stream",
@@ -59,7 +59,7 @@ class Project(ProjectBase):
59
59
  ],
60
60
 
61
61
  'pillow': [
62
- 'pillow ~= 12.0',
62
+ 'pillow ~= 12.1',
63
63
  ],
64
64
 
65
65
  'search': [
@@ -56,6 +56,8 @@ class AnthropicSseDecoderEvents(lang.Namespace):
56
56
  delta: Delta
57
57
  usage: Usage
58
58
 
59
+ context_management: ta.Mapping[str, ta.Any] | None = None
60
+
59
61
  @dc.dataclass(frozen=True)
60
62
  class MessageStop(MessageEvent):
61
63
  pass
@@ -0,0 +1,9 @@
1
+ import typing as ta
2
+
3
+
4
+ ##
5
+
6
+
7
+ REQUIRED_HTTP_HEADERS: ta.Mapping[bytes, bytes] = {
8
+ b'User-Agent': b'python-httpx/0.28.1', # required or it 403's lol
9
+ }
@@ -7,6 +7,7 @@ from omlish.formats import json
7
7
  from omlish.http import all as http
8
8
 
9
9
  from .....backends.groq import protocol as pt
10
+ from .....backends.groq.clients import REQUIRED_HTTP_HEADERS
10
11
  from ....chat.choices.services import ChatChoicesRequest
11
12
  from ....chat.choices.services import ChatChoicesResponse
12
13
  from ....chat.choices.services import static_check_is_chat_choices_service
@@ -65,6 +66,7 @@ class GroqChatChoicesService:
65
66
  headers={
66
67
  http.consts.HEADER_CONTENT_TYPE: http.consts.CONTENT_TYPE_JSON,
67
68
  http.consts.HEADER_AUTH: http.consts.format_bearer_auth_header(check.not_none(self._api_key).reveal()),
69
+ **REQUIRED_HTTP_HEADERS,
68
70
  },
69
71
  data=json.dumps(raw_request).encode('utf-8'),
70
72
  client=self._http_client,
@@ -9,6 +9,7 @@ from omlish.http import sse
9
9
  from omlish.io.buffers import DelimitingBuffer
10
10
 
11
11
  from .....backends.groq import protocol as pt
12
+ from .....backends.groq.clients import REQUIRED_HTTP_HEADERS
12
13
  from ....chat.choices.services import ChatChoicesOutputs
13
14
  from ....chat.choices.stream.services import ChatChoicesStreamRequest
14
15
  from ....chat.choices.stream.services import ChatChoicesStreamResponse
@@ -72,6 +73,7 @@ class GroqChatChoicesStreamService:
72
73
  headers={
73
74
  http.consts.HEADER_CONTENT_TYPE: http.consts.CONTENT_TYPE_JSON,
74
75
  http.consts.HEADER_AUTH: http.consts.format_bearer_auth_header(check.not_none(self._api_key).reveal()),
76
+ **REQUIRED_HTTP_HEADERS,
75
77
  },
76
78
  data=json.dumps(raw_request).encode('utf-8'),
77
79
  )
@@ -17,12 +17,20 @@ from .services import WrappedRequest
17
17
  from .services import WrappedRequestV
18
18
  from .services import WrappedResponse
19
19
  from .services import WrappedResponseV
20
+ from .stream import WrappedStreamOutputT
21
+ from .stream import WrapperStreamService
20
22
 
21
23
 
22
24
  with lang.auto_proxy_import(globals()):
23
25
  import asyncio
24
26
 
25
27
 
28
+ AnyFirstInWinsService: ta.TypeAlias = ta.Union[
29
+ 'FirstInWinsService',
30
+ 'FirstInWinsStreamService',
31
+ ]
32
+
33
+
26
34
  ##
27
35
 
28
36
 
@@ -37,11 +45,14 @@ class FirstInWinsServiceExceptionGroup(ExceptionGroup):
37
45
 
38
46
  @dc.dataclass(frozen=True)
39
47
  class FirstInWinsServiceOutput(Output):
40
- first_in_wins_service: 'FirstInWinsService'
48
+ first_in_wins_service: AnyFirstInWinsService
41
49
  response_service: Service
42
50
  service_exceptions: ta.Mapping[Service, Exception] | None = None
43
51
 
44
52
 
53
+ ##
54
+
55
+
45
56
  class FirstInWinsService(
46
57
  MultiWrapperService[
47
58
  WrappedRequestV,
@@ -57,6 +68,22 @@ class FirstInWinsService(
57
68
  ##
58
69
 
59
70
 
71
+ class FirstInWinsStreamService(
72
+ WrapperStreamService[
73
+ WrappedRequestV,
74
+ WrappedOptionT,
75
+ WrappedResponseV,
76
+ WrappedOutputT,
77
+ WrappedStreamOutputT,
78
+ ],
79
+ lang.Abstract,
80
+ ):
81
+ pass
82
+
83
+
84
+ ##
85
+
86
+
60
87
  class AsyncioFirstInWinsService(
61
88
  FirstInWinsService[
62
89
  WrappedRequestV,
@@ -0,0 +1,147 @@
1
+ """
2
+ TODO:
3
+ - tenacity shit
4
+ - exception filter
5
+ - sleep
6
+ - jitter
7
+ - stream retry:
8
+ - failed to open
9
+ - failed during stream
10
+ - buffer and replay??
11
+ - accept death mid-stream?
12
+ """
13
+ import typing as ta
14
+
15
+ from omlish import dataclasses as dc
16
+
17
+ from ..types import Output
18
+ from .services import WrappedOptionT
19
+ from .services import WrappedOutputT
20
+ from .services import WrappedRequest
21
+ from .services import WrappedRequestV
22
+ from .services import WrappedResponse
23
+ from .services import WrappedResponseV
24
+ from .services import WrappedService
25
+ from .services import WrapperService
26
+ from .stream import WrappedStreamOutputT
27
+ from .stream import WrappedStreamResponse
28
+ from .stream import WrappedStreamService
29
+ from .stream import WrapperStreamService
30
+
31
+
32
+ AnyRetryService: ta.TypeAlias = ta.Union[
33
+ 'RetryService',
34
+ 'RetryStreamService',
35
+ ]
36
+
37
+
38
+ ##
39
+
40
+
41
+ @dc.dataclass(frozen=True)
42
+ class RetryServiceMaxRetriesExceededError(Exception):
43
+ pass
44
+
45
+
46
+ @dc.dataclass(frozen=True)
47
+ class RetryServiceOutput(Output):
48
+ retry_service: AnyRetryService
49
+ num_retries: int
50
+
51
+
52
+ ##
53
+
54
+
55
+ class RetryService(
56
+ WrapperService[
57
+ WrappedRequestV,
58
+ WrappedOptionT,
59
+ WrappedResponseV,
60
+ WrappedOutputT,
61
+ ],
62
+ ):
63
+ DEFAULT_MAX_RETRIES: ta.ClassVar[int] = 3
64
+
65
+ def __init__(
66
+ self,
67
+ service: WrappedService,
68
+ *,
69
+ max_retries: int | None = None,
70
+ ) -> None:
71
+ super().__init__(service)
72
+
73
+ if max_retries is None:
74
+ max_retries = self.DEFAULT_MAX_RETRIES
75
+ self._max_retries = max_retries
76
+
77
+ async def invoke(self, request: WrappedRequest) -> WrappedResponse:
78
+ n = 0
79
+
80
+ while True:
81
+ try:
82
+ resp = await self._service.invoke(request)
83
+
84
+ except Exception as e: # noqa
85
+ if n < self._max_retries:
86
+ n += 1
87
+ continue
88
+
89
+ raise RetryServiceMaxRetriesExceededError from e
90
+
91
+ return resp.with_outputs(RetryServiceOutput(
92
+ retry_service=self,
93
+ num_retries=n,
94
+ ))
95
+
96
+ raise RuntimeError # unreachable
97
+
98
+
99
+ ##
100
+
101
+
102
+ class RetryStreamService(
103
+ WrapperStreamService[
104
+ WrappedRequestV,
105
+ WrappedOptionT,
106
+ WrappedResponseV,
107
+ WrappedOutputT,
108
+ WrappedStreamOutputT,
109
+ ],
110
+ ):
111
+ DEFAULT_MAX_RETRIES: ta.ClassVar[int] = 3
112
+
113
+ def __init__(
114
+ self,
115
+ service: WrappedStreamService,
116
+ *,
117
+ max_retries: int | None = None,
118
+ ) -> None:
119
+ super().__init__(service)
120
+
121
+ if max_retries is None:
122
+ max_retries = self.DEFAULT_MAX_RETRIES
123
+ self._max_retries = max_retries
124
+
125
+ async def invoke(self, request: WrappedRequest) -> WrappedStreamResponse:
126
+ n = 0
127
+
128
+ while True:
129
+ try:
130
+ resp = await self._service.invoke(request)
131
+
132
+ except Exception as e: # noqa
133
+ if n < self._max_retries:
134
+ n += 1
135
+ continue
136
+
137
+ raise RetryServiceMaxRetriesExceededError from e
138
+
139
+ # FIXME: lol no:
140
+ # - async def inner(sink: StreamResponseSink[...]) -> ta.Sequence[...Outputs] | None:
141
+ # - async with resp.v as st_resp:
142
+ return resp.with_outputs(RetryServiceOutput(
143
+ retry_service=self,
144
+ num_retries=n,
145
+ ))
146
+
147
+ raise RuntimeError # unreachable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev499
3
+ Version: 0.0.0.dev500
4
4
  Summary: ommlds
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,9 +14,9 @@ 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: omlish==0.0.0.dev499
17
+ Requires-Dist: omlish==0.0.0.dev500
18
18
  Provides-Extra: all
19
- Requires-Dist: omdev==0.0.0.dev499; extra == "all"
19
+ Requires-Dist: omdev==0.0.0.dev500; extra == "all"
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.30; sys_platform == "darwin" and extra == "all"
22
22
  Requires-Dist: mlx-lm~=0.29; sys_platform == "darwin" and extra == "all"
@@ -32,13 +32,13 @@ Requires-Dist: regex>=2025.0; extra == "all"
32
32
  Requires-Dist: numpy>=1.26; extra == "all"
33
33
  Requires-Dist: pytesseract~=0.3; extra == "all"
34
34
  Requires-Dist: rapidocr-onnxruntime~=1.4; extra == "all"
35
- Requires-Dist: pillow~=12.0; extra == "all"
35
+ Requires-Dist: pillow~=12.1; extra == "all"
36
36
  Requires-Dist: ddgs~=9.10; extra == "all"
37
37
  Requires-Dist: mwparserfromhell~=0.7; extra == "all"
38
38
  Requires-Dist: wikitextparser~=0.56; extra == "all"
39
39
  Requires-Dist: lxml>=5.3; python_version < "3.13" and extra == "all"
40
40
  Provides-Extra: omdev
41
- Requires-Dist: omdev==0.0.0.dev499; extra == "omdev"
41
+ Requires-Dist: omdev==0.0.0.dev500; extra == "omdev"
42
42
  Provides-Extra: backends
43
43
  Requires-Dist: llama-cpp-python~=0.3; extra == "backends"
44
44
  Requires-Dist: mlx~=0.30; sys_platform == "darwin" and extra == "backends"
@@ -60,7 +60,7 @@ Provides-Extra: ocr
60
60
  Requires-Dist: pytesseract~=0.3; extra == "ocr"
61
61
  Requires-Dist: rapidocr-onnxruntime~=1.4; extra == "ocr"
62
62
  Provides-Extra: pillow
63
- Requires-Dist: pillow~=12.0; extra == "pillow"
63
+ Requires-Dist: pillow~=12.1; extra == "pillow"
64
64
  Provides-Extra: search
65
65
  Requires-Dist: ddgs~=9.10; extra == "search"
66
66
  Provides-Extra: wiki
@@ -40,6 +40,7 @@ ommlds/backends/google/protocol/types.py
40
40
  ommlds/backends/groq/__init__.py
41
41
  ommlds/backends/groq/_dataclasses.py
42
42
  ommlds/backends/groq/_marshal.py
43
+ ommlds/backends/groq/clients.py
43
44
  ommlds/backends/groq/protocol.py
44
45
  ommlds/backends/llamacpp/__init__.py
45
46
  ommlds/backends/llamacpp/buildwheel.py
@@ -1,7 +1,7 @@
1
- omlish==0.0.0.dev499
1
+ omlish==0.0.0.dev500
2
2
 
3
3
  [all]
4
- omdev==0.0.0.dev499
4
+ omdev==0.0.0.dev500
5
5
  llama-cpp-python~=0.3
6
6
  tiktoken~=0.12
7
7
  tinygrad~=0.11
@@ -15,7 +15,7 @@ regex>=2025.0
15
15
  numpy>=1.26
16
16
  pytesseract~=0.3
17
17
  rapidocr-onnxruntime~=1.4
18
- pillow~=12.0
18
+ pillow~=12.1
19
19
  ddgs~=9.10
20
20
  mwparserfromhell~=0.7
21
21
  wikitextparser~=0.56
@@ -55,10 +55,10 @@ pytesseract~=0.3
55
55
  rapidocr-onnxruntime~=1.4
56
56
 
57
57
  [omdev]
58
- omdev==0.0.0.dev499
58
+ omdev==0.0.0.dev500
59
59
 
60
60
  [pillow]
61
- pillow~=12.0
61
+ pillow~=12.1
62
62
 
63
63
  [search]
64
64
  ddgs~=9.10
@@ -13,7 +13,7 @@ urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = 'BSD-3-Clause'
14
14
  readme = 'README.md'
15
15
  requires-python = '>=3.13'
16
- version = '0.0.0.dev499'
16
+ version = '0.0.0.dev500'
17
17
  classifiers = [
18
18
  'Development Status :: 2 - Pre-Alpha',
19
19
  'Intended Audience :: Developers',
@@ -24,12 +24,12 @@ classifiers = [
24
24
  ]
25
25
  description = 'ommlds'
26
26
  dependencies = [
27
- 'omlish == 0.0.0.dev499',
27
+ 'omlish == 0.0.0.dev500',
28
28
  ]
29
29
 
30
30
  [project.optional-dependencies]
31
31
  all = [
32
- 'omdev == 0.0.0.dev499',
32
+ 'omdev == 0.0.0.dev500',
33
33
  'llama-cpp-python ~= 0.3',
34
34
  'mlx ~= 0.30; sys_platform == "darwin"',
35
35
  'mlx-lm ~= 0.29; sys_platform == "darwin"',
@@ -45,14 +45,14 @@ all = [
45
45
  'numpy >= 1.26',
46
46
  'pytesseract ~= 0.3',
47
47
  'rapidocr-onnxruntime ~= 1.4',
48
- 'pillow ~= 12.0',
48
+ 'pillow ~= 12.1',
49
49
  'ddgs ~= 9.10',
50
50
  'mwparserfromhell ~= 0.7',
51
51
  'wikitextparser ~= 0.56',
52
52
  'lxml >= 5.3; python_version < "3.13"',
53
53
  ]
54
54
  omdev = [
55
- 'omdev == 0.0.0.dev499',
55
+ 'omdev == 0.0.0.dev500',
56
56
  ]
57
57
  backends = [
58
58
  'llama-cpp-python ~= 0.3',
@@ -80,7 +80,7 @@ ocr = [
80
80
  'rapidocr-onnxruntime ~= 1.4',
81
81
  ]
82
82
  pillow = [
83
- 'pillow ~= 12.0',
83
+ 'pillow ~= 12.1',
84
84
  ]
85
85
  search = [
86
86
  'ddgs ~= 9.10',
@@ -1,78 +0,0 @@
1
- """
2
- TODO:
3
- - tenacity shit
4
- - exception filter
5
- - sleep
6
- - jitter
7
- """
8
- import typing as ta
9
-
10
- from omlish import dataclasses as dc
11
-
12
- from ..types import Output
13
- from .services import WrappedOptionT
14
- from .services import WrappedOutputT
15
- from .services import WrappedRequest
16
- from .services import WrappedRequestV
17
- from .services import WrappedResponse
18
- from .services import WrappedResponseV
19
- from .services import WrappedService
20
- from .services import WrapperService
21
-
22
-
23
- ##
24
-
25
-
26
- @dc.dataclass(frozen=True)
27
- class RetryServiceMaxRetriesExceededError(Exception):
28
- pass
29
-
30
-
31
- @dc.dataclass(frozen=True)
32
- class RetryServiceOutput(Output):
33
- retry_service: 'RetryService'
34
- num_retries: int
35
-
36
-
37
- class RetryService(
38
- WrapperService[
39
- WrappedRequestV,
40
- WrappedOptionT,
41
- WrappedResponseV,
42
- WrappedOutputT,
43
- ],
44
- ):
45
- DEFAULT_MAX_RETRIES: ta.ClassVar[int] = 3
46
-
47
- def __init__(
48
- self,
49
- service: WrappedService,
50
- *,
51
- max_retries: int | None = None,
52
- ) -> None:
53
- super().__init__(service)
54
-
55
- if max_retries is None:
56
- max_retries = self.DEFAULT_MAX_RETRIES
57
- self._max_retries = max_retries
58
-
59
- async def invoke(self, request: WrappedRequest) -> WrappedResponse:
60
- n = 0
61
-
62
- while True:
63
- try:
64
- resp = await self._service.invoke(request)
65
-
66
- except Exception as e: # noqa
67
- if n < self._max_retries:
68
- n += 1
69
- continue
70
-
71
- raise RetryServiceMaxRetriesExceededError from e
72
-
73
- return resp.with_outputs(RetryServiceOutput(
74
- retry_service=self,
75
- num_retries=n,
76
- ))
77
-
78
- raise RuntimeError # unreachable
File without changes
File without changes
File without changes