mirascope 2.0.0a0__tar.gz → 2.0.0a2__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 (576) hide show
  1. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/PKG-INFO +11 -1
  2. mirascope-2.0.0a2/examples/intro/context/decorator.py +40 -0
  3. mirascope-2.0.0a2/examples/intro/context/model.py +41 -0
  4. mirascope-2.0.0a2/examples/intro/decorator/async.py +17 -0
  5. mirascope-2.0.0a2/examples/intro/decorator/async_stream.py +18 -0
  6. mirascope-2.0.0a2/examples/intro/decorator/stream.py +15 -0
  7. mirascope-2.0.0a2/examples/intro/decorator/sync.py +14 -0
  8. mirascope-2.0.0a2/examples/intro/format/decorator.py +22 -0
  9. mirascope-2.0.0a2/examples/intro/format/model.py +26 -0
  10. mirascope-2.0.0a2/examples/intro/model/async.py +18 -0
  11. mirascope-2.0.0a2/examples/intro/model/async_stream.py +19 -0
  12. mirascope-2.0.0a2/examples/intro/model/stream.py +16 -0
  13. mirascope-2.0.0a2/examples/intro/model/sync.py +15 -0
  14. mirascope-2.0.0a2/examples/intro/override/decorator.py +16 -0
  15. mirascope-2.0.0a2/examples/intro/override/model.py +18 -0
  16. mirascope-2.0.0a2/examples/intro/parameters/decorator.py +18 -0
  17. mirascope-2.0.0a2/examples/intro/parameters/model.py +19 -0
  18. mirascope-2.0.0a2/examples/intro/resume/decorator.py +17 -0
  19. mirascope-2.0.0a2/examples/intro/resume/model.py +18 -0
  20. mirascope-2.0.0a2/examples/intro/system_messages/decorator.py +18 -0
  21. mirascope-2.0.0a2/examples/intro/system_messages/model.py +20 -0
  22. mirascope-2.0.0a2/examples/intro/tool_call/decorator.py +36 -0
  23. mirascope-2.0.0a2/examples/intro/tool_call/model.py +36 -0
  24. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/lint-staged.ts +1 -1
  25. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/__init__.py +5 -1
  26. mirascope-2.0.0a2/mirascope/llm/clients/_missing_import_stubs.py +47 -0
  27. mirascope-2.0.0a2/mirascope/llm/clients/anthropic/__init__.py +25 -0
  28. mirascope-2.0.0a2/mirascope/llm/clients/google/__init__.py +20 -0
  29. mirascope-2.0.0a2/mirascope/llm/clients/openai/completions/__init__.py +28 -0
  30. mirascope-2.0.0a2/mirascope/llm/clients/openai/responses/__init__.py +26 -0
  31. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/decorator.py +10 -10
  32. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/tools.py +2 -2
  33. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/pyproject.toml +11 -4
  34. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override/openai_completions_gpt_4o.yaml +171 -0
  35. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override/openai_responses_gpt_4o.yaml +170 -0
  36. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o.yaml +180 -0
  37. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o.yaml +181 -0
  38. mirascope-2.0.0a2/tests/e2e/input/snapshots/test_resume_with_override/openai_completions_gpt_4o_snapshots.py +62 -0
  39. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override/openai_responses_gpt_4o_snapshots.py +22 -11
  40. mirascope-2.0.0a2/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o_snapshots.py +125 -0
  41. mirascope-2.0.0a2/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o_snapshots.py +136 -0
  42. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_resume_with_override.py +3 -24
  43. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_resume_with_override_thinking_and_tools.py +3 -3
  44. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/tool.py +2 -2
  45. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/uv.lock +1149 -1136
  46. mirascope-2.0.0a0/mirascope/llm/clients/anthropic/__init__.py +0 -11
  47. mirascope-2.0.0a0/mirascope/llm/clients/google/__init__.py +0 -6
  48. mirascope-2.0.0a0/mirascope/llm/clients/openai/completions/__init__.py +0 -9
  49. mirascope-2.0.0a0/mirascope/llm/clients/openai/responses/__init__.py +0 -9
  50. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override/openai_completions_gpt_4o.yaml +0 -213
  51. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override/openai_responses_gpt_4o.yaml +0 -210
  52. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override_context/anthropic_claude_sonnet_4_0.yaml +0 -170
  53. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override_context/google_gemini_2_5_flash.yaml +0 -168
  54. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override_context/openai_completions_gpt_4o.yaml +0 -214
  55. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override_context/openai_responses_gpt_4o.yaml +0 -211
  56. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o.yaml +0 -231
  57. mirascope-2.0.0a0/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o.yaml +0 -228
  58. mirascope-2.0.0a0/tests/e2e/input/snapshots/test_resume_with_override/openai_completions_gpt_4o_snapshots.py +0 -51
  59. mirascope-2.0.0a0/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o_snapshots.py +0 -106
  60. mirascope-2.0.0a0/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o_snapshots.py +0 -111
  61. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/.coveragerc +0 -0
  62. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/.env.example +0 -0
  63. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/.gitignore +0 -0
  64. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/LICENSE +0 -0
  65. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/README.md +0 -0
  66. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/misc/anthropic_redacted_thinking.py +0 -0
  67. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/misc/openai_responses_reasoning.py +0 -0
  68. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed.py +0 -0
  69. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async.py +0 -0
  70. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_context.py +0 -0
  71. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_context_structured.py +0 -0
  72. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream.py +0 -0
  73. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_context.py +0 -0
  74. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_context_structured.py +0 -0
  75. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_structured.py +0 -0
  76. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools.py +0 -0
  77. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools_context.py +0 -0
  78. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools_context_structured.py +0 -0
  79. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools_structured.py +0 -0
  80. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_structured.py +0 -0
  81. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools.py +0 -0
  82. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools_context.py +0 -0
  83. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools_context_structured.py +0 -0
  84. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools_structured.py +0 -0
  85. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_context.py +0 -0
  86. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_context_structured.py +0 -0
  87. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream.py +0 -0
  88. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_context.py +0 -0
  89. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_context_structured.py +0 -0
  90. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_structured.py +0 -0
  91. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools.py +0 -0
  92. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools_context.py +0 -0
  93. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools_context_structured.py +0 -0
  94. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools_structured.py +0 -0
  95. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_structured.py +0 -0
  96. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_tools.py +0 -0
  97. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_tools_context.py +0 -0
  98. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_tools_context_structured.py +0 -0
  99. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/examples/sazed/sazed_tools_structured.py +0 -0
  100. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/__init__.py +0 -0
  101. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/graphs/__init__.py +0 -0
  102. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/graphs/finite_state_machine.py +0 -0
  103. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/agents/__init__.py +0 -0
  104. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/agents/agent.py +0 -0
  105. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/agents/agent_template.py +0 -0
  106. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/agents/decorator.py +0 -0
  107. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/calls/__init__.py +0 -0
  108. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/calls/base_call.py +0 -0
  109. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/calls/calls.py +0 -0
  110. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/calls/decorator.py +0 -0
  111. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/__init__.py +0 -0
  112. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/_utils/__init__.py +0 -0
  113. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/_utils/decode.py +0 -0
  114. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/_utils/encode.py +0 -0
  115. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/clients.py +0 -0
  116. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/model_ids.py +0 -0
  117. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/base/__init__.py +0 -0
  118. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/base/_utils.py +0 -0
  119. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/base/client.py +0 -0
  120. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/base/kwargs.py +0 -0
  121. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/base/params.py +0 -0
  122. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/google/_utils/__init__.py +0 -0
  123. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/google/_utils/decode.py +0 -0
  124. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/google/_utils/encode.py +0 -0
  125. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/google/clients.py +0 -0
  126. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/google/message.py +0 -0
  127. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/google/model_ids.py +0 -0
  128. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/__init__.py +0 -0
  129. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/__init__.py +0 -0
  130. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/decode.py +0 -0
  131. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/encode.py +0 -0
  132. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/model_features.py +0 -0
  133. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/clients.py +0 -0
  134. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/model_ids.py +0 -0
  135. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/__init__.py +0 -0
  136. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/decode.py +0 -0
  137. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/encode.py +0 -0
  138. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/model_features.py +0 -0
  139. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/clients.py +0 -0
  140. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/model_ids.py +0 -0
  141. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/shared/__init__.py +0 -0
  142. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/shared/_utils.py +0 -0
  143. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/clients/providers.py +0 -0
  144. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/__init__.py +0 -0
  145. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/audio.py +0 -0
  146. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/document.py +0 -0
  147. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/image.py +0 -0
  148. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/text.py +0 -0
  149. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/thought.py +0 -0
  150. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/tool_call.py +0 -0
  151. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/content/tool_output.py +0 -0
  152. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/context/__init__.py +0 -0
  153. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/context/_utils.py +0 -0
  154. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/context/context.py +0 -0
  155. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/exceptions.py +0 -0
  156. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/formatting/__init__.py +0 -0
  157. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/formatting/_utils.py +0 -0
  158. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/formatting/format.py +0 -0
  159. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/formatting/from_call_args.py +0 -0
  160. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/formatting/partial.py +0 -0
  161. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/formatting/types.py +0 -0
  162. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/mcp/__init__.py +0 -0
  163. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/mcp/client.py +0 -0
  164. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/messages/__init__.py +0 -0
  165. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/messages/message.py +0 -0
  166. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/models/__init__.py +0 -0
  167. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/models/models.py +0 -0
  168. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/prompts/__init__.py +0 -0
  169. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/prompts/_utils.py +0 -0
  170. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/prompts/decorator.py +0 -0
  171. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/prompts/protocols.py +0 -0
  172. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/__init__.py +0 -0
  173. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/_utils.py +0 -0
  174. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/base_response.py +0 -0
  175. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/base_stream_response.py +0 -0
  176. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/finish_reason.py +0 -0
  177. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/response.py +0 -0
  178. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/root_response.py +0 -0
  179. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/stream_response.py +0 -0
  180. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/responses/streams.py +0 -0
  181. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/__init__.py +0 -0
  182. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/_utils.py +0 -0
  183. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/protocols.py +0 -0
  184. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/tool_schema.py +0 -0
  185. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/tools/toolkit.py +0 -0
  186. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/types/__init__.py +0 -0
  187. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/types/dataclass.py +0 -0
  188. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/types/jsonable.py +0 -0
  189. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/mirascope/llm/types/type_vars.py +0 -0
  190. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/scripts/example_generator.ts +0 -0
  191. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/scripts/regenerate_examples.ts +0 -0
  192. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/scripts/update_openai_completions_model_features.py +0 -0
  193. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/scripts/update_openai_responses_model_features.py +0 -0
  194. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/conftest.py +0 -0
  195. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/README.md +0 -0
  196. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/__init__.py +0 -0
  197. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/assets/audio/tagline.mp3 +0 -0
  198. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/assets/images/wikipedia.png +0 -0
  199. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/conftest.py +0 -0
  200. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/README.md +0 -0
  201. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_audio/google_gemini_2_5_flash.yaml +0 -0
  202. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_audio/openai_completions_gpt_audio.yaml +0 -0
  203. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/anthropic_claude_sonnet_4_0.yaml +0 -0
  204. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/google_gemini_2_5_flash.yaml +0 -0
  205. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/openai_completions_gpt_4o.yaml +0 -0
  206. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/openai_responses_gpt_4o.yaml +0 -0
  207. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_url/anthropic_claude_sonnet_4_0.yaml +0 -0
  208. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_url/openai_completions_gpt_4o.yaml +0 -0
  209. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_url/openai_responses_gpt_4o.yaml +0 -0
  210. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/anthropic_claude_sonnet_4_0.yaml +0 -0
  211. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/google_gemini_2_5_flash.yaml +0 -0
  212. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/openai_completions_gpt_4o.yaml +0 -0
  213. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/openai_responses_gpt_4o.yaml +0 -0
  214. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/anthropic_claude_sonnet_4_0.yaml +0 -0
  215. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/google_gemini_2_5_flash.yaml +0 -0
  216. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/openai_completions_gpt_4o.yaml +0 -0
  217. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/openai_responses_gpt_4o.yaml +0 -0
  218. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override/anthropic_claude_sonnet_4_0.yaml +0 -0
  219. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override/google_gemini_2_5_flash.yaml +0 -0
  220. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/anthropic_claude_sonnet_4_0.yaml +0 -0
  221. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/google_gemini_2_5_flash.yaml +0 -0
  222. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/anthropic_claude_sonnet_4_0.yaml +0 -0
  223. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/google_gemini_2_5_flash.yaml +0 -0
  224. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/anthropic_claude_sonnet_4_0.yaml +0 -0
  225. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/google_gemini_2_5_flash.yaml +0 -0
  226. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/openai_completions_gpt_4o.yaml +0 -0
  227. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/openai_responses_gpt_4o.yaml +0 -0
  228. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/openai_completions_gpt_4o.yaml +0 -0
  229. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/openai_responses_gpt_4o.yaml +0 -0
  230. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/strict/google_gemini_2_5_flash.yaml +0 -0
  231. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/strict/openai_completions_gpt_4o.yaml +0 -0
  232. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/strict/openai_responses_gpt_4o.yaml +0 -0
  233. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/anthropic_claude_sonnet_4_0.yaml +0 -0
  234. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/google_gemini_2_5_flash.yaml +0 -0
  235. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/openai_completions_gpt_4o.yaml +0 -0
  236. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/openai_responses_gpt_4o.yaml +0 -0
  237. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/conftest.py +0 -0
  238. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  239. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/google_gemini_2_5_flash_snapshots.py +0 -0
  240. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/openai_completions_gpt_4o_snapshots.py +0 -0
  241. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/openai_completions_gpt_audio_snapshots.py +0 -0
  242. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/openai_responses_gpt_4o_snapshots.py +0 -0
  243. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  244. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/google_gemini_2_5_flash_snapshots.py +0 -0
  245. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/openai_completions_gpt_4o_snapshots.py +0 -0
  246. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/openai_responses_gpt_4o_snapshots.py +0 -0
  247. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  248. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/google_gemini_2_5_flash_snapshots.py +0 -0
  249. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/openai_completions_gpt_4o_snapshots.py +0 -0
  250. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/openai_responses_gpt_4o_snapshots.py +0 -0
  251. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  252. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/google_gemini_2_5_flash_snapshots.py +0 -0
  253. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/openai_completions_gpt_4o_snapshots.py +0 -0
  254. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/openai_responses_gpt_4o_snapshots.py +0 -0
  255. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  256. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/google_gemini_2_5_flash_snapshots.py +0 -0
  257. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/openai_completions_gpt_4o_snapshots.py +0 -0
  258. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/openai_responses_gpt_4o_snapshots.py +0 -0
  259. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  260. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override/google_gemini_2_5_flash_snapshots.py +0 -0
  261. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  262. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/google_gemini_2_5_flash_snapshots.py +0 -0
  263. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/openai_completions_gpt_4o_snapshots.py +0 -0
  264. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/openai_responses_gpt_4o_snapshots.py +0 -0
  265. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  266. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/google_gemini_2_5_flash_snapshots.py +0 -0
  267. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  268. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/google_gemini_2_5_flash_snapshots.py +0 -0
  269. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  270. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/google_gemini_2_5_flash_snapshots.py +0 -0
  271. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/openai_completions_gpt_4o_snapshots.py +0 -0
  272. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/openai_responses_gpt_4o_snapshots.py +0 -0
  273. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/openai_completions_gpt_4o_snapshots.py +0 -0
  274. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/openai_responses_gpt_4o_snapshots.py +0 -0
  275. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  276. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/google_gemini_2_5_flash_snapshots.py +0 -0
  277. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/openai_completions_gpt_4o_snapshots.py +0 -0
  278. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/openai_responses_gpt_4o_snapshots.py +0 -0
  279. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  280. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/google_gemini_2_5_flash_snapshots.py +0 -0
  281. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/openai_completions_gpt_4o_snapshots.py +0 -0
  282. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/openai_responses_gpt_4o_snapshots.py +0 -0
  283. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_audio.py +0 -0
  284. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_image.py +0 -0
  285. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_params.py +0 -0
  286. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_text_encoded_thoughts.py +0 -0
  287. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/input/test_structured_output_with_formatting_instructions.py +0 -0
  288. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/README.md +0 -0
  289. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  290. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  291. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  292. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  293. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/async.yaml +0 -0
  294. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/async_stream.yaml +0 -0
  295. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/stream.yaml +0 -0
  296. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/sync.yaml +0 -0
  297. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/async.yaml +0 -0
  298. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/async_stream.yaml +0 -0
  299. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/stream.yaml +0 -0
  300. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/sync.yaml +0 -0
  301. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/async.yaml +0 -0
  302. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/async_stream.yaml +0 -0
  303. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/stream.yaml +0 -0
  304. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/sync.yaml +0 -0
  305. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  306. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  307. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  308. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  309. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/async.yaml +0 -0
  310. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/async_stream.yaml +0 -0
  311. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/stream.yaml +0 -0
  312. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/sync.yaml +0 -0
  313. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/async.yaml +0 -0
  314. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/async_stream.yaml +0 -0
  315. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/stream.yaml +0 -0
  316. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/sync.yaml +0 -0
  317. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  318. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  319. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  320. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  321. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/async.yaml +0 -0
  322. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/async_stream.yaml +0 -0
  323. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/stream.yaml +0 -0
  324. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/sync.yaml +0 -0
  325. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/async.yaml +0 -0
  326. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/async_stream.yaml +0 -0
  327. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/stream.yaml +0 -0
  328. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/sync.yaml +0 -0
  329. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/async.yaml +0 -0
  330. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/async_stream.yaml +0 -0
  331. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/stream.yaml +0 -0
  332. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/sync.yaml +0 -0
  333. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  334. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  335. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  336. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  337. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/async.yaml +0 -0
  338. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/async_stream.yaml +0 -0
  339. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/stream.yaml +0 -0
  340. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/sync.yaml +0 -0
  341. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/async.yaml +0 -0
  342. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/async_stream.yaml +0 -0
  343. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/stream.yaml +0 -0
  344. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/sync.yaml +0 -0
  345. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/async.yaml +0 -0
  346. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/async_stream.yaml +0 -0
  347. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/stream.yaml +0 -0
  348. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/sync.yaml +0 -0
  349. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  350. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  351. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  352. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  353. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/async.yaml +0 -0
  354. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/async_stream.yaml +0 -0
  355. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/stream.yaml +0 -0
  356. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/sync.yaml +0 -0
  357. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/async.yaml +0 -0
  358. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/async_stream.yaml +0 -0
  359. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/stream.yaml +0 -0
  360. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/sync.yaml +0 -0
  361. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/async.yaml +0 -0
  362. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/async_stream.yaml +0 -0
  363. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/stream.yaml +0 -0
  364. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/sync.yaml +0 -0
  365. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  366. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  367. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  368. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  369. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/async.yaml +0 -0
  370. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/async_stream.yaml +0 -0
  371. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/stream.yaml +0 -0
  372. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/sync.yaml +0 -0
  373. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  374. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  375. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  376. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  377. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/async.yaml +0 -0
  378. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/async_stream.yaml +0 -0
  379. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/stream.yaml +0 -0
  380. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/sync.yaml +0 -0
  381. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/async.yaml +0 -0
  382. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/async_stream.yaml +0 -0
  383. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/stream.yaml +0 -0
  384. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/sync.yaml +0 -0
  385. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/async.yaml +0 -0
  386. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/async_stream.yaml +0 -0
  387. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/stream.yaml +0 -0
  388. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/sync.yaml +0 -0
  389. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/async.yaml +0 -0
  390. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/async_stream.yaml +0 -0
  391. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/stream.yaml +0 -0
  392. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/sync.yaml +0 -0
  393. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/async.yaml +0 -0
  394. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/async_stream.yaml +0 -0
  395. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/stream.yaml +0 -0
  396. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/sync.yaml +0 -0
  397. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/async.yaml +0 -0
  398. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/async_stream.yaml +0 -0
  399. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/stream.yaml +0 -0
  400. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/sync.yaml +0 -0
  401. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/async.yaml +0 -0
  402. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/async_stream.yaml +0 -0
  403. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/stream.yaml +0 -0
  404. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/sync.yaml +0 -0
  405. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/async.yaml +0 -0
  406. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/async_stream.yaml +0 -0
  407. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/stream.yaml +0 -0
  408. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/sync.yaml +0 -0
  409. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  410. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  411. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  412. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  413. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/async.yaml +0 -0
  414. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/async_stream.yaml +0 -0
  415. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/stream.yaml +0 -0
  416. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/sync.yaml +0 -0
  417. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/async.yaml +0 -0
  418. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/async_stream.yaml +0 -0
  419. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/stream.yaml +0 -0
  420. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/sync.yaml +0 -0
  421. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/async.yaml +0 -0
  422. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/async_stream.yaml +0 -0
  423. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/stream.yaml +0 -0
  424. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/sync.yaml +0 -0
  425. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  426. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  427. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  428. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  429. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/async.yaml +0 -0
  430. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/async_stream.yaml +0 -0
  431. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/stream.yaml +0 -0
  432. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/sync.yaml +0 -0
  433. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  434. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  435. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  436. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  437. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/async.yaml +0 -0
  438. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/async_stream.yaml +0 -0
  439. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/stream.yaml +0 -0
  440. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/sync.yaml +0 -0
  441. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/async.yaml +0 -0
  442. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/async_stream.yaml +0 -0
  443. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/stream.yaml +0 -0
  444. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/sync.yaml +0 -0
  445. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/async.yaml +0 -0
  446. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/async_stream.yaml +0 -0
  447. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/stream.yaml +0 -0
  448. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/sync.yaml +0 -0
  449. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/async.yaml +0 -0
  450. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/async_stream.yaml +0 -0
  451. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/stream.yaml +0 -0
  452. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/sync.yaml +0 -0
  453. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/async.yaml +0 -0
  454. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/async_stream.yaml +0 -0
  455. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/stream.yaml +0 -0
  456. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/sync.yaml +0 -0
  457. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/async.yaml +0 -0
  458. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/async_stream.yaml +0 -0
  459. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/stream.yaml +0 -0
  460. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/sync.yaml +0 -0
  461. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  462. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  463. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  464. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  465. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/async.yaml +0 -0
  466. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/async_stream.yaml +0 -0
  467. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/stream.yaml +0 -0
  468. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/sync.yaml +0 -0
  469. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/async.yaml +0 -0
  470. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/async_stream.yaml +0 -0
  471. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/stream.yaml +0 -0
  472. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/sync.yaml +0 -0
  473. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/async.yaml +0 -0
  474. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/async_stream.yaml +0 -0
  475. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/stream.yaml +0 -0
  476. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/sync.yaml +0 -0
  477. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/conftest.py +0 -0
  478. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  479. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/google_gemini_2_5_flash_snapshots.py +0 -0
  480. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/openai_completions_gpt_4o_snapshots.py +0 -0
  481. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/openai_responses_gpt_4o_snapshots.py +0 -0
  482. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_thinking_true/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  483. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_thinking_true/google_gemini_2_5_flash_snapshots.py +0 -0
  484. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_thinking_true/openai_responses_gpt_5_snapshots.py +0 -0
  485. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  486. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/google_gemini_2_5_flash_snapshots.py +0 -0
  487. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/openai_completions_gpt_4o_snapshots.py +0 -0
  488. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/openai_responses_gpt_4o_snapshots.py +0 -0
  489. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  490. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/google_gemini_2_5_flash_snapshots.py +0 -0
  491. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/openai_completions_gpt_4o_snapshots.py +0 -0
  492. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/openai_responses_gpt_4o_snapshots.py +0 -0
  493. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  494. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/google_gemini_2_5_flash_snapshots.py +0 -0
  495. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/openai_completions_gpt_4o_snapshots.py +0 -0
  496. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/openai_responses_gpt_4o_snapshots.py +0 -0
  497. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  498. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/google_gemini_2_5_flash_snapshots.py +0 -0
  499. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  500. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/google_gemini_2_5_flash_snapshots.py +0 -0
  501. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/openai_completions_gpt_4o_snapshots.py +0 -0
  502. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/openai_responses_gpt_4o_snapshots.py +0 -0
  503. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/openai_completions_gpt_4o_snapshots.py +0 -0
  504. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/openai_responses_gpt_4o_snapshots.py +0 -0
  505. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  506. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/google_gemini_2_5_flash_snapshots.py +0 -0
  507. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/openai_completions_gpt_4o_snapshots.py +0 -0
  508. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/openai_responses_gpt_4o_snapshots.py +0 -0
  509. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  510. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/google_gemini_2_5_flash_snapshots.py +0 -0
  511. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/openai_completions_gpt_4o_snapshots.py +0 -0
  512. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/openai_responses_gpt_4o_snapshots.py +0 -0
  513. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  514. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/google_gemini_2_5_flash_snapshots.py +0 -0
  515. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  516. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/google_gemini_2_5_flash_snapshots.py +0 -0
  517. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/openai_completions_gpt_4o_snapshots.py +0 -0
  518. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/openai_responses_gpt_4o_snapshots.py +0 -0
  519. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/openai_completions_gpt_4o_snapshots.py +0 -0
  520. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/openai_responses_gpt_4o_snapshots.py +0 -0
  521. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  522. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/google_gemini_2_5_flash_snapshots.py +0 -0
  523. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/openai_completions_gpt_4o_snapshots.py +0 -0
  524. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/openai_responses_gpt_4o_snapshots.py +0 -0
  525. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  526. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/google_gemini_2_5_flash_snapshots.py +0 -0
  527. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/openai_completions_gpt_4o_snapshots.py +0 -0
  528. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/openai_responses_gpt_4o_snapshots.py +0 -0
  529. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_call.py +0 -0
  530. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_call_with_thinking_true.py +0 -0
  531. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_call_with_tools.py +0 -0
  532. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_max_tokens.py +0 -0
  533. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_refusal.py +0 -0
  534. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_structured_output.py +0 -0
  535. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/e2e/output/test_structured_output_with_tools.py +0 -0
  536. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/__init__.py +0 -0
  537. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/calls/cassettes/TestCall.test_call_decorator_e2e_model_override.yaml +0 -0
  538. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/calls/cassettes/TestContextCall.test_context_call_decorator_e2e_model_override.yaml +0 -0
  539. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/calls/test_decorator.py +0 -0
  540. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/__init__.py +0 -0
  541. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/anthropic/__init__.py +0 -0
  542. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/anthropic/test_client.py +0 -0
  543. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/base/__init__.py +0 -0
  544. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/base/test_params.py +0 -0
  545. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/base/test_utils.py +0 -0
  546. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/google/__init__.py +0 -0
  547. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/google/test_client.py +0 -0
  548. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/openai/__init__.py +0 -0
  549. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/openai/test_completions_client.py +0 -0
  550. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/openai/test_responses_client.py +0 -0
  551. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/clients/test_providers.py +0 -0
  552. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/content/test_audio_content.py +0 -0
  553. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/content/test_image_content.py +0 -0
  554. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/context/test_context.py +0 -0
  555. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/formatting/__init__.py +0 -0
  556. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/formatting/test_format.py +0 -0
  557. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/messages/test_messages.py +0 -0
  558. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/models/test_model.py +0 -0
  559. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/prompts/__init__.py +0 -0
  560. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/prompts/test_decorator.py +0 -0
  561. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/responses/__init__.py +0 -0
  562. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/responses/test_response.py +0 -0
  563. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/responses/test_stream_response.py +0 -0
  564. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/responses/test_utils.py +0 -0
  565. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/tools/__init__.py +0 -0
  566. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/tools/test_decorator.py +0 -0
  567. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/tools/test_tool_schema.py +0 -0
  568. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/llm/tools/test_toolkit.py +0 -0
  569. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/test_imports.py +0 -0
  570. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/tests/utils.py +0 -0
  571. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/agent.py +0 -0
  572. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/call.py +0 -0
  573. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/context.py +0 -0
  574. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/format.py +0 -0
  575. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/streams.py +0 -0
  576. {mirascope-2.0.0a0 → mirascope-2.0.0a2}/typechecking/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mirascope
3
- Version: 2.0.0a0
3
+ Version: 2.0.0a2
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/docs/mirascope/v2
@@ -40,13 +40,23 @@ Classifier: Programming Language :: Python :: 3.10
40
40
  Classifier: Programming Language :: Python :: 3.11
41
41
  Classifier: Programming Language :: Python :: 3.12
42
42
  Classifier: Programming Language :: Python :: 3.13
43
+ Classifier: Programming Language :: Python :: 3.14
43
44
  Classifier: Topic :: File Formats :: JSON
44
45
  Classifier: Topic :: File Formats :: JSON :: JSON Schema
45
46
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
46
47
  Classifier: Topic :: Software Development :: Libraries
47
48
  Requires-Python: >=3.10
48
49
  Requires-Dist: docstring-parser>=0.17.0
50
+ Requires-Dist: httpx>=0.27.0
51
+ Requires-Dist: pydantic>=2.0.0
49
52
  Requires-Dist: typing-extensions>=4.10.0
53
+ Provides-Extra: all
54
+ Requires-Dist: anthropic<1.0,>=0.72.0; extra == 'all'
55
+ Requires-Dist: google-genai<2,>=1.48.0; extra == 'all'
56
+ Requires-Dist: mcp<2,>=1.0.0; extra == 'all'
57
+ Requires-Dist: openai<3,>=2.7.1; extra == 'all'
58
+ Requires-Dist: pillow<11,>=10.4.0; extra == 'all'
59
+ Requires-Dist: proto-plus>=1.24.0; extra == 'all'
50
60
  Provides-Extra: anthropic
51
61
  Requires-Dist: anthropic<1.0,>=0.72.0; extra == 'anthropic'
52
62
  Provides-Extra: google
@@ -0,0 +1,40 @@
1
+ from mirascope import llm
2
+
3
+
4
+ class Library:
5
+ available_books: list[str]
6
+ detailed_book_info: dict[str, str]
7
+
8
+
9
+ @llm.tool()
10
+ # [!code highlight:2]
11
+ def get_book_info(ctx: llm.Context[Library], book: str) -> str:
12
+ return ctx.deps.detailed_book_info.get(book, "Book not found")
13
+
14
+
15
+ @llm.call(provider="openai", model_id="gpt-5", tools=[get_book_info])
16
+ # [!code highlight:2]
17
+ def librarian(ctx: llm.Context[Library], query: str):
18
+ book_list = "\n".join(ctx.deps.available_books)
19
+ return [
20
+ llm.messages.system(
21
+ f"You are a librarian, with access to these books: ${book_list}"
22
+ ),
23
+ query,
24
+ ]
25
+
26
+
27
+ def main():
28
+ library = Library()
29
+ query = "Please recommend a mind-bending book from the library."
30
+ ctx = llm.Context(deps=library) # [!code highlight]
31
+ response: llm.ContextResponse[Library] = librarian(ctx, query) # [!code highlight]
32
+
33
+ while response.tool_calls:
34
+ tool_outputs = response.execute_tools(ctx) # [!code highlight]
35
+ response = response.resume(ctx, tool_outputs) # [!code highlight]
36
+
37
+ print(response.pretty())
38
+
39
+
40
+ main()
@@ -0,0 +1,41 @@
1
+ from mirascope import llm
2
+
3
+
4
+ class Library:
5
+ available_books: list[str]
6
+ detailed_book_info: dict[str, str]
7
+
8
+
9
+ @llm.tool()
10
+ # [!code highlight:2]
11
+ def get_book_info(ctx: llm.Context[Library], book: str) -> str:
12
+ return ctx.deps.detailed_book_info.get(book, "Book not found")
13
+
14
+
15
+ # [!code highlight:2]
16
+ def librarian(ctx: llm.Context[Library], query: str):
17
+ model = llm.use_model(provider="openai", model_id="gpt-5")
18
+ book_list = "\n".join(ctx.deps.available_books)
19
+ messages = [
20
+ llm.messages.system(
21
+ f"You are a librarian, with access to these books: ${book_list}"
22
+ ),
23
+ query,
24
+ ]
25
+ # [!code highlight:2]
26
+ return model.context_call(ctx=ctx, messages=messages, tools=[get_book_info])
27
+
28
+
29
+ def main():
30
+ query = "Please recommend a mind-bending book from the library."
31
+ ctx = llm.Context(deps=Library()) # [!code highlight]
32
+ response: llm.ContextResponse[Library] = librarian(ctx, query) # [!code highlight]
33
+
34
+ while response.tool_calls:
35
+ tool_outputs = response.execute_tools(ctx) # [!code highlight]
36
+ response = response.resume(ctx, tool_outputs) # [!code highlight]
37
+
38
+ print(response.pretty())
39
+
40
+
41
+ main()
@@ -0,0 +1,17 @@
1
+ import asyncio
2
+
3
+ from mirascope import llm
4
+
5
+
6
+ @llm.call(provider="openai", model_id="gpt-5")
7
+ async def recommend_book(genre: str):
8
+ return f"Please recommend a book in {genre}."
9
+
10
+
11
+ async def main():
12
+ response: llm.AsyncResponse = await recommend_book("fantasy")
13
+ print(response.pretty())
14
+
15
+
16
+ if __name__ == "__main__":
17
+ asyncio.run(main())
@@ -0,0 +1,18 @@
1
+ import asyncio
2
+
3
+ from mirascope import llm
4
+
5
+
6
+ @llm.call(provider="openai", model_id="gpt-5")
7
+ async def recommend_book(genre: str):
8
+ return f"Please recommend a book in {genre}."
9
+
10
+
11
+ async def main():
12
+ response: llm.AsyncStreamResponse = await recommend_book.stream("fantasy")
13
+ async for chunk in response.pretty_stream():
14
+ print(chunk, flush=True, end="")
15
+
16
+
17
+ if __name__ == "__main__":
18
+ asyncio.run(main())
@@ -0,0 +1,15 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.call(provider="openai", model_id="gpt-5")
5
+ def recommend_book(genre: str):
6
+ return f"Please recommend a book in {genre}."
7
+
8
+
9
+ def main():
10
+ response: llm.StreamResponse = recommend_book.stream("fantasy")
11
+ for chunk in response.pretty_stream():
12
+ print(chunk, flush=True, end="")
13
+
14
+
15
+ main()
@@ -0,0 +1,14 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.call(provider="openai", model_id="gpt-5")
5
+ def recommend_book(genre: str):
6
+ return f"Please recommend a book in {genre}."
7
+
8
+
9
+ def main():
10
+ response: llm.Response = recommend_book("fantasy")
11
+ print(response.pretty())
12
+
13
+
14
+ main()
@@ -0,0 +1,22 @@
1
+ from pydantic import BaseModel
2
+
3
+ from mirascope import llm
4
+
5
+
6
+ class Book(BaseModel):
7
+ title: str
8
+ author: str
9
+
10
+
11
+ @llm.call(provider="openai", model_id="gpt-5", format=Book)
12
+ def recommend_book(genre: str):
13
+ return f"Please recommend a book in {genre}."
14
+
15
+
16
+ def main():
17
+ response: llm.Response[Book] = recommend_book("fantasy")
18
+ book: Book = response.parse()
19
+ print(f"{book.title} by {book.author}")
20
+
21
+
22
+ main()
@@ -0,0 +1,26 @@
1
+ from pydantic import BaseModel
2
+
3
+ from mirascope import llm
4
+
5
+
6
+ class Book(BaseModel):
7
+ title: str
8
+ author: str
9
+
10
+
11
+ def recommend_book(genre: str) -> llm.Response[Book]:
12
+ model: llm.Model = llm.use_model(provider="openai", model_id="gpt-5")
13
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
14
+ return model.call(
15
+ messages=[message],
16
+ format=Book, # [!code highlight]
17
+ )
18
+
19
+
20
+ def main():
21
+ response: llm.Response[Book] = recommend_book("fantasy")
22
+ book: Book = response.parse()
23
+ print(f"{book.title} by {book.author}")
24
+
25
+
26
+ main()
@@ -0,0 +1,18 @@
1
+ import asyncio
2
+
3
+ from mirascope import llm
4
+
5
+
6
+ async def recommend_book(genre: str) -> llm.AsyncResponse:
7
+ model: llm.Model = llm.use_model(provider="openai", model_id="gpt-5")
8
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
9
+ return await model.call_async(messages=[message])
10
+
11
+
12
+ async def main():
13
+ response: llm.AsyncResponse = await recommend_book("fantasy")
14
+ print(response.pretty())
15
+
16
+
17
+ if __name__ == "__main__":
18
+ asyncio.run(main())
@@ -0,0 +1,19 @@
1
+ import asyncio
2
+
3
+ from mirascope import llm
4
+
5
+
6
+ async def recommend_book(genre: str) -> llm.AsyncStreamResponse:
7
+ model: llm.Model = llm.use_model(provider="openai", model_id="gpt-5")
8
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
9
+ return await model.stream_async(messages=[message])
10
+
11
+
12
+ async def main():
13
+ response: llm.AsyncStreamResponse = await recommend_book("fantasy")
14
+ async for chunk in response.pretty_stream():
15
+ print(chunk, flush=True, end="")
16
+
17
+
18
+ if __name__ == "__main__":
19
+ asyncio.run(main())
@@ -0,0 +1,16 @@
1
+ from mirascope import llm
2
+
3
+
4
+ def recommend_book(genre: str) -> llm.StreamResponse:
5
+ model: llm.Model = llm.use_model(provider="openai", model_id="gpt-5")
6
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
7
+ return model.stream(messages=[message])
8
+
9
+
10
+ def main():
11
+ response: llm.StreamResponse = recommend_book("fantasy")
12
+ for chunk in response.pretty_stream():
13
+ print(chunk, flush=True, end="")
14
+
15
+
16
+ main()
@@ -0,0 +1,15 @@
1
+ from mirascope import llm
2
+
3
+
4
+ def recommend_book(genre: str) -> llm.Response:
5
+ model: llm.Model = llm.use_model(provider="openai", model_id="gpt-5")
6
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
7
+ return model.call(messages=[message])
8
+
9
+
10
+ def main():
11
+ response: llm.Response = recommend_book("fantasy")
12
+ print(response.pretty())
13
+
14
+
15
+ main()
@@ -0,0 +1,16 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.call(provider="openai", model_id="gpt-5")
5
+ def recommend_book(genre: str):
6
+ return f"Please recommend a book in {genre}."
7
+
8
+
9
+ def main():
10
+ # [!code highlight:2]
11
+ with llm.model(provider="anthropic", model_id="claude-sonnet-4-0", temperature=1):
12
+ response: llm.Response = recommend_book("fantasy")
13
+ print(response.pretty())
14
+
15
+
16
+ main()
@@ -0,0 +1,18 @@
1
+ from mirascope import llm
2
+
3
+
4
+ def recommend_book(genre: str) -> llm.Response:
5
+ # [!code highlight:2]
6
+ model = llm.use_model(provider="openai", model_id="gpt-4o-mini")
7
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
8
+ return model.call(messages=[message])
9
+
10
+
11
+ def main():
12
+ # [!code highlight:2]
13
+ with llm.model(provider="anthropic", model_id="claude-sonnet-4-0", temperature=1):
14
+ response: llm.Response = recommend_book("fantasy")
15
+ print(response.pretty())
16
+
17
+
18
+ main()
@@ -0,0 +1,18 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.call(
5
+ provider="openai",
6
+ model_id="gpt-5",
7
+ temperature=1, # [!code highlight]
8
+ )
9
+ def recommend_book(genre: str):
10
+ return f"Please recommend a book in {genre}."
11
+
12
+
13
+ def main():
14
+ response: llm.Response = recommend_book("fantasy")
15
+ print(response.pretty())
16
+
17
+
18
+ main()
@@ -0,0 +1,19 @@
1
+ from mirascope import llm
2
+
3
+
4
+ def recommend_book(genre: str) -> llm.Response:
5
+ model = llm.use_model(
6
+ provider="openai",
7
+ model_id="gpt-5",
8
+ temperature=1, # [!code highlight]
9
+ )
10
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
11
+ return model.call(messages=[message])
12
+
13
+
14
+ def main():
15
+ response: llm.Response = recommend_book("fantasy")
16
+ print(response.pretty())
17
+
18
+
19
+ main()
@@ -0,0 +1,17 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.call(provider="openai", model_id="gpt-5")
5
+ def recommend_book(genre: str):
6
+ return f"Please recommend a book in {genre}."
7
+
8
+
9
+ def main():
10
+ response: llm.Response = recommend_book("fantasy")
11
+ print(response.pretty())
12
+ # [!code highlight:2]
13
+ continuation: llm.Response = response.resume("Please explain your choice.")
14
+ print(continuation.pretty())
15
+
16
+
17
+ main()
@@ -0,0 +1,18 @@
1
+ from mirascope import llm
2
+
3
+
4
+ def recommend_book(genre: str) -> llm.Response:
5
+ model: llm.Model = llm.use_model(provider="openai", model_id="gpt-5")
6
+ message = llm.messages.user(f"Please recommend a book in {genre}.")
7
+ return model.call(messages=[message])
8
+
9
+
10
+ def main():
11
+ response: llm.Response = recommend_book("fantasy")
12
+ print(response.pretty())
13
+ # [!code highlight:2]
14
+ continuation: llm.Response = response.resume("Please explain your choice.")
15
+ print(continuation.pretty())
16
+
17
+
18
+ main()
@@ -0,0 +1,18 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.call(provider="openai", model_id="gpt-5")
5
+ def recommend_book(genre: str):
6
+ return [
7
+ # [!code highlight]
8
+ llm.messages.system("Always recommend kid-friendly books."),
9
+ llm.messages.user(f"Please recommend a book in {genre}."),
10
+ ]
11
+
12
+
13
+ def main():
14
+ response: llm.Response = recommend_book("fantasy")
15
+ print(response.pretty())
16
+
17
+
18
+ main()
@@ -0,0 +1,20 @@
1
+ from mirascope import llm
2
+
3
+
4
+ def recommend_book(genre: str) -> llm.Response:
5
+ model = llm.use_model(provider="openai", model_id="gpt-5")
6
+ return model.call(
7
+ messages=[
8
+ # [!code highlight]
9
+ llm.messages.system("Always recommend kid-friendly books."),
10
+ llm.messages.user(f"Please recommend a book in {genre}."),
11
+ ]
12
+ )
13
+
14
+
15
+ def main():
16
+ response: llm.Response = recommend_book("fantasy")
17
+ print(response.pretty())
18
+
19
+
20
+ main()
@@ -0,0 +1,36 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.tool() # [!code highlight]
5
+ def available_library_books() -> list[str]: # [!code highlight]
6
+ return [
7
+ "Mistborn by Brandon Sanderson",
8
+ "The Name of the Wind by Patrick Rothfuss",
9
+ "Too Like the Lightning by Ada Palmer",
10
+ "Wild Seed by Octavia Butler",
11
+ ]
12
+
13
+
14
+ @llm.call(
15
+ provider="openai",
16
+ model_id="gpt-5",
17
+ tools=[available_library_books],
18
+ )
19
+ def librarian(query: str):
20
+ return query
21
+
22
+
23
+ def main():
24
+ response: llm.Response = librarian(
25
+ "Please recommend a mind-bending book that's available in the library."
26
+ )
27
+
28
+ # [!code highlight:4]
29
+ while response.tool_calls:
30
+ tool_outputs = response.execute_tools()
31
+ response = response.resume(tool_outputs)
32
+
33
+ print(response.pretty())
34
+
35
+
36
+ main()
@@ -0,0 +1,36 @@
1
+ from mirascope import llm
2
+
3
+
4
+ @llm.tool() # [!code highlight]
5
+ def available_library_books() -> list[str]: # [!code highlight]
6
+ return [
7
+ "Mistborn by Brandon Sanderson",
8
+ "The Name of the Wind by Patrick Rothfuss",
9
+ "Too Like the Lightning by Ada Palmer",
10
+ "Wild Seed by Octavia Butler",
11
+ ]
12
+
13
+
14
+ def librarian(query: str) -> llm.Response:
15
+ model = llm.use_model(provider="openai", model_id="gpt-5")
16
+ message = llm.messages.user(query)
17
+ return model.call(
18
+ messages=[message],
19
+ tools=[available_library_books], # [!code highlight]
20
+ )
21
+
22
+
23
+ def main():
24
+ response: llm.Response = librarian(
25
+ "Please recommend a mind-bending book that's available in the library."
26
+ )
27
+
28
+ # [!code highlight:4]
29
+ while response.tool_calls:
30
+ tool_outputs = response.execute_tools()
31
+ response = response.resume(tool_outputs)
32
+
33
+ print(response.pretty())
34
+
35
+
36
+ main()
@@ -29,7 +29,7 @@ try {
29
29
  }
30
30
 
31
31
  // Run pyright on the whole project (doesn't work well with individual files)
32
- await $`uv run pyright`.cwd("./python");
32
+ await $`uv run pyright .`.cwd("./python");
33
33
 
34
34
  await $`bun run codespell`;
35
35
 
@@ -8,13 +8,14 @@ code that works with multiple LLM providers without changing your application lo
8
8
  # TODO: Across the API, audit docstrings to ensure they are compliant Google-style docstrings
9
9
  # (Write some tooling to ensure this happens consistently + in CI)
10
10
 
11
+ from contextlib import suppress
12
+
11
13
  from . import (
12
14
  calls,
13
15
  clients,
14
16
  content,
15
17
  exceptions,
16
18
  formatting,
17
- mcp,
18
19
  messages,
19
20
  models,
20
21
  prompts,
@@ -22,6 +23,9 @@ from . import (
22
23
  tools,
23
24
  types,
24
25
  )
26
+
27
+ with suppress(ImportError):
28
+ from . import mcp
25
29
  from .calls import call
26
30
  from .clients import ModelId, Params, Provider, client, get_client
27
31
  from .content import (
@@ -0,0 +1,47 @@
1
+ """Utilities for handling optional provider dependencies."""
2
+
3
+ from collections.abc import Callable
4
+
5
+
6
+ def create_import_error_stub(
7
+ package_name: str, client_name: str
8
+ ) -> Callable: # pragma: no cover
9
+ """Create a stub that raises ImportError when called.
10
+
11
+ Args:
12
+ package_name: The package/extra name (e.g., "anthropic", "openai", "google")
13
+ client_name: The client name for the error message (e.g., "AnthropicClient")
14
+
15
+ Returns:
16
+ A callable that raises `ImportError` with helpful message.
17
+ """
18
+
19
+ def _raise_not_installed() -> None:
20
+ raise ImportError(
21
+ f"The '{package_name}' package is required to use {client_name}. "
22
+ f"Install it with: `uv add 'mirascope[{package_name}]'`. "
23
+ "Or use `uv add 'mirascope[all]'` to support all providers."
24
+ )
25
+
26
+ return _raise_not_installed
27
+
28
+
29
+ def create_client_stub(package_name: str, client_name: str) -> type: # pragma: no cover
30
+ """Create a stub client class that raises ImportError when instantiated.
31
+
32
+ Args:
33
+ package_name: The package/extra name (e.g., "anthropic", "openai", "google")
34
+ client_name: The client name for the error message (e.g., "AnthropicClient")
35
+
36
+ Returns:
37
+ A stub class that raises `ImportError` on instantiation.
38
+ """
39
+ error_fn = create_import_error_stub(package_name, client_name)
40
+
41
+ class _ClientStub:
42
+ """Stub client that raises `ImportError` when instantiated."""
43
+
44
+ def __init__(self) -> None:
45
+ error_fn()
46
+
47
+ return _ClientStub
@@ -0,0 +1,25 @@
1
+ """Anthropic client implementation."""
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ if TYPE_CHECKING:
6
+ from .clients import AnthropicClient, client, get_client
7
+ from .model_ids import AnthropicModelId
8
+ else:
9
+ try:
10
+ from .clients import AnthropicClient, client, get_client
11
+ from .model_ids import AnthropicModelId
12
+ except ImportError: # pragma: no cover
13
+ from .._missing_import_stubs import create_client_stub, create_import_error_stub
14
+
15
+ AnthropicClient = create_client_stub("anthropic", "AnthropicClient")
16
+ AnthropicModelId = str
17
+ client = create_import_error_stub("anthropic", "AnthropicClient")
18
+ get_client = create_import_error_stub("anthropic", "AnthropicClient")
19
+
20
+ __all__ = [
21
+ "AnthropicClient",
22
+ "AnthropicModelId",
23
+ "client",
24
+ "get_client",
25
+ ]
@@ -0,0 +1,20 @@
1
+ """Google client implementation."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ if TYPE_CHECKING:
6
+ from .clients import GoogleClient, client, get_client
7
+ from .model_ids import GoogleModelId
8
+ else:
9
+ try:
10
+ from .clients import GoogleClient, client, get_client
11
+ from .model_ids import GoogleModelId
12
+ except ImportError: # pragma: no cover
13
+ from .._missing_import_stubs import create_client_stub, create_import_error_stub
14
+
15
+ GoogleClient = create_client_stub("google", "GoogleClient")
16
+ GoogleModelId = str
17
+ client = create_import_error_stub("google", "GoogleClient")
18
+ get_client = create_import_error_stub("google", "GoogleClient")
19
+
20
+ __all__ = ["GoogleClient", "GoogleModelId", "client", "get_client"]