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,219 +0,0 @@
1
- """Calculate the cost of a completion using the Anthropic API."""
2
-
3
- from ..base.types import CostMetadata
4
-
5
-
6
- def calculate_cost(
7
- metadata: CostMetadata,
8
- model: str = "claude-3-haiku-20240229",
9
- ) -> float | None:
10
- """Calculate the cost of a completion using the Anthropic API.
11
-
12
- https://www.anthropic.com/api
13
-
14
- Model Input Cached Output
15
- claude-3-5-haiku $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
16
- claude-3-5-haiku-20241022 $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
17
- claude-3-7-sonnet $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
18
- claude-3-7-sonnet-20250219 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
19
- claude-3-5-sonnet $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
20
- claude-3-5-sonnet-20241022 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
21
- claude-3-5-sonnet-20240620 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
22
- claude-3-haiku $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
23
- claude-3-haiku-20240307 $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
24
- claude-3-sonnet $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
25
- claude-3-sonnet-20240620 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
26
- claude-3-opus $15.00 / 1M tokens $1.50 / 1M tokens $75.00 / 1M tokens
27
- claude-3-opus-20240229 $15.00 / 1M tokens $1.50 / 1M tokens $75.00 / 1M tokens
28
- claude-2.1 $8.00 / 1M tokens $24.00 / 1M tokens
29
- claude-2.0 $8.00 / 1M tokens $24.00 / 1M tokens
30
- claude-instant-1.2 $0.80 / 1M tokens $2.40 / 1M tokens
31
- anthropic.claude-3-5-sonnet-20241022-v2:0 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
32
- anthropic.claude-3-5-sonnet-20241022-v1:0 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
33
- anthropic.claude-3-5-haiku-20241022-v1:0 $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
34
- anthropic.claude-3-sonnet-20240620-v1:0 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
35
- anthropic.claude-3-haiku-20240307-v1:0 $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
36
- anthropic.claude-3-opus-20240229-v1:0 $15.00 / 1M tokens $1.50 / 1M tokens $75.00 / 1M tokens
37
- claude-3-5-sonnet@20241022 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
38
- claude-3-5-haiku@20241022 $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
39
- claude-3-sonnet@20240620 $3.00 / 1M tokens $0.30 / 1M tokens $15.00 / 1M tokens
40
- claude-3-haiku@20240307 $0.80 / 1M tokens $0.08 / 1M tokens $4.00 / 1M tokens
41
- claude-3-opus@20240229 $15.00 / 1M tokens $1.50 / 1M tokens $75.00 / 1M tokens
42
- """
43
- pricing = {
44
- # Anthropic models
45
- "claude-3-5-haiku-latest": {
46
- "prompt": 0.000_000_8,
47
- "completion": 0.000_004,
48
- "cached": 0.000_000_08,
49
- },
50
- "claude-3-5-haiku-20241022": {
51
- "prompt": 0.000_000_8,
52
- "completion": 0.000_004,
53
- "cached": 0.000_000_08,
54
- },
55
- "claude-3-7-sonnet-latest": {
56
- "prompt": 0.000_003,
57
- "completion": 0.000_015,
58
- "cached": 0.000_000_3,
59
- },
60
- "claude-3-7-sonnet-20250219": {
61
- "prompt": 0.000_003,
62
- "completion": 0.000_015,
63
- "cached": 0.000_000_3,
64
- },
65
- "claude-3-5-sonnet-latest": {
66
- "prompt": 0.000_003,
67
- "completion": 0.000_015,
68
- "cached": 0.000_000_3,
69
- },
70
- "claude-3-5-sonnet-20241022": {
71
- "prompt": 0.000_003,
72
- "completion": 0.000_015,
73
- "cached": 0.000_000_3,
74
- },
75
- "claude-3-5-sonnet-20240620": {
76
- "prompt": 0.000_003,
77
- "completion": 0.000_015,
78
- "cached": 0.000_000_3,
79
- },
80
- "claude-3-haiku-latest": {
81
- "prompt": 0.000_000_8,
82
- "completion": 0.000_004,
83
- "cached": 0.000_000_08,
84
- },
85
- "claude-3-haiku-20240307": {
86
- "prompt": 0.000_000_8,
87
- "completion": 0.000_004,
88
- "cached": 0.000_000_08,
89
- },
90
- "claude-3-sonnet-latest": {
91
- "prompt": 0.000_003,
92
- "completion": 0.000_015,
93
- "cached": 0.000_000_3,
94
- },
95
- "claude-3-sonnet-20240620": {
96
- "prompt": 0.000_003,
97
- "completion": 0.000_015,
98
- "cached": 0.000_000_3,
99
- },
100
- "claude-3-opus-latest": {
101
- "prompt": 0.000_015,
102
- "completion": 0.000_075,
103
- "cached": 0.000_001_5,
104
- },
105
- "claude-3-opus-20240229": {
106
- "prompt": 0.000_015,
107
- "completion": 0.000_075,
108
- "cached": 0.000_001_5,
109
- },
110
- "claude-2.1": {
111
- "prompt": 0.000_008,
112
- "completion": 0.000_024,
113
- "cached": 0,
114
- },
115
- "claude-2.0": {
116
- "prompt": 0.000_008,
117
- "completion": 0.000_024,
118
- "cached": 0,
119
- },
120
- "claude-instant-1.2": {
121
- "prompt": 0.000_000_8,
122
- "completion": 0.000_002_4,
123
- "cached": 0,
124
- },
125
- # Bedrock models
126
- "anthropic.claude-3-7-sonnet-20250219-v1:0": {
127
- "prompt": 0.000_003,
128
- "completion": 0.000_015,
129
- "cached": 0.000_000_3,
130
- },
131
- "anthropic.claude-3-5-sonnet-20241022-v2:0": {
132
- "prompt": 0.000_003,
133
- "completion": 0.000_015,
134
- "cached": 0.000_000_3,
135
- },
136
- "anthropic.claude-3-5-sonnet-20241022-v1:0": {
137
- "prompt": 0.000_003,
138
- "completion": 0.000_015,
139
- "cached": 0.000_000_3,
140
- },
141
- "anthropic.claude-3-5-haiku-20241022-v1:0": {
142
- "prompt": 0.000_000_8,
143
- "completion": 0.000_004,
144
- "cached": 0.000_000_08,
145
- },
146
- "anthropic.claude-3-sonnet-20240620-v1:0": {
147
- "prompt": 0.000_003,
148
- "completion": 0.000_015,
149
- "cached": 0.000_000_3,
150
- },
151
- "anthropic.claude-3-haiku-20240307-v1:0": {
152
- "prompt": 0.000_000_8,
153
- "completion": 0.000_004,
154
- "cached": 0.000_000_08,
155
- },
156
- "anthropic.claude-3-opus-20240229-v1:0": {
157
- "prompt": 0.000_015,
158
- "completion": 0.000_075,
159
- "cached": 0.000_001_5,
160
- },
161
- # Vertex AI models
162
- "claude-3-7-sonnet@20250219": {
163
- "prompt": 0.000_003,
164
- "completion": 0.000_015,
165
- "cached": 0.000_000_3,
166
- },
167
- "claude-3-5-sonnet@20241022": {
168
- "prompt": 0.000_003,
169
- "completion": 0.000_015,
170
- "cached": 0.000_000_3,
171
- },
172
- "claude-3-5-haiku@20241022": {
173
- "prompt": 0.000_000_8,
174
- "completion": 0.000_004,
175
- "cached": 0.000_000_08,
176
- },
177
- "claude-3-sonnet@20240620": {
178
- "prompt": 0.000_003,
179
- "completion": 0.000_015,
180
- "cached": 0.000_000_3,
181
- },
182
- "claude-3-haiku@20240307": {
183
- "prompt": 0.000_000_8,
184
- "completion": 0.000_004,
185
- "cached": 0.000_000_08,
186
- },
187
- "claude-3-opus@20240229": {
188
- "prompt": 0.000_015,
189
- "completion": 0.000_075,
190
- "cached": 0.000_001_5,
191
- },
192
- }
193
-
194
- if metadata.input_tokens is None or metadata.output_tokens is None:
195
- return None
196
-
197
- if metadata.cached_tokens is None:
198
- metadata.cached_tokens = 0
199
-
200
- try:
201
- model_pricing = pricing[model]
202
- except KeyError:
203
- return None
204
-
205
- # Calculate cost for text tokens
206
- prompt_cost = metadata.input_tokens * model_pricing["prompt"]
207
- cached_cost = metadata.cached_tokens * model_pricing["cached"]
208
- completion_cost = metadata.output_tokens * model_pricing["completion"]
209
-
210
- # Image tokens are in response tokens
211
- # https://docs.anthropic.com/en/docs/build-with-claude/vision#calculate-image-costs
212
-
213
- # PDF documents tokens are in response tokens
214
- # https://docs.anthropic.com/en/docs/build-with-claude/pdf-support#estimate-your-costs
215
-
216
- # Sum all costs
217
- total_cost = prompt_cost + cached_cost + completion_cost
218
-
219
- return total_cost
@@ -1,11 +0,0 @@
1
- """Calculate the cost of a completion using the Azure API."""
2
-
3
- from ..base.types import CostMetadata
4
-
5
-
6
- def calculate_cost(
7
- metadata: CostMetadata,
8
- model: str,
9
- ) -> float | None:
10
- """Calculate the cost of a completion using the Azure API."""
11
- return None
@@ -1,15 +0,0 @@
1
- """Calculate the cost of a completion using the Bedrock API."""
2
-
3
- from ..base.types import CostMetadata
4
-
5
-
6
- def calculate_cost(
7
- metadata: CostMetadata,
8
- model: str,
9
- ) -> float | None:
10
- """Calculate the cost of a completion using the Bedrock API."""
11
- # NOTE: We are currently investigating a dynamic approach to determine costs
12
- # for Bedrock models. This is needed due to the large number of models
13
- # available through Bedrock, making it impractical to hardcode all pricing
14
- # information in this initial implementation.
15
- return None
@@ -1,44 +0,0 @@
1
- """Calculate the cost of a completion using the Cohere API."""
2
-
3
- from ..base.types import CostMetadata
4
-
5
-
6
- def calculate_cost(
7
- metadata: CostMetadata,
8
- model: str = "command-r-plus",
9
- ) -> float | None:
10
- """Calculate the cost of a completion using the Cohere API.
11
-
12
- https://cohere.com/pricing
13
-
14
- Model Input Cached Output
15
- command-r $0.15 / 1M tokens $0.6 / 1M tokens
16
- command-r-plus $2.5 / 1M tokens $10 / 1M tokens
17
- """
18
- pricing = {
19
- "command-r": {
20
- "prompt": 0.000_000_5,
21
- "completion": 0.000_001_5,
22
- },
23
- "command-r-plus": {
24
- "prompt": 0.000_003,
25
- "completion": 0.000_015,
26
- },
27
- "command-r7b-12-2024": {
28
- "prompt": 0.000_000_375,
29
- "completion": 0.000_001_5,
30
- },
31
- }
32
- if metadata.input_tokens is None or metadata.output_tokens is None:
33
- return None
34
-
35
- try:
36
- model_pricing = pricing[model]
37
- except KeyError:
38
- return None
39
-
40
- prompt_cost = metadata.input_tokens * model_pricing["prompt"]
41
- completion_cost = metadata.output_tokens * model_pricing["completion"]
42
- total_cost = prompt_cost + completion_cost
43
-
44
- return total_cost
@@ -1,67 +0,0 @@
1
- """Calculate the cost of a Gemini API call."""
2
-
3
- from ..base.types import CostMetadata
4
-
5
-
6
- def calculate_cost(
7
- metadata: CostMetadata,
8
- model: str,
9
- ) -> float | None:
10
- """Calculate the cost of a Gemini API call.
11
-
12
- https://ai.google.dev/pricing#1_5flash
13
-
14
- Model Input (<=128K) Output (<=128K) Input (>128K) Output (>128K)
15
- gemini-1.5-flash $0.075 / 1M $0.3 / 1M $0.15 / 1M $0.6 / 1M
16
- gemini-1.5-flash-8b $0.0375 / 1M $0.15 / 1M $0.075 / 1M $0.3 / 1M
17
- gemini-1.5-pro $1.25 / 1M $5.0 / 1M $2.5 / 1M $10.0 / 1M
18
- gemini-1.0-pro $0.50 / 1M $1.5 / 1M $0.5 / 1M $1.5 / 1M
19
- """
20
- pricing = {
21
- "gemini-1.5-flash": {
22
- "prompt_short": 0.000_000_075,
23
- "completion_short": 0.000_000_3,
24
- "prompt_long": 0.000_000_15,
25
- "completion_long": 0.000_000_6,
26
- },
27
- "gemini-1.5-flash-8b": {
28
- "prompt_short": 0.000_000_037_5,
29
- "completion_short": 0.000_000_15,
30
- "prompt_long": 0.000_000_075,
31
- "completion_long": 0.000_000_3,
32
- },
33
- "gemini-1.5-pro": {
34
- "prompt_short": 0.000_001_25,
35
- "completion_short": 0.000_005,
36
- "prompt_long": 0.000_002_5,
37
- "completion_long": 0.000_01,
38
- },
39
- "gemini-1.0-pro": {
40
- "prompt_short": 0.000_000_5,
41
- "completion_short": 0.000_001_5,
42
- "prompt_long": 0.000_000_5,
43
- "completion_long": 0.000_001_5,
44
- },
45
- }
46
-
47
- if metadata.input_tokens is None or metadata.output_tokens is None:
48
- return None
49
-
50
- try:
51
- model_pricing = pricing[model]
52
- except KeyError:
53
- return None
54
-
55
- # Determine if we're using long context pricing
56
- use_long_context = metadata.input_tokens > 128_000
57
-
58
- prompt_price = model_pricing["prompt_long" if use_long_context else "prompt_short"]
59
- completion_price = model_pricing[
60
- "completion_long" if use_long_context else "completion_short"
61
- ]
62
-
63
- prompt_cost = metadata.input_tokens * prompt_price
64
- completion_cost = metadata.output_tokens * completion_price
65
- total_cost = prompt_cost + completion_cost
66
-
67
- return total_cost