ommlds 0.0.0.dev414__tar.gz → 0.0.0.dev415__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 (314) hide show
  1. {ommlds-0.0.0.dev414/ommlds.egg-info → ommlds-0.0.0.dev415}/PKG-INFO +3 -3
  2. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/.manifests.json +1 -1
  3. ommlds-0.0.0.dev415/ommlds/cli/backends/inject.py +76 -0
  4. ommlds-0.0.0.dev415/ommlds/cli/backends/standard.py +22 -0
  5. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/interactive.py +1 -1
  6. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/prompt.py +1 -1
  7. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/completion/completion.py +1 -1
  8. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/embedding/embedding.py +1 -1
  9. ommlds-0.0.0.dev415/ommlds/minichain/backends/catalogs/base.py +31 -0
  10. ommlds-0.0.0.dev415/ommlds/minichain/backends/catalogs/simple.py +61 -0
  11. ommlds-0.0.0.dev415/ommlds/minichain/backends/catalogs/strings.py +55 -0
  12. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/huggingface/repos.py +9 -1
  13. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/strings/resolving.py +56 -36
  14. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/registries/globals.py +5 -1
  15. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/registries/registry.py +6 -5
  16. ommlds-0.0.0.dev415/ommlds/wiki/utils/__init__.py +0 -0
  17. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415/ommlds.egg-info}/PKG-INFO +3 -3
  18. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds.egg-info/SOURCES.txt +4 -4
  19. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds.egg-info/requires.txt +2 -2
  20. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/pyproject.toml +3 -4
  21. ommlds-0.0.0.dev414/ommlds/cli/backends/catalog.py +0 -70
  22. ommlds-0.0.0.dev414/ommlds/cli/backends/inject.py +0 -58
  23. ommlds-0.0.0.dev414/ommlds/cli/backends/registry.py +0 -21
  24. ommlds-0.0.0.dev414/ommlds/cli/backends/standard.py +0 -22
  25. ommlds-0.0.0.dev414/ommlds/cli/backends/strings.py +0 -48
  26. ommlds-0.0.0.dev414/ommlds/minichain/.dataclasses.json +0 -3
  27. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/LICENSE +0 -0
  28. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/MANIFEST.in +0 -0
  29. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/README.md +0 -0
  30. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/__about__.py +0 -0
  31. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/__init__.py +0 -0
  32. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/_hacks/__init__.py +0 -0
  33. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/_hacks/patches.py +0 -0
  34. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/__init__.py +0 -0
  35. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/__init__.py +0 -0
  36. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/__init__.py +0 -0
  37. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/marshal.py +0 -0
  38. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/sse/__init__.py +0 -0
  39. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/sse/assemble.py +0 -0
  40. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/sse/events.py +0 -0
  41. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/sse/marshal.py +0 -0
  42. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/anthropic/protocol/types.py +0 -0
  43. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/llamacpp/__init__.py +0 -0
  44. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/llamacpp/buildwheel.py +0 -0
  45. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/llamacpp/logging.py +0 -0
  46. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/__init__.py +0 -0
  47. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/__main__.py +0 -0
  48. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/caching.py +0 -0
  49. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/cli.py +0 -0
  50. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/generation.py +0 -0
  51. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/limits.py +0 -0
  52. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/loading.py +0 -0
  53. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/LICENSE +0 -0
  54. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/__init__.py +0 -0
  55. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/detokenization/__init__.py +0 -0
  56. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/detokenization/base.py +0 -0
  57. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/detokenization/bpe.py +0 -0
  58. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/detokenization/naive.py +0 -0
  59. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/detokenization/spm.py +0 -0
  60. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/loading.py +0 -0
  61. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/tokenization.py +0 -0
  62. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/mlx/tokenization/types.py +0 -0
  63. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/__init__.py +0 -0
  64. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/__init__.py +0 -0
  65. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/__init__.py +0 -0
  66. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/chunk.py +0 -0
  67. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/contentpart.py +0 -0
  68. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/message.py +0 -0
  69. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/request.py +0 -0
  70. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/response.py +0 -0
  71. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/responseformat.py +0 -0
  72. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/chatcompletion/tokenlogprob.py +0 -0
  73. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/openai/protocol/completionusage.py +0 -0
  74. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/__init__.py +0 -0
  75. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/LICENSE +0 -0
  76. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/__init__.py +0 -0
  77. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/__init__.py +0 -0
  78. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/__main__.py +0 -0
  79. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/attention.py +0 -0
  80. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/cli.py +0 -0
  81. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/fetch.py +0 -0
  82. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/llm.py +0 -0
  83. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/loading.py +0 -0
  84. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/quantization.py +0 -0
  85. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/sampling.py +0 -0
  86. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/tokenization.py +0 -0
  87. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/llama3/transformer.py +0 -0
  88. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/sdxl/__init__.py +0 -0
  89. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/sdxl/__main__.py +0 -0
  90. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/sdxl/cli.py +0 -0
  91. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/sdxl/clip.py +0 -0
  92. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/sdxl/sdxl.py +0 -0
  93. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/models/sdxl/unet.py +0 -0
  94. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/tinygrad/tinygrad.py +0 -0
  95. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/torch/__init__.py +0 -0
  96. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/torch/backends.py +0 -0
  97. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/torch/devices.py +0 -0
  98. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/backends/torch/purge.py +0 -0
  99. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/__init__.py +0 -0
  100. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/__main__.py +0 -0
  101. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/backends/__init__.py +0 -0
  102. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/inject.py +0 -0
  103. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/main.py +0 -0
  104. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/__init__.py +0 -0
  105. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/base.py +0 -0
  106. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/__init__.py +0 -0
  107. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/base.py +0 -0
  108. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/inject.py +0 -0
  109. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/printing.py +0 -0
  110. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/state.py +0 -0
  111. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/chat/tools.py +0 -0
  112. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/completion/__init__.py +0 -0
  113. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/embedding/__init__.py +0 -0
  114. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/sessions/inject.py +0 -0
  115. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/state.py +0 -0
  116. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/tools/__init__.py +0 -0
  117. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/tools/config.py +0 -0
  118. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/tools/inject.py +0 -0
  119. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/cli/tools/weather.py +0 -0
  120. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/datasets/__init__.py +0 -0
  121. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/datasets/lib/__init__.py +0 -0
  122. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/datasets/lib/movies.py +0 -0
  123. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/huggingface.py +0 -0
  124. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/__init__.py +0 -0
  125. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/_abc.py +0 -0
  126. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/_typedvalues.py +0 -0
  127. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/__init__.py +0 -0
  128. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls → ommlds-0.0.0.dev415/ommlds/minichain/backends/catalogs}/__init__.py +0 -0
  129. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/anthropic → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls}/__init__.py +0 -0
  130. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/duckduckgo → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/anthropic}/__init__.py +0 -0
  131. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/anthropic/chat.py +0 -0
  132. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/anthropic/names.py +0 -0
  133. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/google → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/duckduckgo}/__init__.py +0 -0
  134. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/duckduckgo/search.py +0 -0
  135. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/huggingface → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/google}/__init__.py +0 -0
  136. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/google/chat.py +0 -0
  137. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/google/names.py +0 -0
  138. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/google/search.py +0 -0
  139. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/llamacpp → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/huggingface}/__init__.py +0 -0
  140. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/huggingface/configs.py +0 -0
  141. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/mlx → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/llamacpp}/__init__.py +0 -0
  142. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/llamacpp/chat.py +0 -0
  143. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/llamacpp/completion.py +0 -0
  144. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/llamacpp/format.py +0 -0
  145. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/llamacpp/stream.py +0 -0
  146. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/mistral.py +0 -0
  147. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/openai → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/mlx}/__init__.py +0 -0
  148. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/mlx/chat.py +0 -0
  149. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/sentencepiece → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/openai}/__init__.py +0 -0
  150. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/openai/chat.py +0 -0
  151. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/openai/completion.py +0 -0
  152. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/openai/embedding.py +0 -0
  153. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/openai/format.py +0 -0
  154. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/openai/names.py +0 -0
  155. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/openai/stream.py +0 -0
  156. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/tinygrad → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/sentencepiece}/__init__.py +0 -0
  157. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/sentencepiece/tokens.py +0 -0
  158. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/sqlite.py +0 -0
  159. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/tokenizers → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/tinygrad}/__init__.py +0 -0
  160. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/tinygrad/chat.py +0 -0
  161. {ommlds-0.0.0.dev414/ommlds/minichain/backends/impls/transformers → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/tokenizers}/__init__.py +0 -0
  162. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/tokenizers/tokens.py +0 -0
  163. {ommlds-0.0.0.dev414/ommlds/minichain/backends/strings → ommlds-0.0.0.dev415/ommlds/minichain/backends/impls/transformers}/__init__.py +0 -0
  164. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/transformers/sentence.py +0 -0
  165. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/transformers/tokens.py +0 -0
  166. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/impls/transformers/transformers.py +0 -0
  167. {ommlds-0.0.0.dev414/ommlds/minichain/chat → ommlds-0.0.0.dev415/ommlds/minichain/backends/strings}/__init__.py +0 -0
  168. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/strings/manifests.py +0 -0
  169. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/backends/strings/parsing.py +0 -0
  170. {ommlds-0.0.0.dev414/ommlds/minichain/chat/choices → ommlds-0.0.0.dev415/ommlds/minichain/chat}/__init__.py +0 -0
  171. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/_marshal.py +0 -0
  172. {ommlds-0.0.0.dev414/ommlds/minichain/chat/stream → ommlds-0.0.0.dev415/ommlds/minichain/chat/choices}/__init__.py +0 -0
  173. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/choices/adapters.py +0 -0
  174. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/choices/services.py +0 -0
  175. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/choices/types.py +0 -0
  176. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/formats.py +0 -0
  177. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/history.py +0 -0
  178. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/messages.py +0 -0
  179. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/metadata.py +0 -0
  180. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/services.py +0 -0
  181. {ommlds-0.0.0.dev414/ommlds/minichain/chat/tools → ommlds-0.0.0.dev415/ommlds/minichain/chat/stream}/__init__.py +0 -0
  182. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/stream/adapters.py +0 -0
  183. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/stream/services.py +0 -0
  184. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/stream/types.py +0 -0
  185. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/templating.py +0 -0
  186. {ommlds-0.0.0.dev414/ommlds/minichain/chat/transforms → ommlds-0.0.0.dev415/ommlds/minichain/chat/tools}/__init__.py +0 -0
  187. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/tools/execution.py +0 -0
  188. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/tools/ids.py +0 -0
  189. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/tools/parsing.py +0 -0
  190. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/tools/types.py +0 -0
  191. {ommlds-0.0.0.dev414/ommlds/minichain/content → ommlds-0.0.0.dev415/ommlds/minichain/chat}/transforms/__init__.py +0 -0
  192. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/transforms/base.py +0 -0
  193. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/transforms/metadata.py +0 -0
  194. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/transforms/services.py +0 -0
  195. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/chat/types.py +0 -0
  196. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/completion.py +0 -0
  197. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/configs.py +0 -0
  198. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/__init__.py +0 -0
  199. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/_marshal.py +0 -0
  200. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/images.py +0 -0
  201. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/materialize.py +0 -0
  202. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/metadata.py +0 -0
  203. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/namespaces.py +0 -0
  204. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/placeholders.py +0 -0
  205. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/prepare.py +0 -0
  206. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/sequence.py +0 -0
  207. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/simple.py +0 -0
  208. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/text.py +0 -0
  209. {ommlds-0.0.0.dev414/ommlds/minichain/lib → ommlds-0.0.0.dev415/ommlds/minichain/content/transforms}/__init__.py +0 -0
  210. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/transforms/base.py +0 -0
  211. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/transforms/interleave.py +0 -0
  212. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/transforms/squeeze.py +0 -0
  213. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/transforms/stringify.py +0 -0
  214. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/transforms/strings.py +0 -0
  215. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/content/types.py +0 -0
  216. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/docs/__init__.py +0 -0
  217. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/docs/docs.py +0 -0
  218. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/docs/dtypes.py +0 -0
  219. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/docs/filters.py +0 -0
  220. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/envs.py +0 -0
  221. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/json.py +0 -0
  222. {ommlds-0.0.0.dev414/ommlds/minichain/lib/fs → ommlds-0.0.0.dev415/ommlds/minichain/lib}/__init__.py +0 -0
  223. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/lib/bash.py +0 -0
  224. {ommlds-0.0.0.dev414/ommlds/minichain/lib/fs/ls → ommlds-0.0.0.dev415/ommlds/minichain/lib/fs}/__init__.py +0 -0
  225. {ommlds-0.0.0.dev414/ommlds/minichain/llms → ommlds-0.0.0.dev415/ommlds/minichain/lib/fs/ls}/__init__.py +0 -0
  226. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/lib/fs/ls/execution.py +0 -0
  227. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/lib/fs/ls/rendering.py +0 -0
  228. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/lib/fs/ls/running.py +0 -0
  229. {ommlds-0.0.0.dev414/ommlds/minichain/models → ommlds-0.0.0.dev415/ommlds/minichain/llms}/__init__.py +0 -0
  230. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/llms/_marshal.py +0 -0
  231. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/llms/tokens.py +0 -0
  232. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/llms/types.py +0 -0
  233. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/metadata.py +0 -0
  234. {ommlds-0.0.0.dev414/ommlds/minichain/models/repos → ommlds-0.0.0.dev415/ommlds/minichain/models}/__init__.py +0 -0
  235. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/models/configs.py +0 -0
  236. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/models/names.py +0 -0
  237. {ommlds-0.0.0.dev414/ommlds/minichain/registries → ommlds-0.0.0.dev415/ommlds/minichain/models/repos}/__init__.py +0 -0
  238. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/models/repos/resolving.py +0 -0
  239. {ommlds-0.0.0.dev414/ommlds/minichain/stream → ommlds-0.0.0.dev415/ommlds/minichain/registries}/__init__.py +0 -0
  240. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/registries/manifests.py +0 -0
  241. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/resources.py +0 -0
  242. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/search.py +0 -0
  243. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/__init__.py +0 -0
  244. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/_marshal.py +0 -0
  245. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/_origclasses.py +0 -0
  246. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/_typedvalues.py +0 -0
  247. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/facades.py +0 -0
  248. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/requests.py +0 -0
  249. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/responses.py +0 -0
  250. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/services/services.py +0 -0
  251. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/standard.py +0 -0
  252. {ommlds-0.0.0.dev414/ommlds/minichain/text → ommlds-0.0.0.dev415/ommlds/minichain/stream}/__init__.py +0 -0
  253. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/stream/services.py +0 -0
  254. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/stream/wrap.py +0 -0
  255. {ommlds-0.0.0.dev414/ommlds/minichain/text/toolparsing → ommlds-0.0.0.dev415/ommlds/minichain/text}/__init__.py +0 -0
  256. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/applypatch.py +0 -0
  257. {ommlds-0.0.0.dev414/ommlds/minichain/tools → ommlds-0.0.0.dev415/ommlds/minichain/text/toolparsing}/__init__.py +0 -0
  258. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/base.py +0 -0
  259. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/dumb.py +0 -0
  260. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/llamacpp/LICENSE +0 -0
  261. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/llamacpp/__init__.py +0 -0
  262. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/llamacpp/hermes2.py +0 -0
  263. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/llamacpp/llama31.py +0 -0
  264. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/llamacpp/types.py +0 -0
  265. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/text/toolparsing/llamacpp/utils.py +0 -0
  266. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tokens/__init__.py +0 -0
  267. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tokens/specials.py +0 -0
  268. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tokens/tokenizers.py +0 -0
  269. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tokens/types.py +0 -0
  270. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tokens/vocabs.py +0 -0
  271. {ommlds-0.0.0.dev414/ommlds/minichain/tools/execution → ommlds-0.0.0.dev415/ommlds/minichain/tools}/__init__.py +0 -0
  272. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/_marshal.py +0 -0
  273. {ommlds-0.0.0.dev414/ommlds/minichain/vectors → ommlds-0.0.0.dev415/ommlds/minichain/tools/execution}/__init__.py +0 -0
  274. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/execution/catalog.py +0 -0
  275. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/execution/context.py +0 -0
  276. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/execution/executors.py +0 -0
  277. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/execution/reflect.py +0 -0
  278. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/fns.py +0 -0
  279. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/jsonschema.py +0 -0
  280. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/reflect.py +0 -0
  281. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/tools/types.py +0 -0
  282. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/types.py +0 -0
  283. {ommlds-0.0.0.dev414/ommlds/server → ommlds-0.0.0.dev415/ommlds/minichain/vectors}/__init__.py +0 -0
  284. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/_marshal.py +0 -0
  285. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/embeddings.py +0 -0
  286. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/index.py +0 -0
  287. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/search.py +0 -0
  288. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/similarity.py +0 -0
  289. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/stores.py +0 -0
  290. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/minichain/vectors/types.py +0 -0
  291. {ommlds-0.0.0.dev414/ommlds/tools → ommlds-0.0.0.dev415/ommlds/server}/__init__.py +0 -0
  292. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/server/__main__.py +0 -0
  293. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/server/cli.py +0 -0
  294. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/server/client.py +0 -0
  295. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/server/server.py +0 -0
  296. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/server/service.py +0 -0
  297. {ommlds-0.0.0.dev414/ommlds/wiki → ommlds-0.0.0.dev415/ommlds/tools}/__init__.py +0 -0
  298. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/tools/git.py +0 -0
  299. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/tools/ocr.py +0 -0
  300. {ommlds-0.0.0.dev414/ommlds/wiki/text → ommlds-0.0.0.dev415/ommlds/wiki}/__init__.py +0 -0
  301. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/analyze.py +0 -0
  302. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/convert.py +0 -0
  303. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/models.py +0 -0
  304. {ommlds-0.0.0.dev414/ommlds/wiki/utils → ommlds-0.0.0.dev415/ommlds/wiki/text}/__init__.py +0 -0
  305. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/text/mfh.py +0 -0
  306. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/text/wtp.py +0 -0
  307. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/utils/io.py +0 -0
  308. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/utils/progress.py +0 -0
  309. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/utils/xml.py +0 -0
  310. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds/wiki/xml.py +0 -0
  311. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds.egg-info/dependency_links.txt +0 -0
  312. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds.egg-info/entry_points.txt +0 -0
  313. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/ommlds.egg-info/top_level.txt +0 -0
  314. {ommlds-0.0.0.dev414 → ommlds-0.0.0.dev415}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev414
3
+ Version: 0.0.0.dev415
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.dev414
18
- Requires-Dist: omlish==0.0.0.dev414
17
+ Requires-Dist: omdev==0.0.0.dev415
18
+ Requires-Dist: omlish==0.0.0.dev415
19
19
  Provides-Extra: all
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.27; extra == "all"
@@ -122,7 +122,7 @@
122
122
  "module": ".minichain.backends.impls.huggingface.repos",
123
123
  "attr": null,
124
124
  "file": "ommlds/minichain/backends/impls/huggingface/repos.py",
125
- "line": 11,
125
+ "line": 19,
126
126
  "value": {
127
127
  "!.minichain.registries.manifests.RegistryManifest": {
128
128
  "module": "ommlds.minichain.backends.impls.huggingface.repos",
@@ -0,0 +1,76 @@
1
+ import typing as ta
2
+
3
+ from omlish import inject as inj
4
+ from omlish import lang
5
+
6
+ from ...minichain.backends.catalogs.base import BackendCatalog
7
+ from ...minichain.backends.catalogs.strings import BackendStringBackendCatalog
8
+
9
+
10
+ ##
11
+
12
+
13
+ def bind_strings_backends() -> inj.Elements:
14
+ lst: list[inj.Elemental] = []
15
+
16
+ lst.extend([
17
+ inj.bind(BackendStringBackendCatalog, singleton=True),
18
+ inj.bind(BackendCatalog, to_key=BackendStringBackendCatalog),
19
+ ])
20
+
21
+ from ...minichain.backends.impls.huggingface.repos import HuggingfaceModelRepoResolver
22
+ from ...minichain.models.repos.resolving import ModelRepoResolver
23
+
24
+ lst.extend([
25
+ inj.bind(HuggingfaceModelRepoResolver, singleton=True),
26
+ inj.bind(ModelRepoResolver, to_key=HuggingfaceModelRepoResolver),
27
+
28
+ ])
29
+
30
+ return inj.as_elements(*lst)
31
+
32
+
33
+ def bind_simple_backends() -> inj.Elements:
34
+ lst: list[inj.Elemental] = []
35
+
36
+ from ...minichain.backends.catalogs.simple import SimpleBackendCatalog
37
+ from ...minichain.backends.catalogs.simple import SimpleBackendCatalogEntries
38
+ from ...minichain.backends.catalogs.simple import SimpleBackendCatalogEntry
39
+
40
+ lst.extend([
41
+ inj.set_binder[SimpleBackendCatalogEntry](),
42
+ inj.bind(
43
+ lang.typed_lambda(SimpleBackendCatalogEntries, s=ta.AbstractSet[SimpleBackendCatalogEntry])(
44
+ lambda s: list(s),
45
+ ),
46
+ singleton=True,
47
+ ),
48
+ ])
49
+
50
+ lst.extend([
51
+ inj.bind(SimpleBackendCatalog, singleton=True),
52
+ inj.bind(BackendCatalog, to_key=SimpleBackendCatalog),
53
+ ])
54
+
55
+ from .standard import STANDARD_BACKEND_CATALOG_ENTRIES
56
+
57
+ lst.extend([
58
+ inj.bind_set_entry_const(ta.AbstractSet[SimpleBackendCatalogEntry], e)
59
+ for e in STANDARD_BACKEND_CATALOG_ENTRIES
60
+ ])
61
+
62
+ return inj.as_elements(*lst)
63
+
64
+
65
+ def bind_backends(
66
+ *,
67
+ enable_backend_strings: bool = False,
68
+ ) -> inj.Elements:
69
+ lst: list[inj.Elemental] = []
70
+
71
+ if enable_backend_strings:
72
+ lst.append(bind_strings_backends())
73
+ else:
74
+ lst.append(bind_simple_backends())
75
+
76
+ return inj.as_elements(*lst)
@@ -0,0 +1,22 @@
1
+ import typing as ta
2
+
3
+ from ... import minichain as mc
4
+ from ...minichain.backends.catalogs.simple import SimpleBackendCatalogEntry
5
+ from ...minichain.backends.catalogs.simple import simple_backend_catalog_entry
6
+
7
+
8
+ ##
9
+
10
+
11
+ STANDARD_BACKEND_CATALOG_ENTRIES: ta.Sequence[SimpleBackendCatalogEntry] = [
12
+ simple_backend_catalog_entry(mc.ChatChoicesService, 'openai'),
13
+
14
+ simple_backend_catalog_entry(mc.ChatChoicesStreamService, 'openai'),
15
+
16
+ simple_backend_catalog_entry(mc.CompletionService, 'llamacpp'),
17
+ simple_backend_catalog_entry(mc.CompletionService, 'openai'),
18
+ simple_backend_catalog_entry(mc.CompletionService, 'tfm'),
19
+
20
+ simple_backend_catalog_entry(mc.EmbeddingService, 'openai'),
21
+ simple_backend_catalog_entry(mc.EmbeddingService, 'stfm'),
22
+ ]
@@ -4,7 +4,7 @@ import typing as ta
4
4
  from omlish import lang
5
5
 
6
6
  from .... import minichain as mc
7
- from ...backends.catalog import BackendCatalog
7
+ from ....minichain.backends.catalogs.base import BackendCatalog
8
8
  from .base import DEFAULT_CHAT_MODEL_BACKEND
9
9
  from .base import ChatSession
10
10
  from .printing import ChatSessionPrinter
@@ -4,7 +4,7 @@ from omlish import check
4
4
  from omlish import lang
5
5
 
6
6
  from .... import minichain as mc
7
- from ...backends.catalog import BackendCatalog
7
+ from ....minichain.backends.catalogs.base import BackendCatalog
8
8
  from .base import DEFAULT_CHAT_MODEL_BACKEND
9
9
  from .base import ChatOptions
10
10
  from .base import ChatSession
@@ -4,7 +4,7 @@ from omlish import check
4
4
  from omlish import lang
5
5
 
6
6
  from .... import minichain as mc
7
- from ...backends.catalog import BackendCatalog
7
+ from ....minichain.backends.catalogs.base import BackendCatalog
8
8
  from ..base import Session
9
9
 
10
10
 
@@ -4,7 +4,7 @@ from omlish import lang
4
4
  from omlish.formats import json
5
5
 
6
6
  from .... import minichain as mc
7
- from ...backends.catalog import BackendCatalog
7
+ from ....minichain.backends.catalogs.base import BackendCatalog
8
8
  from ..base import Session
9
9
 
10
10
 
@@ -0,0 +1,31 @@
1
+ import abc
2
+ import typing as ta
3
+
4
+ from omlish import lang
5
+
6
+
7
+ ##
8
+
9
+
10
+ class BackendCatalog(lang.Abstract):
11
+ @abc.abstractmethod
12
+ def get_backend(self, service_cls: ta.Any, name: str, *args: ta.Any, **kwargs: ta.Any) -> ta.Any:
13
+ raise NotImplementedError
14
+
15
+ # #
16
+ #
17
+ # class Bound(lang.Final, ta.Generic[T]):
18
+ # def __init__(self, catalog: 'BackendCatalog', service_cls: ta.Any) -> None:
19
+ # super().__init__()
20
+ #
21
+ # self._catalog = catalog
22
+ # self._service_cls = service_cls
23
+ #
24
+ # def get_backend(self, name: str, *args: ta.Any, **kwargs: ta.Any) -> T:
25
+ # return ta.cast(T, self._catalog.get_backend(self._service_cls, name, *args, **kwargs))
26
+ #
27
+ # def __getitem__(
28
+ # self,
29
+ # service_cls: type[T],
30
+ # ) -> Bound[T]:
31
+ # return BackendCatalog.Bound(self, service_cls)
@@ -0,0 +1,61 @@
1
+ import functools
2
+ import typing as ta
3
+
4
+ from omlish import check
5
+ from omlish import dataclasses as dc
6
+
7
+ from ...registries.globals import registry_of
8
+ from .base import BackendCatalog
9
+
10
+
11
+ ##
12
+
13
+
14
+ @dc.dataclass(frozen=True, eq=False)
15
+ class SimpleBackendCatalogEntry:
16
+ service_cls: ta.Any
17
+ name: str
18
+ factory_fn: ta.Callable[..., ta.Any]
19
+
20
+
21
+ SimpleBackendCatalogEntries = ta.NewType('SimpleBackendCatalogEntries', ta.Sequence[SimpleBackendCatalogEntry])
22
+
23
+
24
+ ##
25
+
26
+
27
+ class SimpleBackendCatalog(BackendCatalog):
28
+ def __init__(
29
+ self,
30
+ entries: SimpleBackendCatalogEntries,
31
+ ) -> None:
32
+ super().__init__()
33
+
34
+ self._entries: list[SimpleBackendCatalogEntry] = list(entries)
35
+
36
+ dct: dict[ta.Any, dict[str, SimpleBackendCatalogEntry]] = {}
37
+ for e in self._entries:
38
+ sc_dct = dct.setdefault(e.service_cls, {})
39
+ check.not_in(e.name, sc_dct)
40
+ sc_dct[e.name] = e
41
+ self._dct = dct
42
+
43
+ def get_backend(self, service_cls: ta.Any, name: str, *args: ta.Any, **kwargs: ta.Any) -> ta.Any:
44
+ e = self._dct[service_cls][name]
45
+ return e.factory_fn(*args, **kwargs)
46
+
47
+
48
+ ##
49
+
50
+
51
+ def simple_backend_catalog_entry(
52
+ service_cls: ta.Any,
53
+ name: str,
54
+ *args: ta.Any,
55
+ **kwargs: ta.Any,
56
+ ) -> SimpleBackendCatalogEntry:
57
+ return SimpleBackendCatalogEntry(
58
+ service_cls,
59
+ name,
60
+ functools.partial(registry_of[service_cls].new, name, *args, **kwargs),
61
+ )
@@ -0,0 +1,55 @@
1
+ import typing as ta
2
+
3
+ from omlish import check
4
+
5
+ from ...models.configs import ModelPath
6
+ from ...models.configs import ModelRepo
7
+ from ...models.repos.resolving import ModelRepoResolver
8
+ from ...registries.globals import registry_new
9
+ from ..strings.parsing import parse_backend_string
10
+ from ..strings.resolving import BackendStringResolver
11
+ from ..strings.resolving import ResolveBackendStringArgs
12
+ from ..strings.resolving import build_manifest_backend_string_resolver
13
+ from .base import BackendCatalog
14
+
15
+
16
+ ##
17
+
18
+
19
+ class BackendStringBackendCatalog(BackendCatalog):
20
+ def __init__(
21
+ self,
22
+ string_resolver: BackendStringResolver | None = None,
23
+ *,
24
+ model_repo_resolver: ModelRepoResolver | None = None,
25
+ ) -> None:
26
+ super().__init__()
27
+
28
+ if string_resolver is None:
29
+ string_resolver = build_manifest_backend_string_resolver()
30
+ self._string_resolver = string_resolver
31
+ self._model_repo_resolver = model_repo_resolver
32
+
33
+ def get_backend(self, service_cls: ta.Any, name: str, *args: ta.Any, **kwargs: ta.Any) -> ta.Any:
34
+ ps = parse_backend_string(name)
35
+ rs = check.not_none(self._string_resolver.resolve_backend_string(ResolveBackendStringArgs(
36
+ service_cls,
37
+ ps,
38
+ )))
39
+
40
+ al = list(rs.args or [])
41
+
42
+ # FIXME: lol
43
+ if al and isinstance(al[0], ModelRepo):
44
+ [mr] = al
45
+ mrr = check.not_none(self._model_repo_resolver)
46
+ mrp = check.not_none(mrr.resolve(mr))
47
+ al = [ModelPath(mrp.path), *al[1:]]
48
+
49
+ return registry_new(
50
+ service_cls,
51
+ rs.name,
52
+ *al,
53
+ *args,
54
+ **kwargs,
55
+ )
@@ -1,10 +1,18 @@
1
- import huggingface_hub as hf
1
+ import typing as ta
2
+
3
+ from omlish import lang
2
4
 
3
5
  from ....models.configs import ModelRepo
4
6
  from ....models.repos.resolving import ModelRepoResolver
5
7
  from ....models.repos.resolving import ResolvedModelRepo
6
8
 
7
9
 
10
+ if ta.TYPE_CHECKING:
11
+ import huggingface_hub as hf
12
+ else:
13
+ hf = lang.proxy_import('huggingface_hub')
14
+
15
+
8
16
  ##
9
17
 
10
18
 
@@ -13,6 +13,7 @@ from omlish.manifests.globals import GlobalManifestLoader
13
13
  from ...models.configs import ModelName
14
14
  from ...models.configs import ModelPath
15
15
  from ...models.configs import ModelRepo
16
+ from ...registries.globals import get_global_registry
16
17
  from .manifests import BackendStringsManifest
17
18
  from .parsing import ParsedBackendString
18
19
 
@@ -21,15 +22,30 @@ from .parsing import ParsedBackendString
21
22
 
22
23
 
23
24
  @dc.dataclass(frozen=True)
24
- class ResolvedBackend:
25
- backend_name: str
25
+ class ResolveBackendStringArgs:
26
+ service_cls: ta.Any
27
+ parsed: ParsedBackendString
28
+
29
+
30
+ @dc.dataclass(frozen=True)
31
+ class ResolveBackendStringResult:
32
+ service_cls: ta.Any
33
+ name: str
34
+
35
+ _: dc.KW_ONLY
26
36
 
27
37
  args: ta.Sequence[ta.Any] | None = None
28
38
 
29
39
 
40
+ @dc.dataclass()
41
+ class AmbiguousBackendStringResolutionError(Exception):
42
+ ra: ResolveBackendStringArgs
43
+ lst: list[tuple['BackendStringResolver', ResolveBackendStringResult]]
44
+
45
+
30
46
  class BackendStringResolver(lang.Abstract):
31
47
  @abc.abstractmethod
32
- def resolve_backend_string(self, ps: ParsedBackendString) -> ResolvedBackend | None:
48
+ def resolve_backend_string(self, args: ResolveBackendStringArgs) -> ResolveBackendStringResult | None:
33
49
  raise NotImplementedError
34
50
 
35
51
 
@@ -47,29 +63,23 @@ class CompositeBackendStringResolver(BackendStringResolver, lang.Abstract): # n
47
63
 
48
64
 
49
65
  class FirstCompositeBackendStringResolver(CompositeBackendStringResolver):
50
- def resolve_backend_string(self, ps: ParsedBackendString) -> ResolvedBackend | None:
66
+ def resolve_backend_string(self, args: ResolveBackendStringArgs) -> ResolveBackendStringResult | None:
51
67
  for c in self._children:
52
- if (r := c.resolve_backend_string(ps)) is not None:
68
+ if (r := c.resolve_backend_string(args)) is not None:
53
69
  return r
54
70
  return None
55
71
 
56
72
 
57
- @dc.dataclass()
58
- class AmbiguousResolvedBackendStringError(Exception):
59
- ps: ParsedBackendString
60
- lst: list[tuple[BackendStringResolver, ResolvedBackend]]
61
-
62
-
63
73
  class UniqueCompositeBackendStringResolver(CompositeBackendStringResolver):
64
- def resolve_backend_string(self, ps: ParsedBackendString) -> ResolvedBackend | None:
65
- lst: list[tuple[BackendStringResolver, ResolvedBackend]] = []
74
+ def resolve_backend_string(self, args: ResolveBackendStringArgs) -> ResolveBackendStringResult | None:
75
+ lst: list[tuple[BackendStringResolver, ResolveBackendStringResult]] = []
66
76
  for c in self._children:
67
- if (r := c.resolve_backend_string(ps)) is not None:
77
+ if (r := c.resolve_backend_string(args)) is not None:
68
78
  lst.append((c, r))
69
79
  if not lst:
70
80
  return None
71
81
  elif len(lst) > 1:
72
- raise AmbiguousResolvedBackendStringError(ps, lst)
82
+ raise AmbiguousBackendStringResolutionError(args, lst)
73
83
  else:
74
84
  return lst[0][1]
75
85
 
@@ -82,14 +92,18 @@ class ManifestBackendStringResolver(BackendStringResolver):
82
92
  super().__init__()
83
93
 
84
94
  self._manifest = manifest
95
+ self._service_cls_set = {
96
+ get_global_registry().get_registry_type_cls(scn)
97
+ for scn in manifest.service_cls_names
98
+ }
85
99
 
86
100
  def _resolve_name_model(
87
101
  self,
88
- ps: ParsedBackendString,
102
+ args: ResolveBackendStringArgs,
89
103
  mdl: ParsedBackendString.NameModel,
90
- ) -> ResolvedBackend | None:
104
+ ) -> ResolveBackendStringResult | None:
91
105
  m = self._manifest
92
- if ps.backend is not None and ps.backend != m.backend_name:
106
+ if args.parsed.backend is not None and args.parsed.backend != m.backend_name:
93
107
  return None
94
108
 
95
109
  mn: str | None = mdl.name
@@ -110,38 +124,41 @@ class ManifestBackendStringResolver(BackendStringResolver):
110
124
  elif mdl.name in m.model_names.alias_map:
111
125
  mn = m.model_names.alias_map[mdl.name]
112
126
 
113
- elif ps.backend is None:
127
+ elif args.parsed.backend is None:
114
128
  return None
115
129
 
116
- return ResolvedBackend(
130
+ return ResolveBackendStringResult(
131
+ args.service_cls,
117
132
  m.backend_name,
118
- [ModelName(mn)] if mn is not None else [],
133
+ args=[ModelName(mn)] if mn is not None else None,
119
134
  )
120
135
 
121
136
  def _resolve_path_model(
122
137
  self,
123
- ps: ParsedBackendString,
138
+ args: ResolveBackendStringArgs,
124
139
  mdl: ParsedBackendString.PathModel,
125
- ) -> ResolvedBackend | None:
126
- if ps.backend is not None and ps.backend != self._manifest.backend_name:
140
+ ) -> ResolveBackendStringResult | None:
141
+ if args.parsed.backend is not None and args.parsed.backend != self._manifest.backend_name:
127
142
  return None
128
143
 
129
- return ResolvedBackend(
144
+ return ResolveBackendStringResult(
145
+ args.service_cls,
130
146
  self._manifest.backend_name,
131
- [ModelPath(mdl.path)],
147
+ args=[ModelPath(mdl.path)],
132
148
  )
133
149
 
134
150
  def _resolve_repo_model(
135
151
  self,
136
- ps: ParsedBackendString,
152
+ args: ResolveBackendStringArgs,
137
153
  mdl: ParsedBackendString.RepoModel,
138
- ) -> ResolvedBackend | None:
139
- if ps.backend is not None and ps.backend != self._manifest.backend_name:
154
+ ) -> ResolveBackendStringResult | None:
155
+ if args.parsed.backend is not None and args.parsed.backend != self._manifest.backend_name:
140
156
  return None
141
157
 
142
- return ResolvedBackend(
158
+ return ResolveBackendStringResult(
159
+ args.service_cls,
143
160
  self._manifest.backend_name,
144
- [ModelRepo(
161
+ args=[ModelRepo(
145
162
  namespace=mdl.namespace,
146
163
  repo=mdl.repo,
147
164
  tag=mdl.tag,
@@ -149,14 +166,17 @@ class ManifestBackendStringResolver(BackendStringResolver):
149
166
  )],
150
167
  )
151
168
 
152
- def resolve_backend_string(self, ps: ParsedBackendString) -> ResolvedBackend | None:
153
- mdl = ps.model
169
+ def resolve_backend_string(self, args: ResolveBackendStringArgs) -> ResolveBackendStringResult | None:
170
+ if args.service_cls not in self._service_cls_set:
171
+ return None
172
+
173
+ mdl = args.parsed.model
154
174
  if isinstance(mdl, ParsedBackendString.NameModel):
155
- return self._resolve_name_model(ps, mdl)
175
+ return self._resolve_name_model(args, mdl)
156
176
  elif isinstance(mdl, ParsedBackendString.PathModel):
157
- return self._resolve_path_model(ps, mdl)
177
+ return self._resolve_path_model(args, mdl)
158
178
  elif isinstance(mdl, ParsedBackendString.RepoModel):
159
- return self._resolve_repo_model(ps, mdl)
179
+ return self._resolve_repo_model(args, mdl)
160
180
  else:
161
181
  raise TypeError(mdl)
162
182
 
@@ -68,7 +68,7 @@ class _GlobalRegistry(lang.Final, lang.NotInstantiable):
68
68
  with cls._lock:
69
69
  if (i := cls._instance) is not None:
70
70
  i.register_type(
71
- cls,
71
+ clz,
72
72
  module=module,
73
73
  )
74
74
  else:
@@ -81,6 +81,10 @@ class _GlobalRegistry(lang.Final, lang.NotInstantiable):
81
81
  ##
82
82
 
83
83
 
84
+ def get_global_registry() -> Registry:
85
+ return _GlobalRegistry.instance()
86
+
87
+
84
88
  def register_type(
85
89
  cls: T,
86
90
  *,
@@ -51,7 +51,7 @@ class Registry:
51
51
  }
52
52
 
53
53
  self._registry_type_cls_by_name: dict[str, type] = {}
54
- self._registry_cls_by_name_by_type: dict[str, dict[str, type]] = {}
54
+ self._registry_cls_by_name_by_type_name: dict[str, dict[str, type]] = {}
55
55
 
56
56
  self._registered_types: dict[ta.Any, Registry._RegisteredType] = {}
57
57
  self._resolved_registry_type_names_by_registered_type: dict[ta.Any, str] = {}
@@ -120,8 +120,9 @@ class Registry:
120
120
  return self._registry_type_cls_by_name[name]
121
121
  except KeyError:
122
122
  pass
123
+
123
124
  m = self._registry_type_manifests_by_name[name]
124
- cls = m.load()
125
+ cls = m.resolve()
125
126
  self._registry_type_cls_by_name[name] = cls
126
127
  return cls
127
128
 
@@ -135,9 +136,9 @@ class Registry:
135
136
  type_name = self._resolved_registry_type_names_by_registered_type[selector]
136
137
 
137
138
  try:
138
- d = self._registry_cls_by_name_by_type[type_name]
139
+ d = self._registry_cls_by_name_by_type_name[type_name]
139
140
  except KeyError:
140
- d = self._registry_cls_by_name_by_type[type_name] = {}
141
+ d = self._registry_cls_by_name_by_type_name[type_name] = {}
141
142
 
142
143
  try:
143
144
  return d[name]
@@ -145,7 +146,7 @@ class Registry:
145
146
  pass
146
147
 
147
148
  m = self._registry_manifests_by_name_by_type[type_name][name]
148
- cls = m.load()
149
+ cls = m.resolve()
149
150
  d[name] = cls
150
151
 
151
152
  return cls
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev414
3
+ Version: 0.0.0.dev415
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.dev414
18
- Requires-Dist: omlish==0.0.0.dev414
17
+ Requires-Dist: omdev==0.0.0.dev415
18
+ Requires-Dist: omlish==0.0.0.dev415
19
19
  Provides-Extra: all
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.27; extra == "all"
@@ -85,11 +85,8 @@ ommlds/cli/inject.py
85
85
  ommlds/cli/main.py
86
86
  ommlds/cli/state.py
87
87
  ommlds/cli/backends/__init__.py
88
- ommlds/cli/backends/catalog.py
89
88
  ommlds/cli/backends/inject.py
90
- ommlds/cli/backends/registry.py
91
89
  ommlds/cli/backends/standard.py
92
- ommlds/cli/backends/strings.py
93
90
  ommlds/cli/sessions/__init__.py
94
91
  ommlds/cli/sessions/base.py
95
92
  ommlds/cli/sessions/inject.py
@@ -112,7 +109,6 @@ ommlds/cli/tools/weather.py
112
109
  ommlds/datasets/__init__.py
113
110
  ommlds/datasets/lib/__init__.py
114
111
  ommlds/datasets/lib/movies.py
115
- ommlds/minichain/.dataclasses.json
116
112
  ommlds/minichain/__init__.py
117
113
  ommlds/minichain/_abc.py
118
114
  ommlds/minichain/_typedvalues.py
@@ -126,6 +122,10 @@ ommlds/minichain/search.py
126
122
  ommlds/minichain/standard.py
127
123
  ommlds/minichain/types.py
128
124
  ommlds/minichain/backends/__init__.py
125
+ ommlds/minichain/backends/catalogs/__init__.py
126
+ ommlds/minichain/backends/catalogs/base.py
127
+ ommlds/minichain/backends/catalogs/simple.py
128
+ ommlds/minichain/backends/catalogs/strings.py
129
129
  ommlds/minichain/backends/impls/__init__.py
130
130
  ommlds/minichain/backends/impls/mistral.py
131
131
  ommlds/minichain/backends/impls/sqlite.py
@@ -1,5 +1,5 @@
1
- omdev==0.0.0.dev414
2
- omlish==0.0.0.dev414
1
+ omdev==0.0.0.dev415
2
+ omlish==0.0.0.dev415
3
3
 
4
4
  [all]
5
5
  llama-cpp-python~=0.3
@@ -13,7 +13,7 @@ urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = 'BSD-3-Clause'
14
14
  readme = 'README.md'
15
15
  requires-python = '>=3.13'
16
- version = '0.0.0.dev414'
16
+ version = '0.0.0.dev415'
17
17
  classifiers = [
18
18
  'Development Status :: 2 - Pre-Alpha',
19
19
  'Intended Audience :: Developers',
@@ -24,8 +24,8 @@ classifiers = [
24
24
  ]
25
25
  description = 'ommlds'
26
26
  dependencies = [
27
- 'omdev == 0.0.0.dev414',
28
- 'omlish == 0.0.0.dev414',
27
+ 'omdev == 0.0.0.dev415',
28
+ 'omlish == 0.0.0.dev415',
29
29
  ]
30
30
 
31
31
  [project.optional-dependencies]
@@ -108,7 +108,6 @@ exclude = [
108
108
  '*.cu',
109
109
  '*.g4',
110
110
  '*.h',
111
- '.dataclasses.json',
112
111
  '.manifests.json',
113
112
  'LICENSE',
114
113
  'LICENSE.txt',