ommlds 0.0.0.dev494__tar.gz → 0.0.0.dev496__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 (523) hide show
  1. {ommlds-0.0.0.dev494/ommlds.egg-info → ommlds-0.0.0.dev496}/PKG-INFO +4 -4
  2. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/_dataclasses.py +7 -7
  3. ommlds-0.0.0.dev496/ommlds/cli/backends/inject.py +108 -0
  4. ommlds-0.0.0.dev496/ommlds/cli/backends/meta.py +35 -0
  5. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/content/messages.py +1 -1
  6. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/inject.py +1 -1
  7. ommlds-0.0.0.dev494/ommlds/cli/sessions/chat/drivers/driver.py → ommlds-0.0.0.dev496/ommlds/cli/sessions/chat/drivers/impl.py +2 -9
  8. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/inject.py +5 -3
  9. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/inject.py +2 -3
  10. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/injection.py +4 -4
  11. ommlds-0.0.0.dev496/ommlds/cli/sessions/chat/drivers/types.py +31 -0
  12. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/user/inject.py +4 -3
  13. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/inject.py +0 -2
  14. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/simple.py +2 -8
  15. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/facade.py +1 -1
  16. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/inject.py +5 -0
  17. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/ui.py +11 -0
  18. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/bare/interactive.py +1 -1
  19. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/bare/oneshot.py +1 -1
  20. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/app.py +21 -3
  21. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/inject.py +2 -5
  22. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/styles/messages.tcss +2 -0
  23. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/widgets/messages.py +12 -5
  24. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/__init__.py +81 -35
  25. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/_dataclasses.py +7688 -3344
  26. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/anthropic/protocol.py +2 -2
  27. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/cerebras/protocol.py +2 -2
  28. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/google/tools.py +2 -2
  29. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/groq/protocol.py +2 -2
  30. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/ollama/protocol.py +2 -2
  31. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/format.py +2 -2
  32. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/strings/resolving.py +1 -1
  33. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/messages.py +22 -25
  34. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/templating.py +1 -1
  35. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/content/__init__.py +9 -2
  36. ommlds-0.0.0.dev496/ommlds/minichain/content/_marshal.py +315 -0
  37. ommlds-0.0.0.dev496/ommlds/minichain/content/code.py +17 -0
  38. ommlds-0.0.0.dev496/ommlds/minichain/content/dynamic.py +12 -0
  39. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/content/images.py +3 -2
  40. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/content/json.py +3 -2
  41. ommlds-0.0.0.dev496/ommlds/minichain/content/namespaces.py +17 -0
  42. ommlds-0.0.0.dev496/ommlds/minichain/content/placeholders.py +22 -0
  43. ommlds-0.0.0.dev496/ommlds/minichain/content/quote.py +17 -0
  44. ommlds-0.0.0.dev496/ommlds/minichain/content/raw.py +49 -0
  45. ommlds-0.0.0.dev496/ommlds/minichain/content/section.py +14 -0
  46. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/content/sequence.py +7 -2
  47. ommlds-0.0.0.dev494/ommlds/minichain/content/simple.py → ommlds-0.0.0.dev496/ommlds/minichain/content/standard.py +3 -13
  48. ommlds-0.0.0.dev496/ommlds/minichain/content/tag.py +19 -0
  49. ommlds-0.0.0.dev496/ommlds/minichain/content/templates.py +14 -0
  50. ommlds-0.0.0.dev496/ommlds/minichain/content/text.py +13 -0
  51. ommlds-0.0.0.dev496/ommlds/minichain/content/transform/base.py +63 -0
  52. ommlds-0.0.0.dev496/ommlds/minichain/content/transform/interleave.py +68 -0
  53. ommlds-0.0.0.dev496/ommlds/minichain/content/transform/materialize.py +110 -0
  54. {ommlds-0.0.0.dev494/ommlds/minichain/content → ommlds-0.0.0.dev496/ommlds/minichain/content/transform}/prepare.py +12 -13
  55. ommlds-0.0.0.dev496/ommlds/minichain/content/transform/squeeze.py +59 -0
  56. {ommlds-0.0.0.dev494/ommlds/minichain/content/transforms → ommlds-0.0.0.dev496/ommlds/minichain/content/transform}/stringify.py +0 -6
  57. ommlds-0.0.0.dev496/ommlds/minichain/content/types.py +31 -0
  58. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/read.py +1 -1
  59. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/recursivels/rendering.py +1 -1
  60. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/recursivels/running.py +1 -1
  61. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/todo/tools/write.py +2 -1
  62. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/todo/types.py +1 -1
  63. ommlds-0.0.0.dev496/ommlds/minichain/meta/firstinwins.py +131 -0
  64. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/applypatch.py +2 -1
  65. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/llamacpp/types.py +1 -1
  66. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tokens/specials.py +1 -1
  67. ommlds-0.0.0.dev496/ommlds/minichain/tools/execution/errorhandling.py +35 -0
  68. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/execution/errors.py +2 -2
  69. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/jsonschema.py +2 -2
  70. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/reflect.py +3 -3
  71. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/types.py +11 -14
  72. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/_marshal.py +1 -1
  73. ommlds-0.0.0.dev496/ommlds/wiki/utils/__init__.py +0 -0
  74. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496/ommlds.egg-info}/PKG-INFO +4 -4
  75. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds.egg-info/SOURCES.txt +21 -11
  76. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds.egg-info/requires.txt +3 -3
  77. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/pyproject.toml +4 -4
  78. ommlds-0.0.0.dev494/ommlds/cli/backends/inject.py +0 -67
  79. ommlds-0.0.0.dev494/ommlds/cli/sessions/chat/drivers/types.py +0 -10
  80. ommlds-0.0.0.dev494/ommlds/cli/sessions/chat/interfaces/bare/user.py +0 -31
  81. ommlds-0.0.0.dev494/ommlds/minichain/content/_marshal.py +0 -202
  82. ommlds-0.0.0.dev494/ommlds/minichain/content/materialize.py +0 -196
  83. ommlds-0.0.0.dev494/ommlds/minichain/content/namespaces.py +0 -8
  84. ommlds-0.0.0.dev494/ommlds/minichain/content/placeholders.py +0 -20
  85. ommlds-0.0.0.dev494/ommlds/minichain/content/text.py +0 -12
  86. ommlds-0.0.0.dev494/ommlds/minichain/content/transforms/base.py +0 -46
  87. ommlds-0.0.0.dev494/ommlds/minichain/content/transforms/interleave.py +0 -70
  88. ommlds-0.0.0.dev494/ommlds/minichain/content/transforms/squeeze.py +0 -72
  89. ommlds-0.0.0.dev494/ommlds/minichain/content/types.py +0 -43
  90. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/LICENSE +0 -0
  91. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/MANIFEST.in +0 -0
  92. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/README.md +0 -0
  93. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/.omlish-manifests.json +0 -0
  94. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/README.md +0 -0
  95. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/__about__.py +0 -0
  96. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/__init__.py +0 -0
  97. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/_hacks/__init__.py +0 -0
  98. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/_hacks/funcs.py +0 -0
  99. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/_hacks/names.py +0 -0
  100. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/_hacks/params.py +0 -0
  101. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/_hacks/patches.py +0 -0
  102. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/__init__.py +0 -0
  103. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/__init__.py +0 -0
  104. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  105. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/_dataclasses.py +0 -0
  106. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/_marshal.py +0 -0
  107. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  108. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/sse/_marshal.py +0 -0
  109. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  110. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/sse/events.py +0 -0
  111. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/anthropic/protocol/types.py +0 -0
  112. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/cerebras/__init__.py +0 -0
  113. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/cerebras/_dataclasses.py +0 -0
  114. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/cerebras/_marshal.py +0 -0
  115. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/cerebras/protocol.py +0 -0
  116. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/google/__init__.py +0 -0
  117. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/google/protocol/__init__.py +0 -0
  118. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/google/protocol/_dataclasses.py +0 -0
  119. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/google/protocol/_marshal.py +0 -0
  120. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/google/protocol/types.py +0 -0
  121. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/groq/__init__.py +0 -0
  122. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/groq/_dataclasses.py +0 -0
  123. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/groq/_marshal.py +0 -0
  124. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/groq/protocol.py +0 -0
  125. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/huggingface.py +0 -0
  126. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/llamacpp/__init__.py +0 -0
  127. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  128. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/llamacpp/logging.py +0 -0
  129. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/__init__.py +0 -0
  130. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/__main__.py +0 -0
  131. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/caching.py +0 -0
  132. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/cli.py +0 -0
  133. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/generation.py +0 -0
  134. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/limits.py +0 -0
  135. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/loading.py +0 -0
  136. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  137. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  138. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/detokenization/__init__.py +0 -0
  139. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  140. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  141. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  142. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  143. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  144. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  145. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/mlx/tokenization/types.py +0 -0
  146. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/ollama/__init__.py +0 -0
  147. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/ollama/_dataclasses.py +0 -0
  148. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/ollama/protocol.py +0 -0
  149. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/__init__.py +0 -0
  150. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/__init__.py +0 -0
  151. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/_common.py +0 -0
  152. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/_dataclasses.py +0 -0
  153. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/_marshal.py +0 -0
  154. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/__init__.py +0 -0
  155. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  156. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  157. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  158. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  159. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  160. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  161. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  162. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  163. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tavily/__init__.py +0 -0
  164. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tavily/_dataclasses.py +0 -0
  165. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tavily/protocol.py +0 -0
  166. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/__init__.py +0 -0
  167. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  168. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/__init__.py +0 -0
  169. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  170. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  171. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  172. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  173. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  174. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  175. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  176. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  177. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  178. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  179. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  180. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  181. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  182. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  183. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  184. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  185. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  186. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  187. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/torch/__init__.py +0 -0
  188. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/torch/backends.py +0 -0
  189. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/torch/devices.py +0 -0
  190. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/torch/purge.py +0 -0
  191. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/transformers/__init__.py +0 -0
  192. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/transformers/filecache.py +0 -0
  193. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/backends/transformers/streamers.py +0 -0
  194. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/__init__.py +0 -0
  195. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/__main__.py +0 -0
  196. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/asyncs.py +0 -0
  197. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/backends/__init__.py +0 -0
  198. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/backends/catalog.py +0 -0
  199. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/backends/configs.py +0 -0
  200. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/backends/injection.py +0 -0
  201. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/backends/types.py +0 -0
  202. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/content/__init__.py +0 -0
  203. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/content/strings.py +0 -0
  204. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/inputs/__init__.py +0 -0
  205. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/inputs/asyncs.py +0 -0
  206. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/inputs/sync.py +0 -0
  207. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/main.py +0 -0
  208. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/rendering/__init__.py +0 -0
  209. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/rendering/configs.py +0 -0
  210. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/rendering/inject.py +0 -0
  211. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/rendering/markdown.py +0 -0
  212. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/rendering/raw.py +0 -0
  213. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/rendering/types.py +0 -0
  214. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/secrets.py +0 -0
  215. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/__init__.py +0 -0
  216. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/base.py +0 -0
  217. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/__init__.py +0 -0
  218. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/configs.py +0 -0
  219. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/__init__.py +0 -0
  220. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/__init__.py +0 -0
  221. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/configs.py +0 -0
  222. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/events.py +0 -0
  223. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/inject.py +0 -0
  224. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/injection.py +0 -0
  225. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/rendering.py +0 -0
  226. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/services.py +0 -0
  227. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/tools.py +0 -0
  228. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/ai/types.py +0 -0
  229. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/configs.py +0 -0
  230. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/events/__init__.py +0 -0
  231. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/events/inject.py +0 -0
  232. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/events/injection.py +0 -0
  233. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/events/manager.py +0 -0
  234. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/events/types.py +0 -0
  235. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/phases/__init__.py +0 -0
  236. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/phases/inject.py +0 -0
  237. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/phases/injection.py +0 -0
  238. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/phases/manager.py +0 -0
  239. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/phases/types.py +0 -0
  240. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/__init__.py +0 -0
  241. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/configs.py +0 -0
  242. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/ids.py +0 -0
  243. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/inmemory.py +0 -0
  244. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/storage.py +0 -0
  245. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/state/types.py +0 -0
  246. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/__init__.py +0 -0
  247. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/configs.py +0 -0
  248. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/confirmation.py +0 -0
  249. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/errorhandling.py +0 -0
  250. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/execution.py +0 -0
  251. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/fs/__init__.py +0 -0
  252. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/fs/configs.py +0 -0
  253. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/fs/inject.py +0 -0
  254. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/inject.py +0 -0
  255. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/rendering.py +0 -0
  256. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/todo/__init__.py +0 -0
  257. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/todo/configs.py +0 -0
  258. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/todo/inject.py +0 -0
  259. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/weather/__init__.py +0 -0
  260. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/weather/configs.py +0 -0
  261. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/weather/inject.py +0 -0
  262. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/tools/weather/tools.py +0 -0
  263. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/user/__init__.py +0 -0
  264. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/drivers/user/configs.py +0 -0
  265. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/__init__.py +0 -0
  266. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/__init__.py +0 -0
  267. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/base.py +0 -0
  268. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/configs.py +0 -0
  269. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/injection.py +0 -0
  270. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/manager.py +0 -0
  271. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/commands/types.py +0 -0
  272. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/facades/configs.py +0 -0
  273. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/inject.py +0 -0
  274. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/__init__.py +0 -0
  275. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/bare/__init__.py +0 -0
  276. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/bare/configs.py +0 -0
  277. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/bare/inject.py +0 -0
  278. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/bare/tools.py +0 -0
  279. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/base.py +0 -0
  280. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/configs.py +0 -0
  281. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/inject.py +0 -0
  282. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/__init__.py +0 -0
  283. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/configs.py +0 -0
  284. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/facades.py +0 -0
  285. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/interface.py +0 -0
  286. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/styles/__init__.py +0 -0
  287. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/styles/input.tcss +0 -0
  288. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/styles/markdown.tcss +0 -0
  289. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/tools.py +0 -0
  290. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/widgets/__init__.py +0 -0
  291. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/interfaces/textual/widgets/input.py +0 -0
  292. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/chat/session.py +0 -0
  293. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/completion/__init__.py +0 -0
  294. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/completion/configs.py +0 -0
  295. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/completion/inject.py +0 -0
  296. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/completion/session.py +0 -0
  297. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/configs.py +0 -0
  298. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/embedding/__init__.py +0 -0
  299. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/embedding/configs.py +0 -0
  300. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/embedding/inject.py +0 -0
  301. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/embedding/session.py +0 -0
  302. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/sessions/inject.py +0 -0
  303. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/state/__init__.py +0 -0
  304. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/state/inject.py +0 -0
  305. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/cli/state/storage.py +0 -0
  306. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/datasets/__init__.py +0 -0
  307. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/datasets/lib/__init__.py +0 -0
  308. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/datasets/lib/movies.py +0 -0
  309. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/_marshal.py +0 -0
  310. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/_typedvalues.py +0 -0
  311. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/__init__.py +0 -0
  312. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/catalogs/__init__.py +0 -0
  313. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/catalogs/base.py +0 -0
  314. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/catalogs/simple.py +0 -0
  315. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/catalogs/strings.py +0 -0
  316. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/__init__.py +0 -0
  317. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/anthropic/__init__.py +0 -0
  318. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/anthropic/chat.py +0 -0
  319. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  320. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/anthropic/stream.py +0 -0
  321. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/cerebras/__init__.py +0 -0
  322. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/cerebras/chat.py +0 -0
  323. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/cerebras/names.py +0 -0
  324. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/cerebras/stream.py +0 -0
  325. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/duckduckgo/__init__.py +0 -0
  326. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  327. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/dummy/__init__.py +0 -0
  328. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/dummy/chat.py +0 -0
  329. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/google/__init__.py +0 -0
  330. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/google/chat.py +0 -0
  331. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/google/names.py +0 -0
  332. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/google/search.py +0 -0
  333. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/google/stream.py +0 -0
  334. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/groq/__init__.py +0 -0
  335. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/groq/chat.py +0 -0
  336. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/groq/names.py +0 -0
  337. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/groq/stream.py +0 -0
  338. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/huggingface/__init__.py +0 -0
  339. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  340. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/huggingface/repos.py +0 -0
  341. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/llamacpp/__init__.py +0 -0
  342. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  343. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  344. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  345. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/llamacpp/stream.py +0 -0
  346. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/mistral.py +0 -0
  347. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/mlx/__init__.py +0 -0
  348. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/mlx/chat.py +0 -0
  349. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/ollama/__init__.py +0 -0
  350. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/ollama/chat.py +0 -0
  351. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/__init__.py +0 -0
  352. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  353. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  354. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  355. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/names.py +0 -0
  356. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/openai/stream.py +0 -0
  357. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/sentencepiece/__init__.py +0 -0
  358. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  359. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  360. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/tavily.py +0 -0
  361. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/tinygrad/__init__.py +0 -0
  362. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/tinygrad/chat.py +0 -0
  363. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/tokenizers/__init__.py +0 -0
  364. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  365. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/transformers/__init__.py +0 -0
  366. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  367. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  368. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/impls/transformers/transformers.py +0 -0
  369. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/strings/__init__.py +0 -0
  370. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/strings/manifests.py +0 -0
  371. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/backends/strings/parsing.py +0 -0
  372. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/__init__.py +0 -0
  373. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/_marshal.py +0 -0
  374. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/__init__.py +0 -0
  375. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/adapters.py +0 -0
  376. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/services.py +0 -0
  377. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/stream/__init__.py +0 -0
  378. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/stream/adapters.py +0 -0
  379. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/stream/joining.py +0 -0
  380. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/stream/services.py +0 -0
  381. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/stream/types.py +0 -0
  382. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/choices/types.py +0 -0
  383. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/formats.py +0 -0
  384. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/history.py +0 -0
  385. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/metadata.py +0 -0
  386. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/services.py +0 -0
  387. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/stream/__init__.py +0 -0
  388. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/stream/_marshal.py +0 -0
  389. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/stream/joining.py +0 -0
  390. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/stream/services.py +0 -0
  391. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/stream/types.py +0 -0
  392. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/tools/__init__.py +0 -0
  393. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/tools/execution.py +0 -0
  394. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/tools/ids.py +0 -0
  395. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/tools/parsing.py +0 -0
  396. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/tools/types.py +0 -0
  397. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/transforms/__init__.py +0 -0
  398. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/transforms/base.py +0 -0
  399. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  400. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/transforms/services.py +0 -0
  401. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/chat/types.py +0 -0
  402. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/completion.py +0 -0
  403. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/configs.py +0 -0
  404. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/content/metadata.py +0 -0
  405. {ommlds-0.0.0.dev494/ommlds/minichain/content/transforms → ommlds-0.0.0.dev496/ommlds/minichain/content/transform}/__init__.py +0 -0
  406. {ommlds-0.0.0.dev494/ommlds/minichain/content/transforms → ommlds-0.0.0.dev496/ommlds/minichain/content/transform}/strings.py +0 -0
  407. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/docs/__init__.py +0 -0
  408. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/docs/docs.py +0 -0
  409. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/docs/dtypes.py +0 -0
  410. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/docs/filters.py +0 -0
  411. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/envs.py +0 -0
  412. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/json.py +0 -0
  413. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/__init__.py +0 -0
  414. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/bash.py +0 -0
  415. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/code/__init__.py +0 -0
  416. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/code/prompts.py +0 -0
  417. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/__init__.py +0 -0
  418. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/binfiles.py +0 -0
  419. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/context.py +0 -0
  420. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/errors.py +0 -0
  421. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/suggestions.py +0 -0
  422. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/__init__.py +0 -0
  423. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/edit.py +0 -0
  424. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/ls.py +0 -0
  425. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/recursivels/__init__.py +0 -0
  426. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/fs/tools/recursivels/execution.py +0 -0
  427. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/todo/__init__.py +0 -0
  428. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/todo/context.py +0 -0
  429. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/todo/tools/__init__.py +0 -0
  430. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/lib/todo/tools/read.py +0 -0
  431. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/llms/__init__.py +0 -0
  432. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/llms/_marshal.py +0 -0
  433. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/llms/tokens.py +0 -0
  434. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/llms/types.py +0 -0
  435. {ommlds-0.0.0.dev494/ommlds/minichain/models → ommlds-0.0.0.dev496/ommlds/minichain/meta}/__init__.py +0 -0
  436. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/metadata.py +0 -0
  437. {ommlds-0.0.0.dev494/ommlds/minichain/models/repos → ommlds-0.0.0.dev496/ommlds/minichain/models}/__init__.py +0 -0
  438. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/models/configs.py +0 -0
  439. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/models/names.py +0 -0
  440. {ommlds-0.0.0.dev494/ommlds/minichain/registries → ommlds-0.0.0.dev496/ommlds/minichain/models/repos}/__init__.py +0 -0
  441. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/models/repos/resolving.py +0 -0
  442. {ommlds-0.0.0.dev494/ommlds/minichain/stream → ommlds-0.0.0.dev496/ommlds/minichain/registries}/__init__.py +0 -0
  443. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/registries/globals.py +0 -0
  444. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/registries/manifests.py +0 -0
  445. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/registries/registry.py +0 -0
  446. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/resources.py +0 -0
  447. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/search.py +0 -0
  448. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/__init__.py +0 -0
  449. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/_marshal.py +0 -0
  450. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/_origclasses.py +0 -0
  451. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/_typedvalues.py +0 -0
  452. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/facades.py +0 -0
  453. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/requests.py +0 -0
  454. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/responses.py +0 -0
  455. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/services/services.py +0 -0
  456. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/standard.py +0 -0
  457. {ommlds-0.0.0.dev494/ommlds/minichain/text → ommlds-0.0.0.dev496/ommlds/minichain/stream}/__init__.py +0 -0
  458. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/stream/services.py +0 -0
  459. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/stream/wrap.py +0 -0
  460. {ommlds-0.0.0.dev494/ommlds/minichain/text/toolparsing → ommlds-0.0.0.dev496/ommlds/minichain/text}/__init__.py +0 -0
  461. {ommlds-0.0.0.dev494/ommlds/minichain/tools → ommlds-0.0.0.dev496/ommlds/minichain/text/toolparsing}/__init__.py +0 -0
  462. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/base.py +0 -0
  463. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  464. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  465. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  466. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  467. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  468. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  469. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tokens/__init__.py +0 -0
  470. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tokens/tokenizers.py +0 -0
  471. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tokens/types.py +0 -0
  472. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tokens/vocabs.py +0 -0
  473. {ommlds-0.0.0.dev494/ommlds/minichain/tools/execution → ommlds-0.0.0.dev496/ommlds/minichain/tools}/__init__.py +0 -0
  474. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/_marshal.py +0 -0
  475. {ommlds-0.0.0.dev494/ommlds/minichain/vectors → ommlds-0.0.0.dev496/ommlds/minichain/tools/execution}/__init__.py +0 -0
  476. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/execution/catalog.py +0 -0
  477. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/execution/context.py +0 -0
  478. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/execution/executors.py +0 -0
  479. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/execution/reflect.py +0 -0
  480. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/tools/fns.py +0 -0
  481. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/types.py +0 -0
  482. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/utils.py +0 -0
  483. {ommlds-0.0.0.dev494/ommlds/nanochat → ommlds-0.0.0.dev496/ommlds/minichain/vectors}/__init__.py +0 -0
  484. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/embeddings.py +0 -0
  485. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/index.py +0 -0
  486. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/search.py +0 -0
  487. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/similarity.py +0 -0
  488. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/stores.py +0 -0
  489. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/minichain/vectors/types.py +0 -0
  490. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/nanochat/LICENSE +0 -0
  491. {ommlds-0.0.0.dev494/ommlds/server → ommlds-0.0.0.dev496/ommlds/nanochat}/__init__.py +0 -0
  492. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/nanochat/rustbpe/LICENSE +0 -0
  493. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/nanochat/rustbpe/README.md +0 -0
  494. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/nanochat/tokenizers.py +0 -0
  495. {ommlds-0.0.0.dev494/ommlds/specs → ommlds-0.0.0.dev496/ommlds/server}/__init__.py +0 -0
  496. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/server/__main__.py +0 -0
  497. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/server/cli.py +0 -0
  498. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/server/client.py +0 -0
  499. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/server/server.py +0 -0
  500. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/server/service.py +0 -0
  501. {ommlds-0.0.0.dev494/ommlds/specs/mcp → ommlds-0.0.0.dev496/ommlds/specs}/__init__.py +0 -0
  502. {ommlds-0.0.0.dev494/ommlds/tools → ommlds-0.0.0.dev496/ommlds/specs/mcp}/__init__.py +0 -0
  503. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/specs/mcp/_marshal.py +0 -0
  504. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/specs/mcp/clients.py +0 -0
  505. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/specs/mcp/protocol.py +0 -0
  506. {ommlds-0.0.0.dev494/ommlds/wiki → ommlds-0.0.0.dev496/ommlds/tools}/__init__.py +0 -0
  507. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/tools/git.py +0 -0
  508. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/tools/ocr.py +0 -0
  509. {ommlds-0.0.0.dev494/ommlds/wiki/text → ommlds-0.0.0.dev496/ommlds/wiki}/__init__.py +0 -0
  510. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/analyze.py +0 -0
  511. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/convert.py +0 -0
  512. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/models.py +0 -0
  513. {ommlds-0.0.0.dev494/ommlds/wiki/utils → ommlds-0.0.0.dev496/ommlds/wiki/text}/__init__.py +0 -0
  514. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/text/mfh.py +0 -0
  515. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/text/wtp.py +0 -0
  516. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/utils/io.py +0 -0
  517. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/utils/progress.py +0 -0
  518. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/utils/xml.py +0 -0
  519. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds/wiki/xml.py +0 -0
  520. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds.egg-info/dependency_links.txt +0 -0
  521. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds.egg-info/entry_points.txt +0 -0
  522. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/ommlds.egg-info/top_level.txt +0 -0
  523. {ommlds-0.0.0.dev494 → ommlds-0.0.0.dev496}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev494
3
+ Version: 0.0.0.dev496
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.dev494
17
+ Requires-Dist: omlish==0.0.0.dev496
18
18
  Provides-Extra: all
19
- Requires-Dist: omdev==0.0.0.dev494; extra == "all"
19
+ Requires-Dist: omdev==0.0.0.dev496; 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"
@@ -38,7 +38,7 @@ 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.dev494; extra == "omdev"
41
+ Requires-Dist: omdev==0.0.0.dev496; 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"
@@ -2062,7 +2062,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
2062
2062
  '__dataclass__init__fields__0__annotation',
2063
2063
  ),
2064
2064
  cls_names=(
2065
- ('ommlds.cli.sessions.chat.drivers.driver', 'AiDeltaChatEvent'),
2065
+ ('ommlds.cli.sessions.chat.drivers.impl', 'AiDeltaChatEvent'),
2066
2066
  ),
2067
2067
  )
2068
2068
  def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
@@ -2196,8 +2196,8 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
2196
2196
  '__dataclass__init__fields__0__annotation',
2197
2197
  ),
2198
2198
  cls_names=(
2199
- ('ommlds.cli.sessions.chat.drivers.driver', 'AiMessagesChatEvent'),
2200
- ('ommlds.cli.sessions.chat.drivers.driver', 'UserMessagesChatEvent'),
2199
+ ('ommlds.cli.sessions.chat.drivers.impl', 'AiMessagesChatEvent'),
2200
+ ('ommlds.cli.sessions.chat.drivers.impl', 'UserMessagesChatEvent'),
2201
2201
  ),
2202
2202
  )
2203
2203
  def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
@@ -2330,9 +2330,9 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2330
2330
  '__dataclass__init__fields__0__annotation',
2331
2331
  ),
2332
2332
  cls_names=(
2333
- ('ommlds.cli.sessions.chat.drivers.driver', 'ChatId'),
2333
+ ('ommlds.cli.sessions.chat.drivers.impl', 'ChatDriverId'),
2334
+ ('ommlds.cli.sessions.chat.drivers.impl', 'ChatId'),
2334
2335
  ('ommlds.cli.sessions.chat.drivers.state.ids', 'ChatStateStorageKey'),
2335
- ('ommlds.cli.sessions.chat.drivers.types', 'ChatDriverId'),
2336
2336
  ),
2337
2337
  )
2338
2338
  def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
@@ -2471,7 +2471,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2471
2471
  '__dataclass__init__fields__1__annotation',
2472
2472
  ),
2473
2473
  cls_names=(
2474
- ('ommlds.cli.sessions.chat.drivers.driver', 'ChatPhaseCallback'),
2474
+ ('ommlds.cli.sessions.chat.drivers.impl', 'ChatPhaseCallback'),
2475
2475
  ),
2476
2476
  )
2477
2477
  def _process_dataclass__927265170439340895560333250bc087fa726eff():
@@ -2639,7 +2639,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
2639
2639
  '__dataclass__init__fields__3__default',
2640
2640
  ),
2641
2641
  cls_names=(
2642
- ('ommlds.cli.sessions.chat.drivers.driver', 'ChatState'),
2642
+ ('ommlds.cli.sessions.chat.drivers.impl', 'ChatState'),
2643
2643
  ),
2644
2644
  )
2645
2645
  def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
@@ -0,0 +1,108 @@
1
+ import typing as ta
2
+
3
+ from omlish import inject as inj
4
+ from omlish import lang
5
+ from omlish import typedvalues as tv
6
+
7
+ from ... import minichain as mc
8
+ from .configs import BackendConfig
9
+ from .injection import backend_configs
10
+
11
+
12
+ with lang.auto_proxy_import(globals()):
13
+ from ...minichain.backends.impls.huggingface import repos as hf_repos
14
+ from . import catalog as _catalog
15
+ from . import meta as _meta
16
+ from . import types as _types
17
+
18
+
19
+ ##
20
+
21
+
22
+ def bind_backends(cfg: BackendConfig = BackendConfig()) -> inj.Elements:
23
+ lst: list[inj.Elemental] = []
24
+
25
+ #
26
+
27
+ lst.extend([
28
+ inj.bind(mc.BackendStringBackendCatalog, singleton=True),
29
+ inj.bind(mc.BackendCatalog, to_key=mc.BackendStringBackendCatalog),
30
+ ])
31
+
32
+ lst.extend([
33
+ inj.bind(hf_repos.HuggingfaceModelRepoResolver, singleton=True),
34
+ inj.bind(mc.ModelRepoResolver, to_key=hf_repos.HuggingfaceModelRepoResolver),
35
+
36
+ ])
37
+
38
+ #
39
+
40
+ lst.append(backend_configs().bind_items_provider(singleton=True))
41
+
42
+ #
43
+
44
+ if cfg.backend is not None:
45
+ lst.append(inj.bind(_types.BackendName, to_const=cfg.backend))
46
+ else:
47
+ lst.append(inj.bind(_types.BackendName, to_fn=inj.target(dbn=_types.DefaultBackendName)(lambda dbn: dbn)))
48
+
49
+ backend_provider_pairs: list = [
50
+ (_types.ChatChoicesServiceBackendProvider, _catalog.CatalogChatChoicesServiceBackendProvider),
51
+ (_types.ChatChoicesStreamServiceBackendProvider, _catalog.CatalogChatChoicesStreamServiceBackendProvider),
52
+ (_types.CompletionServiceBackendProvider, _catalog.CatalogCompletionServiceBackendProvider),
53
+ (_types.EmbeddingServiceBackendProvider, _catalog.CatalogEmbeddingServiceBackendProvider),
54
+ ]
55
+
56
+ for bp_iface, bp_impl in backend_provider_pairs:
57
+ bp_stack = inj.wrapper_binder_helper(bp_iface)
58
+
59
+ if bp_iface is _types.ChatChoicesServiceBackendProvider:
60
+ fiw_ben_lst: list[str] = [
61
+ # 'openai',
62
+ # 'anthropic',
63
+ # 'groq',
64
+ # 'cerebras',
65
+ ]
66
+
67
+ if fiw_ben_lst:
68
+ for ben in fiw_ben_lst:
69
+ ben_bp_key: inj.Key = inj.Key(bp_impl, tag=ben)
70
+ lst.extend([
71
+ inj.private(
72
+ inj.bind(_types.BackendName, to_const=ben),
73
+ inj.bind(ben_bp_key, to_ctor=bp_impl, singleton=True, expose=True),
74
+ inj.bind(bp_iface, to_key=ben_bp_key),
75
+ ),
76
+ bp_stack.push_bind(to_key=ben_bp_key),
77
+ ])
78
+
79
+ fiw_key: inj.Key = inj.Key(_meta.FirstInWinsBackendProvider, tag=bp_iface)
80
+ lst.extend([
81
+ inj.private(
82
+ inj.set_binder[_types.BackendProvider]().bind(bp_stack.top),
83
+ inj.bind(fiw_key, to_ctor=_meta.FirstInWinsBackendProvider, singleton=True, expose=True),
84
+ ),
85
+ bp_stack.push_bind(to_key=fiw_key),
86
+ ])
87
+
88
+ else:
89
+ lst.append(bp_stack.push_bind(to_ctor=bp_impl, singleton=True))
90
+
91
+ else:
92
+ lst.append(bp_stack.push_bind(to_ctor=bp_impl, singleton=True))
93
+
94
+ lst.append(inj.bind(bp_iface, to_key=bp_stack.top))
95
+
96
+ #
97
+
98
+ async def catalog_backend_instantiator_provider(injector: inj.AsyncInjector) -> _catalog.CatalogBackendProvider.Instantiator: # noqa
99
+ async def inner(be: 'mc.BackendCatalog.Backend', cfgs: _types.BackendConfigs | None) -> ta.Any:
100
+ kwt = inj.build_kwargs_target(be.factory, non_strict=True)
101
+ kw = await injector.provide_kwargs(kwt)
102
+ return be.factory(*tv.collect(*(be.configs or []), *(cfgs or []), override=True), **kw)
103
+
104
+ return _catalog.CatalogBackendProvider.Instantiator(inner)
105
+
106
+ lst.append(inj.bind(_catalog.CatalogBackendProvider.Instantiator, to_async_fn=catalog_backend_instantiator_provider)) # noqa
107
+
108
+ return inj.as_elements(*lst)
@@ -0,0 +1,35 @@
1
+ import contextlib
2
+ import typing as ta
3
+
4
+ from ... import minichain as mc
5
+ from .types import BackendProvider
6
+
7
+
8
+ ServiceT = ta.TypeVar('ServiceT', bound=mc.Service)
9
+
10
+
11
+ ##
12
+
13
+
14
+ class FirstInWinsBackendProvider(BackendProvider[ServiceT]):
15
+ def __init__(
16
+ self,
17
+ backend_providers: ta.AbstractSet[BackendProvider],
18
+ ) -> None:
19
+ super().__init__()
20
+
21
+ self._backend_providers = [ta.cast(BackendProvider[ServiceT], bp) for bp in backend_providers]
22
+
23
+ def provide_backend(self) -> ta.AsyncContextManager[ServiceT]:
24
+ @contextlib.asynccontextmanager
25
+ async def inner():
26
+ from ...minichain.meta.firstinwins import AsyncioFirstInWinsService
27
+
28
+ async with contextlib.AsyncExitStack() as aes:
29
+ svcs = [
30
+ await aes.enter_async_context(bp.provide_backend())
31
+ for bp in self._backend_providers
32
+ ]
33
+ yield AsyncioFirstInWinsService(*svcs)
34
+
35
+ return inner()
@@ -19,7 +19,7 @@ class MessageContentExtractor(lang.Abstract):
19
19
  class MessageContentExtractorImpl(MessageContentExtractor):
20
20
  def extract_message_content(self, message: 'mc.Message') -> ta.Optional['mc.Content']:
21
21
  if isinstance(message, (mc.SystemMessage, mc.UserMessage, mc.AiMessage)):
22
- if message.c is not None:
22
+ if message.c:
23
23
  return check.isinstance(message.c, str)
24
24
  else:
25
25
  return None
@@ -24,7 +24,7 @@ def bind_main(
24
24
 
25
25
  els.extend([
26
26
  lc.bind_async_lifecycle_registrar(),
27
- lc.bind_async_managed_lifecycle_manager(),
27
+ lc.bind_async_managed_lifecycle_manager(eager=True),
28
28
  ])
29
29
 
30
30
  #
@@ -3,10 +3,6 @@ TODO:
3
3
  - lifecycles
4
4
  - StreamService
5
5
  """
6
- import typing as ta
7
-
8
- from omlish import lang
9
-
10
6
  from ..... import minichain as mc
11
7
  from .ai.types import AiChatGenerator
12
8
  from .events.manager import ChatEventsManager
@@ -14,16 +10,13 @@ from .events.types import UserMessagesChatEvent
14
10
  from .phases.manager import ChatPhaseManager
15
11
  from .phases.types import ChatPhase
16
12
  from .state.types import ChatStateManager
13
+ from .types import ChatDriver
17
14
 
18
15
 
19
16
  ##
20
17
 
21
18
 
22
- class ChatDriverGetter(lang.Func0[ta.Awaitable['ChatDriver']]):
23
- pass
24
-
25
-
26
- class ChatDriver:
19
+ class ChatDriverImpl(ChatDriver):
27
20
  def __init__(
28
21
  self,
29
22
  *,
@@ -14,7 +14,7 @@ from .configs import DriverConfig
14
14
 
15
15
  with lang.auto_proxy_import(globals()):
16
16
  from ....backends import inject as _backends
17
- from . import driver as _driver
17
+ from . import impl as _impl
18
18
  from . import types as _types
19
19
  from .ai import inject as _ai
20
20
  from .events import inject as _events
@@ -51,8 +51,10 @@ def bind_driver(cfg: DriverConfig = DriverConfig()) -> inj.Elements:
51
51
  #
52
52
 
53
53
  els.extend([
54
- inj.bind(_driver.ChatDriver, singleton=True),
55
- inj.bind_async_late(_driver.ChatDriver, _driver.ChatDriverGetter),
54
+ inj.bind(_impl.ChatDriverImpl, singleton=True),
55
+ inj.bind(_types.ChatDriver, to_key=_impl.ChatDriverImpl),
56
+
57
+ inj.bind_async_late(_types.ChatDriver, _types.ChatDriverGetter),
56
58
  ])
57
59
 
58
60
  #
@@ -59,11 +59,10 @@ def bind_state(cfg: StateConfig = StateConfig()) -> inj.Elements:
59
59
  els.extend([
60
60
  inj.bind(_ids.LastChatIdManager, singleton=True),
61
61
 
62
- phase_callbacks().bind_item(to_fn=inj.KwargsTarget.of(
63
- lambda lcim, cid: ChatPhaseCallback(ChatPhase.STARTED, lambda: lcim.set_last_chat_id(cid)),
62
+ phase_callbacks().bind_item(to_fn=inj.target(
64
63
  lcim=_ids.LastChatIdManager,
65
64
  cid=_types.ChatId,
66
- )),
65
+ )(lambda lcim, cid: ChatPhaseCallback(ChatPhase.STARTED, lambda: lcim.set_last_chat_id(cid)))),
67
66
  ])
68
67
 
69
68
  elif cfg.state == 'ephemeral':
@@ -29,10 +29,10 @@ def tool_context_providers() -> 'inj.ItemsBinderHelper[_execution.ToolContextPro
29
29
 
30
30
 
31
31
  def bind_tool_context_provider_to_key(key: ta.Any) -> inj.Elements:
32
- return tool_context_providers().bind_item(to_fn=inj.KwargsTarget.of(
33
- lambda v: _execution.ToolContextProvider(lambda: [v]),
34
- v=key,
35
- ), singleton=True)
32
+ return tool_context_providers().bind_item(
33
+ to_fn=inj.target(v=key)(lambda v: _execution.ToolContextProvider(lambda: [v])),
34
+ singleton=True,
35
+ )
36
36
 
37
37
 
38
38
  ##
@@ -0,0 +1,31 @@
1
+ import abc
2
+ import typing as ta
3
+ import uuid
4
+
5
+ from omlish import lang
6
+ from omlish import typedvalues as tv
7
+
8
+ from ..... import minichain as mc
9
+
10
+
11
+ ##
12
+
13
+
14
+ class ChatDriverId(tv.UniqueScalarTypedValue[uuid.UUID]):
15
+ pass
16
+
17
+
18
+ class ChatDriverGetter(lang.Func0[ta.Awaitable['ChatDriver']]):
19
+ pass
20
+
21
+
22
+ class ChatDriver(lang.Abstract):
23
+ async def start(self) -> None:
24
+ pass
25
+
26
+ async def stop(self) -> None:
27
+ pass
28
+
29
+ @abc.abstractmethod
30
+ def send_user_messages(self, next_user_chat: 'mc.UserChat') -> ta.Awaitable[None]:
31
+ raise NotImplementedError
@@ -1,3 +1,4 @@
1
+ from omlish import check
1
2
  from omlish import inject as inj
2
3
  from omlish import lang
3
4
 
@@ -9,7 +10,7 @@ from .configs import UserConfig
9
10
 
10
11
 
11
12
  with lang.auto_proxy_import(globals()):
12
- from .. import driver as _driver
13
+ from .. import types as _driver
13
14
  from ..state import types as _state
14
15
 
15
16
 
@@ -21,7 +22,7 @@ def bind_user(cfg: UserConfig = UserConfig()) -> inj.Elements:
21
22
 
22
23
  if cfg.initial_system_content is not None:
23
24
  async def add_initial_system_content(cm: '_state.ChatStateManager') -> None:
24
- await cm.extend_chat([mc.SystemMessage(cfg.initial_system_content)])
25
+ await cm.extend_chat([mc.SystemMessage(check.not_none(cfg.initial_system_content))])
25
26
 
26
27
  els.append(phase_callbacks().bind_item(to_fn=inj.KwargsTarget.of(
27
28
  lambda cm: ChatPhaseCallback(ChatPhase.STARTED, lambda: add_initial_system_content(cm)),
@@ -30,7 +31,7 @@ def bind_user(cfg: UserConfig = UserConfig()) -> inj.Elements:
30
31
 
31
32
  if cfg.initial_user_content is not None:
32
33
  async def add_initial_user_content(cdg: '_driver.ChatDriverGetter') -> None:
33
- await (await cdg()).send_user_messages([mc.UserMessage(cfg.initial_user_content)])
34
+ await (await cdg()).send_user_messages([mc.UserMessage(check.not_none(cfg.initial_user_content))])
34
35
 
35
36
  els.append(phase_callbacks().bind_item(to_fn=inj.KwargsTarget.of(
36
37
  lambda cdg: ChatPhaseCallback(ChatPhase.STARTED, lambda: add_initial_user_content(cdg)),
@@ -32,8 +32,6 @@ def bind_commands(cfg: CommandsConfig = CommandsConfig()) -> inj.Elements:
32
32
  inj.bind(_simple.EchoCommand, singleton=True),
33
33
  commands().bind_item(to_key=_simple.EchoCommand),
34
34
 
35
- inj.bind(_simple.QuitSignal, to_const=lang.as_async(lambda: None)), # type: ignore # FIXME: lol
36
-
37
35
  inj.bind(_simple.QuitCommand, singleton=True),
38
36
  commands().bind_item(to_key=_simple.QuitCommand),
39
37
  ])
@@ -1,8 +1,6 @@
1
- import typing as ta
2
-
3
- from omlish import lang
4
1
  from omlish.argparse import all as argparse
5
2
 
3
+ from ..ui import UiQuitSignal
6
4
  from .base import Command
7
5
 
8
6
 
@@ -22,15 +20,11 @@ class EchoCommand(Command):
22
20
  ##
23
21
 
24
22
 
25
- class QuitSignal(lang.Func0[ta.Awaitable[None]]):
26
- pass
27
-
28
-
29
23
  class QuitCommand(Command):
30
24
  def __init__(
31
25
  self,
32
26
  *,
33
- quit_signal: QuitSignal,
27
+ quit_signal: UiQuitSignal,
34
28
  ) -> None:
35
29
  super().__init__()
36
30
 
@@ -1,5 +1,5 @@
1
1
  from ..... import minichain as mc
2
- from ..drivers.driver import ChatDriver
2
+ from ..drivers.types import ChatDriver
3
3
  from .commands.manager import CommandsManager
4
4
 
5
5
 
@@ -6,6 +6,7 @@ from .configs import FacadeConfig
6
6
 
7
7
  with lang.auto_proxy_import(globals()):
8
8
  from . import facade as _facade
9
+ from . import ui as _ui
9
10
  from .commands import inject as _commands
10
11
 
11
12
 
@@ -27,4 +28,8 @@ def bind_facade(cfg: FacadeConfig = FacadeConfig()) -> inj.Elements:
27
28
 
28
29
  #
29
30
 
31
+ els.append(inj.bind(_ui.UiQuitSignal(_ui.raise_system_exit_ui_quit_signal)))
32
+
33
+ #
34
+
30
35
  return inj.as_elements(*els)
@@ -21,3 +21,14 @@ class NopUiMessageDisplayer(UiMessageDisplayer):
21
21
  class PrintMessageDisplayer(UiMessageDisplayer):
22
22
  async def display_ui_message(self, content: str) -> None:
23
23
  print(content)
24
+
25
+
26
+ ##
27
+
28
+
29
+ class UiQuitSignal(lang.Func0[ta.Awaitable[None]]):
30
+ pass
31
+
32
+
33
+ async def raise_system_exit_ui_quit_signal() -> None:
34
+ raise SystemExit
@@ -3,7 +3,7 @@ import typing as ta
3
3
  from .....inputs.asyncs import AsyncStringInput
4
4
  from .....inputs.asyncs import SyncAsyncStringInput
5
5
  from .....inputs.sync import InputSyncStringInput
6
- from ...drivers.driver import ChatDriver
6
+ from ...drivers.types import ChatDriver
7
7
  from ...facades.facade import ChatFacade
8
8
  from ..base import ChatInterface
9
9
 
@@ -1,4 +1,4 @@
1
- from ...drivers.driver import ChatDriver
1
+ from ...drivers.types import ChatDriver
2
2
  from ..base import ChatInterface
3
3
 
4
4
 
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
2
  import os
3
3
  import typing as ta
4
+ import weakref
4
5
 
5
6
  from omdev.tui import textual as tx
6
7
  from omlish import check
@@ -10,14 +11,15 @@ from omlish.logs import all as logs
10
11
 
11
12
  from ...... import minichain as mc
12
13
  from .....backends.types import BackendName
13
- from ...drivers.driver import ChatDriver
14
14
  from ...drivers.events.types import AiDeltaChatEvent
15
15
  from ...drivers.events.types import AiMessagesChatEvent
16
+ from ...drivers.types import ChatDriver
16
17
  from ...facades.facade import ChatFacade
17
18
  from .styles import read_app_css
18
19
  from .widgets.input import InputOuter
19
20
  from .widgets.input import InputTextArea
20
21
  from .widgets.messages import AiMessage
22
+ from .widgets.messages import MessagesContainer
21
23
  from .widgets.messages import StaticAiMessage
22
24
  from .widgets.messages import StreamAiMessage
23
25
  from .widgets.messages import ToolConfirmationMessage
@@ -66,6 +68,8 @@ class ChatApp(tx.App):
66
68
 
67
69
  self._chat_action_queue: asyncio.Queue[ta.Any] = asyncio.Queue()
68
70
 
71
+ self._input_focused_key_events: weakref.WeakSet[tx.Key] = weakref.WeakSet()
72
+
69
73
  def get_driver_class(self) -> type[tx.Driver]:
70
74
  return tx.get_pending_writes_driver_class(super().get_driver_class())
71
75
 
@@ -74,7 +78,7 @@ class ChatApp(tx.App):
74
78
  #
75
79
 
76
80
  def compose(self) -> tx.ComposeResult:
77
- yield tx.VerticalScroll(id='messages-container')
81
+ yield MessagesContainer(id='messages-container')
78
82
 
79
83
  yield InputOuter(id='input-outer')
80
84
 
@@ -84,7 +88,7 @@ class ChatApp(tx.App):
84
88
  return self.query_one('#input', InputTextArea)
85
89
 
86
90
  def _get_messages_container(self) -> tx.VerticalScroll:
87
- return self.query_one('#messages-container', tx.VerticalScroll)
91
+ return self.query_one('#messages-container', MessagesContainer)
88
92
 
89
93
  #
90
94
 
@@ -261,6 +265,20 @@ class ChatApp(tx.App):
261
265
 
262
266
  await self._chat_action_queue.put(ChatApp.UserInput(event.text))
263
267
 
268
+ @tx.on(tx.Key)
269
+ async def on_key(self, event: tx.Key) -> None:
270
+ if event in self._input_focused_key_events:
271
+ return
272
+
273
+ chat_input = self._get_input_text_area()
274
+
275
+ if not chat_input.has_focus:
276
+ self._input_focused_key_events.add(event)
277
+
278
+ chat_input.focus()
279
+
280
+ self.screen.post_message(tx.Key(event.key, event.character))
281
+
264
282
  #
265
283
 
266
284
  async def confirm_tool_use(
@@ -44,10 +44,7 @@ def bind_textual(cfg: TextualInterfaceConfig = TextualInterfaceConfig()) -> inj.
44
44
  els.extend([
45
45
  inj.bind(_app.ChatEventQueue, to_const=asyncio.Queue()),
46
46
 
47
- event_callbacks().bind_item(to_fn=inj.KwargsTarget.of(
48
- lambda eq: lambda ev: eq.put(ev),
49
- eq=_app.ChatEventQueue,
50
- )),
47
+ event_callbacks().bind_item(to_fn=inj.target(eq=_app.ChatEventQueue)(lambda eq: lambda ev: eq.put(ev))),
51
48
  ])
52
49
 
53
50
  #
@@ -83,7 +80,7 @@ def bind_textual(cfg: TextualInterfaceConfig = TextualInterfaceConfig()) -> inj.
83
80
 
84
81
  inj.bind(
85
82
  tx.DevtoolsSetup,
86
- to_async_fn=inj.KwargsTarget.of(lambda mgr: mgr.get_setup(), mgr=tx.DevtoolsManager),
83
+ to_async_fn=inj.target(mgr=tx.DevtoolsManager)(lambda mgr: mgr.get_setup()),
87
84
  singleton=True,
88
85
  ),
89
86
  ])
@@ -53,6 +53,8 @@
53
53
  /* Welcome */
54
54
 
55
55
  .welcome-message {
56
+ margin: 0;
57
+
56
58
  padding: 1 2 1 1;
57
59
 
58
60
  border: round;
@@ -9,6 +9,13 @@ from omlish import lang
9
9
  ##
10
10
 
11
11
 
12
+ class MessagesContainer(tx.VerticalScroll):
13
+ pass
14
+
15
+
16
+ ##
17
+
18
+
12
19
  class Message(tx.Static, lang.Abstract):
13
20
  def __init__(self, *args: ta.Any, **kwargs: ta.Any) -> None:
14
21
  super().__init__(*args, **kwargs)
@@ -16,7 +23,7 @@ class Message(tx.Static, lang.Abstract):
16
23
  self.add_class('message')
17
24
 
18
25
 
19
- ##
26
+ #
20
27
 
21
28
 
22
29
  class WelcomeMessage(Message):
@@ -32,7 +39,7 @@ class WelcomeMessage(Message):
32
39
  yield tx.Static(self._content, classes='welcome-message-content')
33
40
 
34
41
 
35
- ##
42
+ #
36
43
 
37
44
 
38
45
  class UserMessage(Message):
@@ -50,7 +57,7 @@ class UserMessage(Message):
50
57
  yield tx.Static(self._content)
51
58
 
52
59
 
53
- ##
60
+ #
54
61
 
55
62
 
56
63
  class AiMessage(Message, lang.Abstract):
@@ -124,7 +131,7 @@ class StreamAiMessage(AiMessage):
124
131
  self._stream_ = None
125
132
 
126
133
 
127
- ##
134
+ #
128
135
 
129
136
 
130
137
  class ToolConfirmationControls(tx.Static):
@@ -172,7 +179,7 @@ class ToolConfirmationMessage(Message):
172
179
  self._fut.set_result(True)
173
180
 
174
181
 
175
- ##
182
+ #
176
183
 
177
184
 
178
185
  class UiMessage(Message):