mirascope 1.25.5__tar.gz → 1.25.7__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 (736) hide show
  1. {mirascope-1.25.5 → mirascope-1.25.7}/PKG-INFO +1 -1
  2. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/chroma/types.py +11 -6
  3. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/chroma/vectorstores.py +26 -2
  4. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_message_param_converter.py +12 -0
  5. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_setup_call.py +11 -1
  6. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/retries/fallback.py +15 -12
  7. {mirascope-1.25.5 → mirascope-1.25.7}/pyproject.toml +2 -2
  8. mirascope-1.25.7/tests/retries/__init__.py +4 -0
  9. mirascope-1.25.7/tests/retries/test_fallback.py +286 -0
  10. {mirascope-1.25.5 → mirascope-1.25.7}/uv.lock +179 -102
  11. mirascope-1.25.5/tests/retries/test_fallback.py +0 -159
  12. mirascope-1.25.5/tests/tools/web/__init__.py +0 -0
  13. {mirascope-1.25.5 → mirascope-1.25.7}/.claude/settings.local.json +0 -0
  14. {mirascope-1.25.5 → mirascope-1.25.7}/.github/CODEOWNERS +0 -0
  15. {mirascope-1.25.5 → mirascope-1.25.7}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  16. {mirascope-1.25.5 → mirascope-1.25.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {mirascope-1.25.5 → mirascope-1.25.7}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  18. {mirascope-1.25.5 → mirascope-1.25.7}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  19. {mirascope-1.25.5 → mirascope-1.25.7}/.github/workflows/lint.yml +0 -0
  20. {mirascope-1.25.5 → mirascope-1.25.7}/.github/workflows/release.yml +0 -0
  21. {mirascope-1.25.5 → mirascope-1.25.7}/.github/workflows/tests.yml +0 -0
  22. {mirascope-1.25.5 → mirascope-1.25.7}/.gitignore +0 -0
  23. {mirascope-1.25.5 → mirascope-1.25.7}/.pre-commit-config.yaml +0 -0
  24. {mirascope-1.25.5 → mirascope-1.25.7}/.vscode/extensions.json +0 -0
  25. {mirascope-1.25.5 → mirascope-1.25.7}/.vscode/launch.json +0 -0
  26. {mirascope-1.25.5 → mirascope-1.25.7}/.vscode/settings.json +0 -0
  27. {mirascope-1.25.5 → mirascope-1.25.7}/LICENSE +0 -0
  28. {mirascope-1.25.5 → mirascope-1.25.7}/README.md +0 -0
  29. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/call.md +0 -0
  30. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/call_params.md +0 -0
  31. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/call_response.md +0 -0
  32. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/call_response_chunk.md +0 -0
  33. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/dynamic_config.md +0 -0
  34. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/stream.md +0 -0
  35. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/anthropic/tool.md +0 -0
  36. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/call.md +0 -0
  37. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/call_params.md +0 -0
  38. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/call_response.md +0 -0
  39. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/call_response_chunk.md +0 -0
  40. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/dynamic_config.md +0 -0
  41. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/stream.md +0 -0
  42. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/azure/tool.md +0 -0
  43. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/call_factory.md +0 -0
  44. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/call_params.md +0 -0
  45. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/call_response.md +0 -0
  46. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/call_response_chunk.md +0 -0
  47. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/dynamic_config.md +0 -0
  48. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/merge_decorators.md +0 -0
  49. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/message_param.md +0 -0
  50. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/metadata.md +0 -0
  51. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/prompt.md +0 -0
  52. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/stream.md +0 -0
  53. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/structured_stream.md +0 -0
  54. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/tool.md +0 -0
  55. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/toolkit.md +0 -0
  56. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/base/types.md +0 -0
  57. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/call.md +0 -0
  58. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/call_params.md +0 -0
  59. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/call_response.md +0 -0
  60. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/call_response_chunk.md +0 -0
  61. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/dynamic_config.md +0 -0
  62. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/stream.md +0 -0
  63. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/bedrock/tool.md +0 -0
  64. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/call.md +0 -0
  65. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/call_params.md +0 -0
  66. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/call_response.md +0 -0
  67. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/call_response_chunk.md +0 -0
  68. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/dynamic_config.md +0 -0
  69. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/stream.md +0 -0
  70. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/cohere/tool.md +0 -0
  71. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/costs/calculate_cost.md +0 -0
  72. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/call.md +0 -0
  73. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/call_params.md +0 -0
  74. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/call_response.md +0 -0
  75. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/call_response_chunk.md +0 -0
  76. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/dynamic_config.md +0 -0
  77. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/stream.md +0 -0
  78. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/google/tool.md +0 -0
  79. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/call.md +0 -0
  80. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/call_params.md +0 -0
  81. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/call_response.md +0 -0
  82. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/call_response_chunk.md +0 -0
  83. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/dynamic_config.md +0 -0
  84. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/stream.md +0 -0
  85. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/groq/tool.md +0 -0
  86. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/call.md +0 -0
  87. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/call_params.md +0 -0
  88. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/call_response.md +0 -0
  89. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/call_response_chunk.md +0 -0
  90. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/dynamic_config.md +0 -0
  91. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/stream.md +0 -0
  92. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/litellm/tool.md +0 -0
  93. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/call.md +0 -0
  94. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/call_params.md +0 -0
  95. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/call_response.md +0 -0
  96. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/call_response_chunk.md +0 -0
  97. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/dynamic_config.md +0 -0
  98. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/stream.md +0 -0
  99. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/mistral/tool.md +0 -0
  100. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/call.md +0 -0
  101. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/call_params.md +0 -0
  102. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/call_response.md +0 -0
  103. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/call_response_chunk.md +0 -0
  104. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/dynamic_config.md +0 -0
  105. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/stream.md +0 -0
  106. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/openai/tool.md +0 -0
  107. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/call.md +0 -0
  108. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/call_params.md +0 -0
  109. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/call_response.md +0 -0
  110. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/call_response_chunk.md +0 -0
  111. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/dynamic_config.md +0 -0
  112. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/stream.md +0 -0
  113. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/core/xai/tool.md +0 -0
  114. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/call.md +0 -0
  115. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/call_response.md +0 -0
  116. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/call_response_chunk.md +0 -0
  117. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/context.md +0 -0
  118. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/override.md +0 -0
  119. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/stream.md +0 -0
  120. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/llm/tool.md +0 -0
  121. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/mcp/client.md +0 -0
  122. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/retries/fallback.md +0 -0
  123. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/retries/tenacity.md +0 -0
  124. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/tools/system/docker_operation.md +0 -0
  125. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/tools/system/file_system.md +0 -0
  126. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/tools/web/duckduckgo.md +0 -0
  127. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/tools/web/httpx.md +0 -0
  128. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/tools/web/parse_url_content.md +0 -0
  129. {mirascope-1.25.5 → mirascope-1.25.7}/api_ref/tools/web/requests.md +0 -0
  130. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/__init__.py +0 -0
  131. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/__init__.py +0 -0
  132. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/__init__.py +0 -0
  133. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/__init__.py +0 -0
  134. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/_utils/__init__.py +0 -0
  135. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/_utils/_audio.py +0 -0
  136. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/_utils/_protocols.py +0 -0
  137. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/realtime.py +0 -0
  138. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/recording.py +0 -0
  139. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/openai/realtime/tool.py +0 -0
  140. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/__init__.py +0 -0
  141. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/__init__.py +0 -0
  142. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/chunkers/__init__.py +0 -0
  143. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/chunkers/base_chunker.py +0 -0
  144. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/chunkers/text_chunker.py +0 -0
  145. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/config.py +0 -0
  146. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/document.py +0 -0
  147. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/embedders.py +0 -0
  148. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/embedding_params.py +0 -0
  149. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/embedding_response.py +0 -0
  150. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/query_results.py +0 -0
  151. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/vectorstore_params.py +0 -0
  152. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/base/vectorstores.py +0 -0
  153. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/chroma/__init__.py +0 -0
  154. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/cohere/__init__.py +0 -0
  155. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/cohere/embedders.py +0 -0
  156. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/cohere/embedding_params.py +0 -0
  157. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/cohere/embedding_response.py +0 -0
  158. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/cohere/py.typed +0 -0
  159. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/openai/__init__.py +0 -0
  160. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/openai/embedders.py +0 -0
  161. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/openai/embedding_params.py +0 -0
  162. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/openai/embedding_response.py +0 -0
  163. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/openai/py.typed +0 -0
  164. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/pinecone/__init__.py +0 -0
  165. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/pinecone/types.py +0 -0
  166. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/pinecone/vectorstores.py +0 -0
  167. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/weaviate/__init__.py +0 -0
  168. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/weaviate/types.py +0 -0
  169. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/beta/rag/weaviate/vectorstores.py +0 -0
  170. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/__init__.py +0 -0
  171. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/__init__.py +0 -0
  172. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_call.py +0 -0
  173. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_call_kwargs.py +0 -0
  174. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_thinking.py +0 -0
  175. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/__init__.py +0 -0
  176. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_convert_common_call_params.py +0 -0
  177. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  178. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_convert_message_params.py +0 -0
  179. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_get_json_output.py +0 -0
  180. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_handle_stream.py +0 -0
  181. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/_utils/_setup_call.py +0 -0
  182. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/call_params.py +0 -0
  183. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/call_response.py +0 -0
  184. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/call_response_chunk.py +0 -0
  185. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/dynamic_config.py +0 -0
  186. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/py.typed +0 -0
  187. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/stream.py +0 -0
  188. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/anthropic/tool.py +0 -0
  189. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/__init__.py +0 -0
  190. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_call.py +0 -0
  191. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_call_kwargs.py +0 -0
  192. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/__init__.py +0 -0
  193. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_convert_common_call_params.py +0 -0
  194. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  195. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_convert_message_params.py +0 -0
  196. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_get_credential.py +0 -0
  197. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_get_json_output.py +0 -0
  198. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_handle_stream.py +0 -0
  199. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_message_param_converter.py +0 -0
  200. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/_utils/_setup_call.py +0 -0
  201. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/call_params.py +0 -0
  202. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/call_response.py +0 -0
  203. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/call_response_chunk.py +0 -0
  204. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/dynamic_config.py +0 -0
  205. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/py.typed +0 -0
  206. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/stream.py +0 -0
  207. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/azure/tool.py +0 -0
  208. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/__init__.py +0 -0
  209. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_call_factory.py +0 -0
  210. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_create.py +0 -0
  211. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_extract.py +0 -0
  212. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_extract_with_tools.py +0 -0
  213. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_partial.py +0 -0
  214. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/__init__.py +0 -0
  215. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_base_message_param_converter.py +0 -0
  216. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_base_type.py +0 -0
  217. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_convert_base_model_to_base_tool.py +0 -0
  218. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_convert_base_type_to_base_tool.py +0 -0
  219. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_convert_function_to_base_tool.py +0 -0
  220. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_convert_messages_to_message_params.py +0 -0
  221. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_convert_provider_finish_reason_to_finish_reason.py +0 -0
  222. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_default_tool_docstring.py +0 -0
  223. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_extract_tool_return.py +0 -0
  224. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_fn_is_async.py +0 -0
  225. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_format_template.py +0 -0
  226. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_audio_type.py +0 -0
  227. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_common_usage.py +0 -0
  228. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_create_fn_or_async_create_fn.py +0 -0
  229. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_document_type.py +0 -0
  230. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_dynamic_configuration.py +0 -0
  231. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_fields_from_call_args.py +0 -0
  232. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_fn_args.py +0 -0
  233. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_image_dimensions.py +0 -0
  234. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_image_type.py +0 -0
  235. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_metadata.py +0 -0
  236. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_possible_user_message_param.py +0 -0
  237. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_prompt_template.py +0 -0
  238. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_template_values.py +0 -0
  239. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_template_variables.py +0 -0
  240. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_get_unsupported_tool_config_keys.py +0 -0
  241. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_is_prompt_template.py +0 -0
  242. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_json_mode_content.py +0 -0
  243. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_messages_decorator.py +0 -0
  244. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_parse_content_template.py +0 -0
  245. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_parse_prompt_messages.py +0 -0
  246. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_pil_image_to_bytes.py +0 -0
  247. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_protocols.py +0 -0
  248. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_setup_call.py +0 -0
  249. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/_utils/_setup_extract_tool.py +0 -0
  250. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/call_kwargs.py +0 -0
  251. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/call_params.py +0 -0
  252. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/call_response.py +0 -0
  253. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/call_response_chunk.py +0 -0
  254. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/dynamic_config.py +0 -0
  255. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/from_call_args.py +0 -0
  256. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/merge_decorators.py +0 -0
  257. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/message_param.py +0 -0
  258. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/messages.py +0 -0
  259. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/metadata.py +0 -0
  260. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/prompt.py +0 -0
  261. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/response_model_config_dict.py +0 -0
  262. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/stream.py +0 -0
  263. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/stream_config.py +0 -0
  264. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/structured_stream.py +0 -0
  265. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/tool.py +0 -0
  266. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/toolkit.py +0 -0
  267. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/base/types.py +0 -0
  268. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/__init__.py +0 -0
  269. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_call.py +0 -0
  270. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_call_kwargs.py +0 -0
  271. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_types.py +0 -0
  272. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/__init__.py +0 -0
  273. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_convert_common_call_params.py +0 -0
  274. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  275. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_convert_message_params.py +0 -0
  276. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_get_json_output.py +0 -0
  277. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_handle_stream.py +0 -0
  278. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_message_param_converter.py +0 -0
  279. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/_utils/_setup_call.py +0 -0
  280. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/call_params.py +0 -0
  281. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/call_response.py +0 -0
  282. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/call_response_chunk.py +0 -0
  283. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/dynamic_config.py +0 -0
  284. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/py.typed +0 -0
  285. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/stream.py +0 -0
  286. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/bedrock/tool.py +0 -0
  287. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/__init__.py +0 -0
  288. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_call.py +0 -0
  289. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_call_kwargs.py +0 -0
  290. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_types.py +0 -0
  291. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/__init__.py +0 -0
  292. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_convert_common_call_params.py +0 -0
  293. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  294. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_convert_message_params.py +0 -0
  295. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_get_json_output.py +0 -0
  296. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_handle_stream.py +0 -0
  297. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_message_param_converter.py +0 -0
  298. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/_utils/_setup_call.py +0 -0
  299. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/call_params.py +0 -0
  300. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/call_response.py +0 -0
  301. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/call_response_chunk.py +0 -0
  302. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/dynamic_config.py +0 -0
  303. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/py.typed +0 -0
  304. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/stream.py +0 -0
  305. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/cohere/tool.py +0 -0
  306. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/__init__.py +0 -0
  307. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_anthropic_calculate_cost.py +0 -0
  308. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_azure_calculate_cost.py +0 -0
  309. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_bedrock_calculate_cost.py +0 -0
  310. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_cohere_calculate_cost.py +0 -0
  311. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_gemini_calculate_cost.py +0 -0
  312. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_google_calculate_cost.py +0 -0
  313. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_groq_calculate_cost.py +0 -0
  314. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_litellm_calculate_cost.py +0 -0
  315. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_mistral_calculate_cost.py +0 -0
  316. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_openai_calculate_cost.py +0 -0
  317. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_vertex_calculate_cost.py +0 -0
  318. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/_xai_calculate_cost.py +0 -0
  319. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/costs/calculate_cost.py +0 -0
  320. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/__init__.py +0 -0
  321. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_call.py +0 -0
  322. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_call_kwargs.py +0 -0
  323. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/__init__.py +0 -0
  324. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_convert_common_call_params.py +0 -0
  325. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  326. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_convert_message_params.py +0 -0
  327. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_get_json_output.py +0 -0
  328. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_handle_stream.py +0 -0
  329. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_message_param_converter.py +0 -0
  330. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/_utils/_setup_call.py +0 -0
  331. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/call_params.py +0 -0
  332. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/call_response.py +0 -0
  333. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/call_response_chunk.py +0 -0
  334. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/dynamic_config.py +0 -0
  335. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/stream.py +0 -0
  336. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/gemini/tool.py +0 -0
  337. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/__init__.py +0 -0
  338. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_call.py +0 -0
  339. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_call_kwargs.py +0 -0
  340. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/__init__.py +0 -0
  341. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_convert_common_call_params.py +0 -0
  342. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  343. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_convert_message_params.py +0 -0
  344. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_get_json_output.py +0 -0
  345. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_handle_stream.py +0 -0
  346. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_message_param_converter.py +0 -0
  347. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_setup_call.py +0 -0
  348. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/_utils/_validate_media_type.py +0 -0
  349. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/call_params.py +0 -0
  350. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/call_response.py +0 -0
  351. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/call_response_chunk.py +0 -0
  352. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/dynamic_config.py +0 -0
  353. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/stream.py +0 -0
  354. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/google/tool.py +0 -0
  355. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/__init__.py +0 -0
  356. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_call.py +0 -0
  357. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_call_kwargs.py +0 -0
  358. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/__init__.py +0 -0
  359. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/_convert_common_call_params.py +0 -0
  360. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/_convert_message_params.py +0 -0
  361. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/_get_json_output.py +0 -0
  362. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/_handle_stream.py +0 -0
  363. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/_message_param_converter.py +0 -0
  364. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/_utils/_setup_call.py +0 -0
  365. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/call_params.py +0 -0
  366. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/call_response.py +0 -0
  367. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/call_response_chunk.py +0 -0
  368. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/dynamic_config.py +0 -0
  369. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/py.typed +0 -0
  370. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/stream.py +0 -0
  371. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/groq/tool.py +0 -0
  372. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/__init__.py +0 -0
  373. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/_call.py +0 -0
  374. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/_utils/__init__.py +0 -0
  375. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/_utils/_setup_call.py +0 -0
  376. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/call_params.py +0 -0
  377. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/call_response.py +0 -0
  378. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/call_response_chunk.py +0 -0
  379. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/dynamic_config.py +0 -0
  380. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/py.typed +0 -0
  381. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/stream.py +0 -0
  382. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/litellm/tool.py +0 -0
  383. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/__init__.py +0 -0
  384. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_call.py +0 -0
  385. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_call_kwargs.py +0 -0
  386. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/__init__.py +0 -0
  387. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_convert_common_call_params.py +0 -0
  388. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  389. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_convert_message_params.py +0 -0
  390. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_get_json_output.py +0 -0
  391. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_handle_stream.py +0 -0
  392. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/_utils/_message_param_converter.py +0 -0
  393. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/call_params.py +0 -0
  394. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/call_response.py +0 -0
  395. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/call_response_chunk.py +0 -0
  396. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/dynamic_config.py +0 -0
  397. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/py.typed +0 -0
  398. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/stream.py +0 -0
  399. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/mistral/tool.py +0 -0
  400. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/__init__.py +0 -0
  401. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_call.py +0 -0
  402. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_call_kwargs.py +0 -0
  403. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/__init__.py +0 -0
  404. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/_convert_common_call_params.py +0 -0
  405. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/_convert_message_params.py +0 -0
  406. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/_get_json_output.py +0 -0
  407. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/_handle_stream.py +0 -0
  408. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/_message_param_converter.py +0 -0
  409. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/_utils/_setup_call.py +0 -0
  410. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/call_params.py +0 -0
  411. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/call_response.py +0 -0
  412. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/call_response_chunk.py +0 -0
  413. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/dynamic_config.py +0 -0
  414. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/py.typed +0 -0
  415. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/stream.py +0 -0
  416. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/openai/tool.py +0 -0
  417. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/py.typed +0 -0
  418. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/__init__.py +0 -0
  419. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_call.py +0 -0
  420. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_call_kwargs.py +0 -0
  421. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/__init__.py +0 -0
  422. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_convert_common_call_params.py +0 -0
  423. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
  424. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_convert_message_params.py +0 -0
  425. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_get_json_output.py +0 -0
  426. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_handle_stream.py +0 -0
  427. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_message_param_converter.py +0 -0
  428. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/_utils/_setup_call.py +0 -0
  429. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/call_params.py +0 -0
  430. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/call_response.py +0 -0
  431. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/call_response_chunk.py +0 -0
  432. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/dynamic_config.py +0 -0
  433. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/stream.py +0 -0
  434. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/vertex/tool.py +0 -0
  435. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/__init__.py +0 -0
  436. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/_call.py +0 -0
  437. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/_utils/__init__.py +0 -0
  438. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/_utils/_setup_call.py +0 -0
  439. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/call_params.py +0 -0
  440. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/call_response.py +0 -0
  441. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/call_response_chunk.py +0 -0
  442. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/dynamic_config.py +0 -0
  443. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/py.typed +0 -0
  444. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/stream.py +0 -0
  445. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/core/xai/tool.py +0 -0
  446. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/experimental/graphs/__init__.py +0 -0
  447. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/experimental/graphs/finite_state_machine.py +0 -0
  448. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/__init__.py +0 -0
  449. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/_middleware_factory.py +0 -0
  450. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/langfuse/__init__.py +0 -0
  451. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/langfuse/_utils.py +0 -0
  452. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/langfuse/_with_langfuse.py +0 -0
  453. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/logfire/__init__.py +0 -0
  454. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/logfire/_utils.py +0 -0
  455. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/logfire/_with_logfire.py +0 -0
  456. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/otel/__init__.py +0 -0
  457. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/otel/_utils.py +0 -0
  458. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/otel/_with_hyperdx.py +0 -0
  459. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/otel/_with_otel.py +0 -0
  460. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/integrations/tenacity.py +0 -0
  461. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/__init__.py +0 -0
  462. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/_call.py +0 -0
  463. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/_context.py +0 -0
  464. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/_override.py +0 -0
  465. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/_protocols.py +0 -0
  466. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/_response_metaclass.py +0 -0
  467. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/call_response.py +0 -0
  468. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/call_response_chunk.py +0 -0
  469. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/stream.py +0 -0
  470. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/llm/tool.py +0 -0
  471. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/mcp/__init__.py +0 -0
  472. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/mcp/_utils.py +0 -0
  473. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/mcp/client.py +0 -0
  474. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/mcp/server.py +0 -0
  475. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/mcp/tools.py +0 -0
  476. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/py.typed +0 -0
  477. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/retries/__init__.py +0 -0
  478. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/retries/tenacity.py +0 -0
  479. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/__init__.py +0 -0
  480. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/base.py +0 -0
  481. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/system/__init__.py +0 -0
  482. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/system/_docker_operation.py +0 -0
  483. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/system/_file_system.py +0 -0
  484. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/web/__init__.py +0 -0
  485. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/web/_duckduckgo.py +0 -0
  486. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/web/_httpx.py +0 -0
  487. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/web/_parse_url_content.py +0 -0
  488. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/tools/web/_requests.py +0 -0
  489. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/__init__.py +0 -0
  490. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/anthropic.py +0 -0
  491. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/__init__.py +0 -0
  492. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/calls.py +0 -0
  493. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/extractors.py +0 -0
  494. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/ops_utils.py +0 -0
  495. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/prompts.py +0 -0
  496. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/types.py +0 -0
  497. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/base/utils.py +0 -0
  498. {mirascope-1.25.5 → mirascope-1.25.7}/mirascope/v0/openai.py +0 -0
  499. {mirascope-1.25.5 → mirascope-1.25.7}/tests/__init__.py +0 -0
  500. {mirascope-1.25.5 → mirascope-1.25.7}/tests/conftest.py +0 -0
  501. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/__init__.py +0 -0
  502. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/__init__.py +0 -0
  503. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/__init__.py +0 -0
  504. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/test_convert_common_call_params.py +0 -0
  505. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/test_convert_message_params.py +0 -0
  506. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/test_get_json_output.py +0 -0
  507. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/test_handle_stream.py +0 -0
  508. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/test_message_param_converter.py +0 -0
  509. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/_utils/test_setup_call.py +0 -0
  510. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/test_call.py +0 -0
  511. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/test_call_response.py +0 -0
  512. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/test_call_response_chunk.py +0 -0
  513. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/test_stream.py +0 -0
  514. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/anthropic/test_tool.py +0 -0
  515. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/__init__.py +0 -0
  516. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/__init__.py +0 -0
  517. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_convert_common_call_params.py +0 -0
  518. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_convert_message_params.py +0 -0
  519. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_get_credential.py +0 -0
  520. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_get_json_output.py +0 -0
  521. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_handle_stream.py +0 -0
  522. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_message_param_converter.py +0 -0
  523. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/_utils/test_setup_call.py +0 -0
  524. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/test_call.py +0 -0
  525. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/test_call_response.py +0 -0
  526. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/test_call_response_chunk.py +0 -0
  527. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/test_stream.py +0 -0
  528. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/azure/test_tool.py +0 -0
  529. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/__init__.py +0 -0
  530. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/__init__.py +0 -0
  531. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_base_type.py +0 -0
  532. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_convert_base_model_to_base_tool.py +0 -0
  533. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_convert_base_type_to_base_tool.py +0 -0
  534. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_convert_function_to_base_tool.py +0 -0
  535. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_convert_messages_to_message_params.py +0 -0
  536. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_extract_tool_return.py +0 -0
  537. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_format_template.py +0 -0
  538. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_audio_type.py +0 -0
  539. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_create_fn_or_async_create_fn.py +0 -0
  540. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_document_type.py +0 -0
  541. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_dynamic_configuration.py +0 -0
  542. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_fields_from_call_args.py +0 -0
  543. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_fn_args.py +0 -0
  544. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_image_dimensions.py +0 -0
  545. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_image_type.py +0 -0
  546. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_metadata.py +0 -0
  547. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_possible_user_message_param.py +0 -0
  548. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_prompt_template.py +0 -0
  549. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_template_values.py +0 -0
  550. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_template_variables.py +0 -0
  551. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_get_unsupported_tool_config_keys.py +0 -0
  552. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_json_mode_content.py +0 -0
  553. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_message_decorator.py +0 -0
  554. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_parse_content_template.py +0 -0
  555. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_parse_prompt_messages.py +0 -0
  556. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_pil_image_to_bytes.py +0 -0
  557. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_setup_call.py +0 -0
  558. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/_utils/test_setup_extract_tool.py +0 -0
  559. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/conftest.py +0 -0
  560. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_call_factory.py +0 -0
  561. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_call_response.py +0 -0
  562. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_call_response_chunk.py +0 -0
  563. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_create.py +0 -0
  564. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_extract.py +0 -0
  565. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_extract_with_tools.py +0 -0
  566. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_merge_decorators.py +0 -0
  567. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_partial.py +0 -0
  568. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_prompt.py +0 -0
  569. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_stream.py +0 -0
  570. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_structured_stream.py +0 -0
  571. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_tool.py +0 -0
  572. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/base/test_toolkit.py +0 -0
  573. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/__init__.py +0 -0
  574. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/__init__.py +0 -0
  575. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/test_convert_common_call_params.py +0 -0
  576. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/test_convert_message_params.py +0 -0
  577. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/test_get_json_output.py +0 -0
  578. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/test_handle_stream.py +0 -0
  579. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/test_message_param_converter.py +0 -0
  580. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/_utils/test_setup_call.py +0 -0
  581. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/conftest.py +0 -0
  582. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/test_call.py +0 -0
  583. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/test_call_response.py +0 -0
  584. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/test_call_response_chunk.py +0 -0
  585. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/test_stream.py +0 -0
  586. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/bedrock/test_tool.py +0 -0
  587. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/__init__.py +0 -0
  588. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/__init__.py +0 -0
  589. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/test_convert_common_call_params.py +0 -0
  590. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/test_convert_message_params.py +0 -0
  591. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/test_get_json_output.py +0 -0
  592. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/test_handle_stream.py +0 -0
  593. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/test_message_param_converter.py +0 -0
  594. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/_utils/test_setup_call.py +0 -0
  595. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/test_call.py +0 -0
  596. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/test_call_response.py +0 -0
  597. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/test_call_response_chunk.py +0 -0
  598. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/test_stream.py +0 -0
  599. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/cohere/test_tool.py +0 -0
  600. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/__init__.py +0 -0
  601. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_anthropic_calculate_cost.py +0 -0
  602. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_azure_calculate_cost.py +0 -0
  603. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_bedrock_calculate_cost.py +0 -0
  604. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_calculation_cost.py +0 -0
  605. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_cohere_calculate_cost.py +0 -0
  606. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_gemini_calculate_cost.py +0 -0
  607. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_google_calculate_cost.py +0 -0
  608. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_groq_calculate_cost.py +0 -0
  609. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_mistral_calculate_cost.py +0 -0
  610. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_openai_calculate_cost.py +0 -0
  611. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_vertex_calculate_cost.py +0 -0
  612. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/costs/test_xai_calculate_cost.py +0 -0
  613. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/__init__.py +0 -0
  614. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/__init__.py +0 -0
  615. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/test_convert_common_call_params.py +0 -0
  616. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/test_convert_message_params.py +0 -0
  617. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/test_get_json_output.py +0 -0
  618. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/test_handle_stream.py +0 -0
  619. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/test_message_param_converter.py +0 -0
  620. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/_utils/test_setup_call.py +0 -0
  621. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/test_call.py +0 -0
  622. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/test_call_response.py +0 -0
  623. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/test_call_response_chunk.py +0 -0
  624. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/test_stream.py +0 -0
  625. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/gemini/test_tool.py +0 -0
  626. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/__init__.py +0 -0
  627. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/__init__.py +0 -0
  628. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/test_convert_common_call_params.py +0 -0
  629. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/test_convert_message_params.py +0 -0
  630. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/test_get_json_output.py +0 -0
  631. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/test_handle_stream.py +0 -0
  632. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/test_message_param_converter.py +0 -0
  633. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/_utils/test_setup_call.py +0 -0
  634. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/test_call.py +0 -0
  635. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/test_call_response.py +0 -0
  636. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/test_call_response_chunk.py +0 -0
  637. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/test_stream.py +0 -0
  638. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/google/test_tool.py +0 -0
  639. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/__init__.py +0 -0
  640. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/__init__.py +0 -0
  641. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/test_convert_common_call_params.py +0 -0
  642. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/test_convert_message_params.py +0 -0
  643. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/test_get_json_output.py +0 -0
  644. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/test_handle_stream.py +0 -0
  645. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/test_message_param_converter.py +0 -0
  646. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/_utils/test_setup_call.py +0 -0
  647. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/test_call.py +0 -0
  648. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/test_call_response.py +0 -0
  649. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/test_call_response_chunk.py +0 -0
  650. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/test_stream.py +0 -0
  651. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/groq/test_tool.py +0 -0
  652. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/litellm/__init__.py +0 -0
  653. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/litellm/_utils/__init__.py +0 -0
  654. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/litellm/_utils/test_setup_call.py +0 -0
  655. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/litellm/test_call.py +0 -0
  656. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/litellm/test_call_response.py +0 -0
  657. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/litellm/test_stream.py +0 -0
  658. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/__init__.py +0 -0
  659. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/__init__.py +0 -0
  660. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/test_convert_common_call_params.py +0 -0
  661. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/test_convert_message_params.py +0 -0
  662. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/test_get_json_output.py +0 -0
  663. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/test_handle_stream.py +0 -0
  664. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/test_message_param_converter.py +0 -0
  665. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/_utils/test_setup_call.py +0 -0
  666. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/test_call.py +0 -0
  667. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/test_call_response.py +0 -0
  668. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/test_call_response_chunk.py +0 -0
  669. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/test_stream.py +0 -0
  670. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/mistral/test_tool.py +0 -0
  671. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/__init__.py +0 -0
  672. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/__init__.py +0 -0
  673. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/test_convert_common_call_params.py +0 -0
  674. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/test_convert_message_params.py +0 -0
  675. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/test_get_json_output.py +0 -0
  676. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/test_handle_stream.py +0 -0
  677. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/test_message_param_converter.py +0 -0
  678. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/_utils/test_setup_call.py +0 -0
  679. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/test_call.py +0 -0
  680. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/test_call_response.py +0 -0
  681. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/test_call_response_chunk.py +0 -0
  682. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/test_stream.py +0 -0
  683. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/openai/test_tool.py +0 -0
  684. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/__init__.py +0 -0
  685. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/__init__.py +0 -0
  686. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/test_convert_common_call_params.py +0 -0
  687. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/test_convert_message_params.py +0 -0
  688. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/test_get_json_output.py +0 -0
  689. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/test_handle_stream.py +0 -0
  690. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/test_message_param_converter.py +0 -0
  691. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/_utils/test_setup_call.py +0 -0
  692. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/test_call.py +0 -0
  693. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/test_call_response.py +0 -0
  694. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/test_call_response_chunk.py +0 -0
  695. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/test_stream.py +0 -0
  696. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/vertex/test_tool.py +0 -0
  697. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/xai/__init__.py +0 -0
  698. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/xai/_utils/__init__.py +0 -0
  699. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/xai/_utils/test_setup_call.py +0 -0
  700. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/xai/test_call.py +0 -0
  701. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/xai/test_call_response.py +0 -0
  702. {mirascope-1.25.5 → mirascope-1.25.7}/tests/core/xai/test_stream.py +0 -0
  703. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/__init__.py +0 -0
  704. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/langfuse/__init__.py +0 -0
  705. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/langfuse/test_utils.py +0 -0
  706. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/langfuse/test_with_langfuse.py +0 -0
  707. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/logfire/__init__.py +0 -0
  708. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/logfire/test_utils.py +0 -0
  709. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/logfire/test_with_logfire.py +0 -0
  710. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/otel/__init__.py +0 -0
  711. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/otel/test_utils.py +0 -0
  712. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/otel/test_with_hyperdx.py +0 -0
  713. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/otel/test_with_otel.py +0 -0
  714. {mirascope-1.25.5 → mirascope-1.25.7}/tests/integrations/test_middleware_factory.py +0 -0
  715. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/__init__.py +0 -0
  716. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_call.py +0 -0
  717. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_call_response.py +0 -0
  718. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_call_response_chunk.py +0 -0
  719. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_context.py +0 -0
  720. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_override.py +0 -0
  721. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_response_metaclass.py +0 -0
  722. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_stream.py +0 -0
  723. {mirascope-1.25.5 → mirascope-1.25.7}/tests/llm/test_tool.py +0 -0
  724. {mirascope-1.25.5 → mirascope-1.25.7}/tests/mcp/__init__.py +0 -0
  725. {mirascope-1.25.5 → mirascope-1.25.7}/tests/mcp/test_client.py +0 -0
  726. {mirascope-1.25.5 → mirascope-1.25.7}/tests/mcp/test_server.py +0 -0
  727. {mirascope-1.25.5 → mirascope-1.25.7}/tests/retries/test_tenacity.py +0 -0
  728. {mirascope-1.25.5/tests/retries → mirascope-1.25.7/tests/tools}/__init__.py +0 -0
  729. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/test_base.py +0 -0
  730. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/test_docker_operation_toolkit.py +0 -0
  731. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/test_filesystem_toolkit.py +0 -0
  732. {mirascope-1.25.5/tests/tools → mirascope-1.25.7/tests/tools/web}/__init__.py +0 -0
  733. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/web/test_duckduckgo.py +0 -0
  734. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/web/test_httpx.py +0 -0
  735. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/web/test_parse_url_content.py +0 -0
  736. {mirascope-1.25.5 → mirascope-1.25.7}/tests/tools/web/test_requests.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mirascope
3
- Version: 1.25.5
3
+ Version: 1.25.7
4
4
  Summary: LLM abstractions that aren't obstructions
5
5
  Project-URL: Homepage, https://mirascope.com
6
6
  Project-URL: Documentation, https://mirascope.com/WELCOME
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Any, Literal
4
4
 
5
- from chromadb import CollectionMetadata, Settings
5
+ from chromadb import CollectionMetadata
6
6
  from chromadb.api.types import URI, Document, IDs, Loadable, Metadata
7
- from chromadb.config import DEFAULT_DATABASE, DEFAULT_TENANT
7
+ from chromadb.config import DEFAULT_DATABASE, DEFAULT_TENANT, Settings
8
8
  from chromadb.types import Vector
9
9
  from pydantic import BaseModel, ConfigDict
10
10
 
@@ -29,7 +29,7 @@ class ChromaQueryResult(BaseModel):
29
29
 
30
30
 
31
31
  class ChromaSettings(BaseModel):
32
- mode: Literal["http", "persistent", "ephemeral"] = "persistent"
32
+ mode: Literal["http", "persistent", "ephemeral", "cloud"] = "persistent"
33
33
  path: str = "./chroma"
34
34
  host: str = "localhost"
35
35
  port: int = 8000
@@ -38,17 +38,22 @@ class ChromaSettings(BaseModel):
38
38
  settings: Settings | None = None
39
39
  tenant: str = DEFAULT_TENANT
40
40
  database: str = DEFAULT_DATABASE
41
+ api_key: str | None = None
41
42
 
42
43
  model_config = ConfigDict(extra="allow", arbitrary_types_allowed=True)
43
44
 
44
45
  def kwargs(self) -> dict[str, Any]:
45
46
  """Returns all parameters for the index as a keyword arguments dictionary."""
46
47
  if self.mode == "http":
47
- exclude = {"mode", "path"}
48
+ exclude = {"mode", "path", "api_key"}
48
49
  elif self.mode == "persistent":
49
- exclude = {"mode", "host", "port", "ssl", "headers"}
50
+ exclude = {"mode", "host", "port", "ssl", "headers", "api_key"}
50
51
  elif self.mode == "ephemeral":
51
- exclude = {"mode", "host", "port", "ssl", "headers", "path"}
52
+ exclude = {"mode", "host", "port", "ssl", "headers", "path", "api_key"}
53
+ elif self.mode == "cloud":
54
+ exclude = {"mode", "path", "host", "port", "ssl", "headers"}
55
+ else:
56
+ exclude = {"mode"}
52
57
  kwargs = {
53
58
  key: value
54
59
  for key, value in self.model_dump(exclude=exclude).items()
@@ -3,7 +3,14 @@
3
3
  from functools import cached_property
4
4
  from typing import Any, ClassVar, cast
5
5
 
6
- from chromadb import Collection, EphemeralClient, HttpClient, Metadata, PersistentClient
6
+ from chromadb import (
7
+ CloudClient,
8
+ Collection,
9
+ EphemeralClient,
10
+ HttpClient,
11
+ Metadata,
12
+ PersistentClient,
13
+ )
7
14
  from chromadb.api import ClientAPI
8
15
 
9
16
  from ..base.document import Document
@@ -22,12 +29,25 @@ class ChromaVectorStore(BaseVectorStore):
22
29
  from mirascope.beta.rag import TextChunker
23
30
 
24
31
 
32
+ # Local persistent storage
25
33
  class MyStore(ChromaVectorStore):
26
34
  embedder = OpenAIEmbedder()
27
35
  chunker = TextChunker(chunk_size=1000, chunk_overlap=200)
28
36
  index_name = "my-store-0001"
29
37
  client_settings = ChromaSettings()
30
38
 
39
+ # Cloud mode with CloudClient authentication
40
+ class MyCloudStore(ChromaVectorStore):
41
+ embedder = OpenAIEmbedder()
42
+ chunker = TextChunker(chunk_size=1000, chunk_overlap=200)
43
+ index_name = "my-cloud-store-0001"
44
+ client_settings = ChromaSettings(
45
+ mode="cloud",
46
+ api_key="your-api-key",
47
+ tenant="your-tenant",
48
+ database="your-database",
49
+ )
50
+
31
51
  my_store = MyStore()
32
52
  with open(f"{PATH_TO_FILE}") as file:
33
53
  data = file.read()
@@ -82,6 +102,10 @@ class ChromaVectorStore(BaseVectorStore):
82
102
  return HttpClient(**self.client_settings.kwargs())
83
103
  elif self.client_settings.mode == "ephemeral":
84
104
  return EphemeralClient(**self.client_settings.kwargs())
105
+ elif self.client_settings.mode == "cloud":
106
+ return CloudClient(**self.client_settings.kwargs())
107
+ else:
108
+ raise ValueError(f"Unsupported client mode: {self.client_settings.mode}")
85
109
 
86
110
  @cached_property
87
111
  def _index(self) -> Collection:
@@ -93,5 +117,5 @@ class ChromaVectorStore(BaseVectorStore):
93
117
 
94
118
  return self._client.create_collection(
95
119
  **vectorstore_params.kwargs(),
96
- embedding_function=self.embedder,
120
+ embedding_function=self.embedder, # type: ignore[arg-type]
97
121
  )
@@ -1,4 +1,5 @@
1
1
  import base64
2
+ import logging
2
3
  from os import PathLike
3
4
  from typing import cast
4
5
 
@@ -17,6 +18,8 @@ from mirascope.core.base._utils._base_message_param_converter import (
17
18
  BaseMessageParamConverter,
18
19
  )
19
20
 
21
+ logger = logging.getLogger(__name__)
22
+
20
23
 
21
24
  class AnthropicMessageParamConverter(BaseMessageParamConverter):
22
25
  """Converts between Anthropic `MessageParam` objects and Mirascope `BaseMessageParam`."""
@@ -126,6 +129,15 @@ class AnthropicMessageParamConverter(BaseMessageParamConverter):
126
129
  is_error=block.get("is_error", False),
127
130
  )
128
131
  )
132
+ elif block["type"] in [
133
+ "thinking",
134
+ "redacted_thinking",
135
+ ]: # pragma: no cover
136
+ logger.warning(
137
+ "Dropping thinking content blocks as they are not supported at "
138
+ "the provider agnostic level in v1. For native thinking support "
139
+ "check out [v2](https://mirascope.com/docs/mirascope/v2)"
140
+ )
129
141
  else:
130
142
  # Any other block type is not supported
131
143
  raise ValueError(
@@ -39,6 +39,16 @@ from ..tool import MistralTool
39
39
  from ._convert_common_call_params import convert_common_call_params
40
40
  from ._convert_message_params import convert_message_params
41
41
 
42
+ global_client: Mistral | None = None
43
+
44
+
45
+ def _get_default_client() -> Mistral:
46
+ """Get or create the default Mistral client."""
47
+ global global_client
48
+ if global_client is None:
49
+ global_client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
50
+ return global_client
51
+
42
52
 
43
53
  @overload
44
54
  def setup_call(
@@ -144,7 +154,7 @@ def setup_call(
144
154
  call_kwargs |= {"model": model, "messages": messages}
145
155
 
146
156
  if client is None:
147
- client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
157
+ client = _get_default_client()
148
158
  if fn_is_async(fn):
149
159
  create_or_stream = get_async_create_fn(
150
160
  client.chat.complete_async, client.chat.stream_async
@@ -4,6 +4,7 @@ import inspect
4
4
  from collections.abc import Callable, Coroutine
5
5
  from typing import Any, ParamSpec, Protocol, TypeVar, overload
6
6
 
7
+ from pydantic import BaseModel
7
8
  from typing_extensions import NotRequired, Required, TypedDict
8
9
 
9
10
  from .. import llm
@@ -75,8 +76,8 @@ def fallback(
75
76
  def decorator(
76
77
  fn: Callable[_P, _R] | Callable[_P, Coroutine[_R, Any, Any]],
77
78
  ) -> Callable[_P, _R] | Callable[_P, Coroutine[_R, Any, Any]]:
78
- # TODO: figure out why llm call fn is not considered as coroutine at runtime
79
- if inspect.iscoroutinefunction(fn._original_fn): # pyright: ignore [reportFunctionMemberAccess]
79
+ fn_to_check = fn._original_fn if hasattr(fn, "_original_fn") else fn # pyright: ignore [reportFunctionMemberAccess]
80
+ if inspect.iscoroutinefunction(fn_to_check):
80
81
 
81
82
  async def inner_async(*args: _P.args, **kwargs: _P.kwargs) -> _R:
82
83
  caught: list[Exception] = []
@@ -86,15 +87,16 @@ def fallback(
86
87
  caught.append(e)
87
88
  for backup in fallbacks:
88
89
  try:
89
- response = await llm.override(
90
- fn,
90
+ with llm.context(
91
91
  provider=backup["provider"],
92
92
  model=backup["model"],
93
93
  call_params=backup.get("call_params", None),
94
94
  client=backup.get("client", None),
95
- )(*args, **kwargs) # pyright: ignore [reportGeneralTypeIssues]
96
- response._caught = caught # pyright: ignore [reportAttributeAccessIssue]
97
- return response # pyright: ignore [reportReturnType]
95
+ ):
96
+ response = await fn(*args, **kwargs) # pyright: ignore [reportGeneralTypeIssues]
97
+ if isinstance(response, BaseModel):
98
+ response._caught = caught # pyright: ignore [reportAttributeAccessIssue]
99
+ return response # pyright: ignore [reportReturnType]
98
100
  except backup["catch"] as be:
99
101
  caught.append(be)
100
102
  raise FallbackError(f"All fallbacks failed:\n{caught}")
@@ -110,15 +112,16 @@ def fallback(
110
112
  caught.append(e)
111
113
  for backup in fallbacks:
112
114
  try:
113
- response = llm.override(
114
- fn,
115
+ with llm.context(
115
116
  provider=backup["provider"],
116
117
  model=backup["model"],
117
118
  call_params=backup.get("call_params", None),
118
119
  client=backup.get("client", None),
119
- )(*args, **kwargs)
120
- response._caught = caught # pyright: ignore [reportAttributeAccessIssue]
121
- return response # pyright: ignore [reportReturnType]
120
+ ):
121
+ response = fn(*args, **kwargs)
122
+ if isinstance(response, BaseModel):
123
+ response._caught = caught # pyright: ignore [reportAttributeAccessIssue]
124
+ return response # pyright: ignore [reportReturnType]
122
125
  except backup["catch"] as be:
123
126
  caught.append(be)
124
127
  raise FallbackError(f"All fallbacks failed:\n{caught}")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mirascope"
3
- version = "1.25.5"
3
+ version = "1.25.7"
4
4
  description = "LLM abstractions that aren't obstructions"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -104,7 +104,7 @@ dev-dependencies = [
104
104
  "mkdocs-exclude>=1.0.2",
105
105
  "black>=24.8.0",
106
106
  "weaviate-client>=4.7.1",
107
- "chromadb>=0.5.15",
107
+ "chromadb>=1.0.0",
108
108
  "pinecone-client>=5.0.1",
109
109
  "scikit-learn>=1.5.1",
110
110
  "duckduckgo-search>=6.2.10,<7",
@@ -0,0 +1,4 @@
1
+ import os
2
+
3
+ os.environ["OPENAI_API_KEY"] = "test-key"
4
+ os.environ["ANTHROPIC_API_KEY"] = "test-key"
@@ -0,0 +1,286 @@
1
+ """Tests the `fallback` module."""
2
+
3
+ from unittest.mock import AsyncMock, MagicMock, patch
4
+
5
+ import pytest
6
+ from anthropic import RateLimitError as AnthropicRateLimitError
7
+ from anthropic.types import (
8
+ Message,
9
+ MessageDeltaUsage,
10
+ RawContentBlockDeltaEvent,
11
+ RawContentBlockStartEvent,
12
+ RawContentBlockStopEvent,
13
+ RawMessageDeltaEvent,
14
+ RawMessageStartEvent,
15
+ RawMessageStopEvent,
16
+ TextBlock,
17
+ TextDelta,
18
+ Usage,
19
+ )
20
+ from anthropic.types.raw_message_delta_event import Delta
21
+ from httpx import Request, Response
22
+ from openai import RateLimitError as OpenAIRateLimitError
23
+
24
+ from mirascope import llm
25
+ from mirascope.retries.fallback import FallbackError, fallback
26
+
27
+
28
+ @patch(
29
+ "anthropic.resources.messages.Messages.create",
30
+ new_callable=MagicMock,
31
+ side_effect=AnthropicRateLimitError(
32
+ message="",
33
+ response=Response(429, request=Request(method="", url="")),
34
+ body=None,
35
+ ),
36
+ )
37
+ @patch(
38
+ "openai.resources.chat.completions.Completions.create",
39
+ new_callable=MagicMock,
40
+ side_effect=OpenAIRateLimitError(
41
+ message="",
42
+ response=Response(429, request=Request(method="", url="")),
43
+ body=None,
44
+ ),
45
+ )
46
+ def test_fallback(mock_openai_create: MagicMock, mock_anthropic_create: MagicMock):
47
+ @fallback(
48
+ OpenAIRateLimitError,
49
+ [
50
+ {
51
+ "catch": AnthropicRateLimitError,
52
+ "provider": "anthropic",
53
+ "model": "claude-3-5-sonnet-latest",
54
+ }
55
+ ],
56
+ )
57
+ @llm.call("openai", "gpt-4o-mini")
58
+ def answer_question(question: str) -> str:
59
+ return question
60
+
61
+ with pytest.raises(FallbackError):
62
+ answer_question("What is the meaning of life?")
63
+
64
+
65
+ @patch(
66
+ "anthropic.resources.messages.Messages.create",
67
+ new_callable=MagicMock,
68
+ return_value=Message(
69
+ id="id",
70
+ content=[TextBlock(text="content", type="text")],
71
+ model="claude-3-5-sonnet-20240620",
72
+ role="assistant",
73
+ stop_reason="end_turn",
74
+ stop_sequence=None,
75
+ type="message",
76
+ usage=Usage(input_tokens=1, output_tokens=1),
77
+ ),
78
+ )
79
+ @patch(
80
+ "openai.resources.chat.completions.Completions.create",
81
+ new_callable=MagicMock,
82
+ side_effect=OpenAIRateLimitError(
83
+ message="",
84
+ response=Response(429, request=Request(method="", url="")),
85
+ body=None,
86
+ ),
87
+ )
88
+ def test_fallback_success(
89
+ mock_openai_create: MagicMock, mock_anthropic_create: MagicMock
90
+ ):
91
+ @fallback(
92
+ OpenAIRateLimitError,
93
+ [
94
+ {
95
+ "catch": AnthropicRateLimitError,
96
+ "provider": "anthropic",
97
+ "model": "claude-3-5-sonnet-latest",
98
+ }
99
+ ],
100
+ )
101
+ @llm.call("openai", "gpt-4o-mini")
102
+ def answer_question(question: str) -> str:
103
+ return question
104
+
105
+ response = answer_question("What is the meaning of life?")
106
+ assert hasattr(response, "_caught")
107
+ assert isinstance(response._caught[0], OpenAIRateLimitError)
108
+
109
+
110
+ @patch(
111
+ "anthropic.resources.messages.AsyncMessages.create",
112
+ new_callable=MagicMock,
113
+ side_effect=AnthropicRateLimitError(
114
+ message="",
115
+ response=Response(429, request=Request(method="", url="")),
116
+ body=None,
117
+ ),
118
+ )
119
+ @patch(
120
+ "openai.resources.chat.completions.AsyncCompletions.create",
121
+ new_callable=MagicMock,
122
+ side_effect=OpenAIRateLimitError(
123
+ message="",
124
+ response=Response(429, request=Request(method="", url="")),
125
+ body=None,
126
+ ),
127
+ )
128
+ @pytest.mark.asyncio
129
+ async def test_fallback_async(
130
+ mock_openai_create: MagicMock, mock_anthropic_create: MagicMock
131
+ ):
132
+ @fallback(
133
+ OpenAIRateLimitError,
134
+ [
135
+ {
136
+ "catch": AnthropicRateLimitError,
137
+ "provider": "anthropic",
138
+ "model": "claude-3-5-sonnet-latest",
139
+ }
140
+ ],
141
+ )
142
+ @llm.call("openai", "gpt-4o-mini")
143
+ async def answer_question_async(question: str) -> str:
144
+ return question
145
+
146
+ with pytest.raises(FallbackError):
147
+ await answer_question_async("What is the meaning of life?")
148
+
149
+
150
+ @patch(
151
+ "anthropic.resources.messages.AsyncMessages.create",
152
+ new_callable=MagicMock,
153
+ )
154
+ @patch(
155
+ "openai.resources.chat.completions.AsyncCompletions.create",
156
+ new_callable=MagicMock,
157
+ side_effect=OpenAIRateLimitError(
158
+ message="",
159
+ response=Response(429, request=Request(method="", url="")),
160
+ body=None,
161
+ ),
162
+ )
163
+ @pytest.mark.asyncio
164
+ async def test_fallback_async_success(
165
+ mock_openai_call: AsyncMock, mock_anthropic_create: MagicMock
166
+ ):
167
+ async def awaitable_message():
168
+ return Message(
169
+ id="id",
170
+ content=[TextBlock(text="content", type="text")],
171
+ model="claude-3-5-sonnet-20240620",
172
+ role="assistant",
173
+ stop_reason="end_turn",
174
+ stop_sequence=None,
175
+ type="message",
176
+ usage=Usage(input_tokens=1, output_tokens=1),
177
+ )
178
+
179
+ mock_anthropic_create.return_value = awaitable_message()
180
+
181
+ @fallback(
182
+ OpenAIRateLimitError,
183
+ [
184
+ {
185
+ "catch": AnthropicRateLimitError,
186
+ "provider": "anthropic",
187
+ "model": "claude-3-5-sonnet-latest",
188
+ }
189
+ ],
190
+ )
191
+ @llm.call("openai", "gpt-4o-mini")
192
+ async def answer_question(question: str) -> str:
193
+ return question
194
+
195
+ response = await answer_question("What is the meaning of life?")
196
+ assert hasattr(response, "_caught")
197
+ assert isinstance(response._caught[0], OpenAIRateLimitError)
198
+
199
+
200
+ @patch(
201
+ "anthropic.resources.messages.Messages.create",
202
+ new_callable=MagicMock,
203
+ )
204
+ @patch(
205
+ "openai.resources.chat.completions.Completions.create",
206
+ new_callable=MagicMock,
207
+ )
208
+ def test_fallback_streaming_wrapper(
209
+ mock_openai_create: MagicMock, mock_anthropic_create: MagicMock
210
+ ) -> None:
211
+ class StreamingError(Exception): ...
212
+
213
+ def failing_openai_generator():
214
+ """Generator that raises StreamingError when iterated"""
215
+ yield MagicMock() # This will trigger the exception when next() is called
216
+ raise StreamingError("OpenAI streaming failed")
217
+
218
+ mock_openai_create.return_value = failing_openai_generator()
219
+ mock_anthropic_create.return_value = iter(
220
+ [
221
+ RawMessageStartEvent(
222
+ message=Message(
223
+ id="msg_id",
224
+ content=[],
225
+ model="claude-3-5-sonnet-latest",
226
+ role="assistant",
227
+ stop_reason=None,
228
+ stop_sequence=None,
229
+ type="message",
230
+ usage=Usage(input_tokens=10, output_tokens=0),
231
+ ),
232
+ type="message_start",
233
+ ),
234
+ RawContentBlockStartEvent(
235
+ content_block=TextBlock(
236
+ text="",
237
+ type="text",
238
+ ),
239
+ index=0,
240
+ type="content_block_start",
241
+ ),
242
+ RawContentBlockDeltaEvent(
243
+ delta=TextDelta(text="anthropic", type="text_delta"),
244
+ index=0,
245
+ type="content_block_delta",
246
+ ),
247
+ RawContentBlockDeltaEvent(
248
+ delta=TextDelta(text="streamed", type="text_delta"),
249
+ index=0,
250
+ type="content_block_delta",
251
+ ),
252
+ RawContentBlockDeltaEvent(
253
+ delta=TextDelta(text="successfully", type="text_delta"),
254
+ index=0,
255
+ type="content_block_delta",
256
+ ),
257
+ RawContentBlockStopEvent(index=0, type="content_block_stop"),
258
+ RawMessageDeltaEvent(
259
+ delta=Delta(stop_reason="end_turn", stop_sequence=None),
260
+ type="message_delta",
261
+ usage=MessageDeltaUsage(output_tokens=3),
262
+ ),
263
+ RawMessageStopEvent(type="message_stop"),
264
+ ]
265
+ )
266
+
267
+ @llm.call("openai", "gpt-4o-mini", stream=True)
268
+ def answer_question(question: str) -> str:
269
+ return question
270
+
271
+ @fallback(
272
+ StreamingError,
273
+ [
274
+ {
275
+ "catch": StreamingError,
276
+ "provider": "anthropic",
277
+ "model": "claude-3-5-sonnet-latest",
278
+ }
279
+ ],
280
+ )
281
+ def answer_question_wrapper(question: str) -> list[str]:
282
+ stream = answer_question("What is the meaning of life?")
283
+ return [chunk.content for chunk, _ in stream if chunk.content]
284
+
285
+ chunks = answer_question_wrapper("What is the meaning of life?")
286
+ assert chunks == ["anthropic", "streamed", "successfully"]