mirascope 1.23.4__tar.gz → 1.24.1__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.
- {mirascope-1.23.4 → mirascope-1.24.1}/PKG-INFO +3 -3
- {mirascope-1.23.4 → mirascope-1.24.1}/README.md +2 -2
- mirascope-1.24.1/api_ref/llm/call_response.md +3 -0
- mirascope-1.24.1/api_ref/llm/call_response_chunk.md +3 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/__init__.py +2 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/__init__.py +2 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/call_response_chunk.py +5 -5
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/__init__.py +2 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_convert_messages_to_message_params.py +9 -2
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/call_response.py +1 -3
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/message_param.py +13 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/messages.py +5 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/tool.py +9 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_message_param_converter.py +10 -9
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/call_response.py +0 -1
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/tool.py +4 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_convert_message_params.py +76 -3
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_message_param_converter.py +42 -4
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_validate_media_type.py +24 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/call_response.py +1 -10
- {mirascope-1.23.4 → mirascope-1.24.1}/pyproject.toml +1 -1
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_message_param_converter.py +3 -7
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/test_call_response.py +0 -1
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/test_tool.py +1 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/test_convert_message_params.py +400 -1
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/test_message_param_converter.py +59 -4
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_call_response.py +9 -14
- {mirascope-1.23.4 → mirascope-1.24.1}/uv.lock +1 -1
- mirascope-1.23.4/api_ref/llm/call_response.md +0 -3
- mirascope-1.23.4/api_ref/llm/call_response_chunk.md +0 -3
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/CODEOWNERS +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/workflows/label_issues.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/workflows/lint.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/workflows/release.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.github/workflows/tests.yml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.gitignore +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.pre-commit-config.yaml +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.vscode/extensions.json +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.vscode/launch.json +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/.vscode/settings.json +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/LICENSE +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/anthropic/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/azure/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/call_factory.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/merge_decorators.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/message_param.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/metadata.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/prompt.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/structured_stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/toolkit.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/base/types.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/bedrock/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/cohere/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/costs/calculate_cost.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/google/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/groq/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/litellm/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/mistral/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/openai/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/call_params.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/call_response.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/call_response_chunk.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/dynamic_config.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/core/xai/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/llm/call.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/llm/context.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/llm/override.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/llm/stream.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/llm/tool.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/mcp/client.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/retries/fallback.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/retries/tenacity.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/tools/system/docker_operation.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/tools/system/file_system.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/tools/web/duckduckgo.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/tools/web/httpx.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/tools/web/parse_url_content.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/api_ref/tools/web/requests.md +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/_utils/_audio.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/_utils/_protocols.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/realtime.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/recording.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/openai/realtime/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/chunkers/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/chunkers/base_chunker.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/chunkers/text_chunker.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/document.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/embedders.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/embedding_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/embedding_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/query_results.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/vectorstore_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/base/vectorstores.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/chroma/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/chroma/types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/chroma/vectorstores.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/cohere/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/cohere/embedders.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/cohere/embedding_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/cohere/embedding_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/cohere/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/openai/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/openai/embedders.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/openai/embedding_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/openai/embedding_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/openai/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/pinecone/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/pinecone/types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/pinecone/vectorstores.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/weaviate/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/weaviate/types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/beta/rag/weaviate/vectorstores.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/anthropic/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_get_credential.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/azure/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_call_factory.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_create.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_extract.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_extract_with_tools.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_partial.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_base_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_base_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_convert_base_model_to_base_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_convert_base_type_to_base_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_convert_function_to_base_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_convert_provider_finish_reason_to_finish_reason.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_default_tool_docstring.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_extract_tool_return.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_fn_is_async.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_format_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_audio_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_common_usage.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_create_fn_or_async_create_fn.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_document_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_dynamic_configuration.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_fields_from_call_args.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_fn_args.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_image_dimensions.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_image_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_metadata.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_possible_user_message_param.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_prompt_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_template_values.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_template_variables.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_get_unsupported_tool_config_keys.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_is_prompt_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_json_mode_content.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_messages_decorator.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_parse_content_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_parse_prompt_messages.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_pil_image_to_bytes.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_protocols.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/_utils/_setup_extract_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/from_call_args.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/merge_decorators.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/metadata.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/prompt.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/response_model_config_dict.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/stream_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/structured_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/toolkit.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/base/types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/cohere/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_anthropic_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_azure_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_bedrock_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_cohere_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_gemini_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_google_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_groq_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_litellm_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_mistral_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_openai_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_vertex_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/_xai_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/costs/calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/gemini/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/groq/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/litellm/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/mistral/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/openai/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_call_kwargs.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/vertex/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/_utils/_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/dynamic_config.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/xai/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/experimental/graphs/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/experimental/graphs/finite_state_machine.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/_middleware_factory.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/langfuse/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/langfuse/_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/langfuse/_with_langfuse.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/logfire/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/logfire/_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/logfire/_with_logfire.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/otel/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/otel/_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/otel/_with_hyperdx.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/otel/_with_otel.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/integrations/tenacity.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/_context.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/_override.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/_protocols.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/_response_metaclass.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/llm/tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/mcp/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/mcp/_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/mcp/client.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/mcp/server.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/mcp/tools.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/py.typed +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/retries/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/retries/fallback.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/retries/tenacity.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/base.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/system/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/system/_docker_operation.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/system/_file_system.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/web/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/web/_duckduckgo.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/web/_httpx.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/web/_parse_url_content.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/tools/web/_requests.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/anthropic.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/calls.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/extractors.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/ops_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/prompts.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/types.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/base/utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/mirascope/v0/openai.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/conftest.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/anthropic/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_get_credential.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/azure/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_base_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_convert_base_model_to_base_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_convert_base_type_to_base_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_convert_function_to_base_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_convert_messages_to_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_extract_tool_return.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_format_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_audio_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_create_fn_or_async_create_fn.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_document_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_dynamic_configuration.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_fields_from_call_args.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_fn_args.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_image_dimensions.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_image_type.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_metadata.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_possible_user_message_param.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_prompt_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_template_values.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_template_variables.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_get_unsupported_tool_config_keys.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_json_mode_content.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_message_decorator.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_parse_content_template.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_parse_prompt_messages.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_pil_image_to_bytes.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/_utils/test_setup_extract_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/conftest.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_call_factory.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_create.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_extract.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_extract_with_tools.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_merge_decorators.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_partial.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_prompt.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_structured_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/base/test_toolkit.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/conftest.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/cohere/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_anthropic_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_azure_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_bedrock_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_calculation_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_cohere_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_gemini_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_google_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_groq_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_mistral_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_openai_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_vertex_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/costs/test_xai_calculate_cost.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/gemini/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/google/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/groq/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/litellm/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/litellm/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/litellm/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/litellm/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/litellm/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/litellm/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/mistral/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/openai/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/test_convert_common_call_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/test_convert_message_params.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/test_get_json_output.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/test_handle_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/test_message_param_converter.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/vertex/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/xai/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/xai/_utils/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/xai/_utils/test_setup_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/xai/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/xai/test_call_response.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/core/xai/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/langfuse/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/langfuse/test_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/langfuse/test_with_langfuse.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/logfire/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/logfire/test_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/logfire/test_with_logfire.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/otel/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/otel/test_utils.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/otel/test_with_hyperdx.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/otel/test_with_otel.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/integrations/test_middleware_factory.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_call.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_call_response_chunk.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_context.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_override.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_response_metaclass.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_stream.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/llm/test_tool.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/mcp/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/mcp/test_client.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/mcp/test_server.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/retries/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/retries/test_fallback.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/retries/test_tenacity.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/test_base.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/test_docker_operation_toolkit.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/test_filesystem_toolkit.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/web/__init__.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/web/test_duckduckgo.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/web/test_httpx.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/tests/tools/web/test_parse_url_content.py +0 -0
- {mirascope-1.23.4 → mirascope-1.24.1}/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.
|
|
3
|
+
Version: 1.24.1
|
|
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
|
|
@@ -154,7 +154,7 @@ print(book)
|
|
|
154
154
|
|
|
155
155
|
## Tutorials
|
|
156
156
|
|
|
157
|
-
Check out our [quickstart tutorial](https://mirascope.com/
|
|
157
|
+
Check out our [quickstart tutorial](https://mirascope.com/docs/mirascope/getting-started/quickstart) and many other tutorials for an interactive way to getting started with Mirascope.
|
|
158
158
|
|
|
159
159
|
## Usage
|
|
160
160
|
|
|
@@ -166,4 +166,4 @@ Mirascope uses [Semantic Versioning](https://semver.org/).
|
|
|
166
166
|
|
|
167
167
|
## Licence
|
|
168
168
|
|
|
169
|
-
This project is licensed under the terms of the [MIT License](https://github.com/Mirascope/mirascope/
|
|
169
|
+
This project is licensed under the terms of the [MIT License](https://github.com/Mirascope/mirascope/tree/main/LICENSE).
|
|
@@ -51,7 +51,7 @@ print(book)
|
|
|
51
51
|
|
|
52
52
|
## Tutorials
|
|
53
53
|
|
|
54
|
-
Check out our [quickstart tutorial](https://mirascope.com/
|
|
54
|
+
Check out our [quickstart tutorial](https://mirascope.com/docs/mirascope/getting-started/quickstart) and many other tutorials for an interactive way to getting started with Mirascope.
|
|
55
55
|
|
|
56
56
|
## Usage
|
|
57
57
|
|
|
@@ -63,4 +63,4 @@ Mirascope uses [Semantic Versioning](https://semver.org/).
|
|
|
63
63
|
|
|
64
64
|
## Licence
|
|
65
65
|
|
|
66
|
-
This project is licensed under the terms of the [MIT License](https://github.com/Mirascope/mirascope/
|
|
66
|
+
This project is licensed under the terms of the [MIT License](https://github.com/Mirascope/mirascope/tree/main/LICENSE).
|
|
@@ -15,6 +15,7 @@ from .core import (
|
|
|
15
15
|
BaseToolKit,
|
|
16
16
|
CacheControlPart,
|
|
17
17
|
DocumentPart,
|
|
18
|
+
DocumentURLPart,
|
|
18
19
|
ImagePart,
|
|
19
20
|
ImageURLPart,
|
|
20
21
|
LocalProvider,
|
|
@@ -43,6 +44,7 @@ __all__ = [
|
|
|
43
44
|
"BaseToolKit",
|
|
44
45
|
"CacheControlPart",
|
|
45
46
|
"DocumentPart",
|
|
47
|
+
"DocumentURLPart",
|
|
46
48
|
"ImagePart",
|
|
47
49
|
"ImageURLPart",
|
|
48
50
|
"LocalProvider",
|
|
@@ -16,6 +16,7 @@ from .base import (
|
|
|
16
16
|
CacheControlPart,
|
|
17
17
|
CostMetadata,
|
|
18
18
|
DocumentPart,
|
|
19
|
+
DocumentURLPart,
|
|
19
20
|
FromCallArgs,
|
|
20
21
|
ImagePart,
|
|
21
22
|
ImageURLPart,
|
|
@@ -77,6 +78,7 @@ __all__ = [
|
|
|
77
78
|
"CacheControlPart",
|
|
78
79
|
"CostMetadata",
|
|
79
80
|
"DocumentPart",
|
|
81
|
+
"DocumentURLPart",
|
|
80
82
|
"FromCallArgs",
|
|
81
83
|
"ImagePart",
|
|
82
84
|
"ImageURLPart",
|
|
@@ -75,14 +75,14 @@ class AzureCallResponseChunk(
|
|
|
75
75
|
return self.chunk.id
|
|
76
76
|
|
|
77
77
|
@property
|
|
78
|
-
def usage(self) -> CompletionsUsage:
|
|
78
|
+
def usage(self) -> CompletionsUsage | None:
|
|
79
79
|
"""Returns the usage of the chat completion."""
|
|
80
80
|
return self.chunk.usage
|
|
81
81
|
|
|
82
82
|
@property
|
|
83
|
-
def input_tokens(self) -> int:
|
|
83
|
+
def input_tokens(self) -> int | None:
|
|
84
84
|
"""Returns the number of input tokens."""
|
|
85
|
-
return self.usage.prompt_tokens
|
|
85
|
+
return self.usage.prompt_tokens if self.usage else None
|
|
86
86
|
|
|
87
87
|
@property
|
|
88
88
|
def cached_tokens(self) -> int:
|
|
@@ -90,9 +90,9 @@ class AzureCallResponseChunk(
|
|
|
90
90
|
return 0
|
|
91
91
|
|
|
92
92
|
@property
|
|
93
|
-
def output_tokens(self) -> int:
|
|
93
|
+
def output_tokens(self) -> int | None:
|
|
94
94
|
"""Returns the number of output tokens."""
|
|
95
|
-
return self.usage.completion_tokens
|
|
95
|
+
return self.usage.completion_tokens if self.usage else None
|
|
96
96
|
|
|
97
97
|
@property
|
|
98
98
|
def cost_metadata(self) -> CostMetadata:
|
|
@@ -16,6 +16,7 @@ from .message_param import (
|
|
|
16
16
|
BaseMessageParam,
|
|
17
17
|
CacheControlPart,
|
|
18
18
|
DocumentPart,
|
|
19
|
+
DocumentURLPart,
|
|
19
20
|
ImagePart,
|
|
20
21
|
ImageURLPart,
|
|
21
22
|
TextPart,
|
|
@@ -59,6 +60,7 @@ __all__ = [
|
|
|
59
60
|
"CommonCallParams",
|
|
60
61
|
"CostMetadata",
|
|
61
62
|
"DocumentPart",
|
|
63
|
+
"DocumentURLPart",
|
|
62
64
|
"FromCallArgs",
|
|
63
65
|
"GenerateJsonSchemaNoTitles",
|
|
64
66
|
"ImagePart",
|
|
@@ -14,6 +14,7 @@ from ..message_param import (
|
|
|
14
14
|
BaseMessageParam,
|
|
15
15
|
CacheControlPart,
|
|
16
16
|
DocumentPart,
|
|
17
|
+
DocumentURLPart,
|
|
17
18
|
ImagePart,
|
|
18
19
|
ImageURLPart,
|
|
19
20
|
TextPart,
|
|
@@ -37,7 +38,8 @@ def _convert_message_sequence_part_to_content_part(
|
|
|
37
38
|
| AudioURLPart
|
|
38
39
|
| AudioSegment
|
|
39
40
|
| Wave_read
|
|
40
|
-
| DocumentPart
|
|
41
|
+
| DocumentPart
|
|
42
|
+
| DocumentURLPart,
|
|
41
43
|
) -> (
|
|
42
44
|
TextPart
|
|
43
45
|
| ImagePart
|
|
@@ -45,6 +47,7 @@ def _convert_message_sequence_part_to_content_part(
|
|
|
45
47
|
| AudioPart
|
|
46
48
|
| AudioURLPart
|
|
47
49
|
| CacheControlPart
|
|
50
|
+
| DocumentURLPart
|
|
48
51
|
| DocumentPart
|
|
49
52
|
):
|
|
50
53
|
if isinstance(message_sequence_part, str):
|
|
@@ -57,7 +60,8 @@ def _convert_message_sequence_part_to_content_part(
|
|
|
57
60
|
| AudioPart
|
|
58
61
|
| AudioURLPart
|
|
59
62
|
| CacheControlPart
|
|
60
|
-
| DocumentPart
|
|
63
|
+
| DocumentPart
|
|
64
|
+
| DocumentURLPart,
|
|
61
65
|
):
|
|
62
66
|
return message_sequence_part
|
|
63
67
|
elif has_pil_module and isinstance(message_sequence_part, Image.Image):
|
|
@@ -107,6 +111,7 @@ def convert_message_content_to_message_param_content(
|
|
|
107
111
|
| AudioSegment
|
|
108
112
|
| Wave_read
|
|
109
113
|
| DocumentPart
|
|
114
|
+
| DocumentURLPart,
|
|
110
115
|
],
|
|
111
116
|
) -> (
|
|
112
117
|
list[
|
|
@@ -117,6 +122,7 @@ def convert_message_content_to_message_param_content(
|
|
|
117
122
|
| AudioURLPart
|
|
118
123
|
| CacheControlPart
|
|
119
124
|
| DocumentPart
|
|
125
|
+
| DocumentURLPart,
|
|
120
126
|
]
|
|
121
127
|
| str
|
|
122
128
|
):
|
|
@@ -151,6 +157,7 @@ def convert_messages_to_message_params(
|
|
|
151
157
|
| AudioSegment
|
|
152
158
|
| Wave_read
|
|
153
159
|
| DocumentPart
|
|
160
|
+
| DocumentURLPart,
|
|
154
161
|
]
|
|
155
162
|
| list[BaseMessageParam]
|
|
156
163
|
| BaseMessageParam,
|
|
@@ -60,10 +60,8 @@ def transform_tool_outputs(
|
|
|
60
60
|
tools_and_outputs: Sequence[tuple[_BaseToolT, JsonableType]],
|
|
61
61
|
) -> list[_ToolMessageParamT]:
|
|
62
62
|
def recursive_serializer(value: JsonableType) -> BaseType:
|
|
63
|
-
if isinstance(value, str):
|
|
63
|
+
if isinstance(value, str | int | float | bool | None):
|
|
64
64
|
return value
|
|
65
|
-
if isinstance(value, int | float | bool):
|
|
66
|
-
return value # Don't serialize primitives yet
|
|
67
65
|
if isinstance(value, bytes):
|
|
68
66
|
return base64.b64encode(value).decode("utf-8")
|
|
69
67
|
if isinstance(value, BaseModel):
|
|
@@ -103,6 +103,18 @@ class DocumentPart(BaseModel):
|
|
|
103
103
|
document: bytes
|
|
104
104
|
|
|
105
105
|
|
|
106
|
+
class DocumentURLPart(BaseModel):
|
|
107
|
+
"""A content part for documents with a URL.
|
|
108
|
+
|
|
109
|
+
Attributes:
|
|
110
|
+
type: Always "document_url"
|
|
111
|
+
url: The URL to the document
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
type: Literal["document_url"]
|
|
115
|
+
url: str
|
|
116
|
+
|
|
117
|
+
|
|
106
118
|
class ToolCallPart(BaseModel):
|
|
107
119
|
"""A content part for tool.
|
|
108
120
|
|
|
@@ -156,6 +168,7 @@ class BaseMessageParam(BaseModel):
|
|
|
156
168
|
| AudioURLPart
|
|
157
169
|
| CacheControlPart
|
|
158
170
|
| DocumentPart
|
|
171
|
+
| DocumentURLPart
|
|
159
172
|
| ToolCallPart
|
|
160
173
|
| ToolResultPart
|
|
161
174
|
]
|
|
@@ -14,6 +14,7 @@ from .message_param import (
|
|
|
14
14
|
BaseMessageParam,
|
|
15
15
|
CacheControlPart,
|
|
16
16
|
DocumentPart,
|
|
17
|
+
DocumentURLPart,
|
|
17
18
|
ImagePart,
|
|
18
19
|
ImageURLPart,
|
|
19
20
|
TextPart,
|
|
@@ -36,6 +37,7 @@ class Messages:
|
|
|
36
37
|
| AudioSegment
|
|
37
38
|
| Wave_read
|
|
38
39
|
| DocumentPart
|
|
40
|
+
| DocumentURLPart
|
|
39
41
|
]
|
|
40
42
|
| list[BaseMessageParam | Any]
|
|
41
43
|
| BaseMessageParam
|
|
@@ -57,6 +59,7 @@ class Messages:
|
|
|
57
59
|
| AudioSegment
|
|
58
60
|
| Wave_read
|
|
59
61
|
| DocumentPart
|
|
62
|
+
| DocumentURLPart
|
|
60
63
|
],
|
|
61
64
|
) -> BaseMessageParam:
|
|
62
65
|
return BaseMessageParam(
|
|
@@ -80,6 +83,7 @@ class Messages:
|
|
|
80
83
|
| AudioSegment
|
|
81
84
|
| Wave_read
|
|
82
85
|
| DocumentPart
|
|
86
|
+
| DocumentURLPart
|
|
83
87
|
],
|
|
84
88
|
) -> BaseMessageParam:
|
|
85
89
|
return BaseMessageParam(
|
|
@@ -103,6 +107,7 @@ class Messages:
|
|
|
103
107
|
| AudioSegment
|
|
104
108
|
| Wave_read
|
|
105
109
|
| DocumentPart
|
|
110
|
+
| DocumentURLPart
|
|
106
111
|
],
|
|
107
112
|
) -> BaseMessageParam:
|
|
108
113
|
return BaseMessageParam(
|
|
@@ -122,6 +122,15 @@ class BaseTool(BaseModel, ABC):
|
|
|
122
122
|
if field not in {"tool_call", "delta"}
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
@property
|
|
126
|
+
def id(self) -> str | None:
|
|
127
|
+
"""The id of the tool."""
|
|
128
|
+
if tool_call := getattr(self, "tool_call", None):
|
|
129
|
+
# Expect tool_call has an id attribute.
|
|
130
|
+
# If not, we should override this method on the provider tool
|
|
131
|
+
return getattr(tool_call, "id", None)
|
|
132
|
+
return None
|
|
133
|
+
|
|
125
134
|
@abstractmethod
|
|
126
135
|
def call(self, *args: Any, **kwargs: Any) -> Any: # noqa: ANN401
|
|
127
136
|
"""The method to call the tool."""
|
{mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/bedrock/_utils/_message_param_converter.py
RENAMED
|
@@ -100,25 +100,27 @@ class BedrockMessageParamConverter(BaseMessageParamConverter):
|
|
|
100
100
|
)
|
|
101
101
|
elif "toolUse" in block:
|
|
102
102
|
tool_use = block["toolUse"]
|
|
103
|
+
|
|
104
|
+
tool_use_part = ToolCallPart(
|
|
105
|
+
type="tool_call",
|
|
106
|
+
name=tool_use["name"],
|
|
107
|
+
id=tool_use["toolUseId"],
|
|
108
|
+
args=tool_use["input"],
|
|
109
|
+
)
|
|
103
110
|
if converted_content:
|
|
111
|
+
converted_content.append(tool_use_part)
|
|
104
112
|
converted.append(
|
|
105
113
|
BaseMessageParam(
|
|
106
114
|
role=message_param["role"], content=converted_content
|
|
107
115
|
)
|
|
108
116
|
)
|
|
109
117
|
converted_content = []
|
|
118
|
+
continue
|
|
110
119
|
|
|
111
120
|
converted.append(
|
|
112
121
|
BaseMessageParam(
|
|
113
122
|
role="assistant",
|
|
114
|
-
content=[
|
|
115
|
-
ToolCallPart(
|
|
116
|
-
type="tool_call",
|
|
117
|
-
name=tool_use["name"],
|
|
118
|
-
id=tool_use["toolUseId"],
|
|
119
|
-
args=tool_use["input"],
|
|
120
|
-
)
|
|
121
|
-
],
|
|
123
|
+
content=[tool_use_part],
|
|
122
124
|
)
|
|
123
125
|
)
|
|
124
126
|
elif "toolResult" in block:
|
|
@@ -137,7 +139,6 @@ class BedrockMessageParamConverter(BaseMessageParamConverter):
|
|
|
137
139
|
ToolResultPart(
|
|
138
140
|
type="tool_result",
|
|
139
141
|
id=tool_result["toolUseId"],
|
|
140
|
-
name=tool_result["name"], # pyright: ignore [reportGeneralTypeIssues]
|
|
141
142
|
content=tool_result["content"]
|
|
142
143
|
if isinstance(tool_result["content"], str)
|
|
143
144
|
else tool_result["content"][0]["text"], # pyright: ignore [reportTypedDictNotRequiredAccess]
|
|
@@ -56,6 +56,10 @@ class BedrockTool(BaseTool):
|
|
|
56
56
|
|
|
57
57
|
tool_call: SkipJsonSchema[ToolUseBlockContentTypeDef]
|
|
58
58
|
|
|
59
|
+
@property
|
|
60
|
+
def id(self) -> str | None:
|
|
61
|
+
return self.tool_call["toolUse"]["toolUseId"]
|
|
62
|
+
|
|
59
63
|
@classmethod
|
|
60
64
|
def tool_schema(cls) -> ToolTypeDef:
|
|
61
65
|
"""Constructs a JSON Schema tool schema from the `BaseModel` schema defined.
|
{mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_convert_message_params.py
RENAMED
|
@@ -16,9 +16,13 @@ from google.genai.types import (
|
|
|
16
16
|
)
|
|
17
17
|
|
|
18
18
|
from ...base import BaseMessageParam
|
|
19
|
-
from ...base._utils import get_audio_type, get_image_type
|
|
19
|
+
from ...base._utils import get_audio_type, get_document_type, get_image_type
|
|
20
20
|
from ...base._utils._parse_content_template import _load_media
|
|
21
|
-
from ._validate_media_type import
|
|
21
|
+
from ._validate_media_type import (
|
|
22
|
+
_check_audio_media_type,
|
|
23
|
+
_check_document_media_type,
|
|
24
|
+
_check_image_media_type,
|
|
25
|
+
)
|
|
22
26
|
|
|
23
27
|
|
|
24
28
|
def _over_file_size_limit(size: int) -> bool:
|
|
@@ -154,9 +158,78 @@ async def _convert_message_params_async(
|
|
|
154
158
|
if _over_file_size_limit(total_payload_size):
|
|
155
159
|
must_upload[index] = blob_dict
|
|
156
160
|
total_payload_size -= audio_size
|
|
161
|
+
elif part.type == "document":
|
|
162
|
+
_check_document_media_type(part.media_type)
|
|
163
|
+
blob_dict = BlobDict(data=part.document, mime_type=part.media_type)
|
|
164
|
+
converted_content.append(PartDict(inline_data=blob_dict))
|
|
165
|
+
document_size = len(part.document)
|
|
166
|
+
total_payload_size += document_size
|
|
167
|
+
if _over_file_size_limit(total_payload_size):
|
|
168
|
+
must_upload[index] = blob_dict
|
|
169
|
+
total_payload_size -= document_size
|
|
170
|
+
elif part.type == "document_url":
|
|
171
|
+
if (
|
|
172
|
+
client.vertexai
|
|
173
|
+
or not part.url.startswith(("https://", "http://"))
|
|
174
|
+
or "generativelanguage.googleapis.com" in part.url
|
|
175
|
+
):
|
|
176
|
+
converted_content.append(
|
|
177
|
+
PartDict(
|
|
178
|
+
file_data=FileDataDict(
|
|
179
|
+
file_uri=part.url, mime_type=None
|
|
180
|
+
)
|
|
181
|
+
)
|
|
182
|
+
)
|
|
183
|
+
else:
|
|
184
|
+
media_type = None
|
|
185
|
+
try:
|
|
186
|
+
downloaded_document = _load_media(part.url)
|
|
187
|
+
document_types = {
|
|
188
|
+
"pdf": "application/pdf",
|
|
189
|
+
"html": "text/html",
|
|
190
|
+
"xml": "text/xml",
|
|
191
|
+
"rtf": "text/rtf",
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
try:
|
|
195
|
+
document_type_ext = get_document_type(
|
|
196
|
+
downloaded_document
|
|
197
|
+
)
|
|
198
|
+
media_type = document_types.get(document_type_ext)
|
|
199
|
+
except ValueError:
|
|
200
|
+
try:
|
|
201
|
+
downloaded_document.decode("utf-8")
|
|
202
|
+
media_type = "text/plain"
|
|
203
|
+
except UnicodeDecodeError:
|
|
204
|
+
pass
|
|
205
|
+
|
|
206
|
+
if media_type is None:
|
|
207
|
+
raise ValueError(
|
|
208
|
+
f"Unsupported document format detected for URL: {part.url}. "
|
|
209
|
+
"Google API only supports the following document formats: "
|
|
210
|
+
"PDF, JavaScript, Python, TXT, HTML, CSS, Markdown, CSV, XML and RTF. "
|
|
211
|
+
"Please provide a document in one of these supported formats."
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
_check_document_media_type(media_type)
|
|
215
|
+
blob_dict = BlobDict(
|
|
216
|
+
data=downloaded_document, mime_type=media_type
|
|
217
|
+
)
|
|
218
|
+
converted_content.append(PartDict(inline_data=blob_dict))
|
|
219
|
+
document_size = len(downloaded_document)
|
|
220
|
+
total_payload_size += document_size
|
|
221
|
+
if _over_file_size_limit(total_payload_size):
|
|
222
|
+
must_upload[index] = blob_dict
|
|
223
|
+
total_payload_size -= document_size
|
|
224
|
+
except ValueError as e:
|
|
225
|
+
raise ValueError(
|
|
226
|
+
f"Failed to process document from URL: {part.url}. "
|
|
227
|
+
f"Error details: {str(e)}. "
|
|
228
|
+
"Please ensure the URL is accessible and points to a supported document format."
|
|
229
|
+
)
|
|
157
230
|
else:
|
|
158
231
|
raise ValueError(
|
|
159
|
-
"Google currently only supports text, tool_call, tool_result, image, and
|
|
232
|
+
"Google currently only supports text, tool_call, tool_result, image, audio, and document parts. "
|
|
160
233
|
f"Part provided: {part.type}"
|
|
161
234
|
)
|
|
162
235
|
|
{mirascope-1.23.4 → mirascope-1.24.1}/mirascope/core/google/_utils/_message_param_converter.py
RENAMED
|
@@ -8,7 +8,7 @@ from google.genai.types import (
|
|
|
8
8
|
)
|
|
9
9
|
|
|
10
10
|
from mirascope.core import BaseMessageParam
|
|
11
|
-
from mirascope.core.base import DocumentPart, ImagePart, TextPart
|
|
11
|
+
from mirascope.core.base import DocumentPart, DocumentURLPart, ImagePart, TextPart
|
|
12
12
|
from mirascope.core.base._utils._base_message_param_converter import (
|
|
13
13
|
BaseMessageParamConverter,
|
|
14
14
|
)
|
|
@@ -21,7 +21,11 @@ from mirascope.core.base.message_param import (
|
|
|
21
21
|
)
|
|
22
22
|
from mirascope.core.google._utils import convert_message_params
|
|
23
23
|
|
|
24
|
-
from ._validate_media_type import
|
|
24
|
+
from ._validate_media_type import (
|
|
25
|
+
_check_audio_media_type,
|
|
26
|
+
_check_document_media_type,
|
|
27
|
+
_check_image_media_type,
|
|
28
|
+
)
|
|
25
29
|
|
|
26
30
|
|
|
27
31
|
class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
@@ -78,7 +82,21 @@ class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
|
78
82
|
audio=data,
|
|
79
83
|
)
|
|
80
84
|
)
|
|
81
|
-
elif mime_type
|
|
85
|
+
elif mime_type in [
|
|
86
|
+
"application/pdf",
|
|
87
|
+
"application/x-javascript",
|
|
88
|
+
"text/javascript",
|
|
89
|
+
"application/x-python",
|
|
90
|
+
"text/x-python",
|
|
91
|
+
"text/plain",
|
|
92
|
+
"text/html",
|
|
93
|
+
"text/css",
|
|
94
|
+
"text/csv",
|
|
95
|
+
"text/xml",
|
|
96
|
+
"text/rtf",
|
|
97
|
+
"text/md",
|
|
98
|
+
]:
|
|
99
|
+
_check_document_media_type(mime_type)
|
|
82
100
|
content_list.append(
|
|
83
101
|
DocumentPart(
|
|
84
102
|
type="document", media_type=mime_type, document=data
|
|
@@ -106,6 +124,26 @@ class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
|
106
124
|
url=cast(str, part.file_data.file_uri),
|
|
107
125
|
)
|
|
108
126
|
)
|
|
127
|
+
elif mime_type in [
|
|
128
|
+
"application/pdf",
|
|
129
|
+
"application/x-javascript",
|
|
130
|
+
"text/javascript",
|
|
131
|
+
"application/x-python",
|
|
132
|
+
"text/x-python",
|
|
133
|
+
"text/plain",
|
|
134
|
+
"text/html",
|
|
135
|
+
"text/css",
|
|
136
|
+
"text/csv",
|
|
137
|
+
"text/xml",
|
|
138
|
+
"text/rtf",
|
|
139
|
+
"text/md",
|
|
140
|
+
]:
|
|
141
|
+
content_list.append(
|
|
142
|
+
DocumentURLPart(
|
|
143
|
+
type="document_url",
|
|
144
|
+
url=cast(str, part.file_data.file_uri),
|
|
145
|
+
)
|
|
146
|
+
)
|
|
109
147
|
else:
|
|
110
148
|
# Since `FileDataDict` handles any file data, we use
|
|
111
149
|
# `ImageURLPart` for unknown mime types
|
|
@@ -148,7 +186,7 @@ class GoogleMessageParamConverter(BaseMessageParamConverter):
|
|
|
148
186
|
)
|
|
149
187
|
else:
|
|
150
188
|
raise ValueError(
|
|
151
|
-
"Part does not contain any supported content (text, image, or document)."
|
|
189
|
+
"Part does not contain any supported content (text, image, audio, or document)."
|
|
152
190
|
)
|
|
153
191
|
|
|
154
192
|
if len(content_list) == 1 and isinstance(content_list[0], TextPart):
|
|
@@ -32,3 +32,27 @@ def _check_audio_media_type(media_type: str) -> None:
|
|
|
32
32
|
"Google currently only supports WAV, MP3, AIFF, AAC, OGG, "
|
|
33
33
|
"and FLAC audio file types."
|
|
34
34
|
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _check_document_media_type(media_type: str) -> None:
|
|
38
|
+
"""Raises a `ValueError` if the document media type is not supported."""
|
|
39
|
+
|
|
40
|
+
if media_type not in [
|
|
41
|
+
"application/pdf",
|
|
42
|
+
"application/x-javascript",
|
|
43
|
+
"text/javascript",
|
|
44
|
+
"application/x-python",
|
|
45
|
+
"text/x-python",
|
|
46
|
+
"text/plain",
|
|
47
|
+
"text/html",
|
|
48
|
+
"text/css",
|
|
49
|
+
"text/csv",
|
|
50
|
+
"text/xml",
|
|
51
|
+
"text/rtf",
|
|
52
|
+
"text/md",
|
|
53
|
+
]:
|
|
54
|
+
raise ValueError(
|
|
55
|
+
f"Unsupported document media type: {media_type}. "
|
|
56
|
+
"Google currently only supports PDF, JavaScript, Python, TXT, HTML, CSS, "
|
|
57
|
+
"CSV, XML, RTF, and Markdown document types."
|
|
58
|
+
)
|
|
@@ -142,15 +142,6 @@ class CallResponse(
|
|
|
142
142
|
tools_and_outputs: The sequence of tools and their outputs from which the tool
|
|
143
143
|
message parameters should be constructed.
|
|
144
144
|
"""
|
|
145
|
-
|
|
146
|
-
def _get_tool_call_id(_tool: BaseTool) -> str | None:
|
|
147
|
-
"""Get the tool call ID."""
|
|
148
|
-
if tool_call := getattr(_tool, "tool_call", None):
|
|
149
|
-
# Expect tool_call has an id attribute.
|
|
150
|
-
# If not, we should implement a method to get the id on the provider tool
|
|
151
|
-
return getattr(tool_call, "id", None)
|
|
152
|
-
return None
|
|
153
|
-
|
|
154
145
|
return [
|
|
155
146
|
BaseMessageParam(
|
|
156
147
|
role="tool",
|
|
@@ -159,7 +150,7 @@ class CallResponse(
|
|
|
159
150
|
type="tool_result",
|
|
160
151
|
name=tool._name(),
|
|
161
152
|
content=output,
|
|
162
|
-
id=
|
|
153
|
+
id=tool.id,
|
|
163
154
|
)
|
|
164
155
|
],
|
|
165
156
|
)
|
{mirascope-1.23.4 → mirascope-1.24.1}/tests/core/bedrock/_utils/test_message_param_converter.py
RENAMED
|
@@ -163,7 +163,6 @@ def test_tool_result():
|
|
|
163
163
|
"toolResult": {
|
|
164
164
|
"toolUseId": "tool_123",
|
|
165
165
|
"content": [{"text": "result"}],
|
|
166
|
-
"name": "tool_123",
|
|
167
166
|
}
|
|
168
167
|
}
|
|
169
168
|
],
|
|
@@ -175,7 +174,6 @@ def test_tool_result():
|
|
|
175
174
|
content=[
|
|
176
175
|
ToolResultPart(
|
|
177
176
|
type="tool_result",
|
|
178
|
-
name="tool_123",
|
|
179
177
|
content="result",
|
|
180
178
|
id="tool_123",
|
|
181
179
|
is_error=False,
|
|
@@ -187,7 +185,7 @@ def test_tool_result():
|
|
|
187
185
|
|
|
188
186
|
def test_tool_use_with_text():
|
|
189
187
|
message_param = {
|
|
190
|
-
"role": "
|
|
188
|
+
"role": "assistant",
|
|
191
189
|
"content": [
|
|
192
190
|
{"text": "Hello"},
|
|
193
191
|
{
|
|
@@ -201,16 +199,16 @@ def test_tool_use_with_text():
|
|
|
201
199
|
}
|
|
202
200
|
results = BedrockMessageParamConverter.from_provider([message_param]) # pyright: ignore [reportArgumentType]
|
|
203
201
|
assert results == [
|
|
204
|
-
BaseMessageParam(role="user", content=[TextPart(type="text", text="Hello")]),
|
|
205
202
|
BaseMessageParam(
|
|
206
203
|
role="assistant",
|
|
207
204
|
content=[
|
|
205
|
+
TextPart(type="text", text="Hello"),
|
|
208
206
|
ToolCallPart(
|
|
209
207
|
type="tool_call",
|
|
210
208
|
name="tool_name",
|
|
211
209
|
args={"arg": "val"},
|
|
212
210
|
id="tool_id",
|
|
213
|
-
)
|
|
211
|
+
),
|
|
214
212
|
],
|
|
215
213
|
),
|
|
216
214
|
]
|
|
@@ -225,7 +223,6 @@ def test_tool_result_with_text():
|
|
|
225
223
|
"toolResult": {
|
|
226
224
|
"toolUseId": "tool_id",
|
|
227
225
|
"content": [{"text": "result"}],
|
|
228
|
-
"name": "tool_name",
|
|
229
226
|
}
|
|
230
227
|
},
|
|
231
228
|
],
|
|
@@ -238,7 +235,6 @@ def test_tool_result_with_text():
|
|
|
238
235
|
content=[
|
|
239
236
|
ToolResultPart(
|
|
240
237
|
type="tool_result",
|
|
241
|
-
name="tool_name",
|
|
242
238
|
content="result",
|
|
243
239
|
id="tool_id",
|
|
244
240
|
is_error=False,
|
|
@@ -40,6 +40,7 @@ def test_bedrock_tool() -> None:
|
|
|
40
40
|
assert tool.title == "The Name of the Wind"
|
|
41
41
|
assert tool.author == "Patrick Rothfuss"
|
|
42
42
|
assert tool.call() == "The Name of the Wind by Patrick Rothfuss"
|
|
43
|
+
assert tool.id == "id"
|
|
43
44
|
|
|
44
45
|
expected_schema = ToolTypeDef(
|
|
45
46
|
toolSpec=ToolSpecificationTypeDef(
|