mirascope 1.25.7__py3-none-any.whl → 2.0.0a0__py3-none-any.whl

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 (474) hide show
  1. mirascope/__init__.py +3 -59
  2. mirascope/graphs/__init__.py +22 -0
  3. mirascope/{experimental/graphs → graphs}/finite_state_machine.py +70 -159
  4. mirascope/llm/__init__.py +206 -16
  5. mirascope/llm/agents/__init__.py +15 -0
  6. mirascope/llm/agents/agent.py +97 -0
  7. mirascope/llm/agents/agent_template.py +45 -0
  8. mirascope/llm/agents/decorator.py +176 -0
  9. mirascope/llm/calls/__init__.py +16 -0
  10. mirascope/llm/calls/base_call.py +33 -0
  11. mirascope/llm/calls/calls.py +315 -0
  12. mirascope/llm/calls/decorator.py +255 -0
  13. mirascope/llm/clients/__init__.py +34 -0
  14. mirascope/llm/clients/anthropic/__init__.py +11 -0
  15. mirascope/llm/clients/anthropic/_utils/__init__.py +13 -0
  16. mirascope/llm/clients/anthropic/_utils/decode.py +244 -0
  17. mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
  18. mirascope/llm/clients/anthropic/clients.py +819 -0
  19. mirascope/llm/clients/anthropic/model_ids.py +8 -0
  20. mirascope/llm/clients/base/__init__.py +15 -0
  21. mirascope/llm/clients/base/_utils.py +192 -0
  22. mirascope/llm/clients/base/client.py +1256 -0
  23. mirascope/llm/clients/base/kwargs.py +12 -0
  24. mirascope/llm/clients/base/params.py +93 -0
  25. mirascope/llm/clients/google/__init__.py +6 -0
  26. mirascope/llm/clients/google/_utils/__init__.py +13 -0
  27. mirascope/llm/clients/google/_utils/decode.py +231 -0
  28. mirascope/llm/clients/google/_utils/encode.py +279 -0
  29. mirascope/llm/clients/google/clients.py +853 -0
  30. mirascope/llm/clients/google/message.py +7 -0
  31. mirascope/llm/clients/google/model_ids.py +15 -0
  32. mirascope/llm/clients/openai/__init__.py +25 -0
  33. mirascope/llm/clients/openai/completions/__init__.py +9 -0
  34. mirascope/llm/clients/openai/completions/_utils/__init__.py +13 -0
  35. mirascope/llm/clients/openai/completions/_utils/decode.py +187 -0
  36. mirascope/llm/clients/openai/completions/_utils/encode.py +358 -0
  37. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  38. mirascope/llm/clients/openai/completions/clients.py +833 -0
  39. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  40. mirascope/llm/clients/openai/responses/__init__.py +9 -0
  41. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  42. mirascope/llm/clients/openai/responses/_utils/decode.py +194 -0
  43. mirascope/llm/clients/openai/responses/_utils/encode.py +333 -0
  44. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  45. mirascope/llm/clients/openai/responses/clients.py +832 -0
  46. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  47. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  48. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  49. mirascope/llm/clients/providers.py +175 -0
  50. mirascope/llm/content/__init__.py +70 -0
  51. mirascope/llm/content/audio.py +173 -0
  52. mirascope/llm/content/document.py +94 -0
  53. mirascope/llm/content/image.py +206 -0
  54. mirascope/llm/content/text.py +47 -0
  55. mirascope/llm/content/thought.py +58 -0
  56. mirascope/llm/content/tool_call.py +63 -0
  57. mirascope/llm/content/tool_output.py +26 -0
  58. mirascope/llm/context/__init__.py +6 -0
  59. mirascope/llm/context/_utils.py +28 -0
  60. mirascope/llm/context/context.py +24 -0
  61. mirascope/llm/exceptions.py +105 -0
  62. mirascope/llm/formatting/__init__.py +22 -0
  63. mirascope/llm/formatting/_utils.py +74 -0
  64. mirascope/llm/formatting/format.py +104 -0
  65. mirascope/llm/formatting/from_call_args.py +30 -0
  66. mirascope/llm/formatting/partial.py +58 -0
  67. mirascope/llm/formatting/types.py +109 -0
  68. mirascope/llm/mcp/__init__.py +5 -0
  69. mirascope/llm/mcp/client.py +118 -0
  70. mirascope/llm/messages/__init__.py +32 -0
  71. mirascope/llm/messages/message.py +182 -0
  72. mirascope/llm/models/__init__.py +16 -0
  73. mirascope/llm/models/models.py +1243 -0
  74. mirascope/llm/prompts/__init__.py +33 -0
  75. mirascope/llm/prompts/_utils.py +60 -0
  76. mirascope/llm/prompts/decorator.py +286 -0
  77. mirascope/llm/prompts/protocols.py +99 -0
  78. mirascope/llm/responses/__init__.py +57 -0
  79. mirascope/llm/responses/_utils.py +56 -0
  80. mirascope/llm/responses/base_response.py +91 -0
  81. mirascope/llm/responses/base_stream_response.py +697 -0
  82. mirascope/llm/responses/finish_reason.py +27 -0
  83. mirascope/llm/responses/response.py +345 -0
  84. mirascope/llm/responses/root_response.py +177 -0
  85. mirascope/llm/responses/stream_response.py +572 -0
  86. mirascope/llm/responses/streams.py +363 -0
  87. mirascope/llm/tools/__init__.py +40 -0
  88. mirascope/llm/tools/_utils.py +25 -0
  89. mirascope/llm/tools/decorator.py +175 -0
  90. mirascope/llm/tools/protocols.py +96 -0
  91. mirascope/llm/tools/tool_schema.py +246 -0
  92. mirascope/llm/tools/toolkit.py +152 -0
  93. mirascope/llm/tools/tools.py +169 -0
  94. mirascope/llm/types/__init__.py +22 -0
  95. mirascope/llm/types/dataclass.py +9 -0
  96. mirascope/llm/types/jsonable.py +44 -0
  97. mirascope/llm/types/type_vars.py +19 -0
  98. mirascope-2.0.0a0.dist-info/METADATA +117 -0
  99. mirascope-2.0.0a0.dist-info/RECORD +101 -0
  100. mirascope/beta/__init__.py +0 -3
  101. mirascope/beta/openai/__init__.py +0 -17
  102. mirascope/beta/openai/realtime/__init__.py +0 -13
  103. mirascope/beta/openai/realtime/_utils/__init__.py +0 -3
  104. mirascope/beta/openai/realtime/_utils/_audio.py +0 -74
  105. mirascope/beta/openai/realtime/_utils/_protocols.py +0 -50
  106. mirascope/beta/openai/realtime/realtime.py +0 -500
  107. mirascope/beta/openai/realtime/recording.py +0 -98
  108. mirascope/beta/openai/realtime/tool.py +0 -113
  109. mirascope/beta/rag/__init__.py +0 -24
  110. mirascope/beta/rag/base/__init__.py +0 -22
  111. mirascope/beta/rag/base/chunkers/__init__.py +0 -2
  112. mirascope/beta/rag/base/chunkers/base_chunker.py +0 -37
  113. mirascope/beta/rag/base/chunkers/text_chunker.py +0 -33
  114. mirascope/beta/rag/base/config.py +0 -8
  115. mirascope/beta/rag/base/document.py +0 -11
  116. mirascope/beta/rag/base/embedders.py +0 -35
  117. mirascope/beta/rag/base/embedding_params.py +0 -18
  118. mirascope/beta/rag/base/embedding_response.py +0 -30
  119. mirascope/beta/rag/base/query_results.py +0 -7
  120. mirascope/beta/rag/base/vectorstore_params.py +0 -18
  121. mirascope/beta/rag/base/vectorstores.py +0 -37
  122. mirascope/beta/rag/chroma/__init__.py +0 -11
  123. mirascope/beta/rag/chroma/types.py +0 -62
  124. mirascope/beta/rag/chroma/vectorstores.py +0 -121
  125. mirascope/beta/rag/cohere/__init__.py +0 -11
  126. mirascope/beta/rag/cohere/embedders.py +0 -87
  127. mirascope/beta/rag/cohere/embedding_params.py +0 -29
  128. mirascope/beta/rag/cohere/embedding_response.py +0 -29
  129. mirascope/beta/rag/cohere/py.typed +0 -0
  130. mirascope/beta/rag/openai/__init__.py +0 -11
  131. mirascope/beta/rag/openai/embedders.py +0 -144
  132. mirascope/beta/rag/openai/embedding_params.py +0 -18
  133. mirascope/beta/rag/openai/embedding_response.py +0 -14
  134. mirascope/beta/rag/openai/py.typed +0 -0
  135. mirascope/beta/rag/pinecone/__init__.py +0 -19
  136. mirascope/beta/rag/pinecone/types.py +0 -143
  137. mirascope/beta/rag/pinecone/vectorstores.py +0 -148
  138. mirascope/beta/rag/weaviate/__init__.py +0 -6
  139. mirascope/beta/rag/weaviate/types.py +0 -92
  140. mirascope/beta/rag/weaviate/vectorstores.py +0 -103
  141. mirascope/core/__init__.py +0 -109
  142. mirascope/core/anthropic/__init__.py +0 -31
  143. mirascope/core/anthropic/_call.py +0 -67
  144. mirascope/core/anthropic/_call_kwargs.py +0 -13
  145. mirascope/core/anthropic/_thinking.py +0 -70
  146. mirascope/core/anthropic/_utils/__init__.py +0 -16
  147. mirascope/core/anthropic/_utils/_convert_common_call_params.py +0 -25
  148. mirascope/core/anthropic/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -21
  149. mirascope/core/anthropic/_utils/_convert_message_params.py +0 -102
  150. mirascope/core/anthropic/_utils/_get_json_output.py +0 -31
  151. mirascope/core/anthropic/_utils/_handle_stream.py +0 -113
  152. mirascope/core/anthropic/_utils/_message_param_converter.py +0 -154
  153. mirascope/core/anthropic/_utils/_setup_call.py +0 -146
  154. mirascope/core/anthropic/call_params.py +0 -44
  155. mirascope/core/anthropic/call_response.py +0 -226
  156. mirascope/core/anthropic/call_response_chunk.py +0 -152
  157. mirascope/core/anthropic/dynamic_config.py +0 -40
  158. mirascope/core/anthropic/py.typed +0 -0
  159. mirascope/core/anthropic/stream.py +0 -204
  160. mirascope/core/anthropic/tool.py +0 -101
  161. mirascope/core/azure/__init__.py +0 -31
  162. mirascope/core/azure/_call.py +0 -67
  163. mirascope/core/azure/_call_kwargs.py +0 -13
  164. mirascope/core/azure/_utils/__init__.py +0 -14
  165. mirascope/core/azure/_utils/_convert_common_call_params.py +0 -26
  166. mirascope/core/azure/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -21
  167. mirascope/core/azure/_utils/_convert_message_params.py +0 -121
  168. mirascope/core/azure/_utils/_get_credential.py +0 -33
  169. mirascope/core/azure/_utils/_get_json_output.py +0 -27
  170. mirascope/core/azure/_utils/_handle_stream.py +0 -130
  171. mirascope/core/azure/_utils/_message_param_converter.py +0 -117
  172. mirascope/core/azure/_utils/_setup_call.py +0 -183
  173. mirascope/core/azure/call_params.py +0 -59
  174. mirascope/core/azure/call_response.py +0 -215
  175. mirascope/core/azure/call_response_chunk.py +0 -105
  176. mirascope/core/azure/dynamic_config.py +0 -30
  177. mirascope/core/azure/py.typed +0 -0
  178. mirascope/core/azure/stream.py +0 -147
  179. mirascope/core/azure/tool.py +0 -93
  180. mirascope/core/base/__init__.py +0 -86
  181. mirascope/core/base/_call_factory.py +0 -256
  182. mirascope/core/base/_create.py +0 -253
  183. mirascope/core/base/_extract.py +0 -175
  184. mirascope/core/base/_extract_with_tools.py +0 -189
  185. mirascope/core/base/_partial.py +0 -95
  186. mirascope/core/base/_utils/__init__.py +0 -92
  187. mirascope/core/base/_utils/_base_message_param_converter.py +0 -22
  188. mirascope/core/base/_utils/_base_type.py +0 -26
  189. mirascope/core/base/_utils/_convert_base_model_to_base_tool.py +0 -48
  190. mirascope/core/base/_utils/_convert_base_type_to_base_tool.py +0 -24
  191. mirascope/core/base/_utils/_convert_function_to_base_tool.py +0 -139
  192. mirascope/core/base/_utils/_convert_messages_to_message_params.py +0 -178
  193. mirascope/core/base/_utils/_convert_provider_finish_reason_to_finish_reason.py +0 -20
  194. mirascope/core/base/_utils/_default_tool_docstring.py +0 -6
  195. mirascope/core/base/_utils/_extract_tool_return.py +0 -42
  196. mirascope/core/base/_utils/_fn_is_async.py +0 -24
  197. mirascope/core/base/_utils/_format_template.py +0 -32
  198. mirascope/core/base/_utils/_get_audio_type.py +0 -18
  199. mirascope/core/base/_utils/_get_common_usage.py +0 -20
  200. mirascope/core/base/_utils/_get_create_fn_or_async_create_fn.py +0 -137
  201. mirascope/core/base/_utils/_get_document_type.py +0 -7
  202. mirascope/core/base/_utils/_get_dynamic_configuration.py +0 -69
  203. mirascope/core/base/_utils/_get_fields_from_call_args.py +0 -34
  204. mirascope/core/base/_utils/_get_fn_args.py +0 -23
  205. mirascope/core/base/_utils/_get_image_dimensions.py +0 -39
  206. mirascope/core/base/_utils/_get_image_type.py +0 -26
  207. mirascope/core/base/_utils/_get_metadata.py +0 -17
  208. mirascope/core/base/_utils/_get_possible_user_message_param.py +0 -21
  209. mirascope/core/base/_utils/_get_prompt_template.py +0 -28
  210. mirascope/core/base/_utils/_get_template_values.py +0 -51
  211. mirascope/core/base/_utils/_get_template_variables.py +0 -38
  212. mirascope/core/base/_utils/_get_unsupported_tool_config_keys.py +0 -10
  213. mirascope/core/base/_utils/_is_prompt_template.py +0 -24
  214. mirascope/core/base/_utils/_json_mode_content.py +0 -17
  215. mirascope/core/base/_utils/_messages_decorator.py +0 -121
  216. mirascope/core/base/_utils/_parse_content_template.py +0 -323
  217. mirascope/core/base/_utils/_parse_prompt_messages.py +0 -63
  218. mirascope/core/base/_utils/_pil_image_to_bytes.py +0 -13
  219. mirascope/core/base/_utils/_protocols.py +0 -901
  220. mirascope/core/base/_utils/_setup_call.py +0 -79
  221. mirascope/core/base/_utils/_setup_extract_tool.py +0 -30
  222. mirascope/core/base/call_kwargs.py +0 -13
  223. mirascope/core/base/call_params.py +0 -36
  224. mirascope/core/base/call_response.py +0 -338
  225. mirascope/core/base/call_response_chunk.py +0 -130
  226. mirascope/core/base/dynamic_config.py +0 -82
  227. mirascope/core/base/from_call_args.py +0 -30
  228. mirascope/core/base/merge_decorators.py +0 -59
  229. mirascope/core/base/message_param.py +0 -175
  230. mirascope/core/base/messages.py +0 -116
  231. mirascope/core/base/metadata.py +0 -13
  232. mirascope/core/base/prompt.py +0 -497
  233. mirascope/core/base/response_model_config_dict.py +0 -9
  234. mirascope/core/base/stream.py +0 -479
  235. mirascope/core/base/stream_config.py +0 -11
  236. mirascope/core/base/structured_stream.py +0 -296
  237. mirascope/core/base/tool.py +0 -214
  238. mirascope/core/base/toolkit.py +0 -176
  239. mirascope/core/base/types.py +0 -344
  240. mirascope/core/bedrock/__init__.py +0 -34
  241. mirascope/core/bedrock/_call.py +0 -68
  242. mirascope/core/bedrock/_call_kwargs.py +0 -12
  243. mirascope/core/bedrock/_types.py +0 -104
  244. mirascope/core/bedrock/_utils/__init__.py +0 -14
  245. mirascope/core/bedrock/_utils/_convert_common_call_params.py +0 -39
  246. mirascope/core/bedrock/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -23
  247. mirascope/core/bedrock/_utils/_convert_message_params.py +0 -111
  248. mirascope/core/bedrock/_utils/_get_json_output.py +0 -30
  249. mirascope/core/bedrock/_utils/_handle_stream.py +0 -104
  250. mirascope/core/bedrock/_utils/_message_param_converter.py +0 -172
  251. mirascope/core/bedrock/_utils/_setup_call.py +0 -258
  252. mirascope/core/bedrock/call_params.py +0 -38
  253. mirascope/core/bedrock/call_response.py +0 -248
  254. mirascope/core/bedrock/call_response_chunk.py +0 -111
  255. mirascope/core/bedrock/dynamic_config.py +0 -37
  256. mirascope/core/bedrock/py.typed +0 -0
  257. mirascope/core/bedrock/stream.py +0 -154
  258. mirascope/core/bedrock/tool.py +0 -100
  259. mirascope/core/cohere/__init__.py +0 -30
  260. mirascope/core/cohere/_call.py +0 -67
  261. mirascope/core/cohere/_call_kwargs.py +0 -11
  262. mirascope/core/cohere/_types.py +0 -20
  263. mirascope/core/cohere/_utils/__init__.py +0 -14
  264. mirascope/core/cohere/_utils/_convert_common_call_params.py +0 -26
  265. mirascope/core/cohere/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -24
  266. mirascope/core/cohere/_utils/_convert_message_params.py +0 -32
  267. mirascope/core/cohere/_utils/_get_json_output.py +0 -30
  268. mirascope/core/cohere/_utils/_handle_stream.py +0 -35
  269. mirascope/core/cohere/_utils/_message_param_converter.py +0 -54
  270. mirascope/core/cohere/_utils/_setup_call.py +0 -150
  271. mirascope/core/cohere/call_params.py +0 -62
  272. mirascope/core/cohere/call_response.py +0 -205
  273. mirascope/core/cohere/call_response_chunk.py +0 -125
  274. mirascope/core/cohere/dynamic_config.py +0 -32
  275. mirascope/core/cohere/py.typed +0 -0
  276. mirascope/core/cohere/stream.py +0 -113
  277. mirascope/core/cohere/tool.py +0 -93
  278. mirascope/core/costs/__init__.py +0 -5
  279. mirascope/core/costs/_anthropic_calculate_cost.py +0 -219
  280. mirascope/core/costs/_azure_calculate_cost.py +0 -11
  281. mirascope/core/costs/_bedrock_calculate_cost.py +0 -15
  282. mirascope/core/costs/_cohere_calculate_cost.py +0 -44
  283. mirascope/core/costs/_gemini_calculate_cost.py +0 -67
  284. mirascope/core/costs/_google_calculate_cost.py +0 -427
  285. mirascope/core/costs/_groq_calculate_cost.py +0 -156
  286. mirascope/core/costs/_litellm_calculate_cost.py +0 -11
  287. mirascope/core/costs/_mistral_calculate_cost.py +0 -64
  288. mirascope/core/costs/_openai_calculate_cost.py +0 -416
  289. mirascope/core/costs/_vertex_calculate_cost.py +0 -67
  290. mirascope/core/costs/_xai_calculate_cost.py +0 -104
  291. mirascope/core/costs/calculate_cost.py +0 -86
  292. mirascope/core/gemini/__init__.py +0 -40
  293. mirascope/core/gemini/_call.py +0 -67
  294. mirascope/core/gemini/_call_kwargs.py +0 -12
  295. mirascope/core/gemini/_utils/__init__.py +0 -14
  296. mirascope/core/gemini/_utils/_convert_common_call_params.py +0 -39
  297. mirascope/core/gemini/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -23
  298. mirascope/core/gemini/_utils/_convert_message_params.py +0 -156
  299. mirascope/core/gemini/_utils/_get_json_output.py +0 -35
  300. mirascope/core/gemini/_utils/_handle_stream.py +0 -33
  301. mirascope/core/gemini/_utils/_message_param_converter.py +0 -209
  302. mirascope/core/gemini/_utils/_setup_call.py +0 -149
  303. mirascope/core/gemini/call_params.py +0 -52
  304. mirascope/core/gemini/call_response.py +0 -216
  305. mirascope/core/gemini/call_response_chunk.py +0 -100
  306. mirascope/core/gemini/dynamic_config.py +0 -26
  307. mirascope/core/gemini/stream.py +0 -120
  308. mirascope/core/gemini/tool.py +0 -104
  309. mirascope/core/google/__init__.py +0 -29
  310. mirascope/core/google/_call.py +0 -67
  311. mirascope/core/google/_call_kwargs.py +0 -13
  312. mirascope/core/google/_utils/__init__.py +0 -14
  313. mirascope/core/google/_utils/_convert_common_call_params.py +0 -38
  314. mirascope/core/google/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -27
  315. mirascope/core/google/_utils/_convert_message_params.py +0 -297
  316. mirascope/core/google/_utils/_get_json_output.py +0 -37
  317. mirascope/core/google/_utils/_handle_stream.py +0 -58
  318. mirascope/core/google/_utils/_message_param_converter.py +0 -200
  319. mirascope/core/google/_utils/_setup_call.py +0 -201
  320. mirascope/core/google/_utils/_validate_media_type.py +0 -58
  321. mirascope/core/google/call_params.py +0 -22
  322. mirascope/core/google/call_response.py +0 -255
  323. mirascope/core/google/call_response_chunk.py +0 -135
  324. mirascope/core/google/dynamic_config.py +0 -26
  325. mirascope/core/google/stream.py +0 -199
  326. mirascope/core/google/tool.py +0 -146
  327. mirascope/core/groq/__init__.py +0 -30
  328. mirascope/core/groq/_call.py +0 -67
  329. mirascope/core/groq/_call_kwargs.py +0 -13
  330. mirascope/core/groq/_utils/__init__.py +0 -14
  331. mirascope/core/groq/_utils/_convert_common_call_params.py +0 -26
  332. mirascope/core/groq/_utils/_convert_message_params.py +0 -112
  333. mirascope/core/groq/_utils/_get_json_output.py +0 -27
  334. mirascope/core/groq/_utils/_handle_stream.py +0 -123
  335. mirascope/core/groq/_utils/_message_param_converter.py +0 -89
  336. mirascope/core/groq/_utils/_setup_call.py +0 -132
  337. mirascope/core/groq/call_params.py +0 -52
  338. mirascope/core/groq/call_response.py +0 -213
  339. mirascope/core/groq/call_response_chunk.py +0 -104
  340. mirascope/core/groq/dynamic_config.py +0 -29
  341. mirascope/core/groq/py.typed +0 -0
  342. mirascope/core/groq/stream.py +0 -135
  343. mirascope/core/groq/tool.py +0 -80
  344. mirascope/core/litellm/__init__.py +0 -28
  345. mirascope/core/litellm/_call.py +0 -67
  346. mirascope/core/litellm/_utils/__init__.py +0 -5
  347. mirascope/core/litellm/_utils/_setup_call.py +0 -109
  348. mirascope/core/litellm/call_params.py +0 -10
  349. mirascope/core/litellm/call_response.py +0 -24
  350. mirascope/core/litellm/call_response_chunk.py +0 -14
  351. mirascope/core/litellm/dynamic_config.py +0 -8
  352. mirascope/core/litellm/py.typed +0 -0
  353. mirascope/core/litellm/stream.py +0 -86
  354. mirascope/core/litellm/tool.py +0 -13
  355. mirascope/core/mistral/__init__.py +0 -36
  356. mirascope/core/mistral/_call.py +0 -65
  357. mirascope/core/mistral/_call_kwargs.py +0 -19
  358. mirascope/core/mistral/_utils/__init__.py +0 -14
  359. mirascope/core/mistral/_utils/_convert_common_call_params.py +0 -24
  360. mirascope/core/mistral/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -22
  361. mirascope/core/mistral/_utils/_convert_message_params.py +0 -122
  362. mirascope/core/mistral/_utils/_get_json_output.py +0 -34
  363. mirascope/core/mistral/_utils/_handle_stream.py +0 -139
  364. mirascope/core/mistral/_utils/_message_param_converter.py +0 -176
  365. mirascope/core/mistral/_utils/_setup_call.py +0 -164
  366. mirascope/core/mistral/call_params.py +0 -36
  367. mirascope/core/mistral/call_response.py +0 -205
  368. mirascope/core/mistral/call_response_chunk.py +0 -105
  369. mirascope/core/mistral/dynamic_config.py +0 -33
  370. mirascope/core/mistral/py.typed +0 -0
  371. mirascope/core/mistral/stream.py +0 -120
  372. mirascope/core/mistral/tool.py +0 -81
  373. mirascope/core/openai/__init__.py +0 -31
  374. mirascope/core/openai/_call.py +0 -67
  375. mirascope/core/openai/_call_kwargs.py +0 -13
  376. mirascope/core/openai/_utils/__init__.py +0 -14
  377. mirascope/core/openai/_utils/_convert_common_call_params.py +0 -26
  378. mirascope/core/openai/_utils/_convert_message_params.py +0 -148
  379. mirascope/core/openai/_utils/_get_json_output.py +0 -31
  380. mirascope/core/openai/_utils/_handle_stream.py +0 -138
  381. mirascope/core/openai/_utils/_message_param_converter.py +0 -105
  382. mirascope/core/openai/_utils/_setup_call.py +0 -155
  383. mirascope/core/openai/call_params.py +0 -92
  384. mirascope/core/openai/call_response.py +0 -273
  385. mirascope/core/openai/call_response_chunk.py +0 -139
  386. mirascope/core/openai/dynamic_config.py +0 -34
  387. mirascope/core/openai/py.typed +0 -0
  388. mirascope/core/openai/stream.py +0 -185
  389. mirascope/core/openai/tool.py +0 -101
  390. mirascope/core/py.typed +0 -0
  391. mirascope/core/vertex/__init__.py +0 -45
  392. mirascope/core/vertex/_call.py +0 -62
  393. mirascope/core/vertex/_call_kwargs.py +0 -12
  394. mirascope/core/vertex/_utils/__init__.py +0 -14
  395. mirascope/core/vertex/_utils/_convert_common_call_params.py +0 -37
  396. mirascope/core/vertex/_utils/_convert_finish_reason_to_common_finish_reasons.py +0 -23
  397. mirascope/core/vertex/_utils/_convert_message_params.py +0 -171
  398. mirascope/core/vertex/_utils/_get_json_output.py +0 -36
  399. mirascope/core/vertex/_utils/_handle_stream.py +0 -33
  400. mirascope/core/vertex/_utils/_message_param_converter.py +0 -133
  401. mirascope/core/vertex/_utils/_setup_call.py +0 -160
  402. mirascope/core/vertex/call_params.py +0 -24
  403. mirascope/core/vertex/call_response.py +0 -206
  404. mirascope/core/vertex/call_response_chunk.py +0 -99
  405. mirascope/core/vertex/dynamic_config.py +0 -28
  406. mirascope/core/vertex/stream.py +0 -119
  407. mirascope/core/vertex/tool.py +0 -101
  408. mirascope/core/xai/__init__.py +0 -28
  409. mirascope/core/xai/_call.py +0 -67
  410. mirascope/core/xai/_utils/__init__.py +0 -5
  411. mirascope/core/xai/_utils/_setup_call.py +0 -113
  412. mirascope/core/xai/call_params.py +0 -10
  413. mirascope/core/xai/call_response.py +0 -16
  414. mirascope/core/xai/call_response_chunk.py +0 -14
  415. mirascope/core/xai/dynamic_config.py +0 -8
  416. mirascope/core/xai/py.typed +0 -0
  417. mirascope/core/xai/stream.py +0 -57
  418. mirascope/core/xai/tool.py +0 -13
  419. mirascope/experimental/graphs/__init__.py +0 -5
  420. mirascope/integrations/__init__.py +0 -16
  421. mirascope/integrations/_middleware_factory.py +0 -403
  422. mirascope/integrations/langfuse/__init__.py +0 -3
  423. mirascope/integrations/langfuse/_utils.py +0 -114
  424. mirascope/integrations/langfuse/_with_langfuse.py +0 -70
  425. mirascope/integrations/logfire/__init__.py +0 -3
  426. mirascope/integrations/logfire/_utils.py +0 -225
  427. mirascope/integrations/logfire/_with_logfire.py +0 -63
  428. mirascope/integrations/otel/__init__.py +0 -10
  429. mirascope/integrations/otel/_utils.py +0 -270
  430. mirascope/integrations/otel/_with_hyperdx.py +0 -60
  431. mirascope/integrations/otel/_with_otel.py +0 -59
  432. mirascope/integrations/tenacity.py +0 -14
  433. mirascope/llm/_call.py +0 -401
  434. mirascope/llm/_context.py +0 -384
  435. mirascope/llm/_override.py +0 -3639
  436. mirascope/llm/_protocols.py +0 -500
  437. mirascope/llm/_response_metaclass.py +0 -31
  438. mirascope/llm/call_response.py +0 -158
  439. mirascope/llm/call_response_chunk.py +0 -66
  440. mirascope/llm/stream.py +0 -162
  441. mirascope/llm/tool.py +0 -64
  442. mirascope/mcp/__init__.py +0 -7
  443. mirascope/mcp/_utils.py +0 -288
  444. mirascope/mcp/client.py +0 -167
  445. mirascope/mcp/server.py +0 -356
  446. mirascope/mcp/tools.py +0 -110
  447. mirascope/py.typed +0 -0
  448. mirascope/retries/__init__.py +0 -11
  449. mirascope/retries/fallback.py +0 -131
  450. mirascope/retries/tenacity.py +0 -50
  451. mirascope/tools/__init__.py +0 -37
  452. mirascope/tools/base.py +0 -98
  453. mirascope/tools/system/__init__.py +0 -0
  454. mirascope/tools/system/_docker_operation.py +0 -166
  455. mirascope/tools/system/_file_system.py +0 -267
  456. mirascope/tools/web/__init__.py +0 -0
  457. mirascope/tools/web/_duckduckgo.py +0 -111
  458. mirascope/tools/web/_httpx.py +0 -125
  459. mirascope/tools/web/_parse_url_content.py +0 -94
  460. mirascope/tools/web/_requests.py +0 -54
  461. mirascope/v0/__init__.py +0 -43
  462. mirascope/v0/anthropic.py +0 -54
  463. mirascope/v0/base/__init__.py +0 -12
  464. mirascope/v0/base/calls.py +0 -118
  465. mirascope/v0/base/extractors.py +0 -122
  466. mirascope/v0/base/ops_utils.py +0 -207
  467. mirascope/v0/base/prompts.py +0 -48
  468. mirascope/v0/base/types.py +0 -14
  469. mirascope/v0/base/utils.py +0 -21
  470. mirascope/v0/openai.py +0 -54
  471. mirascope-1.25.7.dist-info/METADATA +0 -169
  472. mirascope-1.25.7.dist-info/RECORD +0 -378
  473. {mirascope-1.25.7.dist-info → mirascope-2.0.0a0.dist-info}/WHEEL +0 -0
  474. {mirascope-1.25.7.dist-info → mirascope-2.0.0a0.dist-info}/licenses/LICENSE +0 -0
@@ -1,82 +0,0 @@
1
- """The base type in a function as an LLM call to return for dynamic configuration."""
2
-
3
- from collections.abc import Callable, Sequence
4
- from typing import Any, Generic, TypeVar
5
-
6
- from typing_extensions import NotRequired, TypedDict
7
-
8
- from .call_params import BaseCallParams
9
- from .metadata import Metadata
10
- from .tool import BaseTool
11
-
12
- _MessageParamT = TypeVar("_MessageParamT", bound=Any)
13
- _CallParamsT = TypeVar("_CallParamsT", bound=BaseCallParams)
14
- _ClientT = TypeVar("_ClientT", bound=object)
15
-
16
-
17
- class DynamicConfigBase(TypedDict):
18
- metadata: NotRequired[Metadata]
19
- computed_fields: NotRequired[dict[str, Any | list[Any] | list[list[Any]]]]
20
- tools: NotRequired[Sequence[type[BaseTool] | Callable]]
21
-
22
-
23
- class DynamicConfigMessages(DynamicConfigBase, Generic[_MessageParamT]):
24
- messages: NotRequired[Sequence[_MessageParamT]]
25
-
26
-
27
- class DynamicConfigCallParams(DynamicConfigBase, Generic[_CallParamsT]):
28
- call_params: NotRequired[_CallParamsT]
29
-
30
-
31
- class DynamicConfigClient(DynamicConfigBase, Generic[_ClientT]):
32
- client: NotRequired[_ClientT | None]
33
-
34
-
35
- class DynamicConfigMessagesCallParams(
36
- DynamicConfigBase, Generic[_MessageParamT, _CallParamsT]
37
- ):
38
- messages: NotRequired[Sequence[_MessageParamT]]
39
- call_params: NotRequired[_CallParamsT]
40
-
41
-
42
- class DynamicConfigMessagesClient(DynamicConfigBase, Generic[_MessageParamT, _ClientT]):
43
- messages: NotRequired[Sequence[_MessageParamT]]
44
- client: NotRequired[_ClientT | None]
45
-
46
-
47
- class DynamicConfigCallParamsClient(DynamicConfigBase, Generic[_CallParamsT, _ClientT]):
48
- call_params: NotRequired[_CallParamsT]
49
- client: NotRequired[_ClientT | None]
50
-
51
-
52
- class DynamicConfigFull(
53
- DynamicConfigBase, Generic[_MessageParamT, _CallParamsT, _ClientT]
54
- ):
55
- messages: NotRequired[Sequence[_MessageParamT]]
56
- call_params: NotRequired[_CallParamsT]
57
- client: NotRequired[_ClientT | None]
58
-
59
-
60
- BaseDynamicConfig = (
61
- DynamicConfigBase
62
- | DynamicConfigMessages[_MessageParamT]
63
- | DynamicConfigCallParams[_CallParamsT]
64
- | DynamicConfigClient[_ClientT]
65
- | DynamicConfigMessagesCallParams[_MessageParamT, _CallParamsT]
66
- | DynamicConfigMessagesClient[_MessageParamT, _ClientT]
67
- | DynamicConfigCallParamsClient[_CallParamsT, _ClientT]
68
- | DynamicConfigFull[_MessageParamT, _CallParamsT, _ClientT]
69
- | None
70
- )
71
- """The base type in a function as an LLM call to return for dynamic configuration.
72
-
73
- Attributes:
74
- metadata: Any metadata to include in call responses.
75
- computed_fields: Fields to be computed and injected into the prompt template at
76
- runtime.
77
- tools: Tools to be provided to the LLM API call at runtime.
78
- messages: Custom message parameters, which will override any other form of writing
79
- prompts when used.
80
- call_params: Call parameters to use when making the LLM API call.
81
- client: A custom client to use in place of the default client.
82
- """
@@ -1,30 +0,0 @@
1
- from pydantic.fields import FieldInfo
2
-
3
-
4
- class FromCallArgs:
5
- """Use this metadata to pass function arguments through to the response model.
6
-
7
- Example:
8
-
9
- ```python
10
- from typing import Annotated
11
- from pydantic import BaseModel, Field
12
- from mirascope.core import openai, prompt_template
13
- from mirascope.core.base import FromCallArgs
14
-
15
- class BookRecommendation(BaseModel):
16
- genre: Annotated[str, FromCallArgs()]
17
- title: str = Field(..., description="The title of the recommended book")
18
- author: str = Field(..., description="The author of the recommended book")
19
-
20
- @openai.call(model="gpt-4o-mini", response_model=BookRecommendation)
21
- def recommend_book(genre: str) -> str:
22
- return f"Recommend a {genre} book."
23
- ```
24
- """
25
-
26
- pass
27
-
28
-
29
- def is_from_call_args(field: FieldInfo) -> bool:
30
- return any(isinstance(m, FromCallArgs) for m in field.metadata)
@@ -1,59 +0,0 @@
1
- from collections.abc import Callable
2
- from functools import reduce, wraps
3
- from typing import Any, ParamSpec, TypeVar
4
-
5
- _P = ParamSpec("_P")
6
- _R = TypeVar("_R")
7
-
8
- _WP = ParamSpec("_WP")
9
- _WR = TypeVar("_WR")
10
-
11
-
12
- def merge_decorators(
13
- decorator: Callable[[Callable[_P, _R]], Callable[_WP, _WR]],
14
- *additional_decorators: Callable[[Callable], Callable],
15
- ) -> Callable[[], Callable[[Callable[_P, _R]], Callable[_WP, _WR]]]:
16
- """Combines multiple decorators into a single decorator factory.
17
-
18
- This function allows you to merge multiple decorators into a single decorator factory.
19
- The decorators are applied in the order they are passed to the function.
20
- All function metadata (e.g. docstrings, function name) is preserved through the decoration chain.
21
-
22
- Args:
23
- decorator: The base decorator that determines the type signature of the decorated function.
24
- *additional_decorators: Additional decorators to be merged with the base decorator.
25
-
26
- Returns:
27
- A decorator factory function that applies all decorators in the specified order.
28
-
29
- Example:
30
- ```python
31
- # Combine multiple decorators
32
- merged = merge_decorators(
33
- retry(),
34
- with_logging(),
35
- handle_errors()
36
- )
37
-
38
- # Apply the merged decorators
39
- @merged()
40
- def my_function():
41
- pass
42
- ```
43
- """
44
- decorators = [decorator] + list(additional_decorators)
45
-
46
- def decorator_factory() -> Callable[[Callable[_P, _R]], Callable[_WP, _WR]]:
47
- def inner(func: Callable[_P, _R]) -> Callable[_WP, _WR]:
48
- def compose(f: Callable, d: Callable) -> Callable:
49
- @wraps(f)
50
- def wrapped(*args: Any, **kwargs: Any) -> Any: # noqa: ANN401
51
- return d(f)(*args, **kwargs)
52
-
53
- return wrapped
54
-
55
- return reduce(compose, reversed(decorators), func) # pyright: ignore [reportReturnType]
56
-
57
- return inner
58
-
59
- return decorator_factory
@@ -1,175 +0,0 @@
1
- """This module contains the base class for message parameters."""
2
-
3
- from collections.abc import Sequence
4
- from typing import Literal
5
-
6
- from pydantic import BaseModel
7
-
8
-
9
- class TextPart(BaseModel):
10
- """A content part for text.
11
-
12
- Attributes:
13
- type: Always "text"
14
- text: The text content
15
- """
16
-
17
- type: Literal["text"]
18
- text: str
19
-
20
-
21
- class CacheControlPart(BaseModel):
22
- """A part for marking cache control.
23
-
24
- This part is currently only available with Anthropic. For more details, see:
25
- https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
26
-
27
- Attributes:
28
- type: Always "cache_control"
29
- cache_type: Currently only "ephemeral" is available.
30
- """
31
-
32
- type: Literal["cache_control"]
33
- cache_type: str
34
-
35
-
36
- class ImagePart(BaseModel):
37
- """A content part for images.
38
-
39
- Attributes:
40
- type: Always "image"
41
- media_type: The media type (e.g. image/jpeg)
42
- image: The raw image bytes
43
- detail: (Optional) The detail to use for the image (supported by OpenAI)
44
- """
45
-
46
- type: Literal["image"]
47
- media_type: str
48
- image: bytes
49
- detail: str | None
50
-
51
-
52
- class ImageURLPart(BaseModel):
53
- """A content part for images with a URL or base64 encoded image data.
54
-
55
- Attributes:
56
- type: Always "image_url"
57
- url: The URL to the image
58
- detail: (Optional) The detail to use for the image (supported by OpenAI)
59
- """
60
-
61
- type: Literal["image_url"]
62
- url: str
63
- detail: str | None
64
-
65
-
66
- class AudioPart(BaseModel):
67
- """A content part for audio.
68
-
69
- Attributes:
70
- type: Always "audio"
71
- media_type: The media type (e.g. audio/wav)
72
- audio: The raw audio bytes or base64 encoded audio data
73
- """
74
-
75
- type: Literal["audio"]
76
- media_type: str
77
- audio: bytes | str
78
-
79
-
80
- class AudioURLPart(BaseModel):
81
- """A content part for audio with a URL or base64 encoded audio data.
82
-
83
- Attributes:
84
- type: Always "audio_url"
85
- url: The URL to the audio
86
- """
87
-
88
- type: Literal["audio_url"]
89
- url: str
90
-
91
-
92
- class DocumentPart(BaseModel):
93
- """A content part for pdf.
94
-
95
- Attributes:
96
- type: Always "document"
97
- media_type: The media type (e.g. application/pdf)
98
- document: document data
99
- """
100
-
101
- type: Literal["document"]
102
- media_type: str
103
- document: bytes
104
-
105
-
106
- class DocumentURLPart(BaseModel):
107
- """A content part for documents with a URL.
108
-
109
- Attributes:
110
- type: Always "document_url"
111
- url: The URL to the document
112
- """
113
-
114
- type: Literal["document_url"]
115
- url: str
116
-
117
-
118
- class ToolCallPart(BaseModel):
119
- """A content part for tool.
120
-
121
- Attributes:
122
- type: Always "tool"
123
- name: The name of the tool
124
- id: The id of the tool
125
- """
126
-
127
- type: Literal["tool_call"]
128
- name: str
129
- args: dict | None = None
130
- id: str | None = None
131
-
132
-
133
- class ToolResultPart(BaseModel):
134
- """A content part for tool.
135
-
136
- Attributes:
137
- type: Always "tool"
138
- name: The name of the tool
139
- id: The id of the tool
140
- """
141
-
142
- type: Literal["tool_result"]
143
- name: str = ""
144
- content: str
145
- id: str | None = None
146
- is_error: bool = False
147
-
148
-
149
- class BaseMessageParam(BaseModel):
150
- """A base class for message parameters.
151
-
152
- usage docs: learn/prompts.md#prompt-templates-messages
153
-
154
- Attributes:
155
- role: The role of the message (e.g. "system", "user", "assistant", "tool")
156
- content: The content of the message
157
- tool_name: The name of the tool, if any
158
- """
159
-
160
- role: str
161
- content: (
162
- str
163
- | Sequence[
164
- TextPart
165
- | ImagePart
166
- | ImageURLPart
167
- | AudioPart
168
- | AudioURLPart
169
- | CacheControlPart
170
- | DocumentPart
171
- | DocumentURLPart
172
- | ToolCallPart
173
- | ToolResultPart
174
- ]
175
- )
@@ -1,116 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from collections.abc import Sequence
4
- from typing import Any
5
- from wave import Wave_read
6
-
7
- from ._utils._convert_messages_to_message_params import (
8
- Image,
9
- convert_message_content_to_message_param_content,
10
- )
11
- from .message_param import (
12
- AudioPart,
13
- AudioURLPart,
14
- BaseMessageParam,
15
- CacheControlPart,
16
- DocumentPart,
17
- DocumentURLPart,
18
- ImagePart,
19
- ImageURLPart,
20
- TextPart,
21
- )
22
- from .types import AudioSegment
23
-
24
-
25
- class Messages:
26
- Type = (
27
- str
28
- | Sequence[
29
- str
30
- | TextPart
31
- | CacheControlPart
32
- | ImagePart
33
- | ImageURLPart
34
- | Image.Image
35
- | AudioPart
36
- | AudioURLPart
37
- | AudioSegment
38
- | Wave_read
39
- | DocumentPart
40
- | DocumentURLPart
41
- ]
42
- | list[BaseMessageParam | Any]
43
- | BaseMessageParam
44
- )
45
-
46
- @classmethod
47
- def System(
48
- cls,
49
- content: str
50
- | Sequence[
51
- str
52
- | TextPart
53
- | CacheControlPart
54
- | ImagePart
55
- | ImageURLPart
56
- | Image.Image
57
- | AudioPart
58
- | AudioURLPart
59
- | AudioSegment
60
- | Wave_read
61
- | DocumentPart
62
- | DocumentURLPart
63
- ],
64
- ) -> BaseMessageParam:
65
- return BaseMessageParam(
66
- role="system",
67
- content=convert_message_content_to_message_param_content(content),
68
- )
69
-
70
- @classmethod
71
- def User(
72
- cls,
73
- content: str
74
- | Sequence[
75
- str
76
- | TextPart
77
- | CacheControlPart
78
- | ImagePart
79
- | ImageURLPart
80
- | Image.Image
81
- | AudioPart
82
- | AudioURLPart
83
- | AudioSegment
84
- | Wave_read
85
- | DocumentPart
86
- | DocumentURLPart
87
- ],
88
- ) -> BaseMessageParam:
89
- return BaseMessageParam(
90
- role="user",
91
- content=convert_message_content_to_message_param_content(content),
92
- )
93
-
94
- @classmethod
95
- def Assistant(
96
- cls,
97
- content: str
98
- | Sequence[
99
- str
100
- | TextPart
101
- | CacheControlPart
102
- | ImagePart
103
- | ImageURLPart
104
- | Image.Image
105
- | AudioPart
106
- | AudioURLPart
107
- | AudioSegment
108
- | Wave_read
109
- | DocumentPart
110
- | DocumentURLPart
111
- ],
112
- ) -> BaseMessageParam:
113
- return BaseMessageParam(
114
- role="assistant",
115
- content=convert_message_content_to_message_param_content(content),
116
- )
@@ -1,13 +0,0 @@
1
- """The `Metadata` typed dictionary for including general metadata."""
2
-
3
- from typing_extensions import NotRequired, TypedDict
4
-
5
-
6
- class Metadata(TypedDict, total=False):
7
- """The `Metadata` typed dictionary for including general metadata.
8
-
9
- Attributes:
10
- tags: A set of strings for tagging calls (e.g. versioning, categorizing, etc.)
11
- """
12
-
13
- tags: NotRequired[set[str]]