ommlds 0.0.0.dev449__tar.gz → 0.0.0.dev450__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (335) hide show
  1. {ommlds-0.0.0.dev449/ommlds.egg-info → ommlds-0.0.0.dev450}/PKG-INFO +3 -3
  2. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/.omlish-manifests.json +1 -1
  3. ommlds-0.0.0.dev450/ommlds/backends/google/protocol/__init__.py +3 -0
  4. ommlds-0.0.0.dev450/ommlds/backends/google/protocol/_marshal.py +16 -0
  5. ommlds-0.0.0.dev450/ommlds/backends/google/protocol/types.py +622 -0
  6. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/generation.py +1 -1
  7. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/main.py +27 -6
  8. ommlds-0.0.0.dev450/ommlds/cli/sessions/chat/code.py +114 -0
  9. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/interactive.py +2 -5
  10. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/printing.py +1 -4
  11. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/prompt.py +2 -2
  12. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/state.py +1 -0
  13. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/tools.py +3 -4
  14. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/tools/config.py +1 -0
  15. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/tools/inject.py +9 -2
  16. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/google/chat.py +66 -11
  17. ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/google/tools.py +149 -0
  18. ommlds-0.0.0.dev450/ommlds/minichain/lib/code/prompts.py +6 -0
  19. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/lib/fs/context.py +4 -4
  20. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/ls.py +2 -2
  21. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/read.py +5 -5
  22. ommlds-0.0.0.dev450/ommlds/minichain/lib/todo/context.py +27 -0
  23. ommlds-0.0.0.dev450/ommlds/minichain/lib/todo/tools/read.py +39 -0
  24. ommlds-0.0.0.dev450/ommlds/minichain/lib/todo/tools/write.py +275 -0
  25. ommlds-0.0.0.dev450/ommlds/minichain/lib/todo/types.py +55 -0
  26. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/jsonschema.py +11 -1
  27. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/reflect.py +7 -0
  28. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/types.py +9 -0
  29. ommlds-0.0.0.dev450/ommlds/minichain/utils.py +27 -0
  30. ommlds-0.0.0.dev450/ommlds/wiki/text/__init__.py +0 -0
  31. ommlds-0.0.0.dev450/ommlds/wiki/utils/__init__.py +0 -0
  32. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450/ommlds.egg-info}/PKG-INFO +3 -3
  33. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds.egg-info/SOURCES.txt +19 -7
  34. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds.egg-info/requires.txt +2 -2
  35. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/pyproject.toml +3 -3
  36. ommlds-0.0.0.dev449/ommlds/backends/google/protocol/types.py +0 -395
  37. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/LICENSE +0 -0
  38. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/MANIFEST.in +0 -0
  39. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/README.md +0 -0
  40. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/__about__.py +0 -0
  41. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/__init__.py +0 -0
  42. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/_hacks/__init__.py +0 -0
  43. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/_hacks/patches.py +0 -0
  44. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/__init__.py +0 -0
  45. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/__init__.py +0 -0
  46. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  47. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/_marshal.py +0 -0
  48. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  49. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/sse/_marshal.py +0 -0
  50. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  51. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/sse/events.py +0 -0
  52. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/anthropic/protocol/types.py +0 -0
  53. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/google/__init__.py +0 -0
  54. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/llamacpp/__init__.py +0 -0
  55. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  56. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/llamacpp/logging.py +0 -0
  57. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/__init__.py +0 -0
  58. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/__main__.py +0 -0
  59. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/caching.py +0 -0
  60. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/cli.py +0 -0
  61. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/limits.py +0 -0
  62. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/loading.py +0 -0
  63. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  64. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  65. {ommlds-0.0.0.dev449/ommlds/backends/google/protocol → ommlds-0.0.0.dev450/ommlds/backends/mlx/tokenization/detokenization}/__init__.py +0 -0
  66. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  67. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  68. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  69. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  70. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  71. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  72. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/mlx/tokenization/types.py +0 -0
  73. {ommlds-0.0.0.dev449/ommlds/backends/mlx/tokenization/detokenization → ommlds-0.0.0.dev450/ommlds/backends/openai}/__init__.py +0 -0
  74. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/__init__.py +0 -0
  75. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/_marshal.py +0 -0
  76. {ommlds-0.0.0.dev449/ommlds/backends/openai → ommlds-0.0.0.dev450/ommlds/backends/openai/protocol/chatcompletion}/__init__.py +0 -0
  77. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  78. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  79. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  80. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  81. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  82. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  83. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  84. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  85. {ommlds-0.0.0.dev449/ommlds/backends/openai/protocol/chatcompletion → ommlds-0.0.0.dev450/ommlds/backends/tinygrad}/__init__.py +0 -0
  86. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  87. {ommlds-0.0.0.dev449/ommlds/backends/tinygrad → ommlds-0.0.0.dev450/ommlds/backends/tinygrad/models}/__init__.py +0 -0
  88. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  89. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  90. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  91. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  92. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  93. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  94. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  95. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  96. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  97. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  98. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  99. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  100. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  101. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  102. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  103. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  104. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  105. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  106. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/torch/__init__.py +0 -0
  107. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/torch/backends.py +0 -0
  108. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/torch/devices.py +0 -0
  109. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/backends/torch/purge.py +0 -0
  110. {ommlds-0.0.0.dev449/ommlds/backends/tinygrad/models → ommlds-0.0.0.dev450/ommlds/cli}/__init__.py +0 -0
  111. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/__main__.py +0 -0
  112. {ommlds-0.0.0.dev449/ommlds/cli → ommlds-0.0.0.dev450/ommlds/cli/backends}/__init__.py +0 -0
  113. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/backends/inject.py +0 -0
  114. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/backends/standard.py +0 -0
  115. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/inject.py +0 -0
  116. {ommlds-0.0.0.dev449/ommlds/cli/backends → ommlds-0.0.0.dev450/ommlds/cli/sessions}/__init__.py +0 -0
  117. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/base.py +0 -0
  118. {ommlds-0.0.0.dev449/ommlds/cli/sessions → ommlds-0.0.0.dev450/ommlds/cli/sessions/chat}/__init__.py +0 -0
  119. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/base.py +0 -0
  120. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/chat/inject.py +0 -0
  121. {ommlds-0.0.0.dev449/ommlds/cli/sessions/chat → ommlds-0.0.0.dev450/ommlds/cli/sessions/completion}/__init__.py +0 -0
  122. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/completion/completion.py +0 -0
  123. {ommlds-0.0.0.dev449/ommlds/cli/sessions/completion → ommlds-0.0.0.dev450/ommlds/cli/sessions/embedding}/__init__.py +0 -0
  124. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/embedding/embedding.py +0 -0
  125. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/sessions/inject.py +0 -0
  126. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/state.py +0 -0
  127. {ommlds-0.0.0.dev449/ommlds/cli/sessions/embedding → ommlds-0.0.0.dev450/ommlds/cli/tools}/__init__.py +0 -0
  128. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/cli/tools/weather.py +0 -0
  129. {ommlds-0.0.0.dev449/ommlds/cli/tools → ommlds-0.0.0.dev450/ommlds/datasets}/__init__.py +0 -0
  130. {ommlds-0.0.0.dev449/ommlds/datasets → ommlds-0.0.0.dev450/ommlds/datasets/lib}/__init__.py +0 -0
  131. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/datasets/lib/movies.py +0 -0
  132. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/huggingface.py +0 -0
  133. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/__init__.py +0 -0
  134. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/_marshal.py +0 -0
  135. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/_typedvalues.py +0 -0
  136. {ommlds-0.0.0.dev449/ommlds/datasets/lib → ommlds-0.0.0.dev450/ommlds/minichain/backends}/__init__.py +0 -0
  137. {ommlds-0.0.0.dev449/ommlds/minichain/backends → ommlds-0.0.0.dev450/ommlds/minichain/backends/catalogs}/__init__.py +0 -0
  138. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/catalogs/base.py +0 -0
  139. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/catalogs/simple.py +0 -0
  140. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/catalogs/strings.py +0 -0
  141. {ommlds-0.0.0.dev449/ommlds/minichain/backends/catalogs → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls}/__init__.py +0 -0
  142. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/anthropic}/__init__.py +0 -0
  143. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/anthropic/chat.py +0 -0
  144. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  145. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/anthropic/stream.py +0 -0
  146. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/anthropic → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/duckduckgo}/__init__.py +0 -0
  147. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  148. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/duckduckgo → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/google}/__init__.py +0 -0
  149. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/google/names.py +0 -0
  150. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/google/search.py +0 -0
  151. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/google/stream.py +0 -0
  152. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/google → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/huggingface}/__init__.py +0 -0
  153. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  154. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/huggingface/repos.py +0 -0
  155. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/huggingface → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/llamacpp}/__init__.py +0 -0
  156. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  157. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  158. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  159. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/llamacpp/stream.py +0 -0
  160. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/mistral.py +0 -0
  161. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/llamacpp → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/mlx}/__init__.py +0 -0
  162. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/mlx/chat.py +0 -0
  163. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/mlx → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/openai}/__init__.py +0 -0
  164. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  165. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  166. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  167. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/openai/format.py +0 -0
  168. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/openai/names.py +0 -0
  169. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/openai/stream.py +0 -0
  170. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/openai → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/sentencepiece}/__init__.py +0 -0
  171. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  172. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  173. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/sentencepiece → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/tinygrad}/__init__.py +0 -0
  174. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/tinygrad/chat.py +0 -0
  175. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/tinygrad → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/tokenizers}/__init__.py +0 -0
  176. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  177. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/tokenizers → ommlds-0.0.0.dev450/ommlds/minichain/backends/impls/transformers}/__init__.py +0 -0
  178. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  179. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  180. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/impls/transformers/transformers.py +0 -0
  181. {ommlds-0.0.0.dev449/ommlds/minichain/backends/impls/transformers → ommlds-0.0.0.dev450/ommlds/minichain/backends/strings}/__init__.py +0 -0
  182. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/strings/manifests.py +0 -0
  183. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/strings/parsing.py +0 -0
  184. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/backends/strings/resolving.py +0 -0
  185. {ommlds-0.0.0.dev449/ommlds/minichain/backends/strings → ommlds-0.0.0.dev450/ommlds/minichain/chat}/__init__.py +0 -0
  186. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/_marshal.py +0 -0
  187. {ommlds-0.0.0.dev449/ommlds/minichain/chat → ommlds-0.0.0.dev450/ommlds/minichain/chat/choices}/__init__.py +0 -0
  188. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/choices/adapters.py +0 -0
  189. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/choices/services.py +0 -0
  190. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/choices/types.py +0 -0
  191. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/formats.py +0 -0
  192. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/history.py +0 -0
  193. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/messages.py +0 -0
  194. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/metadata.py +0 -0
  195. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/services.py +0 -0
  196. {ommlds-0.0.0.dev449/ommlds/minichain/chat/choices → ommlds-0.0.0.dev450/ommlds/minichain/chat/stream}/__init__.py +0 -0
  197. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/stream/adapters.py +0 -0
  198. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/stream/services.py +0 -0
  199. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/stream/types.py +0 -0
  200. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/templating.py +0 -0
  201. {ommlds-0.0.0.dev449/ommlds/minichain/chat/stream → ommlds-0.0.0.dev450/ommlds/minichain/chat/tools}/__init__.py +0 -0
  202. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/tools/execution.py +0 -0
  203. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/tools/ids.py +0 -0
  204. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/tools/parsing.py +0 -0
  205. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/tools/types.py +0 -0
  206. {ommlds-0.0.0.dev449/ommlds/minichain/chat/tools → ommlds-0.0.0.dev450/ommlds/minichain/chat/transforms}/__init__.py +0 -0
  207. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/transforms/base.py +0 -0
  208. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  209. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/transforms/services.py +0 -0
  210. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/chat/types.py +0 -0
  211. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/completion.py +0 -0
  212. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/configs.py +0 -0
  213. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/__init__.py +0 -0
  214. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/_marshal.py +0 -0
  215. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/images.py +0 -0
  216. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/materialize.py +0 -0
  217. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/metadata.py +0 -0
  218. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/namespaces.py +0 -0
  219. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/placeholders.py +0 -0
  220. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/prepare.py +0 -0
  221. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/sequence.py +0 -0
  222. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/simple.py +0 -0
  223. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/text.py +0 -0
  224. {ommlds-0.0.0.dev449/ommlds/minichain/chat → ommlds-0.0.0.dev450/ommlds/minichain/content}/transforms/__init__.py +0 -0
  225. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/transforms/base.py +0 -0
  226. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/transforms/interleave.py +0 -0
  227. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/transforms/squeeze.py +0 -0
  228. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/transforms/stringify.py +0 -0
  229. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/transforms/strings.py +0 -0
  230. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/content/types.py +0 -0
  231. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/docs/__init__.py +0 -0
  232. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/docs/docs.py +0 -0
  233. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/docs/dtypes.py +0 -0
  234. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/docs/filters.py +0 -0
  235. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/envs.py +0 -0
  236. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/json.py +0 -0
  237. {ommlds-0.0.0.dev449/ommlds/minichain/content/transforms → ommlds-0.0.0.dev450/ommlds/minichain/lib}/__init__.py +0 -0
  238. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/lib/bash.py +0 -0
  239. {ommlds-0.0.0.dev449/ommlds/minichain/lib → ommlds-0.0.0.dev450/ommlds/minichain/lib/code}/__init__.py +0 -0
  240. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/lib/fs/__init__.py +0 -0
  241. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/lib/fs/binfiles.py +0 -0
  242. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/lib/fs/errors.py +0 -0
  243. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/lib/fs/suggestions.py +0 -0
  244. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/__init__.py +0 -0
  245. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/recursivels/__init__.py +0 -0
  246. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/recursivels/execution.py +0 -0
  247. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/recursivels/rendering.py +0 -0
  248. {ommlds-0.0.0.dev449/ommlds/minichain/lib/fs/catalog → ommlds-0.0.0.dev450/ommlds/minichain/lib/fs/tools}/recursivels/running.py +0 -0
  249. {ommlds-0.0.0.dev449/ommlds/minichain/llms → ommlds-0.0.0.dev450/ommlds/minichain/lib/todo}/__init__.py +0 -0
  250. {ommlds-0.0.0.dev449/ommlds/minichain/models → ommlds-0.0.0.dev450/ommlds/minichain/lib/todo/tools}/__init__.py +0 -0
  251. {ommlds-0.0.0.dev449/ommlds/minichain/models/repos → ommlds-0.0.0.dev450/ommlds/minichain/llms}/__init__.py +0 -0
  252. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/llms/_marshal.py +0 -0
  253. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/llms/tokens.py +0 -0
  254. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/llms/types.py +0 -0
  255. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/metadata.py +0 -0
  256. {ommlds-0.0.0.dev449/ommlds/minichain/registries → ommlds-0.0.0.dev450/ommlds/minichain/models}/__init__.py +0 -0
  257. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/models/configs.py +0 -0
  258. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/models/names.py +0 -0
  259. {ommlds-0.0.0.dev449/ommlds/minichain/stream → ommlds-0.0.0.dev450/ommlds/minichain/models/repos}/__init__.py +0 -0
  260. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/models/repos/resolving.py +0 -0
  261. {ommlds-0.0.0.dev449/ommlds/minichain/text → ommlds-0.0.0.dev450/ommlds/minichain/registries}/__init__.py +0 -0
  262. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/registries/globals.py +0 -0
  263. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/registries/manifests.py +0 -0
  264. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/registries/registry.py +0 -0
  265. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/resources.py +0 -0
  266. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/search.py +0 -0
  267. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/__init__.py +0 -0
  268. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/_marshal.py +0 -0
  269. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/_origclasses.py +0 -0
  270. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/_typedvalues.py +0 -0
  271. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/facades.py +0 -0
  272. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/requests.py +0 -0
  273. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/responses.py +0 -0
  274. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/services/services.py +0 -0
  275. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/standard.py +0 -0
  276. {ommlds-0.0.0.dev449/ommlds/minichain/text/toolparsing → ommlds-0.0.0.dev450/ommlds/minichain/stream}/__init__.py +0 -0
  277. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/stream/services.py +0 -0
  278. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/stream/wrap.py +0 -0
  279. {ommlds-0.0.0.dev449/ommlds/minichain/tools → ommlds-0.0.0.dev450/ommlds/minichain/text}/__init__.py +0 -0
  280. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/applypatch.py +0 -0
  281. {ommlds-0.0.0.dev449/ommlds/minichain/tools/execution → ommlds-0.0.0.dev450/ommlds/minichain/text/toolparsing}/__init__.py +0 -0
  282. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/base.py +0 -0
  283. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  284. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  285. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  286. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  287. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  288. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/llamacpp/types.py +0 -0
  289. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  290. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tokens/__init__.py +0 -0
  291. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tokens/specials.py +0 -0
  292. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tokens/tokenizers.py +0 -0
  293. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tokens/types.py +0 -0
  294. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tokens/vocabs.py +0 -0
  295. {ommlds-0.0.0.dev449/ommlds/minichain/vectors → ommlds-0.0.0.dev450/ommlds/minichain/tools}/__init__.py +0 -0
  296. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/_marshal.py +0 -0
  297. {ommlds-0.0.0.dev449/ommlds/server → ommlds-0.0.0.dev450/ommlds/minichain/tools/execution}/__init__.py +0 -0
  298. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/execution/catalog.py +0 -0
  299. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/execution/context.py +0 -0
  300. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/execution/errors.py +0 -0
  301. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/execution/executors.py +0 -0
  302. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/execution/reflect.py +0 -0
  303. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/tools/fns.py +0 -0
  304. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/types.py +0 -0
  305. {ommlds-0.0.0.dev449/ommlds/tools → ommlds-0.0.0.dev450/ommlds/minichain/vectors}/__init__.py +0 -0
  306. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/_marshal.py +0 -0
  307. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/embeddings.py +0 -0
  308. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/index.py +0 -0
  309. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/search.py +0 -0
  310. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/similarity.py +0 -0
  311. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/stores.py +0 -0
  312. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/minichain/vectors/types.py +0 -0
  313. {ommlds-0.0.0.dev449/ommlds/wiki → ommlds-0.0.0.dev450/ommlds/server}/__init__.py +0 -0
  314. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/server/__main__.py +0 -0
  315. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/server/cli.py +0 -0
  316. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/server/client.py +0 -0
  317. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/server/server.py +0 -0
  318. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/server/service.py +0 -0
  319. {ommlds-0.0.0.dev449/ommlds/wiki/text → ommlds-0.0.0.dev450/ommlds/tools}/__init__.py +0 -0
  320. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/tools/git.py +0 -0
  321. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/tools/ocr.py +0 -0
  322. {ommlds-0.0.0.dev449/ommlds/wiki/utils → ommlds-0.0.0.dev450/ommlds/wiki}/__init__.py +0 -0
  323. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/analyze.py +0 -0
  324. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/convert.py +0 -0
  325. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/models.py +0 -0
  326. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/text/mfh.py +0 -0
  327. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/text/wtp.py +0 -0
  328. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/utils/io.py +0 -0
  329. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/utils/progress.py +0 -0
  330. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/utils/xml.py +0 -0
  331. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds/wiki/xml.py +0 -0
  332. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds.egg-info/dependency_links.txt +0 -0
  333. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds.egg-info/entry_points.txt +0 -0
  334. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/ommlds.egg-info/top_level.txt +0 -0
  335. {ommlds-0.0.0.dev449 → ommlds-0.0.0.dev450}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev449
3
+ Version: 0.0.0.dev450
4
4
  Summary: ommlds
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,8 +14,8 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omdev==0.0.0.dev449
18
- Requires-Dist: omlish==0.0.0.dev449
17
+ Requires-Dist: omdev==0.0.0.dev450
18
+ Requires-Dist: omlish==0.0.0.dev450
19
19
  Provides-Extra: all
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.29; extra == "all"
@@ -96,7 +96,7 @@
96
96
  "module": ".minichain.backends.impls.google.chat",
97
97
  "attr": null,
98
98
  "file": "ommlds/minichain/backends/impls/google/chat.py",
99
- "line": 29,
99
+ "line": 33,
100
100
  "value": {
101
101
  "!.minichain.registries.manifests.RegistryManifest": {
102
102
  "module": "ommlds.minichain.backends.impls.google.chat",
@@ -0,0 +1,3 @@
1
+ from omlish import marshal as _msh # noqa
2
+
3
+ _msh.register_global_module_import('._marshal', __package__)
@@ -0,0 +1,16 @@
1
+ from omlish import lang
2
+ from omlish import marshal as msh
3
+
4
+ from .types import Value
5
+
6
+
7
+ ##
8
+
9
+
10
+ @lang.static_init
11
+ def _install_standard_marshalling() -> None:
12
+ msh.install_standard_factories(
13
+ *msh.standard_polymorphism_factories(
14
+ msh.polymorphism_from_subclasses(Value),
15
+ ),
16
+ )
@@ -0,0 +1,622 @@
1
+ """
2
+ https://ai.google.dev/api/generate-content
3
+ """
4
+ import typing as ta
5
+
6
+ from omlish import dataclasses as dc
7
+ from omlish import lang
8
+ from omlish import marshal as msh
9
+
10
+
11
+ ##
12
+
13
+
14
+ def _set_class_marshal_options(cls):
15
+ msh.update_object_metadata(
16
+ cls,
17
+ field_naming=msh.Naming.LOW_CAMEL,
18
+ field_defaults=msh.FieldMetadata(
19
+ options=msh.FieldOptions(
20
+ omit_if=lang.is_none,
21
+ ),
22
+ ),
23
+ )
24
+
25
+ return cls
26
+
27
+
28
+ @dc.dataclass(frozen=True, kw_only=True)
29
+ @_set_class_marshal_options
30
+ @msh.update_fields_metadata(
31
+ ['data'],
32
+ marshaler=msh.Base64MarshalerUnmarshaler(bytes),
33
+ unmarshaler=msh.Base64MarshalerUnmarshaler(bytes),
34
+ )
35
+ class Blob(lang.Final):
36
+ mine_type: str
37
+ data: bytes
38
+
39
+
40
+ @dc.dataclass(frozen=True, kw_only=True)
41
+ @_set_class_marshal_options
42
+ class FunctionCall(lang.Final):
43
+ id: str | None = None
44
+ name: str
45
+ args: ta.Mapping[str, ta.Any] | None = None
46
+
47
+
48
+ Scheduling: ta.TypeAlias = ta.Literal[
49
+ # This value is unused.
50
+ 'SCHEDULING_UNSPECIFIED',
51
+
52
+ # Only add the result to the conversation context, do not interrupt or trigger generation.
53
+ 'SILENT',
54
+
55
+ # Add the result to the conversation context, and prompt to generate output without interrupting ongoing
56
+ # generation.
57
+ 'WHEN_IDLE',
58
+
59
+ # Add the result to the conversation context, interrupt ongoing generation and prompt to generate output.
60
+ 'INTERRUPT',
61
+ ]
62
+
63
+
64
+ @dc.dataclass(frozen=True, kw_only=True)
65
+ @_set_class_marshal_options
66
+ class FunctionResponse(lang.Final):
67
+ id: str | None = None
68
+ name: str
69
+ response: ta.Mapping[str, ta.Any] | None = None
70
+ will_continue: bool | None = None
71
+ scheduling: Scheduling | None = None
72
+
73
+
74
+ @dc.dataclass(frozen=True, kw_only=True)
75
+ @_set_class_marshal_options
76
+ class FileData(lang.Final):
77
+ mime_type: str
78
+ file_uri: str
79
+
80
+
81
+ Language: ta.TypeAlias = ta.Literal[
82
+ # Unspecified language. This value should not be used.
83
+ 'LANGUAGE_UNSPECIFIED',
84
+
85
+ # Python >= 3.10, with numpy and simpy available.
86
+ 'PYTHON',
87
+ ]
88
+
89
+
90
+ @dc.dataclass(frozen=True, kw_only=True)
91
+ @_set_class_marshal_options
92
+ class ExecutableCode(lang.Final):
93
+ language: Language
94
+ code: str
95
+
96
+
97
+ Outcome: ta.TypeAlias = ta.Literal[
98
+ # Unspecified status. This value should not be used.
99
+ 'OUTCOME_UNSPECIFIED',
100
+
101
+ # Code execution completed successfully.
102
+ 'OUTCOME_OK',
103
+
104
+ # Code execution finished but with a failure. stderr should contain the reason.
105
+ 'OUTCOME_FAILED',
106
+
107
+ # Code execution ran for too long, and was cancelled. There may or may not be a partial output present.
108
+ 'OUTCOME_DEADLINE_EXCEEDED',
109
+ ]
110
+
111
+
112
+ @dc.dataclass(frozen=True, kw_only=True)
113
+ @_set_class_marshal_options
114
+ class CodeExecutionResult(lang.Final):
115
+ outcome: Outcome
116
+ output: str
117
+
118
+
119
+ @dc.dataclass(frozen=True, kw_only=True)
120
+ @_set_class_marshal_options
121
+ class VideoMetadata(lang.Final):
122
+ start_offset: str # Duration
123
+ end_offset: str # Duration
124
+ fps: float
125
+
126
+
127
+ @dc.dataclass(frozen=True, kw_only=True)
128
+ @msh.update_fields_metadata(
129
+ ['thought_signature'],
130
+ marshaler=msh.OptionalMarshaler(msh.Base64MarshalerUnmarshaler(bytes)),
131
+ unmarshaler=msh.OptionalUnmarshaler(msh.Base64MarshalerUnmarshaler(bytes)),
132
+ )
133
+ @_set_class_marshal_options
134
+ class Part(lang.Final):
135
+ # TODO: data: msh.oneof ...
136
+ text: str | None = None
137
+ inline_data: Blob | None = None
138
+ function_call: FunctionCall | None = None
139
+ function_response: FunctionResponse | None = None
140
+ file_data: FileData | None = None
141
+ executable_code: ExecutableCode | None = None
142
+ code_execution_result: CodeExecutionResult | None = None
143
+
144
+ thought: bool | None = None
145
+ thought_signature: bytes | None = None
146
+
147
+ # TODO: metadata: msh.oneof ...
148
+ video_metadata: VideoMetadata | None = None
149
+
150
+
151
+ @dc.dataclass(frozen=True, kw_only=True)
152
+ @_set_class_marshal_options
153
+ class Content(lang.Final):
154
+ parts: ta.Sequence[Part] | None = None
155
+ role: ta.Literal['user', 'model'] | None = None
156
+
157
+
158
+ ##
159
+
160
+
161
+ Type: ta.TypeAlias = ta.Literal[
162
+ # Not specified, should not be used.
163
+ 'TYPE_UNSPECIFIED',
164
+
165
+ # String type.
166
+ 'STRING',
167
+
168
+ # Number type.
169
+ 'NUMBER',
170
+
171
+ # Integer type.
172
+ 'INTEGER',
173
+
174
+ # Boolean type.
175
+ 'BOOLEAN',
176
+
177
+ # Array type.
178
+ 'ARRAY',
179
+
180
+ # Object type.
181
+ 'OBJECT',
182
+
183
+ # Null type.
184
+ 'NULL',
185
+ ]
186
+
187
+
188
+ Struct: ta.TypeAlias = ta.Mapping[str, 'Value']
189
+
190
+
191
+ @dc.dataclass(frozen=True)
192
+ class Value(lang.Abstract, lang.Sealed):
193
+ """https://protobuf.dev/reference/protobuf/google.protobuf/#value"""
194
+
195
+
196
+ @dc.dataclass(frozen=True)
197
+ @msh.update_object_metadata(field_naming=msh.Naming.LOW_CAMEL)
198
+ class NullValue(Value, lang.Final):
199
+ null_value: None = None
200
+
201
+
202
+ @dc.dataclass(frozen=True)
203
+ @_set_class_marshal_options
204
+ class NumberValue(Value, lang.Final):
205
+ number_value: float
206
+
207
+
208
+ @dc.dataclass(frozen=True)
209
+ @_set_class_marshal_options
210
+ class StringValue(Value, lang.Final):
211
+ string_value: str
212
+
213
+
214
+ @dc.dataclass(frozen=True)
215
+ @_set_class_marshal_options
216
+ class BoolValue(Value, lang.Final):
217
+ bool_value: bool
218
+
219
+
220
+ @dc.dataclass(frozen=True)
221
+ @_set_class_marshal_options
222
+ class StructValue(Value, lang.Final):
223
+ struct_value: Struct
224
+
225
+
226
+ @dc.dataclass(frozen=True)
227
+ @_set_class_marshal_options
228
+ class ListValue(Value, lang.Final):
229
+ list_value: ta.Sequence[Value]
230
+
231
+
232
+ @dc.dataclass(frozen=True, kw_only=True)
233
+ @_set_class_marshal_options
234
+ class Schema(lang.Final):
235
+ type: Type | None = None # FIXME: required
236
+ format: str | None = None
237
+ title: str | None = None
238
+ description: str | None = None
239
+ nullable: bool | None = None
240
+ enum: ta.Sequence[str] | None = None
241
+ max_items: str | None = None # int64
242
+ min_items: str | None = None # int64
243
+ properties: ta.Mapping[str, 'Schema'] | None = None
244
+ required: ta.Sequence[str] | None = None
245
+ min_properties: str | None = None # int64
246
+ max_properties: str | None = None # int64
247
+ min_length: str | None = None # int64
248
+ max_length: str | None = None # int64
249
+ pattern: str | None = None
250
+ example: Value | None = None
251
+ any_of: ta.Sequence['Schema'] | None = None
252
+ property_ordering: ta.Sequence[str] | None = None
253
+ default: Value | None = None
254
+ items: ta.Optional['Schema'] = None
255
+ minimum: float | None = None
256
+ maximum: float | None = None
257
+
258
+
259
+ FunctionBehavior: ta.TypeAlias = ta.Literal[
260
+ #This value is unused.
261
+ 'UNSPECIFIED',
262
+
263
+ # If set, the system will wait to receive the function response before continuing the conversation.
264
+ 'BLOCKING',
265
+
266
+ # If set, the system will not wait to receive the function response. Instead, it will attempt to handle function
267
+ # responses as they become available while maintaining the conversation between the user and the model.
268
+ 'NON_BLOCKING',
269
+ ]
270
+
271
+
272
+ @dc.dataclass(frozen=True, kw_only=True)
273
+ @_set_class_marshal_options
274
+ class FunctionDeclaration(lang.Final):
275
+ name: str
276
+ description: str
277
+
278
+ behavior: FunctionBehavior | None = None
279
+
280
+ parameters: Schema | None = None
281
+ parameters_json_schema: Value | None = None
282
+
283
+ response: Schema | None = None
284
+ response_json_schema: Value | None = None
285
+
286
+
287
+ DynamicRetrievalMode: ta.TypeAlias = ta.Literal[
288
+ # Always trigger retrieval.
289
+ 'MODE_UNSPECIFIED',
290
+
291
+ # Run retrieval only when system decides it is necessary.
292
+ 'MODE_DYNAMIC',
293
+ ]
294
+
295
+
296
+ @dc.dataclass(frozen=True, kw_only=True)
297
+ @_set_class_marshal_options
298
+ class DynamicRetrievalConfig(lang.Final):
299
+ mode: DynamicRetrievalMode | None = None
300
+
301
+ dynamic_threshold: int | float | None = None
302
+
303
+
304
+ @dc.dataclass(frozen=True, kw_only=True)
305
+ @_set_class_marshal_options
306
+ class GoogleSearchRetrieval(lang.Final):
307
+ dynamic_retrieval_config: DynamicRetrievalConfig
308
+
309
+
310
+ @dc.dataclass(frozen=True, kw_only=True)
311
+ @_set_class_marshal_options
312
+ class CodeExecution(lang.Final):
313
+ pass
314
+
315
+
316
+ @dc.dataclass(frozen=True, kw_only=True)
317
+ @_set_class_marshal_options
318
+ class Interval(lang.Final):
319
+ start_time: str # Timestamp
320
+ end_time: str # Timestamp
321
+
322
+
323
+ @dc.dataclass(frozen=True, kw_only=True)
324
+ @_set_class_marshal_options
325
+ class GoogleSearch(lang.Final):
326
+ time_range_filter: Interval | None = None
327
+
328
+
329
+ @dc.dataclass(frozen=True, kw_only=True)
330
+ @_set_class_marshal_options
331
+ class UrlContext(lang.Final):
332
+ pass
333
+
334
+
335
+ @dc.dataclass(frozen=True, kw_only=True)
336
+ @_set_class_marshal_options
337
+ class Tool(lang.Final):
338
+ function_declarations: ta.Sequence[FunctionDeclaration] | None = None
339
+ google_search_retrieval: GoogleSearchRetrieval | None = None
340
+ code_execution: CodeExecution | None = None
341
+ google_search: GoogleSearch | None = None
342
+ url_context: UrlContext | None = None
343
+
344
+
345
+ FunctionCallingMode: ta.TypeAlias = ta.Literal[
346
+ # Unspecified function calling mode. This value should not be used.
347
+ 'MODE_UNSPECIFIED',
348
+
349
+ # Default model behavior, model decides to predict either a function call or a natural language response.
350
+ 'AUTO',
351
+
352
+ # Model is constrained to always predicting a function call only. If "allowedFunctionNames" are set, the predicted
353
+ # function call will be limited to any one of "allowedFunctionNames", else the predicted function call will be any
354
+ # one of the provided "functionDeclarations".
355
+ 'ANY',
356
+
357
+ # Model will not predict any function call. Model behavior is same as when not passing any function declarations.
358
+ 'NONE',
359
+
360
+ # Model decides to predict either a function call or a natural language response, but will validate function calls
361
+ # with constrained decoding. If "allowedFunctionNames" are set, the predicted function call will be limited to any
362
+ # one of "allowedFunctionNames", else the predicted function call will be any one of the provided
363
+ # "functionDeclarations".
364
+ 'VALIDATED',
365
+ ]
366
+
367
+
368
+ @dc.dataclass(frozen=True, kw_only=True)
369
+ @_set_class_marshal_options
370
+ class FunctionCallingConfig(lang.Final):
371
+ mode: FunctionCallingMode | None = None
372
+ allowed_function_names: ta.Sequence[str] | None = None
373
+
374
+
375
+ @dc.dataclass(frozen=True, kw_only=True)
376
+ @_set_class_marshal_options
377
+ class ToolConfig(lang.Final):
378
+ function_calling_config: FunctionCallingConfig | None = None
379
+
380
+
381
+ HarmCategory: ta.TypeAlias = ta.Literal[
382
+ # Category is unspecified.
383
+ 'HARM_CATEGORY_UNSPECIFIED',
384
+
385
+ # PaLM - Negative or harmful comments targeting identity and/or protected attribute.
386
+ 'HARM_CATEGORY_DEROGATORY',
387
+
388
+ # PaLM - Content that is rude, disrespectful, or profane.
389
+ 'HARM_CATEGORY_TOXICITY',
390
+
391
+ # PaLM - Describes scenarios depicting violence against an individual or group, or general descriptions of gore.
392
+ 'HARM_CATEGORY_VIOLENCE',
393
+
394
+ # PaLM - Contains references to sexual acts or other lewd content.
395
+ 'HARM_CATEGORY_SEXUAL',
396
+
397
+ # PaLM - Promotes unchecked medical advice.
398
+ 'HARM_CATEGORY_MEDICAL',
399
+
400
+ # PaLM - Dangerous content that promotes, facilitates, or encourages harmful acts.
401
+ 'HARM_CATEGORY_DANGEROUS',
402
+
403
+ # Gemini - Harassment content.
404
+ 'HARM_CATEGORY_HARASSMENT',
405
+
406
+ # Gemini - Hate speech and content.
407
+ 'HARM_CATEGORY_HATE_SPEECH',
408
+
409
+ # Gemini - Sexually explicit content.
410
+ 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
411
+
412
+ # Gemini - Dangerous content.
413
+ 'HARM_CATEGORY_DANGEROUS_CONTENT',
414
+
415
+ # Gemini - Content that may be used to harm civic integrity. DEPRECATED: use enableEnhancedCivicAnswers instead.
416
+ 'HARM_CATEGORY_CIVIC_INTEGRITY',
417
+ ]
418
+
419
+
420
+ HarmBlockThreshold: ta.TypeAlias = ta.Literal[
421
+ # Threshold is unspecified.
422
+ 'HARM_BLOCK_THRESHOLD_UNSPECIFIED',
423
+
424
+ # Content with NEGLIGIBLE will be allowed.
425
+ 'BLOCK_LOW_AND_ABOVE',
426
+
427
+ # Content with NEGLIGIBLE and LOW will be allowed.
428
+ 'BLOCK_MEDIUM_AND_ABOVE',
429
+
430
+ # Content with NEGLIGIBLE, LOW, and MEDIUM will be allowed.
431
+ 'BLOCK_ONLY_HIGH',
432
+
433
+ # All content will be allowed.
434
+ 'BLOCK_NONE',
435
+
436
+ # Turn off the safety filter.
437
+ 'OFF',
438
+ ]
439
+
440
+
441
+ @dc.dataclass(frozen=True, kw_only=True)
442
+ @_set_class_marshal_options
443
+ class SafetySetting(lang.Final):
444
+ category: HarmCategory
445
+ threshold: HarmBlockThreshold
446
+
447
+
448
+ @dc.dataclass(frozen=True, kw_only=True)
449
+ @_set_class_marshal_options
450
+ class ThinkingConfig(lang.Final):
451
+ include_thoughts: bool | None = None
452
+ thinking_budget: int | None = None
453
+
454
+
455
+ Modality: ta.TypeAlias = ta.Literal[
456
+ # Default value.
457
+ 'MODALITY_UNSPECIFIED',
458
+
459
+ # Indicates the model should return text.
460
+ 'TEXT',
461
+
462
+ # Indicates the model should return images.
463
+ 'IMAGE',
464
+
465
+ # Indicates the model should return audio.
466
+ 'AUDIO',
467
+ ]
468
+
469
+
470
+ MediaResolution: ta.TypeAlias = ta.Literal[
471
+ # Media resolution has not been set.
472
+ 'MEDIA_RESOLUTION_UNSPECIFIED',
473
+
474
+ # Media resolution set to low (64 tokens).
475
+ 'MEDIA_RESOLUTION_LOW',
476
+
477
+ # Media resolution set to medium (256 tokens).
478
+ 'MEDIA_RESOLUTION_MEDIUM',
479
+
480
+ # Media resolution set to high (zoomed reframing with 256 tokens).
481
+ 'MEDIA_RESOLUTION_HIGH',
482
+ ]
483
+
484
+
485
+ @dc.dataclass(frozen=True, kw_only=True)
486
+ @_set_class_marshal_options
487
+ class GenerationConfig(lang.Final):
488
+ stop_sequences: ta.Sequence[str] | None = None
489
+
490
+ response_mime_type: str | None = None
491
+ response_schema: Schema | None = None
492
+ response_json_schema: Value | None = None
493
+ response_modalities: ta.Sequence[Modality] | None = None
494
+
495
+ candidate_count: int | None = None
496
+ max_output_tokens: int | None = None
497
+ temperature: float | None = None
498
+ top_p: float | None = None
499
+ top_k: int | None = None
500
+ seed: int | None = None
501
+ presence_penalty: float | None = None
502
+ frequency_penalty: float | None = None
503
+
504
+ response_logprobs: bool | None = None
505
+ logprobs: int | None = None
506
+
507
+ enable_enhanced_civic_answers: bool | None = None
508
+
509
+ # speech_config: SpeechConfig | None = None
510
+
511
+ thinking_config: ThinkingConfig | None = None
512
+
513
+ media_resolution: MediaResolution | None = None
514
+
515
+
516
+ @dc.dataclass(frozen=True, kw_only=True)
517
+ @_set_class_marshal_options
518
+ class GenerateContentRequest(lang.Final):
519
+ """https://ai.google.dev/api/generate-content#request-body"""
520
+
521
+ contents: ta.Sequence[Content] | None = None
522
+ tools: ta.Sequence[Tool] | None = None
523
+ tool_config: ToolConfig | None = None
524
+ safety_settings: ta.Sequence[SafetySetting] | None = None
525
+ system_instruction: Content | None = None
526
+ generation_config: GenerationConfig | None = None
527
+ cached_content: str | None = None
528
+
529
+
530
+ FinishReason: ta.TypeAlias = ta.Literal[
531
+ # Default value. This value is unused.
532
+ 'FINISH_REASON_UNSPECIFIED',
533
+
534
+ # Natural stop point of the model or provided stop sequence.
535
+ 'STOP',
536
+
537
+ # The maximum number of tokens as specified in the request was reached.
538
+ 'MAX_TOKENS',
539
+
540
+ # The response candidate content was flagged for safety reasons.
541
+ 'SAFETY',
542
+
543
+ # The response candidate content was flagged for recitation reasons.
544
+ 'RECITATION',
545
+
546
+ # The response candidate content was flagged for using an unsupported language.
547
+ 'LANGUAGE',
548
+
549
+ # Unknown reason.
550
+ 'OTHER',
551
+
552
+ # Token generation stopped because the content contains forbidden terms.
553
+ 'BLOCKLIST',
554
+
555
+ # Token generation stopped for potentially containing prohibited content.
556
+ 'PROHIBITED_CONTENT',
557
+
558
+ # Token generation stopped because the content potentially contains Sensitive Personally Identifiable Information
559
+ # (SPII).
560
+ 'SPII',
561
+
562
+ # The function call generated by the model is invalid.
563
+ 'MALFORMED_FUNCTION_CALL',
564
+
565
+ # Token generation stopped because generated images contain safety violations.
566
+ 'IMAGE_SAFETY',
567
+
568
+ # Model generated a tool call but no tools were enabled in the request.
569
+ 'UNEXPECTED_TOOL_CALL',
570
+
571
+ # Model called too many tools consecutively, thus the system exited execution.
572
+ 'TOO_MANY_TOOL_CALLS',
573
+ ]
574
+
575
+
576
+ @dc.dataclass(frozen=True, kw_only=True)
577
+ @_set_class_marshal_options
578
+ class GenerateContentResponse(lang.Final):
579
+ """https://ai.google.dev/api/generate-content#v1beta.GenerateContentResponse"""
580
+
581
+ @dc.dataclass(frozen=True, kw_only=True)
582
+ @_set_class_marshal_options
583
+ class Candidate(lang.Final):
584
+ content: Content | None = None
585
+ finish_reason: FinishReason | None = None
586
+ # safety_ratings: ta.Sequence[SafetyRating] | None = None
587
+ # citation_metadata: CitationMetadata | None = None
588
+ token_count: int | None = None
589
+ # grounding_attributions: ta.Sequence[GroundingAttribution] | None = None
590
+ # grounding_metadata: GroundingMetadata | None = None
591
+ avg_logprobs: float | None = None
592
+ # logprobs_result: LogprobsResult | None = None
593
+ # url_context_metadata: UrlContextMetadata | None = None
594
+ index: int | None = None
595
+
596
+ candidates: ta.Sequence[Candidate] | None = None
597
+
598
+ @dc.dataclass(frozen=True, kw_only=True)
599
+ @_set_class_marshal_options
600
+ class UsageMetadata(lang.Final):
601
+ prompt_token_count: int | None = None
602
+ cached_content_token_count: int | None = None
603
+ candidates_token_count: int | None = None
604
+ total_token_count: int | None = None
605
+ thoughts_token_count: int | None = None
606
+
607
+ @dc.dataclass(frozen=True, kw_only=True)
608
+ @_set_class_marshal_options
609
+ class ModalityTokenCount:
610
+ modality: str | None = None
611
+ token_count: int | None = None
612
+
613
+ prompt_tokens_details: ta.Sequence[ModalityTokenCount] | None = None
614
+ cache_tokens_details: ta.Sequence[ModalityTokenCount] | None = None
615
+ candidates_tokens_details: ta.Sequence[ModalityTokenCount] | None = None
616
+ tool_use_prompt_tokens_details: ta.Sequence[ModalityTokenCount] | None = None
617
+
618
+ usage_metadata: UsageMetadata | None = None
619
+
620
+ model_version: str | None = None
621
+
622
+ response_id: str | None = None
@@ -254,7 +254,7 @@ def stream_generate(
254
254
  add_special_tokens=add_special_tokens,
255
255
  )
256
256
 
257
- prompt = mx.array(prompt) # type: ignore[arg-type]
257
+ prompt = mx.array(ta.cast(ta.Any, prompt))
258
258
 
259
259
  detokenizer = tokenization.detokenizer
260
260
  detokenizer.reset()