mirascope 2.0.0__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 (442) hide show
  1. mirascope/__init__.py +2 -11
  2. mirascope/graphs/__init__.py +22 -0
  3. mirascope/graphs/finite_state_machine.py +625 -0
  4. mirascope/llm/__init__.py +16 -101
  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 +1 -2
  10. mirascope/llm/calls/base_call.py +33 -0
  11. mirascope/llm/calls/calls.py +58 -84
  12. mirascope/llm/calls/decorator.py +120 -140
  13. mirascope/llm/clients/__init__.py +34 -0
  14. mirascope/llm/clients/anthropic/__init__.py +11 -0
  15. mirascope/llm/{providers/openai/completions → clients/anthropic}/_utils/__init__.py +0 -2
  16. mirascope/llm/{providers → clients}/anthropic/_utils/decode.py +22 -66
  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/{providers → clients}/base/__init__.py +5 -4
  21. mirascope/llm/{providers → clients}/base/_utils.py +17 -78
  22. mirascope/llm/{providers/base/base_provider.py → clients/base/client.py} +145 -468
  23. mirascope/llm/{models → clients/base}/params.py +37 -16
  24. mirascope/llm/clients/google/__init__.py +6 -0
  25. mirascope/llm/{providers/openai/responses → clients/google}/_utils/__init__.py +0 -2
  26. mirascope/llm/{providers → clients}/google/_utils/decode.py +22 -98
  27. mirascope/llm/{providers → clients}/google/_utils/encode.py +46 -168
  28. mirascope/llm/clients/google/clients.py +853 -0
  29. mirascope/llm/clients/google/model_ids.py +15 -0
  30. mirascope/llm/clients/openai/__init__.py +25 -0
  31. mirascope/llm/clients/openai/completions/__init__.py +9 -0
  32. mirascope/llm/{providers/google → clients/openai/completions}/_utils/__init__.py +0 -4
  33. mirascope/llm/{providers → clients}/openai/completions/_utils/decode.py +9 -74
  34. mirascope/llm/{providers → clients}/openai/completions/_utils/encode.py +52 -70
  35. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  36. mirascope/llm/clients/openai/completions/clients.py +833 -0
  37. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  38. mirascope/llm/clients/openai/responses/__init__.py +9 -0
  39. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  40. mirascope/llm/{providers → clients}/openai/responses/_utils/decode.py +14 -80
  41. mirascope/llm/{providers → clients}/openai/responses/_utils/encode.py +41 -92
  42. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  43. mirascope/llm/clients/openai/responses/clients.py +832 -0
  44. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  45. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  46. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  47. mirascope/llm/clients/providers.py +175 -0
  48. mirascope/llm/content/__init__.py +2 -3
  49. mirascope/llm/content/tool_call.py +0 -6
  50. mirascope/llm/content/tool_output.py +5 -22
  51. mirascope/llm/context/_utils.py +6 -19
  52. mirascope/llm/exceptions.py +43 -298
  53. mirascope/llm/formatting/__init__.py +2 -19
  54. mirascope/llm/formatting/_utils.py +74 -0
  55. mirascope/llm/formatting/format.py +30 -219
  56. mirascope/llm/formatting/from_call_args.py +2 -2
  57. mirascope/llm/formatting/partial.py +7 -80
  58. mirascope/llm/formatting/types.py +64 -21
  59. mirascope/llm/mcp/__init__.py +2 -2
  60. mirascope/llm/mcp/client.py +118 -0
  61. mirascope/llm/messages/__init__.py +0 -3
  62. mirascope/llm/messages/message.py +5 -13
  63. mirascope/llm/models/__init__.py +2 -7
  64. mirascope/llm/models/models.py +139 -315
  65. mirascope/llm/prompts/__init__.py +12 -13
  66. mirascope/llm/prompts/_utils.py +43 -14
  67. mirascope/llm/prompts/decorator.py +204 -144
  68. mirascope/llm/prompts/protocols.py +59 -25
  69. mirascope/llm/responses/__init__.py +1 -9
  70. mirascope/llm/responses/_utils.py +12 -102
  71. mirascope/llm/responses/base_response.py +6 -18
  72. mirascope/llm/responses/base_stream_response.py +50 -173
  73. mirascope/llm/responses/finish_reason.py +0 -1
  74. mirascope/llm/responses/response.py +13 -34
  75. mirascope/llm/responses/root_response.py +29 -100
  76. mirascope/llm/responses/stream_response.py +31 -40
  77. mirascope/llm/tools/__init__.py +2 -9
  78. mirascope/llm/tools/_utils.py +3 -12
  79. mirascope/llm/tools/decorator.py +16 -25
  80. mirascope/llm/tools/protocols.py +4 -4
  81. mirascope/llm/tools/tool_schema.py +19 -87
  82. mirascope/llm/tools/toolkit.py +27 -35
  83. mirascope/llm/tools/tools.py +41 -135
  84. {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/METADATA +9 -95
  85. mirascope-2.0.0a0.dist-info/RECORD +101 -0
  86. {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/WHEEL +1 -1
  87. {mirascope-2.0.0.dist-info → mirascope-2.0.0a0.dist-info}/licenses/LICENSE +1 -1
  88. mirascope/_stubs.py +0 -363
  89. mirascope/api/__init__.py +0 -14
  90. mirascope/api/_generated/README.md +0 -207
  91. mirascope/api/_generated/__init__.py +0 -440
  92. mirascope/api/_generated/annotations/__init__.py +0 -33
  93. mirascope/api/_generated/annotations/client.py +0 -506
  94. mirascope/api/_generated/annotations/raw_client.py +0 -1414
  95. mirascope/api/_generated/annotations/types/__init__.py +0 -31
  96. mirascope/api/_generated/annotations/types/annotations_create_request_label.py +0 -5
  97. mirascope/api/_generated/annotations/types/annotations_create_response.py +0 -48
  98. mirascope/api/_generated/annotations/types/annotations_create_response_label.py +0 -5
  99. mirascope/api/_generated/annotations/types/annotations_get_response.py +0 -48
  100. mirascope/api/_generated/annotations/types/annotations_get_response_label.py +0 -5
  101. mirascope/api/_generated/annotations/types/annotations_list_request_label.py +0 -5
  102. mirascope/api/_generated/annotations/types/annotations_list_response.py +0 -21
  103. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +0 -50
  104. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +0 -5
  105. mirascope/api/_generated/annotations/types/annotations_update_request_label.py +0 -5
  106. mirascope/api/_generated/annotations/types/annotations_update_response.py +0 -48
  107. mirascope/api/_generated/annotations/types/annotations_update_response_label.py +0 -5
  108. mirascope/api/_generated/api_keys/__init__.py +0 -17
  109. mirascope/api/_generated/api_keys/client.py +0 -530
  110. mirascope/api/_generated/api_keys/raw_client.py +0 -1236
  111. mirascope/api/_generated/api_keys/types/__init__.py +0 -15
  112. mirascope/api/_generated/api_keys/types/api_keys_create_response.py +0 -28
  113. mirascope/api/_generated/api_keys/types/api_keys_get_response.py +0 -27
  114. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +0 -40
  115. mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +0 -27
  116. mirascope/api/_generated/client.py +0 -211
  117. mirascope/api/_generated/core/__init__.py +0 -52
  118. mirascope/api/_generated/core/api_error.py +0 -23
  119. mirascope/api/_generated/core/client_wrapper.py +0 -46
  120. mirascope/api/_generated/core/datetime_utils.py +0 -28
  121. mirascope/api/_generated/core/file.py +0 -67
  122. mirascope/api/_generated/core/force_multipart.py +0 -16
  123. mirascope/api/_generated/core/http_client.py +0 -543
  124. mirascope/api/_generated/core/http_response.py +0 -55
  125. mirascope/api/_generated/core/jsonable_encoder.py +0 -100
  126. mirascope/api/_generated/core/pydantic_utilities.py +0 -255
  127. mirascope/api/_generated/core/query_encoder.py +0 -58
  128. mirascope/api/_generated/core/remove_none_from_dict.py +0 -11
  129. mirascope/api/_generated/core/request_options.py +0 -35
  130. mirascope/api/_generated/core/serialization.py +0 -276
  131. mirascope/api/_generated/docs/__init__.py +0 -4
  132. mirascope/api/_generated/docs/client.py +0 -91
  133. mirascope/api/_generated/docs/raw_client.py +0 -178
  134. mirascope/api/_generated/environment.py +0 -9
  135. mirascope/api/_generated/environments/__init__.py +0 -23
  136. mirascope/api/_generated/environments/client.py +0 -649
  137. mirascope/api/_generated/environments/raw_client.py +0 -1567
  138. mirascope/api/_generated/environments/types/__init__.py +0 -25
  139. mirascope/api/_generated/environments/types/environments_create_response.py +0 -24
  140. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +0 -60
  141. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +0 -24
  142. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +0 -22
  143. mirascope/api/_generated/environments/types/environments_get_response.py +0 -24
  144. mirascope/api/_generated/environments/types/environments_list_response_item.py +0 -24
  145. mirascope/api/_generated/environments/types/environments_update_response.py +0 -24
  146. mirascope/api/_generated/errors/__init__.py +0 -25
  147. mirascope/api/_generated/errors/bad_request_error.py +0 -14
  148. mirascope/api/_generated/errors/conflict_error.py +0 -14
  149. mirascope/api/_generated/errors/forbidden_error.py +0 -11
  150. mirascope/api/_generated/errors/internal_server_error.py +0 -10
  151. mirascope/api/_generated/errors/not_found_error.py +0 -11
  152. mirascope/api/_generated/errors/payment_required_error.py +0 -15
  153. mirascope/api/_generated/errors/service_unavailable_error.py +0 -14
  154. mirascope/api/_generated/errors/too_many_requests_error.py +0 -15
  155. mirascope/api/_generated/errors/unauthorized_error.py +0 -11
  156. mirascope/api/_generated/functions/__init__.py +0 -39
  157. mirascope/api/_generated/functions/client.py +0 -647
  158. mirascope/api/_generated/functions/raw_client.py +0 -1890
  159. mirascope/api/_generated/functions/types/__init__.py +0 -53
  160. mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +0 -20
  161. mirascope/api/_generated/functions/types/functions_create_response.py +0 -37
  162. mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +0 -20
  163. mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +0 -39
  164. mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +0 -20
  165. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +0 -53
  166. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +0 -22
  167. mirascope/api/_generated/functions/types/functions_get_response.py +0 -37
  168. mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +0 -20
  169. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +0 -25
  170. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +0 -56
  171. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +0 -22
  172. mirascope/api/_generated/functions/types/functions_list_response.py +0 -21
  173. mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +0 -41
  174. mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +0 -20
  175. mirascope/api/_generated/health/__init__.py +0 -7
  176. mirascope/api/_generated/health/client.py +0 -92
  177. mirascope/api/_generated/health/raw_client.py +0 -175
  178. mirascope/api/_generated/health/types/__init__.py +0 -8
  179. mirascope/api/_generated/health/types/health_check_response.py +0 -22
  180. mirascope/api/_generated/health/types/health_check_response_status.py +0 -5
  181. mirascope/api/_generated/organization_invitations/__init__.py +0 -33
  182. mirascope/api/_generated/organization_invitations/client.py +0 -546
  183. mirascope/api/_generated/organization_invitations/raw_client.py +0 -1519
  184. mirascope/api/_generated/organization_invitations/types/__init__.py +0 -53
  185. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +0 -34
  186. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +0 -7
  187. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +0 -7
  188. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +0 -48
  189. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +0 -7
  190. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +0 -7
  191. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +0 -48
  192. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +0 -7
  193. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +0 -7
  194. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +0 -48
  195. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +0 -7
  196. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +0 -7
  197. mirascope/api/_generated/organization_memberships/__init__.py +0 -19
  198. mirascope/api/_generated/organization_memberships/client.py +0 -302
  199. mirascope/api/_generated/organization_memberships/raw_client.py +0 -736
  200. mirascope/api/_generated/organization_memberships/types/__init__.py +0 -27
  201. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +0 -33
  202. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +0 -7
  203. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +0 -7
  204. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +0 -31
  205. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +0 -7
  206. mirascope/api/_generated/organizations/__init__.py +0 -51
  207. mirascope/api/_generated/organizations/client.py +0 -869
  208. mirascope/api/_generated/organizations/raw_client.py +0 -2593
  209. mirascope/api/_generated/organizations/types/__init__.py +0 -71
  210. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +0 -24
  211. mirascope/api/_generated/organizations/types/organizations_create_response.py +0 -26
  212. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +0 -5
  213. mirascope/api/_generated/organizations/types/organizations_get_response.py +0 -26
  214. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +0 -5
  215. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +0 -26
  216. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +0 -5
  217. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +0 -7
  218. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +0 -47
  219. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +0 -33
  220. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +0 -7
  221. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +0 -24
  222. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +0 -53
  223. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +0 -7
  224. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +0 -26
  225. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +0 -34
  226. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +0 -7
  227. mirascope/api/_generated/organizations/types/organizations_update_response.py +0 -26
  228. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +0 -5
  229. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +0 -7
  230. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +0 -35
  231. mirascope/api/_generated/project_memberships/__init__.py +0 -25
  232. mirascope/api/_generated/project_memberships/client.py +0 -437
  233. mirascope/api/_generated/project_memberships/raw_client.py +0 -1039
  234. mirascope/api/_generated/project_memberships/types/__init__.py +0 -29
  235. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +0 -7
  236. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +0 -35
  237. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +0 -7
  238. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +0 -33
  239. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +0 -7
  240. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +0 -7
  241. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +0 -35
  242. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +0 -7
  243. mirascope/api/_generated/projects/__init__.py +0 -7
  244. mirascope/api/_generated/projects/client.py +0 -428
  245. mirascope/api/_generated/projects/raw_client.py +0 -1302
  246. mirascope/api/_generated/projects/types/__init__.py +0 -10
  247. mirascope/api/_generated/projects/types/projects_create_response.py +0 -25
  248. mirascope/api/_generated/projects/types/projects_get_response.py +0 -25
  249. mirascope/api/_generated/projects/types/projects_list_response_item.py +0 -25
  250. mirascope/api/_generated/projects/types/projects_update_response.py +0 -25
  251. mirascope/api/_generated/reference.md +0 -4915
  252. mirascope/api/_generated/tags/__init__.py +0 -19
  253. mirascope/api/_generated/tags/client.py +0 -504
  254. mirascope/api/_generated/tags/raw_client.py +0 -1288
  255. mirascope/api/_generated/tags/types/__init__.py +0 -17
  256. mirascope/api/_generated/tags/types/tags_create_response.py +0 -41
  257. mirascope/api/_generated/tags/types/tags_get_response.py +0 -41
  258. mirascope/api/_generated/tags/types/tags_list_response.py +0 -23
  259. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +0 -41
  260. mirascope/api/_generated/tags/types/tags_update_response.py +0 -41
  261. mirascope/api/_generated/token_cost/__init__.py +0 -7
  262. mirascope/api/_generated/token_cost/client.py +0 -160
  263. mirascope/api/_generated/token_cost/raw_client.py +0 -264
  264. mirascope/api/_generated/token_cost/types/__init__.py +0 -8
  265. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +0 -54
  266. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +0 -52
  267. mirascope/api/_generated/traces/__init__.py +0 -97
  268. mirascope/api/_generated/traces/client.py +0 -1103
  269. mirascope/api/_generated/traces/raw_client.py +0 -2322
  270. mirascope/api/_generated/traces/types/__init__.py +0 -155
  271. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +0 -29
  272. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +0 -27
  273. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +0 -23
  274. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +0 -38
  275. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +0 -19
  276. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +0 -22
  277. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +0 -20
  278. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +0 -29
  279. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +0 -31
  280. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +0 -23
  281. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +0 -38
  282. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +0 -19
  283. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +0 -22
  284. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item.py +0 -22
  285. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +0 -48
  286. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +0 -23
  287. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +0 -38
  288. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +0 -19
  289. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +0 -24
  290. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item.py +0 -22
  291. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +0 -20
  292. mirascope/api/_generated/traces/types/traces_create_response.py +0 -24
  293. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +0 -22
  294. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +0 -60
  295. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +0 -24
  296. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +0 -22
  297. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +0 -33
  298. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +0 -88
  299. mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +0 -33
  300. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -88
  301. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +0 -25
  302. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +0 -44
  303. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +0 -26
  304. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +0 -7
  305. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +0 -7
  306. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +0 -7
  307. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +0 -26
  308. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +0 -50
  309. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +0 -26
  310. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +0 -7
  311. mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +0 -7
  312. mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +0 -5
  313. mirascope/api/_generated/traces/types/traces_search_response.py +0 -26
  314. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +0 -50
  315. mirascope/api/_generated/types/__init__.py +0 -85
  316. mirascope/api/_generated/types/already_exists_error.py +0 -22
  317. mirascope/api/_generated/types/already_exists_error_tag.py +0 -5
  318. mirascope/api/_generated/types/bad_request_error_body.py +0 -50
  319. mirascope/api/_generated/types/click_house_error.py +0 -22
  320. mirascope/api/_generated/types/database_error.py +0 -22
  321. mirascope/api/_generated/types/database_error_tag.py +0 -5
  322. mirascope/api/_generated/types/date.py +0 -3
  323. mirascope/api/_generated/types/http_api_decode_error.py +0 -27
  324. mirascope/api/_generated/types/http_api_decode_error_tag.py +0 -5
  325. mirascope/api/_generated/types/immutable_resource_error.py +0 -22
  326. mirascope/api/_generated/types/internal_server_error_body.py +0 -49
  327. mirascope/api/_generated/types/issue.py +0 -38
  328. mirascope/api/_generated/types/issue_tag.py +0 -10
  329. mirascope/api/_generated/types/not_found_error_body.py +0 -22
  330. mirascope/api/_generated/types/not_found_error_tag.py +0 -5
  331. mirascope/api/_generated/types/number_from_string.py +0 -3
  332. mirascope/api/_generated/types/permission_denied_error.py +0 -22
  333. mirascope/api/_generated/types/permission_denied_error_tag.py +0 -5
  334. mirascope/api/_generated/types/plan_limit_exceeded_error.py +0 -32
  335. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +0 -7
  336. mirascope/api/_generated/types/pricing_unavailable_error.py +0 -23
  337. mirascope/api/_generated/types/property_key.py +0 -7
  338. mirascope/api/_generated/types/property_key_key.py +0 -25
  339. mirascope/api/_generated/types/property_key_key_tag.py +0 -5
  340. mirascope/api/_generated/types/rate_limit_error.py +0 -31
  341. mirascope/api/_generated/types/rate_limit_error_tag.py +0 -5
  342. mirascope/api/_generated/types/service_unavailable_error_body.py +0 -24
  343. mirascope/api/_generated/types/service_unavailable_error_tag.py +0 -7
  344. mirascope/api/_generated/types/stripe_error.py +0 -20
  345. mirascope/api/_generated/types/subscription_past_due_error.py +0 -31
  346. mirascope/api/_generated/types/subscription_past_due_error_tag.py +0 -7
  347. mirascope/api/_generated/types/unauthorized_error_body.py +0 -21
  348. mirascope/api/_generated/types/unauthorized_error_tag.py +0 -5
  349. mirascope/api/client.py +0 -255
  350. mirascope/api/settings.py +0 -99
  351. mirascope/llm/formatting/output_parser.py +0 -178
  352. mirascope/llm/formatting/primitives.py +0 -192
  353. mirascope/llm/mcp/mcp_client.py +0 -130
  354. mirascope/llm/messages/_utils.py +0 -34
  355. mirascope/llm/models/thinking_config.py +0 -61
  356. mirascope/llm/prompts/prompts.py +0 -487
  357. mirascope/llm/providers/__init__.py +0 -62
  358. mirascope/llm/providers/anthropic/__init__.py +0 -11
  359. mirascope/llm/providers/anthropic/_utils/__init__.py +0 -27
  360. mirascope/llm/providers/anthropic/_utils/beta_decode.py +0 -282
  361. mirascope/llm/providers/anthropic/_utils/beta_encode.py +0 -266
  362. mirascope/llm/providers/anthropic/_utils/encode.py +0 -418
  363. mirascope/llm/providers/anthropic/_utils/errors.py +0 -46
  364. mirascope/llm/providers/anthropic/beta_provider.py +0 -374
  365. mirascope/llm/providers/anthropic/model_id.py +0 -23
  366. mirascope/llm/providers/anthropic/model_info.py +0 -87
  367. mirascope/llm/providers/anthropic/provider.py +0 -479
  368. mirascope/llm/providers/google/__init__.py +0 -6
  369. mirascope/llm/providers/google/_utils/errors.py +0 -50
  370. mirascope/llm/providers/google/model_id.py +0 -22
  371. mirascope/llm/providers/google/model_info.py +0 -63
  372. mirascope/llm/providers/google/provider.py +0 -492
  373. mirascope/llm/providers/mirascope/__init__.py +0 -5
  374. mirascope/llm/providers/mirascope/_utils.py +0 -73
  375. mirascope/llm/providers/mirascope/provider.py +0 -349
  376. mirascope/llm/providers/mlx/__init__.py +0 -9
  377. mirascope/llm/providers/mlx/_utils.py +0 -141
  378. mirascope/llm/providers/mlx/encoding/__init__.py +0 -8
  379. mirascope/llm/providers/mlx/encoding/base.py +0 -72
  380. mirascope/llm/providers/mlx/encoding/transformers.py +0 -150
  381. mirascope/llm/providers/mlx/mlx.py +0 -254
  382. mirascope/llm/providers/mlx/model_id.py +0 -17
  383. mirascope/llm/providers/mlx/provider.py +0 -452
  384. mirascope/llm/providers/model_id.py +0 -16
  385. mirascope/llm/providers/ollama/__init__.py +0 -7
  386. mirascope/llm/providers/ollama/provider.py +0 -71
  387. mirascope/llm/providers/openai/__init__.py +0 -15
  388. mirascope/llm/providers/openai/_utils/__init__.py +0 -5
  389. mirascope/llm/providers/openai/_utils/errors.py +0 -46
  390. mirascope/llm/providers/openai/completions/__init__.py +0 -7
  391. mirascope/llm/providers/openai/completions/base_provider.py +0 -542
  392. mirascope/llm/providers/openai/completions/provider.py +0 -22
  393. mirascope/llm/providers/openai/model_id.py +0 -31
  394. mirascope/llm/providers/openai/model_info.py +0 -303
  395. mirascope/llm/providers/openai/provider.py +0 -441
  396. mirascope/llm/providers/openai/responses/__init__.py +0 -5
  397. mirascope/llm/providers/openai/responses/provider.py +0 -513
  398. mirascope/llm/providers/provider_id.py +0 -24
  399. mirascope/llm/providers/provider_registry.py +0 -299
  400. mirascope/llm/providers/together/__init__.py +0 -7
  401. mirascope/llm/providers/together/provider.py +0 -40
  402. mirascope/llm/responses/usage.py +0 -95
  403. mirascope/ops/__init__.py +0 -111
  404. mirascope/ops/_internal/__init__.py +0 -5
  405. mirascope/ops/_internal/closure.py +0 -1169
  406. mirascope/ops/_internal/configuration.py +0 -177
  407. mirascope/ops/_internal/context.py +0 -76
  408. mirascope/ops/_internal/exporters/__init__.py +0 -26
  409. mirascope/ops/_internal/exporters/exporters.py +0 -395
  410. mirascope/ops/_internal/exporters/processors.py +0 -104
  411. mirascope/ops/_internal/exporters/types.py +0 -165
  412. mirascope/ops/_internal/exporters/utils.py +0 -29
  413. mirascope/ops/_internal/instrumentation/__init__.py +0 -8
  414. mirascope/ops/_internal/instrumentation/llm/__init__.py +0 -8
  415. mirascope/ops/_internal/instrumentation/llm/common.py +0 -530
  416. mirascope/ops/_internal/instrumentation/llm/cost.py +0 -190
  417. mirascope/ops/_internal/instrumentation/llm/encode.py +0 -238
  418. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +0 -38
  419. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +0 -31
  420. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +0 -38
  421. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +0 -18
  422. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +0 -100
  423. mirascope/ops/_internal/instrumentation/llm/llm.py +0 -161
  424. mirascope/ops/_internal/instrumentation/llm/model.py +0 -1798
  425. mirascope/ops/_internal/instrumentation/llm/response.py +0 -521
  426. mirascope/ops/_internal/instrumentation/llm/serialize.py +0 -300
  427. mirascope/ops/_internal/propagation.py +0 -198
  428. mirascope/ops/_internal/protocols.py +0 -133
  429. mirascope/ops/_internal/session.py +0 -139
  430. mirascope/ops/_internal/spans.py +0 -232
  431. mirascope/ops/_internal/traced_calls.py +0 -375
  432. mirascope/ops/_internal/traced_functions.py +0 -523
  433. mirascope/ops/_internal/tracing.py +0 -353
  434. mirascope/ops/_internal/types.py +0 -13
  435. mirascope/ops/_internal/utils.py +0 -123
  436. mirascope/ops/_internal/versioned_calls.py +0 -512
  437. mirascope/ops/_internal/versioned_functions.py +0 -357
  438. mirascope/ops/_internal/versioning.py +0 -303
  439. mirascope/ops/exceptions.py +0 -21
  440. mirascope-2.0.0.dist-info/RECORD +0 -423
  441. /mirascope/llm/{providers → clients}/base/kwargs.py +0 -0
  442. /mirascope/llm/{providers → clients}/google/message.py +0 -0
@@ -1,521 +0,0 @@
1
- """Mirascope-specific instrumentation for Response.resume methods."""
2
-
3
- from __future__ import annotations
4
-
5
- from functools import wraps
6
- from typing import TYPE_CHECKING, Any, cast, overload
7
-
8
- from .....llm import (
9
- AsyncContextResponse,
10
- AsyncContextStreamResponse,
11
- AsyncResponse,
12
- AsyncStreamResponse,
13
- Context,
14
- ContextResponse,
15
- ContextStreamResponse,
16
- DepsT,
17
- FormattableT,
18
- Response,
19
- StreamResponse,
20
- UserContent,
21
- )
22
- from ...spans import Span as MirascopeSpan
23
- from .serialize import attach_mirascope_response, attach_mirascope_response_async
24
-
25
- if TYPE_CHECKING:
26
- pass
27
-
28
-
29
- # =============================================================================
30
- # Original method references and wrapped state flags
31
- # =============================================================================
32
-
33
- _ORIGINAL_RESPONSE_RESUME = Response.resume
34
- _RESPONSE_RESUME_WRAPPED = False
35
- _ORIGINAL_ASYNC_RESPONSE_RESUME = AsyncResponse.resume
36
- _ASYNC_RESPONSE_RESUME_WRAPPED = False
37
- _ORIGINAL_CONTEXT_RESPONSE_RESUME = ContextResponse.resume
38
- _CONTEXT_RESPONSE_RESUME_WRAPPED = False
39
- _ORIGINAL_ASYNC_CONTEXT_RESPONSE_RESUME = AsyncContextResponse.resume
40
- _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED = False
41
- _ORIGINAL_STREAM_RESPONSE_RESUME = StreamResponse.resume
42
- _STREAM_RESPONSE_RESUME_WRAPPED = False
43
- _ORIGINAL_ASYNC_STREAM_RESPONSE_RESUME = AsyncStreamResponse.resume
44
- _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED = False
45
- _ORIGINAL_CONTEXT_STREAM_RESPONSE_RESUME = ContextStreamResponse.resume
46
- _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED = False
47
- _ORIGINAL_ASYNC_CONTEXT_STREAM_RESPONSE_RESUME = AsyncContextStreamResponse.resume
48
- _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED = False
49
-
50
-
51
- # =============================================================================
52
- # Response.resume instrumentation
53
- # =============================================================================
54
-
55
-
56
- @overload
57
- def _instrumented_response_resume(self: Response, content: UserContent) -> Response: ...
58
-
59
-
60
- @overload
61
- def _instrumented_response_resume(
62
- self: Response[FormattableT], content: UserContent
63
- ) -> Response[FormattableT]: ...
64
-
65
-
66
- @wraps(_ORIGINAL_RESPONSE_RESUME)
67
- def _instrumented_response_resume(
68
- self: Response | Response[FormattableT], content: UserContent
69
- ) -> Response | Response[FormattableT]:
70
- """Returns a Mirascope-traced result of `Response.resume`."""
71
- with MirascopeSpan(f"Response.resume {self.model_id}") as span:
72
- span.set(
73
- **{
74
- "mirascope.type": "response_resume",
75
- "mirascope.response.model_id": self.model_id,
76
- "mirascope.response.provider_id": self.provider_id,
77
- }
78
- )
79
- result = cast(
80
- "Response | Response[FormattableT]",
81
- _ORIGINAL_RESPONSE_RESUME(cast(Any, self), content),
82
- )
83
- attach_mirascope_response(span, result)
84
- return result
85
-
86
-
87
- def wrap_response_resume() -> None:
88
- """Returns None. Replaces `Response.resume` with the instrumented wrapper."""
89
- global _RESPONSE_RESUME_WRAPPED
90
- if _RESPONSE_RESUME_WRAPPED:
91
- return
92
- Response.resume = _instrumented_response_resume
93
- _RESPONSE_RESUME_WRAPPED = True
94
-
95
-
96
- def unwrap_response_resume() -> None:
97
- """Returns None. Restores the original `Response.resume` implementation."""
98
- global _RESPONSE_RESUME_WRAPPED
99
- if not _RESPONSE_RESUME_WRAPPED:
100
- return
101
- Response.resume = _ORIGINAL_RESPONSE_RESUME
102
- _RESPONSE_RESUME_WRAPPED = False
103
-
104
-
105
- # =============================================================================
106
- # AsyncResponse.resume instrumentation
107
- # =============================================================================
108
-
109
-
110
- @overload
111
- async def _instrumented_async_response_resume(
112
- self: AsyncResponse, content: UserContent
113
- ) -> AsyncResponse: ...
114
-
115
-
116
- @overload
117
- async def _instrumented_async_response_resume(
118
- self: AsyncResponse[FormattableT], content: UserContent
119
- ) -> AsyncResponse[FormattableT]: ...
120
-
121
-
122
- @wraps(_ORIGINAL_ASYNC_RESPONSE_RESUME)
123
- async def _instrumented_async_response_resume(
124
- self: AsyncResponse | AsyncResponse[FormattableT], content: UserContent
125
- ) -> AsyncResponse | AsyncResponse[FormattableT]:
126
- """Returns a Mirascope-traced result of `AsyncResponse.resume`."""
127
- with MirascopeSpan(f"AsyncResponse.resume {self.model_id}") as span:
128
- span.set(
129
- **{
130
- "mirascope.type": "response_resume",
131
- "mirascope.response.model_id": self.model_id,
132
- "mirascope.response.provider_id": self.provider_id,
133
- }
134
- )
135
- result = cast(
136
- "AsyncResponse | AsyncResponse[FormattableT]",
137
- await _ORIGINAL_ASYNC_RESPONSE_RESUME(cast(Any, self), content),
138
- )
139
- await attach_mirascope_response_async(span, result)
140
- return result
141
-
142
-
143
- def wrap_async_response_resume() -> None:
144
- """Returns None. Replaces `AsyncResponse.resume` with the instrumented wrapper."""
145
- global _ASYNC_RESPONSE_RESUME_WRAPPED
146
- if _ASYNC_RESPONSE_RESUME_WRAPPED:
147
- return
148
- AsyncResponse.resume = _instrumented_async_response_resume
149
- _ASYNC_RESPONSE_RESUME_WRAPPED = True
150
-
151
-
152
- def unwrap_async_response_resume() -> None:
153
- """Returns None. Restores the original `AsyncResponse.resume` implementation."""
154
- global _ASYNC_RESPONSE_RESUME_WRAPPED
155
- if not _ASYNC_RESPONSE_RESUME_WRAPPED:
156
- return
157
- AsyncResponse.resume = _ORIGINAL_ASYNC_RESPONSE_RESUME
158
- _ASYNC_RESPONSE_RESUME_WRAPPED = False
159
-
160
-
161
- # =============================================================================
162
- # ContextResponse.resume instrumentation
163
- # =============================================================================
164
-
165
-
166
- @overload
167
- def _instrumented_context_response_resume(
168
- self: ContextResponse[DepsT], ctx: Context[DepsT], content: UserContent
169
- ) -> ContextResponse[DepsT]: ...
170
-
171
-
172
- @overload
173
- def _instrumented_context_response_resume(
174
- self: ContextResponse[DepsT, FormattableT],
175
- ctx: Context[DepsT],
176
- content: UserContent,
177
- ) -> ContextResponse[DepsT, FormattableT]: ...
178
-
179
-
180
- @wraps(_ORIGINAL_CONTEXT_RESPONSE_RESUME)
181
- def _instrumented_context_response_resume(
182
- self: ContextResponse[DepsT] | ContextResponse[DepsT, FormattableT],
183
- ctx: Context[DepsT],
184
- content: UserContent,
185
- ) -> ContextResponse[DepsT] | ContextResponse[DepsT, FormattableT]:
186
- """Returns a Mirascope-traced result of `ContextResponse.resume`."""
187
- with MirascopeSpan(f"ContextResponse.resume {self.model_id}") as span:
188
- span.set(
189
- **{
190
- "mirascope.type": "response_resume",
191
- "mirascope.response.model_id": self.model_id,
192
- "mirascope.response.provider_id": self.provider_id,
193
- }
194
- )
195
- result = cast(
196
- "ContextResponse[DepsT] | ContextResponse[DepsT, FormattableT]",
197
- _ORIGINAL_CONTEXT_RESPONSE_RESUME(cast(Any, self), ctx, content),
198
- )
199
- attach_mirascope_response(span, result)
200
- return result
201
-
202
-
203
- def wrap_context_response_resume() -> None:
204
- """Returns None. Replaces `ContextResponse.resume` with the instrumented wrapper."""
205
- global _CONTEXT_RESPONSE_RESUME_WRAPPED
206
- if _CONTEXT_RESPONSE_RESUME_WRAPPED:
207
- return
208
- ContextResponse.resume = _instrumented_context_response_resume
209
- _CONTEXT_RESPONSE_RESUME_WRAPPED = True
210
-
211
-
212
- def unwrap_context_response_resume() -> None:
213
- """Returns None. Restores the original `ContextResponse.resume` implementation."""
214
- global _CONTEXT_RESPONSE_RESUME_WRAPPED
215
- if not _CONTEXT_RESPONSE_RESUME_WRAPPED:
216
- return
217
- ContextResponse.resume = _ORIGINAL_CONTEXT_RESPONSE_RESUME
218
- _CONTEXT_RESPONSE_RESUME_WRAPPED = False
219
-
220
-
221
- # =============================================================================
222
- # AsyncContextResponse.resume instrumentation
223
- # =============================================================================
224
-
225
-
226
- @overload
227
- async def _instrumented_async_context_response_resume(
228
- self: AsyncContextResponse[DepsT], ctx: Context[DepsT], content: UserContent
229
- ) -> AsyncContextResponse[DepsT]: ...
230
-
231
-
232
- @overload
233
- async def _instrumented_async_context_response_resume(
234
- self: AsyncContextResponse[DepsT, FormattableT],
235
- ctx: Context[DepsT],
236
- content: UserContent,
237
- ) -> AsyncContextResponse[DepsT, FormattableT]: ...
238
-
239
-
240
- @wraps(_ORIGINAL_ASYNC_CONTEXT_RESPONSE_RESUME)
241
- async def _instrumented_async_context_response_resume(
242
- self: AsyncContextResponse[DepsT] | AsyncContextResponse[DepsT, FormattableT],
243
- ctx: Context[DepsT],
244
- content: UserContent,
245
- ) -> AsyncContextResponse[DepsT] | AsyncContextResponse[DepsT, FormattableT]:
246
- """Returns a Mirascope-traced result of `AsyncContextResponse.resume`."""
247
- with MirascopeSpan(f"AsyncContextResponse.resume {self.model_id}") as span:
248
- span.set(
249
- **{
250
- "mirascope.type": "response_resume",
251
- "mirascope.response.model_id": self.model_id,
252
- "mirascope.response.provider_id": self.provider_id,
253
- }
254
- )
255
- result = cast(
256
- "AsyncContextResponse[DepsT] | AsyncContextResponse[DepsT, FormattableT]",
257
- await _ORIGINAL_ASYNC_CONTEXT_RESPONSE_RESUME(
258
- cast(Any, self), ctx, content
259
- ),
260
- )
261
- await attach_mirascope_response_async(span, result)
262
- return result
263
-
264
-
265
- def wrap_async_context_response_resume() -> None:
266
- """Returns None. Replaces `AsyncContextResponse.resume` with the instrumented wrapper."""
267
- global _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED
268
- if _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED:
269
- return
270
- AsyncContextResponse.resume = _instrumented_async_context_response_resume
271
- _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED = True
272
-
273
-
274
- def unwrap_async_context_response_resume() -> None:
275
- """Returns None. Restores the original `AsyncContextResponse.resume` implementation."""
276
- global _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED
277
- if not _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED:
278
- return
279
- AsyncContextResponse.resume = _ORIGINAL_ASYNC_CONTEXT_RESPONSE_RESUME
280
- _ASYNC_CONTEXT_RESPONSE_RESUME_WRAPPED = False
281
-
282
-
283
- # =============================================================================
284
- # StreamResponse.resume instrumentation
285
- # =============================================================================
286
-
287
-
288
- @overload
289
- def _instrumented_stream_response_resume(
290
- self: StreamResponse, content: UserContent
291
- ) -> StreamResponse: ...
292
-
293
-
294
- @overload
295
- def _instrumented_stream_response_resume(
296
- self: StreamResponse[FormattableT], content: UserContent
297
- ) -> StreamResponse[FormattableT]: ...
298
-
299
-
300
- @wraps(_ORIGINAL_STREAM_RESPONSE_RESUME)
301
- def _instrumented_stream_response_resume(
302
- self: StreamResponse | StreamResponse[FormattableT], content: UserContent
303
- ) -> StreamResponse | StreamResponse[FormattableT]:
304
- """Returns a Mirascope-traced result of `StreamResponse.resume`."""
305
- with MirascopeSpan(f"StreamResponse.resume {self.model_id}") as span:
306
- span.set(
307
- **{
308
- "mirascope.type": "response_resume",
309
- "mirascope.response.model_id": self.model_id,
310
- "mirascope.response.provider_id": self.provider_id,
311
- }
312
- )
313
- result = cast(
314
- "StreamResponse | StreamResponse[FormattableT]",
315
- _ORIGINAL_STREAM_RESPONSE_RESUME(cast(Any, self), content),
316
- )
317
- attach_mirascope_response(span, result)
318
- return result
319
-
320
-
321
- def wrap_stream_response_resume() -> None:
322
- """Returns None. Replaces `StreamResponse.resume` with the instrumented wrapper."""
323
- global _STREAM_RESPONSE_RESUME_WRAPPED
324
- if _STREAM_RESPONSE_RESUME_WRAPPED:
325
- return
326
- StreamResponse.resume = _instrumented_stream_response_resume
327
- _STREAM_RESPONSE_RESUME_WRAPPED = True
328
-
329
-
330
- def unwrap_stream_response_resume() -> None:
331
- """Returns None. Restores the original `StreamResponse.resume` implementation."""
332
- global _STREAM_RESPONSE_RESUME_WRAPPED
333
- if not _STREAM_RESPONSE_RESUME_WRAPPED:
334
- return
335
- StreamResponse.resume = _ORIGINAL_STREAM_RESPONSE_RESUME
336
- _STREAM_RESPONSE_RESUME_WRAPPED = False
337
-
338
-
339
- # =============================================================================
340
- # AsyncStreamResponse.resume instrumentation
341
- # =============================================================================
342
-
343
-
344
- @overload
345
- async def _instrumented_async_stream_response_resume(
346
- self: AsyncStreamResponse, content: UserContent
347
- ) -> AsyncStreamResponse: ...
348
-
349
-
350
- @overload
351
- async def _instrumented_async_stream_response_resume(
352
- self: AsyncStreamResponse[FormattableT], content: UserContent
353
- ) -> AsyncStreamResponse[FormattableT]: ...
354
-
355
-
356
- @wraps(_ORIGINAL_ASYNC_STREAM_RESPONSE_RESUME)
357
- async def _instrumented_async_stream_response_resume(
358
- self: AsyncStreamResponse | AsyncStreamResponse[FormattableT], content: UserContent
359
- ) -> AsyncStreamResponse | AsyncStreamResponse[FormattableT]:
360
- """Returns a Mirascope-traced result of `AsyncStreamResponse.resume`."""
361
- with MirascopeSpan(f"AsyncStreamResponse.resume {self.model_id}") as span:
362
- span.set(
363
- **{
364
- "mirascope.type": "response_resume",
365
- "mirascope.response.model_id": self.model_id,
366
- "mirascope.response.provider_id": self.provider_id,
367
- }
368
- )
369
- result = cast(
370
- "AsyncStreamResponse | AsyncStreamResponse[FormattableT]",
371
- await _ORIGINAL_ASYNC_STREAM_RESPONSE_RESUME(cast(Any, self), content),
372
- )
373
- await attach_mirascope_response_async(span, result)
374
- return result
375
-
376
-
377
- def wrap_async_stream_response_resume() -> None:
378
- """Returns None. Replaces `AsyncStreamResponse.resume` with the instrumented wrapper."""
379
- global _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED
380
- if _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED:
381
- return
382
- AsyncStreamResponse.resume = _instrumented_async_stream_response_resume
383
- _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED = True
384
-
385
-
386
- def unwrap_async_stream_response_resume() -> None:
387
- """Returns None. Restores the original `AsyncStreamResponse.resume` implementation."""
388
- global _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED
389
- if not _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED:
390
- return
391
- AsyncStreamResponse.resume = _ORIGINAL_ASYNC_STREAM_RESPONSE_RESUME
392
- _ASYNC_STREAM_RESPONSE_RESUME_WRAPPED = False
393
-
394
-
395
- # =============================================================================
396
- # ContextStreamResponse.resume instrumentation
397
- # =============================================================================
398
-
399
-
400
- @overload
401
- def _instrumented_context_stream_response_resume(
402
- self: ContextStreamResponse[DepsT], ctx: Context[DepsT], content: UserContent
403
- ) -> ContextStreamResponse[DepsT]: ...
404
-
405
-
406
- @overload
407
- def _instrumented_context_stream_response_resume(
408
- self: ContextStreamResponse[DepsT, FormattableT],
409
- ctx: Context[DepsT],
410
- content: UserContent,
411
- ) -> ContextStreamResponse[DepsT, FormattableT]: ...
412
-
413
-
414
- @wraps(_ORIGINAL_CONTEXT_STREAM_RESPONSE_RESUME)
415
- def _instrumented_context_stream_response_resume(
416
- self: ContextStreamResponse[DepsT] | ContextStreamResponse[DepsT, FormattableT],
417
- ctx: Context[DepsT],
418
- content: UserContent,
419
- ) -> ContextStreamResponse[DepsT] | ContextStreamResponse[DepsT, FormattableT]:
420
- """Returns a Mirascope-traced result of `ContextStreamResponse.resume`."""
421
- with MirascopeSpan(f"ContextStreamResponse.resume {self.model_id}") as span:
422
- span.set(
423
- **{
424
- "mirascope.type": "response_resume",
425
- "mirascope.response.model_id": self.model_id,
426
- "mirascope.response.provider_id": self.provider_id,
427
- }
428
- )
429
- result = cast(
430
- "ContextStreamResponse[DepsT] | ContextStreamResponse[DepsT, FormattableT]",
431
- _ORIGINAL_CONTEXT_STREAM_RESPONSE_RESUME(cast(Any, self), ctx, content),
432
- )
433
- attach_mirascope_response(span, result)
434
- return result
435
-
436
-
437
- def wrap_context_stream_response_resume() -> None:
438
- """Returns None. Replaces `ContextStreamResponse.resume` with the instrumented wrapper."""
439
- global _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED
440
- if _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED:
441
- return
442
- ContextStreamResponse.resume = _instrumented_context_stream_response_resume
443
- _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED = True
444
-
445
-
446
- def unwrap_context_stream_response_resume() -> None:
447
- """Returns None. Restores the original `ContextStreamResponse.resume` implementation."""
448
- global _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED
449
- if not _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED:
450
- return
451
- ContextStreamResponse.resume = _ORIGINAL_CONTEXT_STREAM_RESPONSE_RESUME
452
- _CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED = False
453
-
454
-
455
- # =============================================================================
456
- # AsyncContextStreamResponse.resume instrumentation
457
- # =============================================================================
458
-
459
-
460
- @overload
461
- async def _instrumented_async_context_stream_response_resume(
462
- self: AsyncContextStreamResponse[DepsT],
463
- ctx: Context[DepsT],
464
- content: UserContent,
465
- ) -> AsyncContextStreamResponse[DepsT]: ...
466
-
467
-
468
- @overload
469
- async def _instrumented_async_context_stream_response_resume(
470
- self: AsyncContextStreamResponse[DepsT, FormattableT],
471
- ctx: Context[DepsT],
472
- content: UserContent,
473
- ) -> AsyncContextStreamResponse[DepsT, FormattableT]: ...
474
-
475
-
476
- @wraps(_ORIGINAL_ASYNC_CONTEXT_STREAM_RESPONSE_RESUME)
477
- async def _instrumented_async_context_stream_response_resume(
478
- self: AsyncContextStreamResponse[DepsT]
479
- | AsyncContextStreamResponse[DepsT, FormattableT],
480
- ctx: Context[DepsT],
481
- content: UserContent,
482
- ) -> (
483
- AsyncContextStreamResponse[DepsT] | AsyncContextStreamResponse[DepsT, FormattableT]
484
- ):
485
- """Returns a Mirascope-traced result of `AsyncContextStreamResponse.resume`."""
486
- with MirascopeSpan(f"AsyncContextStreamResponse.resume {self.model_id}") as span:
487
- span.set(
488
- **{
489
- "mirascope.type": "response_resume",
490
- "mirascope.response.model_id": self.model_id,
491
- "mirascope.response.provider_id": self.provider_id,
492
- }
493
- )
494
- result = cast(
495
- "AsyncContextStreamResponse[DepsT] | AsyncContextStreamResponse[DepsT, FormattableT]",
496
- await _ORIGINAL_ASYNC_CONTEXT_STREAM_RESPONSE_RESUME(
497
- cast(Any, self), ctx, content
498
- ),
499
- )
500
- await attach_mirascope_response_async(span, result)
501
- return result
502
-
503
-
504
- def wrap_async_context_stream_response_resume() -> None:
505
- """Returns None. Replaces `AsyncContextStreamResponse.resume` with the instrumented wrapper."""
506
- global _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED
507
- if _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED:
508
- return
509
- AsyncContextStreamResponse.resume = (
510
- _instrumented_async_context_stream_response_resume
511
- )
512
- _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED = True
513
-
514
-
515
- def unwrap_async_context_stream_response_resume() -> None:
516
- """Returns None. Restores the original `AsyncContextStreamResponse.resume` implementation."""
517
- global _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED
518
- if not _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED:
519
- return
520
- AsyncContextStreamResponse.resume = _ORIGINAL_ASYNC_CONTEXT_STREAM_RESPONSE_RESUME
521
- _ASYNC_CONTEXT_STREAM_RESPONSE_RESUME_WRAPPED = False