mirascope 2.0.0a5__py3-none-any.whl → 2.0.1__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 (349) hide show
  1. mirascope/__init__.py +10 -1
  2. mirascope/_stubs.py +363 -0
  3. mirascope/api/__init__.py +8 -0
  4. mirascope/api/_generated/__init__.py +285 -2
  5. mirascope/api/_generated/annotations/__init__.py +33 -0
  6. mirascope/api/_generated/annotations/client.py +506 -0
  7. mirascope/api/_generated/annotations/raw_client.py +1414 -0
  8. mirascope/api/_generated/annotations/types/__init__.py +31 -0
  9. mirascope/api/_generated/annotations/types/annotations_create_request_label.py +5 -0
  10. mirascope/api/_generated/annotations/types/annotations_create_response.py +48 -0
  11. mirascope/api/_generated/annotations/types/annotations_create_response_label.py +5 -0
  12. mirascope/api/_generated/annotations/types/annotations_get_response.py +48 -0
  13. mirascope/api/_generated/annotations/types/annotations_get_response_label.py +5 -0
  14. mirascope/api/_generated/annotations/types/annotations_list_request_label.py +5 -0
  15. mirascope/api/_generated/annotations/types/annotations_list_response.py +21 -0
  16. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +50 -0
  17. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +5 -0
  18. mirascope/api/_generated/annotations/types/annotations_update_request_label.py +5 -0
  19. mirascope/api/_generated/annotations/types/annotations_update_response.py +48 -0
  20. mirascope/api/_generated/annotations/types/annotations_update_response_label.py +5 -0
  21. mirascope/api/_generated/api_keys/__init__.py +12 -2
  22. mirascope/api/_generated/api_keys/client.py +77 -0
  23. mirascope/api/_generated/api_keys/raw_client.py +422 -39
  24. mirascope/api/_generated/api_keys/types/__init__.py +7 -1
  25. mirascope/api/_generated/api_keys/types/api_keys_create_response.py +4 -12
  26. mirascope/api/_generated/api_keys/types/api_keys_get_response.py +4 -12
  27. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +40 -0
  28. mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +4 -12
  29. mirascope/api/_generated/client.py +42 -0
  30. mirascope/api/_generated/core/client_wrapper.py +2 -14
  31. mirascope/api/_generated/core/datetime_utils.py +1 -3
  32. mirascope/api/_generated/core/file.py +2 -5
  33. mirascope/api/_generated/core/http_client.py +36 -112
  34. mirascope/api/_generated/core/jsonable_encoder.py +1 -3
  35. mirascope/api/_generated/core/pydantic_utilities.py +19 -74
  36. mirascope/api/_generated/core/query_encoder.py +1 -3
  37. mirascope/api/_generated/core/serialization.py +4 -10
  38. mirascope/api/_generated/docs/client.py +2 -6
  39. mirascope/api/_generated/docs/raw_client.py +51 -5
  40. mirascope/api/_generated/environment.py +3 -3
  41. mirascope/api/_generated/environments/__init__.py +6 -0
  42. mirascope/api/_generated/environments/client.py +117 -0
  43. mirascope/api/_generated/environments/raw_client.py +530 -51
  44. mirascope/api/_generated/environments/types/__init__.py +10 -0
  45. mirascope/api/_generated/environments/types/environments_create_response.py +1 -3
  46. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +60 -0
  47. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +24 -0
  48. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +22 -0
  49. mirascope/api/_generated/environments/types/environments_get_response.py +1 -3
  50. mirascope/api/_generated/environments/types/environments_list_response_item.py +1 -3
  51. mirascope/api/_generated/environments/types/environments_update_response.py +1 -3
  52. mirascope/api/_generated/errors/__init__.py +8 -0
  53. mirascope/api/_generated/errors/bad_request_error.py +1 -2
  54. mirascope/api/_generated/errors/conflict_error.py +1 -2
  55. mirascope/api/_generated/errors/forbidden_error.py +1 -5
  56. mirascope/api/_generated/errors/internal_server_error.py +1 -6
  57. mirascope/api/_generated/errors/not_found_error.py +1 -5
  58. mirascope/api/_generated/errors/payment_required_error.py +15 -0
  59. mirascope/api/_generated/errors/service_unavailable_error.py +14 -0
  60. mirascope/api/_generated/errors/too_many_requests_error.py +15 -0
  61. mirascope/api/_generated/errors/unauthorized_error.py +11 -0
  62. mirascope/api/_generated/functions/__init__.py +39 -0
  63. mirascope/api/_generated/functions/client.py +647 -0
  64. mirascope/api/_generated/functions/raw_client.py +1890 -0
  65. mirascope/api/_generated/functions/types/__init__.py +53 -0
  66. mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +20 -0
  67. mirascope/api/_generated/functions/types/functions_create_response.py +37 -0
  68. mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +20 -0
  69. mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +39 -0
  70. mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +20 -0
  71. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +53 -0
  72. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +22 -0
  73. mirascope/api/_generated/functions/types/functions_get_response.py +37 -0
  74. mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +20 -0
  75. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +25 -0
  76. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +56 -0
  77. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +22 -0
  78. mirascope/api/_generated/functions/types/functions_list_response.py +21 -0
  79. mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +41 -0
  80. mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +20 -0
  81. mirascope/api/_generated/health/client.py +2 -6
  82. mirascope/api/_generated/health/raw_client.py +51 -5
  83. mirascope/api/_generated/health/types/health_check_response.py +1 -3
  84. mirascope/api/_generated/organization_invitations/__init__.py +33 -0
  85. mirascope/api/_generated/organization_invitations/client.py +546 -0
  86. mirascope/api/_generated/organization_invitations/raw_client.py +1519 -0
  87. mirascope/api/_generated/organization_invitations/types/__init__.py +53 -0
  88. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +34 -0
  89. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +7 -0
  90. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +7 -0
  91. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +48 -0
  92. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +7 -0
  93. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +7 -0
  94. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +48 -0
  95. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +7 -0
  96. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +7 -0
  97. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +48 -0
  98. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +7 -0
  99. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +7 -0
  100. mirascope/api/_generated/organization_memberships/__init__.py +19 -0
  101. mirascope/api/_generated/organization_memberships/client.py +302 -0
  102. mirascope/api/_generated/organization_memberships/raw_client.py +736 -0
  103. mirascope/api/_generated/organization_memberships/types/__init__.py +27 -0
  104. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +33 -0
  105. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +7 -0
  106. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +7 -0
  107. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +31 -0
  108. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +7 -0
  109. mirascope/api/_generated/organizations/__init__.py +26 -0
  110. mirascope/api/_generated/organizations/client.py +465 -0
  111. mirascope/api/_generated/organizations/raw_client.py +1799 -108
  112. mirascope/api/_generated/organizations/types/__init__.py +48 -0
  113. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +24 -0
  114. mirascope/api/_generated/organizations/types/organizations_create_response.py +4 -3
  115. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +1 -3
  116. mirascope/api/_generated/organizations/types/organizations_get_response.py +4 -3
  117. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +1 -3
  118. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +4 -3
  119. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +1 -3
  120. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +7 -0
  121. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +47 -0
  122. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +33 -0
  123. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +7 -0
  124. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +24 -0
  125. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +53 -0
  126. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +7 -0
  127. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +26 -0
  128. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +34 -0
  129. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +7 -0
  130. mirascope/api/_generated/organizations/types/organizations_update_response.py +4 -3
  131. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +1 -3
  132. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +7 -0
  133. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +35 -0
  134. mirascope/api/_generated/project_memberships/__init__.py +25 -0
  135. mirascope/api/_generated/project_memberships/client.py +437 -0
  136. mirascope/api/_generated/project_memberships/raw_client.py +1039 -0
  137. mirascope/api/_generated/project_memberships/types/__init__.py +29 -0
  138. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +7 -0
  139. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +35 -0
  140. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +7 -0
  141. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +33 -0
  142. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +7 -0
  143. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +7 -0
  144. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +35 -0
  145. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +7 -0
  146. mirascope/api/_generated/projects/__init__.py +2 -12
  147. mirascope/api/_generated/projects/client.py +17 -71
  148. mirascope/api/_generated/projects/raw_client.py +295 -51
  149. mirascope/api/_generated/projects/types/__init__.py +1 -6
  150. mirascope/api/_generated/projects/types/projects_create_response.py +3 -9
  151. mirascope/api/_generated/projects/types/projects_get_response.py +3 -9
  152. mirascope/api/_generated/projects/types/projects_list_response_item.py +3 -9
  153. mirascope/api/_generated/projects/types/projects_update_response.py +3 -9
  154. mirascope/api/_generated/reference.md +3619 -182
  155. mirascope/api/_generated/tags/__init__.py +19 -0
  156. mirascope/api/_generated/tags/client.py +504 -0
  157. mirascope/api/_generated/tags/raw_client.py +1288 -0
  158. mirascope/api/_generated/tags/types/__init__.py +17 -0
  159. mirascope/api/_generated/tags/types/tags_create_response.py +41 -0
  160. mirascope/api/_generated/tags/types/tags_get_response.py +41 -0
  161. mirascope/api/_generated/tags/types/tags_list_response.py +23 -0
  162. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +41 -0
  163. mirascope/api/_generated/tags/types/tags_update_response.py +41 -0
  164. mirascope/api/_generated/token_cost/__init__.py +7 -0
  165. mirascope/api/_generated/token_cost/client.py +160 -0
  166. mirascope/api/_generated/token_cost/raw_client.py +264 -0
  167. mirascope/api/_generated/token_cost/types/__init__.py +8 -0
  168. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +54 -0
  169. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +52 -0
  170. mirascope/api/_generated/traces/__init__.py +42 -0
  171. mirascope/api/_generated/traces/client.py +941 -0
  172. mirascope/api/_generated/traces/raw_client.py +2177 -23
  173. mirascope/api/_generated/traces/types/__init__.py +60 -0
  174. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +4 -11
  175. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +2 -6
  176. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +1 -3
  177. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +8 -24
  178. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +2 -6
  179. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +3 -9
  180. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +2 -6
  181. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +3 -9
  182. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +4 -8
  183. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +2 -6
  184. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +8 -24
  185. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +2 -6
  186. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +3 -9
  187. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item.py +1 -3
  188. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +6 -18
  189. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +3 -9
  190. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +8 -24
  191. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +2 -6
  192. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +2 -6
  193. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item.py +1 -3
  194. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +2 -6
  195. mirascope/api/_generated/traces/types/traces_create_response.py +2 -5
  196. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +3 -9
  197. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +60 -0
  198. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +24 -0
  199. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +22 -0
  200. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +33 -0
  201. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +88 -0
  202. mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +33 -0
  203. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +88 -0
  204. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +25 -0
  205. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +44 -0
  206. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +26 -0
  207. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +7 -0
  208. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +7 -0
  209. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +7 -0
  210. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +26 -0
  211. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +50 -0
  212. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +26 -0
  213. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +7 -0
  214. mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +7 -0
  215. mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +5 -0
  216. mirascope/api/_generated/traces/types/traces_search_response.py +26 -0
  217. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +50 -0
  218. mirascope/api/_generated/types/__init__.py +48 -0
  219. mirascope/api/_generated/types/already_exists_error.py +1 -3
  220. mirascope/api/_generated/types/bad_request_error_body.py +50 -0
  221. mirascope/api/_generated/types/click_house_error.py +22 -0
  222. mirascope/api/_generated/types/database_error.py +1 -3
  223. mirascope/api/_generated/types/date.py +3 -0
  224. mirascope/api/_generated/types/http_api_decode_error.py +1 -3
  225. mirascope/api/_generated/types/immutable_resource_error.py +22 -0
  226. mirascope/api/_generated/types/internal_server_error_body.py +49 -0
  227. mirascope/api/_generated/types/issue.py +1 -3
  228. mirascope/api/_generated/types/issue_tag.py +1 -8
  229. mirascope/api/_generated/types/not_found_error_body.py +1 -3
  230. mirascope/api/_generated/types/number_from_string.py +3 -0
  231. mirascope/api/_generated/types/permission_denied_error.py +1 -3
  232. mirascope/api/_generated/types/permission_denied_error_tag.py +1 -3
  233. mirascope/api/_generated/types/plan_limit_exceeded_error.py +32 -0
  234. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +7 -0
  235. mirascope/api/_generated/types/pricing_unavailable_error.py +23 -0
  236. mirascope/api/_generated/types/property_key_key.py +1 -3
  237. mirascope/api/_generated/types/rate_limit_error.py +31 -0
  238. mirascope/api/_generated/types/rate_limit_error_tag.py +5 -0
  239. mirascope/api/_generated/types/service_unavailable_error_body.py +24 -0
  240. mirascope/api/_generated/types/service_unavailable_error_tag.py +7 -0
  241. mirascope/api/_generated/types/stripe_error.py +20 -0
  242. mirascope/api/_generated/types/subscription_past_due_error.py +31 -0
  243. mirascope/api/_generated/types/subscription_past_due_error_tag.py +7 -0
  244. mirascope/api/_generated/types/unauthorized_error_body.py +21 -0
  245. mirascope/api/_generated/types/unauthorized_error_tag.py +5 -0
  246. mirascope/api/settings.py +19 -1
  247. mirascope/llm/__init__.py +55 -8
  248. mirascope/llm/calls/__init__.py +2 -1
  249. mirascope/llm/calls/calls.py +3 -1
  250. mirascope/llm/calls/decorator.py +21 -7
  251. mirascope/llm/content/tool_call.py +6 -0
  252. mirascope/llm/content/tool_output.py +22 -5
  253. mirascope/llm/exceptions.py +284 -71
  254. mirascope/llm/formatting/__init__.py +19 -2
  255. mirascope/llm/formatting/format.py +219 -30
  256. mirascope/llm/formatting/output_parser.py +178 -0
  257. mirascope/llm/formatting/partial.py +80 -7
  258. mirascope/llm/formatting/primitives.py +192 -0
  259. mirascope/llm/formatting/types.py +21 -64
  260. mirascope/llm/mcp/__init__.py +2 -2
  261. mirascope/llm/mcp/mcp_client.py +130 -0
  262. mirascope/llm/messages/__init__.py +3 -0
  263. mirascope/llm/messages/_utils.py +34 -0
  264. mirascope/llm/models/__init__.py +5 -0
  265. mirascope/llm/models/models.py +137 -69
  266. mirascope/llm/{providers/base → models}/params.py +16 -37
  267. mirascope/llm/models/thinking_config.py +61 -0
  268. mirascope/llm/prompts/_utils.py +0 -32
  269. mirascope/llm/prompts/decorator.py +16 -5
  270. mirascope/llm/prompts/prompts.py +131 -68
  271. mirascope/llm/providers/__init__.py +18 -2
  272. mirascope/llm/providers/anthropic/__init__.py +3 -21
  273. mirascope/llm/providers/anthropic/_utils/__init__.py +2 -0
  274. mirascope/llm/providers/anthropic/_utils/beta_decode.py +22 -11
  275. mirascope/llm/providers/anthropic/_utils/beta_encode.py +75 -25
  276. mirascope/llm/providers/anthropic/_utils/decode.py +22 -11
  277. mirascope/llm/providers/anthropic/_utils/encode.py +82 -20
  278. mirascope/llm/providers/anthropic/_utils/errors.py +2 -2
  279. mirascope/llm/providers/anthropic/beta_provider.py +64 -18
  280. mirascope/llm/providers/anthropic/provider.py +91 -33
  281. mirascope/llm/providers/base/__init__.py +0 -2
  282. mirascope/llm/providers/base/_utils.py +55 -11
  283. mirascope/llm/providers/base/base_provider.py +116 -37
  284. mirascope/llm/providers/google/__init__.py +2 -17
  285. mirascope/llm/providers/google/_utils/__init__.py +2 -0
  286. mirascope/llm/providers/google/_utils/decode.py +37 -15
  287. mirascope/llm/providers/google/_utils/encode.py +127 -19
  288. mirascope/llm/providers/google/_utils/errors.py +3 -2
  289. mirascope/llm/providers/google/model_info.py +1 -0
  290. mirascope/llm/providers/google/provider.py +68 -19
  291. mirascope/llm/providers/mirascope/__init__.py +5 -0
  292. mirascope/llm/providers/mirascope/_utils.py +73 -0
  293. mirascope/llm/providers/mirascope/provider.py +349 -0
  294. mirascope/llm/providers/mlx/__init__.py +2 -17
  295. mirascope/llm/providers/mlx/_utils.py +8 -3
  296. mirascope/llm/providers/mlx/encoding/base.py +5 -2
  297. mirascope/llm/providers/mlx/encoding/transformers.py +5 -2
  298. mirascope/llm/providers/mlx/mlx.py +23 -6
  299. mirascope/llm/providers/mlx/provider.py +42 -13
  300. mirascope/llm/providers/ollama/__init__.py +1 -13
  301. mirascope/llm/providers/openai/_utils/errors.py +2 -2
  302. mirascope/llm/providers/openai/completions/__init__.py +2 -20
  303. mirascope/llm/providers/openai/completions/_utils/decode.py +14 -3
  304. mirascope/llm/providers/openai/completions/_utils/encode.py +35 -28
  305. mirascope/llm/providers/openai/completions/base_provider.py +40 -11
  306. mirascope/llm/providers/openai/provider.py +40 -10
  307. mirascope/llm/providers/openai/responses/__init__.py +1 -17
  308. mirascope/llm/providers/openai/responses/_utils/__init__.py +2 -0
  309. mirascope/llm/providers/openai/responses/_utils/decode.py +21 -8
  310. mirascope/llm/providers/openai/responses/_utils/encode.py +59 -19
  311. mirascope/llm/providers/openai/responses/provider.py +56 -18
  312. mirascope/llm/providers/provider_id.py +1 -0
  313. mirascope/llm/providers/provider_registry.py +96 -19
  314. mirascope/llm/providers/together/__init__.py +1 -13
  315. mirascope/llm/responses/__init__.py +6 -1
  316. mirascope/llm/responses/_utils.py +102 -12
  317. mirascope/llm/responses/base_response.py +5 -2
  318. mirascope/llm/responses/base_stream_response.py +139 -45
  319. mirascope/llm/responses/response.py +2 -1
  320. mirascope/llm/responses/root_response.py +89 -17
  321. mirascope/llm/responses/stream_response.py +6 -9
  322. mirascope/llm/tools/decorator.py +17 -8
  323. mirascope/llm/tools/tool_schema.py +43 -10
  324. mirascope/llm/tools/toolkit.py +35 -27
  325. mirascope/llm/tools/tools.py +123 -30
  326. mirascope/ops/__init__.py +64 -109
  327. mirascope/ops/_internal/configuration.py +82 -31
  328. mirascope/ops/_internal/exporters/exporters.py +64 -11
  329. mirascope/ops/_internal/instrumentation/llm/common.py +530 -0
  330. mirascope/ops/_internal/instrumentation/llm/cost.py +190 -0
  331. mirascope/ops/_internal/instrumentation/llm/encode.py +1 -1
  332. mirascope/ops/_internal/instrumentation/llm/llm.py +116 -1243
  333. mirascope/ops/_internal/instrumentation/llm/model.py +1798 -0
  334. mirascope/ops/_internal/instrumentation/llm/response.py +521 -0
  335. mirascope/ops/_internal/instrumentation/llm/serialize.py +300 -0
  336. mirascope/ops/_internal/protocols.py +83 -1
  337. mirascope/ops/_internal/traced_calls.py +4 -0
  338. mirascope/ops/_internal/traced_functions.py +141 -12
  339. mirascope/ops/_internal/tracing.py +78 -1
  340. mirascope/ops/_internal/utils.py +52 -4
  341. mirascope/ops/_internal/versioned_functions.py +54 -43
  342. {mirascope-2.0.0a5.dist-info → mirascope-2.0.1.dist-info}/METADATA +14 -13
  343. mirascope-2.0.1.dist-info/RECORD +423 -0
  344. {mirascope-2.0.0a5.dist-info → mirascope-2.0.1.dist-info}/licenses/LICENSE +1 -1
  345. mirascope/llm/formatting/_utils.py +0 -78
  346. mirascope/llm/mcp/client.py +0 -118
  347. mirascope/llm/providers/_missing_import_stubs.py +0 -49
  348. mirascope-2.0.0a5.dist-info/RECORD +0 -265
  349. {mirascope-2.0.0a5.dist-info → mirascope-2.0.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,647 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from ..core.request_options import RequestOptions
7
+ from .raw_client import AsyncRawFunctionsClient, RawFunctionsClient
8
+ from .types.functions_create_request_dependencies_value import (
9
+ FunctionsCreateRequestDependenciesValue,
10
+ )
11
+ from .types.functions_create_response import FunctionsCreateResponse
12
+ from .types.functions_find_by_hash_response import FunctionsFindByHashResponse
13
+ from .types.functions_get_by_env_response import FunctionsGetByEnvResponse
14
+ from .types.functions_get_response import FunctionsGetResponse
15
+ from .types.functions_list_by_env_response import FunctionsListByEnvResponse
16
+ from .types.functions_list_response import FunctionsListResponse
17
+
18
+ # this is used as the default value for optional parameters
19
+ OMIT = typing.cast(typing.Any, ...)
20
+
21
+
22
+ class FunctionsClient:
23
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
24
+ self._raw_client = RawFunctionsClient(client_wrapper=client_wrapper)
25
+
26
+ @property
27
+ def with_raw_response(self) -> RawFunctionsClient:
28
+ """
29
+ Retrieves a raw implementation of this client that returns raw responses.
30
+
31
+ Returns
32
+ -------
33
+ RawFunctionsClient
34
+ """
35
+ return self._raw_client
36
+
37
+ def list(
38
+ self, *, request_options: typing.Optional[RequestOptions] = None
39
+ ) -> FunctionsListResponse:
40
+ """
41
+ Parameters
42
+ ----------
43
+ request_options : typing.Optional[RequestOptions]
44
+ Request-specific configuration.
45
+
46
+ Returns
47
+ -------
48
+ FunctionsListResponse
49
+ Success
50
+
51
+ Examples
52
+ --------
53
+ from mirascope.api._generated import Mirascope
54
+
55
+ client = Mirascope()
56
+ client.functions.list()
57
+ """
58
+ _response = self._raw_client.list(request_options=request_options)
59
+ return _response.data
60
+
61
+ def create(
62
+ self,
63
+ *,
64
+ code: str,
65
+ hash: str,
66
+ signature: str,
67
+ signature_hash: str,
68
+ name: str,
69
+ description: typing.Optional[str] = OMIT,
70
+ tags: typing.Optional[typing.Sequence[str]] = OMIT,
71
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
72
+ dependencies: typing.Optional[
73
+ typing.Dict[str, typing.Optional[FunctionsCreateRequestDependenciesValue]]
74
+ ] = OMIT,
75
+ request_options: typing.Optional[RequestOptions] = None,
76
+ ) -> FunctionsCreateResponse:
77
+ """
78
+ Parameters
79
+ ----------
80
+ code : str
81
+
82
+ hash : str
83
+
84
+ signature : str
85
+
86
+ signature_hash : str
87
+
88
+ name : str
89
+
90
+ description : typing.Optional[str]
91
+
92
+ tags : typing.Optional[typing.Sequence[str]]
93
+
94
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[str]]]
95
+
96
+ dependencies : typing.Optional[typing.Dict[str, typing.Optional[FunctionsCreateRequestDependenciesValue]]]
97
+
98
+ request_options : typing.Optional[RequestOptions]
99
+ Request-specific configuration.
100
+
101
+ Returns
102
+ -------
103
+ FunctionsCreateResponse
104
+ Success
105
+
106
+ Examples
107
+ --------
108
+ from mirascope.api._generated import Mirascope
109
+
110
+ client = Mirascope()
111
+ client.functions.create(
112
+ code="code",
113
+ hash="hash",
114
+ signature="signature",
115
+ signature_hash="signatureHash",
116
+ name="name",
117
+ )
118
+ """
119
+ _response = self._raw_client.create(
120
+ code=code,
121
+ hash=hash,
122
+ signature=signature,
123
+ signature_hash=signature_hash,
124
+ name=name,
125
+ description=description,
126
+ tags=tags,
127
+ metadata=metadata,
128
+ dependencies=dependencies,
129
+ request_options=request_options,
130
+ )
131
+ return _response.data
132
+
133
+ def get(
134
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
135
+ ) -> FunctionsGetResponse:
136
+ """
137
+ Parameters
138
+ ----------
139
+ id : str
140
+
141
+ request_options : typing.Optional[RequestOptions]
142
+ Request-specific configuration.
143
+
144
+ Returns
145
+ -------
146
+ FunctionsGetResponse
147
+ Success
148
+
149
+ Examples
150
+ --------
151
+ from mirascope.api._generated import Mirascope
152
+
153
+ client = Mirascope()
154
+ client.functions.get(
155
+ id="id",
156
+ )
157
+ """
158
+ _response = self._raw_client.get(id, request_options=request_options)
159
+ return _response.data
160
+
161
+ def delete(
162
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
163
+ ) -> None:
164
+ """
165
+ Parameters
166
+ ----------
167
+ id : str
168
+
169
+ request_options : typing.Optional[RequestOptions]
170
+ Request-specific configuration.
171
+
172
+ Returns
173
+ -------
174
+ None
175
+
176
+ Examples
177
+ --------
178
+ from mirascope.api._generated import Mirascope
179
+
180
+ client = Mirascope()
181
+ client.functions.delete(
182
+ id="id",
183
+ )
184
+ """
185
+ _response = self._raw_client.delete(id, request_options=request_options)
186
+ return _response.data
187
+
188
+ def findbyhash(
189
+ self, hash: str, *, request_options: typing.Optional[RequestOptions] = None
190
+ ) -> FunctionsFindByHashResponse:
191
+ """
192
+ Parameters
193
+ ----------
194
+ hash : str
195
+
196
+ request_options : typing.Optional[RequestOptions]
197
+ Request-specific configuration.
198
+
199
+ Returns
200
+ -------
201
+ FunctionsFindByHashResponse
202
+ Success
203
+
204
+ Examples
205
+ --------
206
+ from mirascope.api._generated import Mirascope
207
+
208
+ client = Mirascope()
209
+ client.functions.findbyhash(
210
+ hash="hash",
211
+ )
212
+ """
213
+ _response = self._raw_client.findbyhash(hash, request_options=request_options)
214
+ return _response.data
215
+
216
+ def getbyenv(
217
+ self,
218
+ organization_id: str,
219
+ project_id: str,
220
+ environment_id: str,
221
+ function_id: str,
222
+ *,
223
+ request_options: typing.Optional[RequestOptions] = None,
224
+ ) -> FunctionsGetByEnvResponse:
225
+ """
226
+ Parameters
227
+ ----------
228
+ organization_id : str
229
+
230
+ project_id : str
231
+
232
+ environment_id : str
233
+
234
+ function_id : str
235
+
236
+ request_options : typing.Optional[RequestOptions]
237
+ Request-specific configuration.
238
+
239
+ Returns
240
+ -------
241
+ FunctionsGetByEnvResponse
242
+ Success
243
+
244
+ Examples
245
+ --------
246
+ from mirascope.api._generated import Mirascope
247
+
248
+ client = Mirascope()
249
+ client.functions.getbyenv(
250
+ organization_id="organizationId",
251
+ project_id="projectId",
252
+ environment_id="environmentId",
253
+ function_id="functionId",
254
+ )
255
+ """
256
+ _response = self._raw_client.getbyenv(
257
+ organization_id,
258
+ project_id,
259
+ environment_id,
260
+ function_id,
261
+ request_options=request_options,
262
+ )
263
+ return _response.data
264
+
265
+ def listbyenv(
266
+ self,
267
+ organization_id: str,
268
+ project_id: str,
269
+ environment_id: str,
270
+ *,
271
+ request_options: typing.Optional[RequestOptions] = None,
272
+ ) -> FunctionsListByEnvResponse:
273
+ """
274
+ Parameters
275
+ ----------
276
+ organization_id : str
277
+
278
+ project_id : str
279
+
280
+ environment_id : str
281
+
282
+ request_options : typing.Optional[RequestOptions]
283
+ Request-specific configuration.
284
+
285
+ Returns
286
+ -------
287
+ FunctionsListByEnvResponse
288
+ Success
289
+
290
+ Examples
291
+ --------
292
+ from mirascope.api._generated import Mirascope
293
+
294
+ client = Mirascope()
295
+ client.functions.listbyenv(
296
+ organization_id="organizationId",
297
+ project_id="projectId",
298
+ environment_id="environmentId",
299
+ )
300
+ """
301
+ _response = self._raw_client.listbyenv(
302
+ organization_id, project_id, environment_id, request_options=request_options
303
+ )
304
+ return _response.data
305
+
306
+
307
+ class AsyncFunctionsClient:
308
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
309
+ self._raw_client = AsyncRawFunctionsClient(client_wrapper=client_wrapper)
310
+
311
+ @property
312
+ def with_raw_response(self) -> AsyncRawFunctionsClient:
313
+ """
314
+ Retrieves a raw implementation of this client that returns raw responses.
315
+
316
+ Returns
317
+ -------
318
+ AsyncRawFunctionsClient
319
+ """
320
+ return self._raw_client
321
+
322
+ async def list(
323
+ self, *, request_options: typing.Optional[RequestOptions] = None
324
+ ) -> FunctionsListResponse:
325
+ """
326
+ Parameters
327
+ ----------
328
+ request_options : typing.Optional[RequestOptions]
329
+ Request-specific configuration.
330
+
331
+ Returns
332
+ -------
333
+ FunctionsListResponse
334
+ Success
335
+
336
+ Examples
337
+ --------
338
+ import asyncio
339
+
340
+ from mirascope.api._generated import AsyncMirascope
341
+
342
+ client = AsyncMirascope()
343
+
344
+
345
+ async def main() -> None:
346
+ await client.functions.list()
347
+
348
+
349
+ asyncio.run(main())
350
+ """
351
+ _response = await self._raw_client.list(request_options=request_options)
352
+ return _response.data
353
+
354
+ async def create(
355
+ self,
356
+ *,
357
+ code: str,
358
+ hash: str,
359
+ signature: str,
360
+ signature_hash: str,
361
+ name: str,
362
+ description: typing.Optional[str] = OMIT,
363
+ tags: typing.Optional[typing.Sequence[str]] = OMIT,
364
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
365
+ dependencies: typing.Optional[
366
+ typing.Dict[str, typing.Optional[FunctionsCreateRequestDependenciesValue]]
367
+ ] = OMIT,
368
+ request_options: typing.Optional[RequestOptions] = None,
369
+ ) -> FunctionsCreateResponse:
370
+ """
371
+ Parameters
372
+ ----------
373
+ code : str
374
+
375
+ hash : str
376
+
377
+ signature : str
378
+
379
+ signature_hash : str
380
+
381
+ name : str
382
+
383
+ description : typing.Optional[str]
384
+
385
+ tags : typing.Optional[typing.Sequence[str]]
386
+
387
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[str]]]
388
+
389
+ dependencies : typing.Optional[typing.Dict[str, typing.Optional[FunctionsCreateRequestDependenciesValue]]]
390
+
391
+ request_options : typing.Optional[RequestOptions]
392
+ Request-specific configuration.
393
+
394
+ Returns
395
+ -------
396
+ FunctionsCreateResponse
397
+ Success
398
+
399
+ Examples
400
+ --------
401
+ import asyncio
402
+
403
+ from mirascope.api._generated import AsyncMirascope
404
+
405
+ client = AsyncMirascope()
406
+
407
+
408
+ async def main() -> None:
409
+ await client.functions.create(
410
+ code="code",
411
+ hash="hash",
412
+ signature="signature",
413
+ signature_hash="signatureHash",
414
+ name="name",
415
+ )
416
+
417
+
418
+ asyncio.run(main())
419
+ """
420
+ _response = await self._raw_client.create(
421
+ code=code,
422
+ hash=hash,
423
+ signature=signature,
424
+ signature_hash=signature_hash,
425
+ name=name,
426
+ description=description,
427
+ tags=tags,
428
+ metadata=metadata,
429
+ dependencies=dependencies,
430
+ request_options=request_options,
431
+ )
432
+ return _response.data
433
+
434
+ async def get(
435
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
436
+ ) -> FunctionsGetResponse:
437
+ """
438
+ Parameters
439
+ ----------
440
+ id : str
441
+
442
+ request_options : typing.Optional[RequestOptions]
443
+ Request-specific configuration.
444
+
445
+ Returns
446
+ -------
447
+ FunctionsGetResponse
448
+ Success
449
+
450
+ Examples
451
+ --------
452
+ import asyncio
453
+
454
+ from mirascope.api._generated import AsyncMirascope
455
+
456
+ client = AsyncMirascope()
457
+
458
+
459
+ async def main() -> None:
460
+ await client.functions.get(
461
+ id="id",
462
+ )
463
+
464
+
465
+ asyncio.run(main())
466
+ """
467
+ _response = await self._raw_client.get(id, request_options=request_options)
468
+ return _response.data
469
+
470
+ async def delete(
471
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
472
+ ) -> None:
473
+ """
474
+ Parameters
475
+ ----------
476
+ id : str
477
+
478
+ request_options : typing.Optional[RequestOptions]
479
+ Request-specific configuration.
480
+
481
+ Returns
482
+ -------
483
+ None
484
+
485
+ Examples
486
+ --------
487
+ import asyncio
488
+
489
+ from mirascope.api._generated import AsyncMirascope
490
+
491
+ client = AsyncMirascope()
492
+
493
+
494
+ async def main() -> None:
495
+ await client.functions.delete(
496
+ id="id",
497
+ )
498
+
499
+
500
+ asyncio.run(main())
501
+ """
502
+ _response = await self._raw_client.delete(id, request_options=request_options)
503
+ return _response.data
504
+
505
+ async def findbyhash(
506
+ self, hash: str, *, request_options: typing.Optional[RequestOptions] = None
507
+ ) -> FunctionsFindByHashResponse:
508
+ """
509
+ Parameters
510
+ ----------
511
+ hash : str
512
+
513
+ request_options : typing.Optional[RequestOptions]
514
+ Request-specific configuration.
515
+
516
+ Returns
517
+ -------
518
+ FunctionsFindByHashResponse
519
+ Success
520
+
521
+ Examples
522
+ --------
523
+ import asyncio
524
+
525
+ from mirascope.api._generated import AsyncMirascope
526
+
527
+ client = AsyncMirascope()
528
+
529
+
530
+ async def main() -> None:
531
+ await client.functions.findbyhash(
532
+ hash="hash",
533
+ )
534
+
535
+
536
+ asyncio.run(main())
537
+ """
538
+ _response = await self._raw_client.findbyhash(
539
+ hash, request_options=request_options
540
+ )
541
+ return _response.data
542
+
543
+ async def getbyenv(
544
+ self,
545
+ organization_id: str,
546
+ project_id: str,
547
+ environment_id: str,
548
+ function_id: str,
549
+ *,
550
+ request_options: typing.Optional[RequestOptions] = None,
551
+ ) -> FunctionsGetByEnvResponse:
552
+ """
553
+ Parameters
554
+ ----------
555
+ organization_id : str
556
+
557
+ project_id : str
558
+
559
+ environment_id : str
560
+
561
+ function_id : str
562
+
563
+ request_options : typing.Optional[RequestOptions]
564
+ Request-specific configuration.
565
+
566
+ Returns
567
+ -------
568
+ FunctionsGetByEnvResponse
569
+ Success
570
+
571
+ Examples
572
+ --------
573
+ import asyncio
574
+
575
+ from mirascope.api._generated import AsyncMirascope
576
+
577
+ client = AsyncMirascope()
578
+
579
+
580
+ async def main() -> None:
581
+ await client.functions.getbyenv(
582
+ organization_id="organizationId",
583
+ project_id="projectId",
584
+ environment_id="environmentId",
585
+ function_id="functionId",
586
+ )
587
+
588
+
589
+ asyncio.run(main())
590
+ """
591
+ _response = await self._raw_client.getbyenv(
592
+ organization_id,
593
+ project_id,
594
+ environment_id,
595
+ function_id,
596
+ request_options=request_options,
597
+ )
598
+ return _response.data
599
+
600
+ async def listbyenv(
601
+ self,
602
+ organization_id: str,
603
+ project_id: str,
604
+ environment_id: str,
605
+ *,
606
+ request_options: typing.Optional[RequestOptions] = None,
607
+ ) -> FunctionsListByEnvResponse:
608
+ """
609
+ Parameters
610
+ ----------
611
+ organization_id : str
612
+
613
+ project_id : str
614
+
615
+ environment_id : str
616
+
617
+ request_options : typing.Optional[RequestOptions]
618
+ Request-specific configuration.
619
+
620
+ Returns
621
+ -------
622
+ FunctionsListByEnvResponse
623
+ Success
624
+
625
+ Examples
626
+ --------
627
+ import asyncio
628
+
629
+ from mirascope.api._generated import AsyncMirascope
630
+
631
+ client = AsyncMirascope()
632
+
633
+
634
+ async def main() -> None:
635
+ await client.functions.listbyenv(
636
+ organization_id="organizationId",
637
+ project_id="projectId",
638
+ environment_id="environmentId",
639
+ )
640
+
641
+
642
+ asyncio.run(main())
643
+ """
644
+ _response = await self._raw_client.listbyenv(
645
+ organization_id, project_id, environment_id, request_options=request_options
646
+ )
647
+ return _response.data