mirascope 2.0.0a1__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 (572) hide show
  1. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/PKG-INFO +2 -1
  2. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/lint-staged.ts +1 -1
  3. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/decorator.py +10 -10
  4. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/tools.py +2 -2
  5. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/pyproject.toml +2 -1
  6. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override/openai_completions_gpt_4o.yaml +171 -0
  7. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override/openai_responses_gpt_4o.yaml +170 -0
  8. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o.yaml +180 -0
  9. mirascope-2.0.0a2/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o.yaml +181 -0
  10. mirascope-2.0.0a2/tests/e2e/input/snapshots/test_resume_with_override/openai_completions_gpt_4o_snapshots.py +62 -0
  11. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override/openai_responses_gpt_4o_snapshots.py +22 -11
  12. mirascope-2.0.0a2/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o_snapshots.py +125 -0
  13. mirascope-2.0.0a2/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o_snapshots.py +136 -0
  14. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_resume_with_override.py +3 -24
  15. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_resume_with_override_thinking_and_tools.py +3 -3
  16. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/typechecking/tool.py +2 -2
  17. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/uv.lock +1 -1
  18. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override/openai_completions_gpt_4o.yaml +0 -213
  19. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override/openai_responses_gpt_4o.yaml +0 -210
  20. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override_context/anthropic_claude_sonnet_4_0.yaml +0 -170
  21. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override_context/google_gemini_2_5_flash.yaml +0 -168
  22. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override_context/openai_completions_gpt_4o.yaml +0 -214
  23. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override_context/openai_responses_gpt_4o.yaml +0 -211
  24. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o.yaml +0 -231
  25. mirascope-2.0.0a1/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o.yaml +0 -228
  26. mirascope-2.0.0a1/tests/e2e/input/snapshots/test_resume_with_override/openai_completions_gpt_4o_snapshots.py +0 -51
  27. mirascope-2.0.0a1/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_completions_gpt_4o_snapshots.py +0 -106
  28. mirascope-2.0.0a1/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/openai_responses_gpt_4o_snapshots.py +0 -111
  29. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/.coveragerc +0 -0
  30. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/.env.example +0 -0
  31. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/.gitignore +0 -0
  32. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/LICENSE +0 -0
  33. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/README.md +0 -0
  34. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/context/decorator.py +0 -0
  35. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/context/model.py +0 -0
  36. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/decorator/async.py +0 -0
  37. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/decorator/async_stream.py +0 -0
  38. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/decorator/stream.py +0 -0
  39. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/decorator/sync.py +0 -0
  40. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/format/decorator.py +0 -0
  41. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/format/model.py +0 -0
  42. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/model/async.py +0 -0
  43. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/model/async_stream.py +0 -0
  44. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/model/stream.py +0 -0
  45. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/model/sync.py +0 -0
  46. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/override/decorator.py +0 -0
  47. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/override/model.py +0 -0
  48. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/parameters/decorator.py +0 -0
  49. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/parameters/model.py +0 -0
  50. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/resume/decorator.py +0 -0
  51. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/resume/model.py +0 -0
  52. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/system_messages/decorator.py +0 -0
  53. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/system_messages/model.py +0 -0
  54. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/tool_call/decorator.py +0 -0
  55. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/intro/tool_call/model.py +0 -0
  56. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/misc/anthropic_redacted_thinking.py +0 -0
  57. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/misc/openai_responses_reasoning.py +0 -0
  58. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed.py +0 -0
  59. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async.py +0 -0
  60. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_context.py +0 -0
  61. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_context_structured.py +0 -0
  62. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream.py +0 -0
  63. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_context.py +0 -0
  64. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_context_structured.py +0 -0
  65. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_structured.py +0 -0
  66. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools.py +0 -0
  67. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools_context.py +0 -0
  68. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools_context_structured.py +0 -0
  69. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_stream_tools_structured.py +0 -0
  70. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_structured.py +0 -0
  71. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools.py +0 -0
  72. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools_context.py +0 -0
  73. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools_context_structured.py +0 -0
  74. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_async_tools_structured.py +0 -0
  75. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_context.py +0 -0
  76. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_context_structured.py +0 -0
  77. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream.py +0 -0
  78. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_context.py +0 -0
  79. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_context_structured.py +0 -0
  80. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_structured.py +0 -0
  81. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools.py +0 -0
  82. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools_context.py +0 -0
  83. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools_context_structured.py +0 -0
  84. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_stream_tools_structured.py +0 -0
  85. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_structured.py +0 -0
  86. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_tools.py +0 -0
  87. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_tools_context.py +0 -0
  88. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_tools_context_structured.py +0 -0
  89. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/examples/sazed/sazed_tools_structured.py +0 -0
  90. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/__init__.py +0 -0
  91. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/graphs/__init__.py +0 -0
  92. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/graphs/finite_state_machine.py +0 -0
  93. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/__init__.py +0 -0
  94. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/agents/__init__.py +0 -0
  95. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/agents/agent.py +0 -0
  96. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/agents/agent_template.py +0 -0
  97. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/agents/decorator.py +0 -0
  98. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/calls/__init__.py +0 -0
  99. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/calls/base_call.py +0 -0
  100. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/calls/calls.py +0 -0
  101. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/calls/decorator.py +0 -0
  102. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/__init__.py +0 -0
  103. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/_missing_import_stubs.py +0 -0
  104. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/__init__.py +0 -0
  105. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/_utils/__init__.py +0 -0
  106. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/_utils/decode.py +0 -0
  107. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/_utils/encode.py +0 -0
  108. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/clients.py +0 -0
  109. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/anthropic/model_ids.py +0 -0
  110. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/base/__init__.py +0 -0
  111. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/base/_utils.py +0 -0
  112. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/base/client.py +0 -0
  113. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/base/kwargs.py +0 -0
  114. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/base/params.py +0 -0
  115. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/__init__.py +0 -0
  116. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/_utils/__init__.py +0 -0
  117. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/_utils/decode.py +0 -0
  118. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/_utils/encode.py +0 -0
  119. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/clients.py +0 -0
  120. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/message.py +0 -0
  121. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/google/model_ids.py +0 -0
  122. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/__init__.py +0 -0
  123. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/__init__.py +0 -0
  124. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/__init__.py +0 -0
  125. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/decode.py +0 -0
  126. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/encode.py +0 -0
  127. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/_utils/model_features.py +0 -0
  128. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/clients.py +0 -0
  129. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/completions/model_ids.py +0 -0
  130. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/__init__.py +0 -0
  131. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/__init__.py +0 -0
  132. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/decode.py +0 -0
  133. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/encode.py +0 -0
  134. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/_utils/model_features.py +0 -0
  135. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/clients.py +0 -0
  136. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/responses/model_ids.py +0 -0
  137. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/shared/__init__.py +0 -0
  138. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/openai/shared/_utils.py +0 -0
  139. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/clients/providers.py +0 -0
  140. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/__init__.py +0 -0
  141. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/audio.py +0 -0
  142. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/document.py +0 -0
  143. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/image.py +0 -0
  144. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/text.py +0 -0
  145. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/thought.py +0 -0
  146. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/tool_call.py +0 -0
  147. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/content/tool_output.py +0 -0
  148. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/context/__init__.py +0 -0
  149. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/context/_utils.py +0 -0
  150. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/context/context.py +0 -0
  151. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/exceptions.py +0 -0
  152. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/formatting/__init__.py +0 -0
  153. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/formatting/_utils.py +0 -0
  154. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/formatting/format.py +0 -0
  155. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/formatting/from_call_args.py +0 -0
  156. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/formatting/partial.py +0 -0
  157. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/formatting/types.py +0 -0
  158. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/mcp/__init__.py +0 -0
  159. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/mcp/client.py +0 -0
  160. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/messages/__init__.py +0 -0
  161. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/messages/message.py +0 -0
  162. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/models/__init__.py +0 -0
  163. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/models/models.py +0 -0
  164. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/prompts/__init__.py +0 -0
  165. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/prompts/_utils.py +0 -0
  166. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/prompts/decorator.py +0 -0
  167. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/prompts/protocols.py +0 -0
  168. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/__init__.py +0 -0
  169. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/_utils.py +0 -0
  170. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/base_response.py +0 -0
  171. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/base_stream_response.py +0 -0
  172. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/finish_reason.py +0 -0
  173. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/response.py +0 -0
  174. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/root_response.py +0 -0
  175. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/stream_response.py +0 -0
  176. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/responses/streams.py +0 -0
  177. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/__init__.py +0 -0
  178. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/_utils.py +0 -0
  179. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/protocols.py +0 -0
  180. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/tool_schema.py +0 -0
  181. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/tools/toolkit.py +0 -0
  182. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/types/__init__.py +0 -0
  183. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/types/dataclass.py +0 -0
  184. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/types/jsonable.py +0 -0
  185. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/mirascope/llm/types/type_vars.py +0 -0
  186. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/scripts/example_generator.ts +0 -0
  187. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/scripts/regenerate_examples.ts +0 -0
  188. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/scripts/update_openai_completions_model_features.py +0 -0
  189. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/scripts/update_openai_responses_model_features.py +0 -0
  190. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/conftest.py +0 -0
  191. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/README.md +0 -0
  192. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/__init__.py +0 -0
  193. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/assets/audio/tagline.mp3 +0 -0
  194. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/assets/images/wikipedia.png +0 -0
  195. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/conftest.py +0 -0
  196. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/README.md +0 -0
  197. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_audio/google_gemini_2_5_flash.yaml +0 -0
  198. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_audio/openai_completions_gpt_audio.yaml +0 -0
  199. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/anthropic_claude_sonnet_4_0.yaml +0 -0
  200. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/google_gemini_2_5_flash.yaml +0 -0
  201. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/openai_completions_gpt_4o.yaml +0 -0
  202. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_content/openai_responses_gpt_4o.yaml +0 -0
  203. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_url/anthropic_claude_sonnet_4_0.yaml +0 -0
  204. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_url/openai_completions_gpt_4o.yaml +0 -0
  205. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_image_url/openai_responses_gpt_4o.yaml +0 -0
  206. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/anthropic_claude_sonnet_4_0.yaml +0 -0
  207. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/google_gemini_2_5_flash.yaml +0 -0
  208. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/openai_completions_gpt_4o.yaml +0 -0
  209. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_params/openai_responses_gpt_4o.yaml +0 -0
  210. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/anthropic_claude_sonnet_4_0.yaml +0 -0
  211. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/google_gemini_2_5_flash.yaml +0 -0
  212. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/openai_completions_gpt_4o.yaml +0 -0
  213. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_call_with_text_encoded_thoughts/openai_responses_gpt_4o.yaml +0 -0
  214. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override/anthropic_claude_sonnet_4_0.yaml +0 -0
  215. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override/google_gemini_2_5_flash.yaml +0 -0
  216. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/anthropic_claude_sonnet_4_0.yaml +0 -0
  217. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_resume_with_override_thinking_and_tools/google_gemini_2_5_flash.yaml +0 -0
  218. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/anthropic_claude_sonnet_4_0.yaml +0 -0
  219. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/google_gemini_2_5_flash.yaml +0 -0
  220. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/anthropic_claude_sonnet_4_0.yaml +0 -0
  221. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/google_gemini_2_5_flash.yaml +0 -0
  222. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/openai_completions_gpt_4o.yaml +0 -0
  223. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/json/openai_responses_gpt_4o.yaml +0 -0
  224. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/openai_completions_gpt_4o.yaml +0 -0
  225. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/openai_responses_gpt_4o.yaml +0 -0
  226. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/strict/google_gemini_2_5_flash.yaml +0 -0
  227. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/strict/openai_completions_gpt_4o.yaml +0 -0
  228. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/strict/openai_responses_gpt_4o.yaml +0 -0
  229. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/anthropic_claude_sonnet_4_0.yaml +0 -0
  230. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/google_gemini_2_5_flash.yaml +0 -0
  231. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/openai_completions_gpt_4o.yaml +0 -0
  232. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/cassettes/test_structured_output_with_formatting_instructions/tool/openai_responses_gpt_4o.yaml +0 -0
  233. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/conftest.py +0 -0
  234. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  235. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/google_gemini_2_5_flash_snapshots.py +0 -0
  236. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/openai_completions_gpt_4o_snapshots.py +0 -0
  237. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/openai_completions_gpt_audio_snapshots.py +0 -0
  238. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_audio/openai_responses_gpt_4o_snapshots.py +0 -0
  239. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  240. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/google_gemini_2_5_flash_snapshots.py +0 -0
  241. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/openai_completions_gpt_4o_snapshots.py +0 -0
  242. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_content/openai_responses_gpt_4o_snapshots.py +0 -0
  243. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  244. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/google_gemini_2_5_flash_snapshots.py +0 -0
  245. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/openai_completions_gpt_4o_snapshots.py +0 -0
  246. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_image_url/openai_responses_gpt_4o_snapshots.py +0 -0
  247. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  248. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/google_gemini_2_5_flash_snapshots.py +0 -0
  249. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/openai_completions_gpt_4o_snapshots.py +0 -0
  250. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_params/openai_responses_gpt_4o_snapshots.py +0 -0
  251. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  252. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/google_gemini_2_5_flash_snapshots.py +0 -0
  253. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/openai_completions_gpt_4o_snapshots.py +0 -0
  254. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_call_with_text_encoded_thoughts/openai_responses_gpt_4o_snapshots.py +0 -0
  255. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  256. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override/google_gemini_2_5_flash_snapshots.py +0 -0
  257. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  258. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/google_gemini_2_5_flash_snapshots.py +0 -0
  259. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/openai_completions_gpt_4o_snapshots.py +0 -0
  260. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_context/openai_responses_gpt_4o_snapshots.py +0 -0
  261. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  262. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_resume_with_override_thinking_and_tools/google_gemini_2_5_flash_snapshots.py +0 -0
  263. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  264. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/google_gemini_2_5_flash_snapshots.py +0 -0
  265. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  266. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/google_gemini_2_5_flash_snapshots.py +0 -0
  267. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/openai_completions_gpt_4o_snapshots.py +0 -0
  268. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/json/openai_responses_gpt_4o_snapshots.py +0 -0
  269. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/openai_completions_gpt_4o_snapshots.py +0 -0
  270. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/openai_responses_gpt_4o_snapshots.py +0 -0
  271. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  272. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/google_gemini_2_5_flash_snapshots.py +0 -0
  273. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/openai_completions_gpt_4o_snapshots.py +0 -0
  274. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/strict/openai_responses_gpt_4o_snapshots.py +0 -0
  275. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  276. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/google_gemini_2_5_flash_snapshots.py +0 -0
  277. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/openai_completions_gpt_4o_snapshots.py +0 -0
  278. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/snapshots/test_structured_output_with_formatting_instructions/tool/openai_responses_gpt_4o_snapshots.py +0 -0
  279. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_audio.py +0 -0
  280. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_image.py +0 -0
  281. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_params.py +0 -0
  282. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_call_with_text_encoded_thoughts.py +0 -0
  283. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/input/test_structured_output_with_formatting_instructions.py +0 -0
  284. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/README.md +0 -0
  285. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  286. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  287. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  288. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  289. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/async.yaml +0 -0
  290. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/async_stream.yaml +0 -0
  291. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/stream.yaml +0 -0
  292. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/google_gemini_2_5_flash/sync.yaml +0 -0
  293. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/async.yaml +0 -0
  294. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/async_stream.yaml +0 -0
  295. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/stream.yaml +0 -0
  296. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_completions_gpt_4o/sync.yaml +0 -0
  297. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/async.yaml +0 -0
  298. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/async_stream.yaml +0 -0
  299. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/stream.yaml +0 -0
  300. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call/openai_responses_gpt_4o/sync.yaml +0 -0
  301. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  302. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  303. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  304. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  305. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/async.yaml +0 -0
  306. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/async_stream.yaml +0 -0
  307. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/stream.yaml +0 -0
  308. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/google_gemini_2_5_flash/sync.yaml +0 -0
  309. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/async.yaml +0 -0
  310. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/async_stream.yaml +0 -0
  311. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/stream.yaml +0 -0
  312. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_thinking_true/openai_responses_gpt_5/sync.yaml +0 -0
  313. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  314. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  315. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  316. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  317. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/async.yaml +0 -0
  318. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/async_stream.yaml +0 -0
  319. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/stream.yaml +0 -0
  320. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/google_gemini_2_5_flash/sync.yaml +0 -0
  321. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/async.yaml +0 -0
  322. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/async_stream.yaml +0 -0
  323. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/stream.yaml +0 -0
  324. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_completions_gpt_4o/sync.yaml +0 -0
  325. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/async.yaml +0 -0
  326. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/async_stream.yaml +0 -0
  327. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/stream.yaml +0 -0
  328. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_call_with_tools/openai_responses_gpt_4o/sync.yaml +0 -0
  329. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  330. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  331. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  332. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  333. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/async.yaml +0 -0
  334. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/async_stream.yaml +0 -0
  335. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/stream.yaml +0 -0
  336. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/google_gemini_2_5_flash/sync.yaml +0 -0
  337. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/async.yaml +0 -0
  338. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/async_stream.yaml +0 -0
  339. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/stream.yaml +0 -0
  340. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_completions_gpt_4o/sync.yaml +0 -0
  341. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/async.yaml +0 -0
  342. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/async_stream.yaml +0 -0
  343. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/stream.yaml +0 -0
  344. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_max_tokens/openai_responses_gpt_4o/sync.yaml +0 -0
  345. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  346. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  347. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  348. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  349. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/async.yaml +0 -0
  350. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/async_stream.yaml +0 -0
  351. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/stream.yaml +0 -0
  352. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/google_gemini_2_5_flash/sync.yaml +0 -0
  353. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/async.yaml +0 -0
  354. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/async_stream.yaml +0 -0
  355. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/stream.yaml +0 -0
  356. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_completions_gpt_4o/sync.yaml +0 -0
  357. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/async.yaml +0 -0
  358. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/async_stream.yaml +0 -0
  359. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/stream.yaml +0 -0
  360. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_refusal/openai_responses_gpt_4o/sync.yaml +0 -0
  361. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  362. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  363. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  364. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  365. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/async.yaml +0 -0
  366. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/async_stream.yaml +0 -0
  367. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/stream.yaml +0 -0
  368. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/google_gemini_2_5_flash/sync.yaml +0 -0
  369. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  370. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  371. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  372. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  373. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/async.yaml +0 -0
  374. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/async_stream.yaml +0 -0
  375. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/stream.yaml +0 -0
  376. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/google_gemini_2_5_flash/sync.yaml +0 -0
  377. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/async.yaml +0 -0
  378. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/async_stream.yaml +0 -0
  379. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/stream.yaml +0 -0
  380. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_completions_gpt_4o/sync.yaml +0 -0
  381. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/async.yaml +0 -0
  382. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/async_stream.yaml +0 -0
  383. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/stream.yaml +0 -0
  384. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/json/openai_responses_gpt_4o/sync.yaml +0 -0
  385. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/async.yaml +0 -0
  386. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/async_stream.yaml +0 -0
  387. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/stream.yaml +0 -0
  388. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_completions_gpt_4o/sync.yaml +0 -0
  389. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/async.yaml +0 -0
  390. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/async_stream.yaml +0 -0
  391. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/stream.yaml +0 -0
  392. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/openai_responses_gpt_4o/sync.yaml +0 -0
  393. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/async.yaml +0 -0
  394. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/async_stream.yaml +0 -0
  395. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/stream.yaml +0 -0
  396. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/google_gemini_2_5_flash/sync.yaml +0 -0
  397. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/async.yaml +0 -0
  398. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/async_stream.yaml +0 -0
  399. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/stream.yaml +0 -0
  400. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_completions_gpt_4o/sync.yaml +0 -0
  401. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/async.yaml +0 -0
  402. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/async_stream.yaml +0 -0
  403. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/stream.yaml +0 -0
  404. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/strict/openai_responses_gpt_4o/sync.yaml +0 -0
  405. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  406. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  407. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  408. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  409. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/async.yaml +0 -0
  410. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/async_stream.yaml +0 -0
  411. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/stream.yaml +0 -0
  412. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/google_gemini_2_5_flash/sync.yaml +0 -0
  413. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/async.yaml +0 -0
  414. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/async_stream.yaml +0 -0
  415. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/stream.yaml +0 -0
  416. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_completions_gpt_4o/sync.yaml +0 -0
  417. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/async.yaml +0 -0
  418. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/async_stream.yaml +0 -0
  419. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/stream.yaml +0 -0
  420. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output/tool/openai_responses_gpt_4o/sync.yaml +0 -0
  421. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  422. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  423. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  424. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  425. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/async.yaml +0 -0
  426. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/async_stream.yaml +0 -0
  427. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/stream.yaml +0 -0
  428. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/google_gemini_2_5_flash/sync.yaml +0 -0
  429. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  430. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  431. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  432. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  433. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/async.yaml +0 -0
  434. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/async_stream.yaml +0 -0
  435. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/stream.yaml +0 -0
  436. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_completions_gpt_4o/sync.yaml +0 -0
  437. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/async.yaml +0 -0
  438. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/async_stream.yaml +0 -0
  439. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/stream.yaml +0 -0
  440. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/json/openai_responses_gpt_4o/sync.yaml +0 -0
  441. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/async.yaml +0 -0
  442. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/async_stream.yaml +0 -0
  443. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/stream.yaml +0 -0
  444. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_completions_gpt_4o/sync.yaml +0 -0
  445. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/async.yaml +0 -0
  446. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/async_stream.yaml +0 -0
  447. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/stream.yaml +0 -0
  448. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/openai_responses_gpt_4o/sync.yaml +0 -0
  449. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/async.yaml +0 -0
  450. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/async_stream.yaml +0 -0
  451. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/stream.yaml +0 -0
  452. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_completions_gpt_4o/sync.yaml +0 -0
  453. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/async.yaml +0 -0
  454. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/async_stream.yaml +0 -0
  455. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/stream.yaml +0 -0
  456. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/strict/openai_responses_gpt_4o/sync.yaml +0 -0
  457. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/async.yaml +0 -0
  458. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/async_stream.yaml +0 -0
  459. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/stream.yaml +0 -0
  460. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0/sync.yaml +0 -0
  461. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/async.yaml +0 -0
  462. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/async_stream.yaml +0 -0
  463. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/stream.yaml +0 -0
  464. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/google_gemini_2_5_flash/sync.yaml +0 -0
  465. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/async.yaml +0 -0
  466. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/async_stream.yaml +0 -0
  467. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/stream.yaml +0 -0
  468. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_completions_gpt_4o/sync.yaml +0 -0
  469. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/async.yaml +0 -0
  470. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/async_stream.yaml +0 -0
  471. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/stream.yaml +0 -0
  472. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/cassettes/test_structured_output_with_tools/tool/openai_responses_gpt_4o/sync.yaml +0 -0
  473. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/conftest.py +0 -0
  474. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  475. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/google_gemini_2_5_flash_snapshots.py +0 -0
  476. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/openai_completions_gpt_4o_snapshots.py +0 -0
  477. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call/openai_responses_gpt_4o_snapshots.py +0 -0
  478. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_thinking_true/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  479. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_thinking_true/google_gemini_2_5_flash_snapshots.py +0 -0
  480. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_thinking_true/openai_responses_gpt_5_snapshots.py +0 -0
  481. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  482. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/google_gemini_2_5_flash_snapshots.py +0 -0
  483. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/openai_completions_gpt_4o_snapshots.py +0 -0
  484. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_call_with_tools/openai_responses_gpt_4o_snapshots.py +0 -0
  485. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  486. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/google_gemini_2_5_flash_snapshots.py +0 -0
  487. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/openai_completions_gpt_4o_snapshots.py +0 -0
  488. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_max_tokens/openai_responses_gpt_4o_snapshots.py +0 -0
  489. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  490. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/google_gemini_2_5_flash_snapshots.py +0 -0
  491. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/openai_completions_gpt_4o_snapshots.py +0 -0
  492. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_refusal/openai_responses_gpt_4o_snapshots.py +0 -0
  493. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  494. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/google_gemini_2_5_flash_snapshots.py +0 -0
  495. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  496. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/google_gemini_2_5_flash_snapshots.py +0 -0
  497. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/openai_completions_gpt_4o_snapshots.py +0 -0
  498. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/json/openai_responses_gpt_4o_snapshots.py +0 -0
  499. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/openai_completions_gpt_4o_snapshots.py +0 -0
  500. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/openai_responses_gpt_4o_snapshots.py +0 -0
  501. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  502. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/google_gemini_2_5_flash_snapshots.py +0 -0
  503. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/openai_completions_gpt_4o_snapshots.py +0 -0
  504. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/strict/openai_responses_gpt_4o_snapshots.py +0 -0
  505. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  506. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/google_gemini_2_5_flash_snapshots.py +0 -0
  507. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/openai_completions_gpt_4o_snapshots.py +0 -0
  508. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output/tool/openai_responses_gpt_4o_snapshots.py +0 -0
  509. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  510. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/google_gemini_2_5_flash_snapshots.py +0 -0
  511. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  512. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/google_gemini_2_5_flash_snapshots.py +0 -0
  513. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/openai_completions_gpt_4o_snapshots.py +0 -0
  514. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/json/openai_responses_gpt_4o_snapshots.py +0 -0
  515. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/openai_completions_gpt_4o_snapshots.py +0 -0
  516. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/openai_responses_gpt_4o_snapshots.py +0 -0
  517. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  518. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/google_gemini_2_5_flash_snapshots.py +0 -0
  519. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/openai_completions_gpt_4o_snapshots.py +0 -0
  520. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/strict/openai_responses_gpt_4o_snapshots.py +0 -0
  521. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/anthropic_claude_sonnet_4_0_snapshots.py +0 -0
  522. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/google_gemini_2_5_flash_snapshots.py +0 -0
  523. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/openai_completions_gpt_4o_snapshots.py +0 -0
  524. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/snapshots/test_structured_output_with_tools/tool/openai_responses_gpt_4o_snapshots.py +0 -0
  525. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_call.py +0 -0
  526. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_call_with_thinking_true.py +0 -0
  527. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_call_with_tools.py +0 -0
  528. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_max_tokens.py +0 -0
  529. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_refusal.py +0 -0
  530. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_structured_output.py +0 -0
  531. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/e2e/output/test_structured_output_with_tools.py +0 -0
  532. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/__init__.py +0 -0
  533. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/calls/cassettes/TestCall.test_call_decorator_e2e_model_override.yaml +0 -0
  534. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/calls/cassettes/TestContextCall.test_context_call_decorator_e2e_model_override.yaml +0 -0
  535. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/calls/test_decorator.py +0 -0
  536. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/__init__.py +0 -0
  537. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/anthropic/__init__.py +0 -0
  538. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/anthropic/test_client.py +0 -0
  539. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/base/__init__.py +0 -0
  540. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/base/test_params.py +0 -0
  541. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/base/test_utils.py +0 -0
  542. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/google/__init__.py +0 -0
  543. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/google/test_client.py +0 -0
  544. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/openai/__init__.py +0 -0
  545. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/openai/test_completions_client.py +0 -0
  546. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/openai/test_responses_client.py +0 -0
  547. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/clients/test_providers.py +0 -0
  548. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/content/test_audio_content.py +0 -0
  549. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/content/test_image_content.py +0 -0
  550. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/context/test_context.py +0 -0
  551. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/formatting/__init__.py +0 -0
  552. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/formatting/test_format.py +0 -0
  553. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/messages/test_messages.py +0 -0
  554. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/models/test_model.py +0 -0
  555. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/prompts/__init__.py +0 -0
  556. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/prompts/test_decorator.py +0 -0
  557. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/responses/__init__.py +0 -0
  558. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/responses/test_response.py +0 -0
  559. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/responses/test_stream_response.py +0 -0
  560. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/responses/test_utils.py +0 -0
  561. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/tools/__init__.py +0 -0
  562. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/tools/test_decorator.py +0 -0
  563. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/tools/test_tool_schema.py +0 -0
  564. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/llm/tools/test_toolkit.py +0 -0
  565. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/test_imports.py +0 -0
  566. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/tests/utils.py +0 -0
  567. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/typechecking/agent.py +0 -0
  568. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/typechecking/call.py +0 -0
  569. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/typechecking/context.py +0 -0
  570. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/typechecking/format.py +0 -0
  571. {mirascope-2.0.0a1 → mirascope-2.0.0a2}/typechecking/streams.py +0 -0
  572. {mirascope-2.0.0a1 → 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.0a1
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,6 +40,7 @@ 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
@@ -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
 
@@ -20,14 +20,14 @@ class ToolDecorator:
20
20
  @overload
21
21
  def __call__( # pyright:ignore[reportOverlappingOverload]
22
22
  self, fn: ContextToolFn[DepsT, P, JsonableCovariantT]
23
- ) -> ContextTool[DepsT, P, JsonableCovariantT]:
23
+ ) -> ContextTool[DepsT, JsonableCovariantT, P]:
24
24
  """Call the decorator with a context function."""
25
25
  ...
26
26
 
27
27
  @overload
28
28
  def __call__( # pyright:ignore[reportOverlappingOverload]
29
29
  self, fn: AsyncContextToolFn[DepsT, P, JsonableCovariantT]
30
- ) -> AsyncContextTool[DepsT, P, JsonableCovariantT]:
30
+ ) -> AsyncContextTool[DepsT, JsonableCovariantT, P]:
31
31
  """Call the decorator with an async context function."""
32
32
  ...
33
33
 
@@ -52,8 +52,8 @@ class ToolDecorator:
52
52
  | ToolFn[P, JsonableCovariantT]
53
53
  | AsyncToolFn[P, JsonableCovariantT],
54
54
  ) -> (
55
- ContextTool[DepsT, P, JsonableCovariantT]
56
- | AsyncContextTool[DepsT, P, JsonableCovariantT]
55
+ ContextTool[DepsT, JsonableCovariantT, P]
56
+ | AsyncContextTool[DepsT, JsonableCovariantT, P]
57
57
  | Tool[P, JsonableCovariantT]
58
58
  | AsyncTool[P, JsonableCovariantT]
59
59
  ):
@@ -62,11 +62,11 @@ class ToolDecorator:
62
62
  is_async = _tool_utils.is_async_tool_fn(fn)
63
63
 
64
64
  if is_context and is_async:
65
- return AsyncContextTool[DepsT, P, JsonableCovariantT](
65
+ return AsyncContextTool[DepsT, JsonableCovariantT, P](
66
66
  fn, strict=self.strict
67
67
  )
68
68
  elif is_context:
69
- return ContextTool[DepsT, P, JsonableCovariantT](fn, strict=self.strict)
69
+ return ContextTool[DepsT, JsonableCovariantT, P](fn, strict=self.strict)
70
70
  elif is_async:
71
71
  return AsyncTool[P, JsonableCovariantT](fn, strict=self.strict)
72
72
  else:
@@ -76,7 +76,7 @@ class ToolDecorator:
76
76
  @overload
77
77
  def tool( # pyright:ignore[reportOverlappingOverload]
78
78
  __fn: AsyncContextToolFn[DepsT, P, JsonableCovariantT],
79
- ) -> AsyncContextTool[DepsT, P, JsonableCovariantT]:
79
+ ) -> AsyncContextTool[DepsT, JsonableCovariantT, P]:
80
80
  """Overload for async context tool functions."""
81
81
  ...
82
82
 
@@ -84,7 +84,7 @@ def tool( # pyright:ignore[reportOverlappingOverload]
84
84
  @overload
85
85
  def tool( # pyright:ignore[reportOverlappingOverload]
86
86
  __fn: ContextToolFn[DepsT, P, JsonableCovariantT],
87
- ) -> ContextTool[DepsT, P, JsonableCovariantT]:
87
+ ) -> ContextTool[DepsT, JsonableCovariantT, P]:
88
88
  """Overload for context tool functions."""
89
89
  ...
90
90
 
@@ -116,8 +116,8 @@ def tool(
116
116
  *,
117
117
  strict: bool = False,
118
118
  ) -> (
119
- ContextTool[DepsT, P, JsonableCovariantT]
120
- | AsyncContextTool[DepsT, P, JsonableCovariantT]
119
+ ContextTool[DepsT, JsonableCovariantT, P]
120
+ | AsyncContextTool[DepsT, JsonableCovariantT, P]
121
121
  | Tool[P, JsonableCovariantT]
122
122
  | AsyncTool[P, JsonableCovariantT]
123
123
  | ToolDecorator
@@ -89,7 +89,7 @@ class AsyncTool(
89
89
 
90
90
  class ContextTool(
91
91
  ToolSchema[ContextToolFn[DepsT, AnyP, JsonableCovariantT]],
92
- Generic[DepsT, AnyP, JsonableCovariantT],
92
+ Generic[DepsT, JsonableCovariantT, AnyP],
93
93
  ):
94
94
  """Protocol defining a tool that can be used by LLMs.
95
95
 
@@ -130,7 +130,7 @@ class ContextTool(
130
130
 
131
131
  class AsyncContextTool(
132
132
  ToolSchema[AsyncContextToolFn[DepsT, AnyP, JsonableCovariantT]],
133
- Generic[DepsT, AnyP, JsonableCovariantT],
133
+ Generic[DepsT, JsonableCovariantT, AnyP],
134
134
  ):
135
135
  """Protocol defining an async tool that can be used by LLMs with context.
136
136
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mirascope"
3
- version = "2.0.0-alpha.1"
3
+ version = "2.0.0-alpha.2"
4
4
  description = "LLM abstractions that aren't obstructions"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -30,6 +30,7 @@ classifiers = [
30
30
  "Programming Language :: Python :: 3.11",
31
31
  "Programming Language :: Python :: 3.12",
32
32
  "Programming Language :: Python :: 3.13",
33
+ "Programming Language :: Python :: 3.14",
33
34
  "Topic :: File Formats :: JSON",
34
35
  "Topic :: File Formats :: JSON :: JSON Schema",
35
36
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
@@ -0,0 +1,171 @@
1
+ interactions:
2
+ - request:
3
+ body: '{"contents": [{"parts": [{"text": "Who created you?"}], "role": "user"}]}'
4
+ headers:
5
+ accept:
6
+ - '*/*'
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ content-length:
12
+ - '73'
13
+ content-type:
14
+ - application/json
15
+ host:
16
+ - generativelanguage.googleapis.com
17
+ user-agent:
18
+ - google-genai-sdk/1.48.0 gl-python/3.10.16
19
+ x-goog-api-client:
20
+ - google-genai-sdk/1.48.0 gl-python/3.10.16
21
+ method: POST
22
+ uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
23
+ response:
24
+ body:
25
+ string: !!binary |
26
+ H4sIAAAAAAAC/2WRTU/DMAyG7/0VUc7bxAZDG1e+tMNgQAWbEEKGem1EGleJK3Wa9t9J23XLIIfI
27
+ 8uu8tp9sIyHkN5hEJcDo5JV49xkhts1da2QYDXuhS/lkAZaPte3ZBrEvYazqR3ImIBcgNNgU/W3S
28
+ EnyQU4K6J9iCMpiIr424J0o1DmTgsjvEH71jb0saa+PGoivfdQVyrYxy2TOCI1OXvcSPC3lQlUmw
29
+ 8umzqGvQWMvS+anmyOApwGFXWVjKC47pB801lQ2FcesVMDuRh8O9zsSg/0ij3j9bd+ObKh3CDDj7
30
+ HUEr3tSLxLfLWAYc+GSqjkMU4JKcUZlmfDrh9DLa82oRvqJ1qmWVYu7p9UeDcX+twWVNO2nRFWQc
31
+ zpLmP6v5G6yW6m5qV9XDZHFOm8/J04WMdtEvUaBif0wCAAA=
32
+ headers:
33
+ Alt-Svc:
34
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
35
+ Content-Encoding:
36
+ - gzip
37
+ Content-Type:
38
+ - application/json; charset=UTF-8
39
+ Date:
40
+ - Thu, 13 Nov 2025 17:19:31 GMT
41
+ Server:
42
+ - scaffolding on HTTPServer2
43
+ Server-Timing:
44
+ - gfet4t7; dur=1140
45
+ Transfer-Encoding:
46
+ - chunked
47
+ Vary:
48
+ - Origin
49
+ - X-Origin
50
+ - Referer
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Frame-Options:
54
+ - SAMEORIGIN
55
+ X-XSS-Protection:
56
+ - '0'
57
+ status:
58
+ code: 200
59
+ message: OK
60
+ - request:
61
+ body: '{"messages":[{"role":"user","content":"Who created you?"},{"role":"assistant","content":"I
62
+ am a large language model, trained by Google."},{"role":"user","content":"Can
63
+ you double-check that?"}],"model":"gpt-4o"}'
64
+ headers:
65
+ accept:
66
+ - application/json
67
+ accept-encoding:
68
+ - gzip, deflate
69
+ connection:
70
+ - keep-alive
71
+ content-length:
72
+ - '212'
73
+ content-type:
74
+ - application/json
75
+ host:
76
+ - api.openai.com
77
+ user-agent:
78
+ - OpenAI/Python 2.7.1
79
+ x-stainless-arch:
80
+ - arm64
81
+ x-stainless-async:
82
+ - 'false'
83
+ x-stainless-lang:
84
+ - python
85
+ x-stainless-os:
86
+ - MacOS
87
+ x-stainless-package-version:
88
+ - 2.7.1
89
+ x-stainless-read-timeout:
90
+ - '600'
91
+ x-stainless-retry-count:
92
+ - '0'
93
+ x-stainless-runtime:
94
+ - CPython
95
+ x-stainless-runtime-version:
96
+ - 3.10.16
97
+ method: POST
98
+ uri: https://api.openai.com/v1/chat/completions
99
+ response:
100
+ body:
101
+ string: !!binary |
102
+ H4sIAAAAAAAAA4xSy27bMBC86ysWvPRiGfI78C0oisRAgfZQtIciEFbkSmZCcRmScpsE/veC8kNO
103
+ mgK98LCzM5zZ3ZcMQGgl1iDkFqNsnck/Vt9v7PU03OvwSHj760exeuyk3E1uP396FqPE4OqeZDyx
104
+ xpJbZyhqtgdYesJISXWyWs6KxXy2mvVAy4pMojUu5nPOp8V0nhdXebE8EresJQWxhp8ZAMBL/yaL
105
+ VtFvsYZidKq0FAI2JNbnJgDh2aSKwBB0iGijGA2gZBvJ9q43gI4NN/qZoGYPcUvQJsYDjWED2ALK
106
+ 2KExT1BhIAVs4Ysje735EODm67d8Bn2U8bEKinZk2JECtAqiR21JQUvjSwOe6i5gym87Yy4AtJYj
107
+ pvn10e+OyP4c1nDjPFfhDVXU2uqwLT1hYJuChchO9Og+A7jrh9q9mpNwnlsXy8gP1H83Wx7kxLDF
108
+ AZyewMgRzVBfTkfvqJWKImoTLpYiJMotqYE5bBA7pfkCyC4y/23mPe1Dbm2b/5EfACnJRVKl86S0
109
+ fB14aPOUbvxfbecZ94ZFIL/Tksqoyac9KKqxM4fzE+EpRGrLWtuGvPP6cIO1K2VVT1ZXi8VyJbJ9
110
+ 9gcAAP//AwD0RZuujAMAAA==
111
+ headers:
112
+ CF-RAY:
113
+ - 99dfef3ed855eb46-CPH
114
+ Connection:
115
+ - keep-alive
116
+ Content-Encoding:
117
+ - gzip
118
+ Content-Type:
119
+ - application/json
120
+ Date:
121
+ - Thu, 13 Nov 2025 17:19:34 GMT
122
+ Server:
123
+ - cloudflare
124
+ Set-Cookie:
125
+ - __cf_bm=V.j2n2.Efs.WJWDUcckP1oFo_YB3JagtJau.2tp5eNs-1763054374-1.0.1.1-Yp.qaC8nckYdRJmYO5z64zoFoqxN73QUczLwhebhfz49qqaKabq4AKu3tIQTR9NGO6rVhv6nb9TozOGjCAPHv9ztrF4UBTr_uN0MVIK2kEI;
126
+ path=/; expires=Thu, 13-Nov-25 17:49:34 GMT; domain=.api.openai.com; HttpOnly;
127
+ Secure; SameSite=None
128
+ - _cfuvid=D3eo_bKWTApiKdN7ZVDHMsICGTLxD5HgKXpTkTH5.hE-1763054374031-0.0.1.1-604800000;
129
+ path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
130
+ Strict-Transport-Security:
131
+ - max-age=31536000; includeSubDomains; preload
132
+ Transfer-Encoding:
133
+ - chunked
134
+ X-Content-Type-Options:
135
+ - nosniff
136
+ access-control-expose-headers:
137
+ - X-Request-ID
138
+ alt-svc:
139
+ - h3=":443"; ma=86400
140
+ cf-cache-status:
141
+ - DYNAMIC
142
+ openai-organization:
143
+ - sotai-i3ryiz
144
+ openai-processing-ms:
145
+ - '878'
146
+ openai-project:
147
+ - proj_2kPLXdwNOjkHt3ifb0aZ4FwU
148
+ openai-version:
149
+ - '2020-10-01'
150
+ x-envoy-upstream-service-time:
151
+ - '1140'
152
+ x-openai-proxy-wasm:
153
+ - v0.1
154
+ x-ratelimit-limit-requests:
155
+ - '5000'
156
+ x-ratelimit-limit-tokens:
157
+ - '800000'
158
+ x-ratelimit-remaining-requests:
159
+ - '4999'
160
+ x-ratelimit-remaining-tokens:
161
+ - '799973'
162
+ x-ratelimit-reset-requests:
163
+ - 12ms
164
+ x-ratelimit-reset-tokens:
165
+ - 2ms
166
+ x-request-id:
167
+ - req_2682e45949f54774abd47f42473db9b6
168
+ status:
169
+ code: 200
170
+ message: OK
171
+ version: 1
@@ -0,0 +1,170 @@
1
+ interactions:
2
+ - request:
3
+ body: '{"contents": [{"parts": [{"text": "Who created you?"}], "role": "user"}]}'
4
+ headers:
5
+ accept:
6
+ - '*/*'
7
+ accept-encoding:
8
+ - gzip, deflate
9
+ connection:
10
+ - keep-alive
11
+ content-length:
12
+ - '73'
13
+ content-type:
14
+ - application/json
15
+ host:
16
+ - generativelanguage.googleapis.com
17
+ user-agent:
18
+ - google-genai-sdk/1.48.0 gl-python/3.10.16
19
+ x-goog-api-client:
20
+ - google-genai-sdk/1.48.0 gl-python/3.10.16
21
+ method: POST
22
+ uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
23
+ response:
24
+ body:
25
+ string: !!binary |
26
+ H4sIAAAAAAAC/2WQ0U/CMBDG3/dXNH0eBDAkxlc0BhIi6CIq8eG0x9asa5f2ZkDC/263MSi4h+Zy
27
+ 37fv7n77iDH+DVpIAYSO37G17zC2b95aM5pQkxe6lm+WYOnsbb99UHsL4bb+iU8ZFAyYApuif3Va
28
+ gS8KI1DFjCxIjYJ97dijManCPg9SDqf6Mz7PtkZhHdxEdPZDZ+AbqaXLnhGc0bXtJXla8JMqtcCt
29
+ bw+ibkATzSvnt5ojgacAp1t5aU1RUmJy1BNTNRTGbVbA7EIeDo86GQJ1Jd3G/2LdvR8qVQgz4Oxv
30
+ BCVpVx+SPLwlPOBAF1t1HKIAF6fMVGlGVxsORtERWMvwFa2TLawUC4+vN+qPexsFLmvmcYuuNNrh
31
+ VNSe2Xa+gveb1czs5I+YLvKP30m+XPLoEP0BOVRK+E0CAAA=
32
+ headers:
33
+ Alt-Svc:
34
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
35
+ Content-Encoding:
36
+ - gzip
37
+ Content-Type:
38
+ - application/json; charset=UTF-8
39
+ Date:
40
+ - Thu, 13 Nov 2025 17:19:35 GMT
41
+ Server:
42
+ - scaffolding on HTTPServer2
43
+ Server-Timing:
44
+ - gfet4t7; dur=1492
45
+ Transfer-Encoding:
46
+ - chunked
47
+ Vary:
48
+ - Origin
49
+ - X-Origin
50
+ - Referer
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Frame-Options:
54
+ - SAMEORIGIN
55
+ X-XSS-Protection:
56
+ - '0'
57
+ status:
58
+ code: 200
59
+ message: OK
60
+ - request:
61
+ body: '{"input":[{"content":"Who created you?","role":"user"},{"content":"I am
62
+ a large language model, trained by Google.","role":"assistant"},{"content":"Can
63
+ you double-check that?","role":"user"}],"model":"gpt-4o"}'
64
+ headers:
65
+ accept:
66
+ - application/json
67
+ accept-encoding:
68
+ - gzip, deflate
69
+ connection:
70
+ - keep-alive
71
+ content-length:
72
+ - '209'
73
+ content-type:
74
+ - application/json
75
+ host:
76
+ - api.openai.com
77
+ user-agent:
78
+ - OpenAI/Python 2.7.1
79
+ x-stainless-arch:
80
+ - arm64
81
+ x-stainless-async:
82
+ - 'false'
83
+ x-stainless-lang:
84
+ - python
85
+ x-stainless-os:
86
+ - MacOS
87
+ x-stainless-package-version:
88
+ - 2.7.1
89
+ x-stainless-read-timeout:
90
+ - '600'
91
+ x-stainless-retry-count:
92
+ - '0'
93
+ x-stainless-runtime:
94
+ - CPython
95
+ x-stainless-runtime-version:
96
+ - 3.10.16
97
+ method: POST
98
+ uri: https://api.openai.com/v1/responses
99
+ response:
100
+ body:
101
+ string: !!binary |
102
+ H4sIAAAAAAAAA3RUwW7bMAy95ysEnZvCTlInzm3HnnYeisGgZTrVKouCRGUNiv77YDl27LW5JXzU
103
+ M/nekz5WQkjdyKOQHoOrsrrFwy4rGrVVAE2ZZUWZF/l2c0AoDoe83NabPKsVFvW+qTd5A/Khp6D6
104
+ DyoeacgGHOrKIzA2FfRYvi+22dNuuy8SFhg4hv6Mos4ZZGyGQzWot5OnaPu5WjABh7I2RtuTPIqP
105
+ lRBCSAcX9P35Bs9oyKGXKyE+UzN6Tz1mozGpoO34lapBBm3CEg3so2JNdlHv4L2iyC5yxfSGX0Em
106
+ MpUCs6TrqEHTT3ZyvN7RepNtduvssM6Kq1yJUh7FS9pk2Gdyogun+0aAavOsN6Is8xLKvCye9vt2
107
+ W+wTc2Lhi8PEgyHACW/APcUTqMgy2ttQ88EWtKMe+M7T6dQA1hLDqOHL7wVo6OQ81d8giego5C8M
108
+ D+JZKLBCkW217wS/Aotn8ReCGD1uRH0RPx3aH8+PcqL5vP6amKUnk6aFEHRgsDw0942pSTrwYAya
109
+ pYXs45A25/GsKYZqDHSVzJksdp46x5UC9YrVG17uYh57WTXZeYdHCGQXaca2Jc+zpt6w2HXgR+4p
110
+ 3AFa5Eulm5641bgIekB/1gor1uPlaCGawSoZmDzO12TsHHrgmMr5Y3atJkuuk7XkO7j9n0Uh9Q26
111
+ Xic+o68paL4MAWx07G6XclD6lbQarIlMcgJuyZBMrprlJZuKbj6jj1bBVVjZ6AC1GV+QmHI/LaDt
112
+ 4gJvi4ev9dmrMK2ZDGxuB7PFqv+/C/nuO+A73sn9e9RMDOYGPmWThDEs3e6QoQGGnv5z9fkPAAD/
113
+ /wMAYLhtqNAFAAA=
114
+ headers:
115
+ CF-RAY:
116
+ - 99dfef5aad0992c7-CPH
117
+ Connection:
118
+ - keep-alive
119
+ Content-Encoding:
120
+ - gzip
121
+ Content-Type:
122
+ - application/json
123
+ Date:
124
+ - Thu, 13 Nov 2025 17:19:39 GMT
125
+ Server:
126
+ - cloudflare
127
+ Set-Cookie:
128
+ - __cf_bm=fMyvz.J3uQ2.mFqU9Kg.VQZdsbH8TbpuG7yPX_xC.f8-1763054379-1.0.1.1-p6Cv_CXW0OcGhXaq6F6YEcLMUra4OcuQ9klABb6Frxrg9O_Kl9C1tRwLTMxbSarlWxXxP5AhfCVz7oEiexBO0txNEOx8SuGCYivM74Tq8E8;
129
+ path=/; expires=Thu, 13-Nov-25 17:49:39 GMT; domain=.api.openai.com; HttpOnly;
130
+ Secure; SameSite=None
131
+ - _cfuvid=yFG2MXV4ltJVtqSS9OYKAYNp1tzxv2.QvtXwfZOdxM8-1763054379747-0.0.1.1-604800000;
132
+ path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
133
+ Strict-Transport-Security:
134
+ - max-age=31536000; includeSubDomains; preload
135
+ Transfer-Encoding:
136
+ - chunked
137
+ X-Content-Type-Options:
138
+ - nosniff
139
+ alt-svc:
140
+ - h3=":443"; ma=86400
141
+ cf-cache-status:
142
+ - DYNAMIC
143
+ openai-organization:
144
+ - sotai-i3ryiz
145
+ openai-processing-ms:
146
+ - '2765'
147
+ openai-project:
148
+ - proj_2kPLXdwNOjkHt3ifb0aZ4FwU
149
+ openai-version:
150
+ - '2020-10-01'
151
+ x-envoy-upstream-service-time:
152
+ - '2771'
153
+ x-ratelimit-limit-requests:
154
+ - '5000'
155
+ x-ratelimit-limit-tokens:
156
+ - '800000'
157
+ x-ratelimit-remaining-requests:
158
+ - '4999'
159
+ x-ratelimit-remaining-tokens:
160
+ - '799945'
161
+ x-ratelimit-reset-requests:
162
+ - 12ms
163
+ x-ratelimit-reset-tokens:
164
+ - 4ms
165
+ x-request-id:
166
+ - req_26be738cc641432b9b058d8263c18298
167
+ status:
168
+ code: 200
169
+ message: OK
170
+ version: 1
@@ -0,0 +1,180 @@
1
+ interactions:
2
+ - request:
3
+ body: '{"contents": [{"parts": [{"text": "What is the 100th fibonacci number?"}],
4
+ "role": "user"}], "tools": [{"functionDeclarations": [{"description": "Compute
5
+ the nth Fibonacci number (1-indexed).", "name": "compute_fib", "parameters":
6
+ {"properties": {"n": {"title": "N", "type": "INTEGER"}}, "required": ["n"],
7
+ "type": "OBJECT"}}]}], "generationConfig": {"thinkingConfig": {"include_thoughts":
8
+ true, "thinking_budget": -1}}}'
9
+ headers:
10
+ accept:
11
+ - '*/*'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ connection:
15
+ - keep-alive
16
+ content-length:
17
+ - '420'
18
+ content-type:
19
+ - application/json
20
+ host:
21
+ - generativelanguage.googleapis.com
22
+ user-agent:
23
+ - google-genai-sdk/1.48.0 gl-python/3.10.16
24
+ x-goog-api-client:
25
+ - google-genai-sdk/1.48.0 gl-python/3.10.16
26
+ method: POST
27
+ uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
28
+ response:
29
+ body:
30
+ string: !!binary |
31
+ H4sIAAAAAAAC/3VUXVfiSBB951f05mV3FRnAoLDnzINAEI4ERL5d94xNUklaOt2Y7oDE43/fShAH
32
+ HIeHHLq+7q1bXf2aI8RwqHCZSzUo4x/yL1oIec2+qU8KDUKjY29C44pG+mfs7vd68B9DNLykScbJ
33
+ SRf0n4o0KHdijhhkFFBNWmwhBXUcRnpxuIDoj5OTB/Eg+ku6zRMliQ6AxAoisqFCq+xYKhZ1cJAo
34
+ ssQ82QTMCQhTZBWB1luidESZH2hPRhsauQXSISwMwWUIzrckAkf6giWARZHIowsejbn+QVes4Mhw
35
+ FWv44bHFY1oxhdVScoK1ssOTXBQI6UkiAFx0YTUm1qhP5t0EADyPeCgoeYqVJhzWEFH/HQtemNJM
36
+ +MSLhaMZ9sGZ3hZQEcCeeZyaUljFwhUyxfIO5XyXu08hG4YqpGhMIFeCo6AhaFTqUTwSBTpNQ6mQ
37
+ puV5zGEpOZwvcRl2rsnZrpwKZMzRuFNaR8xZFh6Ekf80RIxCJXGOOorhwPeW//3k90xx4vzo2rz7
38
+ BfJNb8aB2J9wMYhGvvoiOU1HM/b3yfF2dH77uo8h8wXVcZTBN+JO/cptaxZWm2NP0MumJbrTWtMd
39
+ PFeF6S4sGRRbi9O6VUqKY9ccyPXYvYN+f9a8Op17q9KkPgsnV6Wg70/H7nxg94XZKar1/Q20zpPO
40
+ +aw9lD4vx7YZsLrseaPuyKzGl0O/EveqkfV0MbKvepw1W+3hbHBNk5mqXlZ63ZllbmfPT53pdFTS
41
+ y1HYmkD19u7Cvh7WnptqOqa3tZub6WDu9Lu2qkpveWG1zKlX3zTccck2zTmHZEDLp5Nt0a37QvRF
42
+ DWhyNZDn9TIM6yzmgk6Sa6t2ugic0sVLYi3mxa5jOZOb9XxdAbvWngYXfF39Ft/3Gsm3nii1gq0/
43
+ g/DO//7dyH2l+H8/1TYiyTN1Q+kC34d/jMPwmGAquAOqZDpHYzjq334M32DChRc0Fz/F26AULlGa
44
+ YKd1iQ8C10rjCn6sRbopf6m/CzvMlFxGy4jTTBs0xfeNftwoYxXh7dMjuQTRkHH2vlUqO9iD5/DI
45
+ X7p892upKT92lc38L3VVE1EZP3wnD55QFCjb/rSpkTUbHawAAhzR2quYOxB7f6WPKVbKuXe1dwOY
46
+ QKTYTmkfQtTyrFyonHmcqiDDMyJQKykUdNw0pntnT+l9s9dx+slLr3obOO2GOVBG7i33P2dzlK0o
47
+ BgAA
48
+ headers:
49
+ Alt-Svc:
50
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
51
+ Content-Encoding:
52
+ - gzip
53
+ Content-Type:
54
+ - application/json; charset=UTF-8
55
+ Date:
56
+ - Thu, 13 Nov 2025 17:19:41 GMT
57
+ Server:
58
+ - scaffolding on HTTPServer2
59
+ Server-Timing:
60
+ - gfet4t7; dur=1787
61
+ Transfer-Encoding:
62
+ - chunked
63
+ Vary:
64
+ - Origin
65
+ - X-Origin
66
+ - Referer
67
+ X-Content-Type-Options:
68
+ - nosniff
69
+ X-Frame-Options:
70
+ - SAMEORIGIN
71
+ X-XSS-Protection:
72
+ - '0'
73
+ status:
74
+ code: 200
75
+ message: OK
76
+ - request:
77
+ body: '{"messages":[{"role":"user","content":"What is the 100th fibonacci number?"},{"role":"assistant","content":null,"tool_calls":[{"id":"google_unknown_tool_id","type":"function","function":{"name":"compute_fib","arguments":"{\"n\":
78
+ 100}"}}]},{"role":"tool","content":"218922995834555169026","tool_call_id":"google_unknown_tool_id"}],"model":"gpt-4o","tools":[{"type":"function","function":{"name":"compute_fib","description":"Compute
79
+ the nth Fibonacci number (1-indexed).","parameters":{"properties":{"n":{"title":"N","type":"integer"}},"required":["n"],"additionalProperties":false,"type":"object"},"strict":false}}]}'
80
+ headers:
81
+ accept:
82
+ - application/json
83
+ accept-encoding:
84
+ - gzip, deflate
85
+ connection:
86
+ - keep-alive
87
+ content-length:
88
+ - '615'
89
+ content-type:
90
+ - application/json
91
+ host:
92
+ - api.openai.com
93
+ user-agent:
94
+ - OpenAI/Python 2.7.1
95
+ x-stainless-arch:
96
+ - arm64
97
+ x-stainless-async:
98
+ - 'false'
99
+ x-stainless-lang:
100
+ - python
101
+ x-stainless-os:
102
+ - MacOS
103
+ x-stainless-package-version:
104
+ - 2.7.1
105
+ x-stainless-read-timeout:
106
+ - '600'
107
+ x-stainless-retry-count:
108
+ - '0'
109
+ x-stainless-runtime:
110
+ - CPython
111
+ x-stainless-runtime-version:
112
+ - 3.10.16
113
+ method: POST
114
+ uri: https://api.openai.com/v1/chat/completions
115
+ response:
116
+ body:
117
+ string: !!binary |
118
+ H4sIAAAAAAAAA4xSTW/dIBC8+1cgzjjy97PfMZHSY3uoUqlVZGFY2yQYEOCkVfT+e4X98uykqZQL
119
+ h52dYWZ3XyKEsOD4iDAbqWeTkfFNd/fl+fppevj6jT+reWhydfNY/rjrb2X5E5PA0N0DMP/KumJ6
120
+ MhK80GqFmQXqIaimhypPyiKvswWYNAcZaIPxcaHjLMmKOKnjpDoTRy0YOHxEvyKEEHpZ3mBRcfiN
121
+ jyghr5UJnKMD4OOlCSFstQwVTJ0TzlPlMdlAppUHtbj+PgJKk8SP6FZ0WlHGBFLz1IFFwqEsrUmT
122
+ ZaRpSlLnBSnLkqRVQ5KsutoLWuhnR0MeNUu5A6hS2tMwjyXK/Rk5XcxLPRirO/eOinuhhBtbC9Rp
123
+ FYw6rw1e0FOE0P0ypPlNbmysnoxvvX6E5bsmXeXwtpUNzPIz6LWncqunaUE+kGs5eCqk200ZM8pG
124
+ 4Bt1WwmdudA7INqF/tfNR9prcKGGz8hvAGNgPPDWWOCCvU28tVkIR/u/tsuQF8PYgX0SDFovwIZF
125
+ cOjpLNd7wu6P8zC1vVADWGPFelS9aVnXp4e6LKsDjk7RXwAAAP//AwB8pc73XQMAAA==
126
+ headers:
127
+ CF-RAY:
128
+ - 99dfef7e8b9debcd-CPH
129
+ Connection:
130
+ - keep-alive
131
+ Content-Encoding:
132
+ - gzip
133
+ Content-Type:
134
+ - application/json
135
+ Date:
136
+ - Thu, 13 Nov 2025 17:19:43 GMT
137
+ Server:
138
+ - cloudflare
139
+ Strict-Transport-Security:
140
+ - max-age=31536000; includeSubDomains; preload
141
+ Transfer-Encoding:
142
+ - chunked
143
+ X-Content-Type-Options:
144
+ - nosniff
145
+ access-control-expose-headers:
146
+ - X-Request-ID
147
+ alt-svc:
148
+ - h3=":443"; ma=86400
149
+ cf-cache-status:
150
+ - DYNAMIC
151
+ openai-organization:
152
+ - sotai-i3ryiz
153
+ openai-processing-ms:
154
+ - '516'
155
+ openai-project:
156
+ - proj_2kPLXdwNOjkHt3ifb0aZ4FwU
157
+ openai-version:
158
+ - '2020-10-01'
159
+ x-envoy-upstream-service-time:
160
+ - '872'
161
+ x-openai-proxy-wasm:
162
+ - v0.1
163
+ x-ratelimit-limit-requests:
164
+ - '5000'
165
+ x-ratelimit-limit-tokens:
166
+ - '800000'
167
+ x-ratelimit-remaining-requests:
168
+ - '4999'
169
+ x-ratelimit-remaining-tokens:
170
+ - '799982'
171
+ x-ratelimit-reset-requests:
172
+ - 12ms
173
+ x-ratelimit-reset-tokens:
174
+ - 1ms
175
+ x-request-id:
176
+ - req_8b144e1b8e8b469ea736d01e2dbb7fc1
177
+ status:
178
+ code: 200
179
+ message: OK
180
+ version: 1