mirascope 2.0.0__py3-none-any.whl → 2.0.0a1__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 (443) 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 +15 -96
  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/_missing_import_stubs.py +47 -0
  15. mirascope/llm/clients/anthropic/__init__.py +25 -0
  16. mirascope/llm/{providers/openai/completions → clients/anthropic}/_utils/__init__.py +0 -2
  17. mirascope/llm/{providers → clients}/anthropic/_utils/decode.py +22 -66
  18. mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
  19. mirascope/llm/clients/anthropic/clients.py +819 -0
  20. mirascope/llm/clients/anthropic/model_ids.py +8 -0
  21. mirascope/llm/{providers → clients}/base/__init__.py +5 -4
  22. mirascope/llm/{providers → clients}/base/_utils.py +17 -78
  23. mirascope/llm/{providers/base/base_provider.py → clients/base/client.py} +145 -468
  24. mirascope/llm/{models → clients/base}/params.py +37 -16
  25. mirascope/llm/clients/google/__init__.py +20 -0
  26. mirascope/llm/{providers/openai/responses → clients/google}/_utils/__init__.py +0 -2
  27. mirascope/llm/{providers → clients}/google/_utils/decode.py +22 -98
  28. mirascope/llm/{providers → clients}/google/_utils/encode.py +46 -168
  29. mirascope/llm/clients/google/clients.py +853 -0
  30. mirascope/llm/clients/google/model_ids.py +15 -0
  31. mirascope/llm/clients/openai/__init__.py +25 -0
  32. mirascope/llm/clients/openai/completions/__init__.py +28 -0
  33. mirascope/llm/{providers/google → clients/openai/completions}/_utils/__init__.py +0 -4
  34. mirascope/llm/{providers → clients}/openai/completions/_utils/decode.py +9 -74
  35. mirascope/llm/{providers → clients}/openai/completions/_utils/encode.py +52 -70
  36. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  37. mirascope/llm/clients/openai/completions/clients.py +833 -0
  38. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  39. mirascope/llm/clients/openai/responses/__init__.py +26 -0
  40. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  41. mirascope/llm/{providers → clients}/openai/responses/_utils/decode.py +14 -80
  42. mirascope/llm/{providers → clients}/openai/responses/_utils/encode.py +41 -92
  43. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  44. mirascope/llm/clients/openai/responses/clients.py +832 -0
  45. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  46. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  47. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  48. mirascope/llm/clients/providers.py +175 -0
  49. mirascope/llm/content/__init__.py +2 -3
  50. mirascope/llm/content/tool_call.py +0 -6
  51. mirascope/llm/content/tool_output.py +5 -22
  52. mirascope/llm/context/_utils.py +6 -19
  53. mirascope/llm/exceptions.py +43 -298
  54. mirascope/llm/formatting/__init__.py +2 -19
  55. mirascope/llm/formatting/_utils.py +74 -0
  56. mirascope/llm/formatting/format.py +30 -219
  57. mirascope/llm/formatting/from_call_args.py +2 -2
  58. mirascope/llm/formatting/partial.py +7 -80
  59. mirascope/llm/formatting/types.py +64 -21
  60. mirascope/llm/mcp/__init__.py +2 -2
  61. mirascope/llm/mcp/client.py +118 -0
  62. mirascope/llm/messages/__init__.py +0 -3
  63. mirascope/llm/messages/message.py +5 -13
  64. mirascope/llm/models/__init__.py +2 -7
  65. mirascope/llm/models/models.py +139 -315
  66. mirascope/llm/prompts/__init__.py +12 -13
  67. mirascope/llm/prompts/_utils.py +43 -14
  68. mirascope/llm/prompts/decorator.py +204 -144
  69. mirascope/llm/prompts/protocols.py +59 -25
  70. mirascope/llm/responses/__init__.py +1 -9
  71. mirascope/llm/responses/_utils.py +12 -102
  72. mirascope/llm/responses/base_response.py +6 -18
  73. mirascope/llm/responses/base_stream_response.py +50 -173
  74. mirascope/llm/responses/finish_reason.py +0 -1
  75. mirascope/llm/responses/response.py +13 -34
  76. mirascope/llm/responses/root_response.py +29 -100
  77. mirascope/llm/responses/stream_response.py +31 -40
  78. mirascope/llm/tools/__init__.py +2 -9
  79. mirascope/llm/tools/_utils.py +3 -12
  80. mirascope/llm/tools/decorator.py +16 -25
  81. mirascope/llm/tools/protocols.py +4 -4
  82. mirascope/llm/tools/tool_schema.py +19 -87
  83. mirascope/llm/tools/toolkit.py +27 -35
  84. mirascope/llm/tools/tools.py +41 -135
  85. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/METADATA +13 -90
  86. mirascope-2.0.0a1.dist-info/RECORD +102 -0
  87. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/WHEEL +1 -1
  88. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/licenses/LICENSE +1 -1
  89. mirascope/_stubs.py +0 -363
  90. mirascope/api/__init__.py +0 -14
  91. mirascope/api/_generated/README.md +0 -207
  92. mirascope/api/_generated/__init__.py +0 -440
  93. mirascope/api/_generated/annotations/__init__.py +0 -33
  94. mirascope/api/_generated/annotations/client.py +0 -506
  95. mirascope/api/_generated/annotations/raw_client.py +0 -1414
  96. mirascope/api/_generated/annotations/types/__init__.py +0 -31
  97. mirascope/api/_generated/annotations/types/annotations_create_request_label.py +0 -5
  98. mirascope/api/_generated/annotations/types/annotations_create_response.py +0 -48
  99. mirascope/api/_generated/annotations/types/annotations_create_response_label.py +0 -5
  100. mirascope/api/_generated/annotations/types/annotations_get_response.py +0 -48
  101. mirascope/api/_generated/annotations/types/annotations_get_response_label.py +0 -5
  102. mirascope/api/_generated/annotations/types/annotations_list_request_label.py +0 -5
  103. mirascope/api/_generated/annotations/types/annotations_list_response.py +0 -21
  104. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +0 -50
  105. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +0 -5
  106. mirascope/api/_generated/annotations/types/annotations_update_request_label.py +0 -5
  107. mirascope/api/_generated/annotations/types/annotations_update_response.py +0 -48
  108. mirascope/api/_generated/annotations/types/annotations_update_response_label.py +0 -5
  109. mirascope/api/_generated/api_keys/__init__.py +0 -17
  110. mirascope/api/_generated/api_keys/client.py +0 -530
  111. mirascope/api/_generated/api_keys/raw_client.py +0 -1236
  112. mirascope/api/_generated/api_keys/types/__init__.py +0 -15
  113. mirascope/api/_generated/api_keys/types/api_keys_create_response.py +0 -28
  114. mirascope/api/_generated/api_keys/types/api_keys_get_response.py +0 -27
  115. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +0 -40
  116. mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +0 -27
  117. mirascope/api/_generated/client.py +0 -211
  118. mirascope/api/_generated/core/__init__.py +0 -52
  119. mirascope/api/_generated/core/api_error.py +0 -23
  120. mirascope/api/_generated/core/client_wrapper.py +0 -46
  121. mirascope/api/_generated/core/datetime_utils.py +0 -28
  122. mirascope/api/_generated/core/file.py +0 -67
  123. mirascope/api/_generated/core/force_multipart.py +0 -16
  124. mirascope/api/_generated/core/http_client.py +0 -543
  125. mirascope/api/_generated/core/http_response.py +0 -55
  126. mirascope/api/_generated/core/jsonable_encoder.py +0 -100
  127. mirascope/api/_generated/core/pydantic_utilities.py +0 -255
  128. mirascope/api/_generated/core/query_encoder.py +0 -58
  129. mirascope/api/_generated/core/remove_none_from_dict.py +0 -11
  130. mirascope/api/_generated/core/request_options.py +0 -35
  131. mirascope/api/_generated/core/serialization.py +0 -276
  132. mirascope/api/_generated/docs/__init__.py +0 -4
  133. mirascope/api/_generated/docs/client.py +0 -91
  134. mirascope/api/_generated/docs/raw_client.py +0 -178
  135. mirascope/api/_generated/environment.py +0 -9
  136. mirascope/api/_generated/environments/__init__.py +0 -23
  137. mirascope/api/_generated/environments/client.py +0 -649
  138. mirascope/api/_generated/environments/raw_client.py +0 -1567
  139. mirascope/api/_generated/environments/types/__init__.py +0 -25
  140. mirascope/api/_generated/environments/types/environments_create_response.py +0 -24
  141. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +0 -60
  142. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +0 -24
  143. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +0 -22
  144. mirascope/api/_generated/environments/types/environments_get_response.py +0 -24
  145. mirascope/api/_generated/environments/types/environments_list_response_item.py +0 -24
  146. mirascope/api/_generated/environments/types/environments_update_response.py +0 -24
  147. mirascope/api/_generated/errors/__init__.py +0 -25
  148. mirascope/api/_generated/errors/bad_request_error.py +0 -14
  149. mirascope/api/_generated/errors/conflict_error.py +0 -14
  150. mirascope/api/_generated/errors/forbidden_error.py +0 -11
  151. mirascope/api/_generated/errors/internal_server_error.py +0 -10
  152. mirascope/api/_generated/errors/not_found_error.py +0 -11
  153. mirascope/api/_generated/errors/payment_required_error.py +0 -15
  154. mirascope/api/_generated/errors/service_unavailable_error.py +0 -14
  155. mirascope/api/_generated/errors/too_many_requests_error.py +0 -15
  156. mirascope/api/_generated/errors/unauthorized_error.py +0 -11
  157. mirascope/api/_generated/functions/__init__.py +0 -39
  158. mirascope/api/_generated/functions/client.py +0 -647
  159. mirascope/api/_generated/functions/raw_client.py +0 -1890
  160. mirascope/api/_generated/functions/types/__init__.py +0 -53
  161. mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +0 -20
  162. mirascope/api/_generated/functions/types/functions_create_response.py +0 -37
  163. mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +0 -20
  164. mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +0 -39
  165. mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +0 -20
  166. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +0 -53
  167. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +0 -22
  168. mirascope/api/_generated/functions/types/functions_get_response.py +0 -37
  169. mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +0 -20
  170. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +0 -25
  171. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +0 -56
  172. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +0 -22
  173. mirascope/api/_generated/functions/types/functions_list_response.py +0 -21
  174. mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +0 -41
  175. mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +0 -20
  176. mirascope/api/_generated/health/__init__.py +0 -7
  177. mirascope/api/_generated/health/client.py +0 -92
  178. mirascope/api/_generated/health/raw_client.py +0 -175
  179. mirascope/api/_generated/health/types/__init__.py +0 -8
  180. mirascope/api/_generated/health/types/health_check_response.py +0 -22
  181. mirascope/api/_generated/health/types/health_check_response_status.py +0 -5
  182. mirascope/api/_generated/organization_invitations/__init__.py +0 -33
  183. mirascope/api/_generated/organization_invitations/client.py +0 -546
  184. mirascope/api/_generated/organization_invitations/raw_client.py +0 -1519
  185. mirascope/api/_generated/organization_invitations/types/__init__.py +0 -53
  186. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +0 -34
  187. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +0 -7
  188. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +0 -7
  189. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +0 -48
  190. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +0 -7
  191. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +0 -7
  192. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +0 -48
  193. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +0 -7
  194. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +0 -7
  195. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +0 -48
  196. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +0 -7
  197. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +0 -7
  198. mirascope/api/_generated/organization_memberships/__init__.py +0 -19
  199. mirascope/api/_generated/organization_memberships/client.py +0 -302
  200. mirascope/api/_generated/organization_memberships/raw_client.py +0 -736
  201. mirascope/api/_generated/organization_memberships/types/__init__.py +0 -27
  202. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +0 -33
  203. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +0 -7
  204. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +0 -7
  205. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +0 -31
  206. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +0 -7
  207. mirascope/api/_generated/organizations/__init__.py +0 -51
  208. mirascope/api/_generated/organizations/client.py +0 -869
  209. mirascope/api/_generated/organizations/raw_client.py +0 -2593
  210. mirascope/api/_generated/organizations/types/__init__.py +0 -71
  211. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +0 -24
  212. mirascope/api/_generated/organizations/types/organizations_create_response.py +0 -26
  213. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +0 -5
  214. mirascope/api/_generated/organizations/types/organizations_get_response.py +0 -26
  215. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +0 -5
  216. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +0 -26
  217. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +0 -5
  218. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +0 -7
  219. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +0 -47
  220. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +0 -33
  221. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +0 -7
  222. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +0 -24
  223. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +0 -53
  224. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +0 -7
  225. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +0 -26
  226. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +0 -34
  227. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +0 -7
  228. mirascope/api/_generated/organizations/types/organizations_update_response.py +0 -26
  229. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +0 -5
  230. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +0 -7
  231. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +0 -35
  232. mirascope/api/_generated/project_memberships/__init__.py +0 -25
  233. mirascope/api/_generated/project_memberships/client.py +0 -437
  234. mirascope/api/_generated/project_memberships/raw_client.py +0 -1039
  235. mirascope/api/_generated/project_memberships/types/__init__.py +0 -29
  236. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +0 -7
  237. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +0 -35
  238. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +0 -7
  239. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +0 -33
  240. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +0 -7
  241. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +0 -7
  242. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +0 -35
  243. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +0 -7
  244. mirascope/api/_generated/projects/__init__.py +0 -7
  245. mirascope/api/_generated/projects/client.py +0 -428
  246. mirascope/api/_generated/projects/raw_client.py +0 -1302
  247. mirascope/api/_generated/projects/types/__init__.py +0 -10
  248. mirascope/api/_generated/projects/types/projects_create_response.py +0 -25
  249. mirascope/api/_generated/projects/types/projects_get_response.py +0 -25
  250. mirascope/api/_generated/projects/types/projects_list_response_item.py +0 -25
  251. mirascope/api/_generated/projects/types/projects_update_response.py +0 -25
  252. mirascope/api/_generated/reference.md +0 -4915
  253. mirascope/api/_generated/tags/__init__.py +0 -19
  254. mirascope/api/_generated/tags/client.py +0 -504
  255. mirascope/api/_generated/tags/raw_client.py +0 -1288
  256. mirascope/api/_generated/tags/types/__init__.py +0 -17
  257. mirascope/api/_generated/tags/types/tags_create_response.py +0 -41
  258. mirascope/api/_generated/tags/types/tags_get_response.py +0 -41
  259. mirascope/api/_generated/tags/types/tags_list_response.py +0 -23
  260. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +0 -41
  261. mirascope/api/_generated/tags/types/tags_update_response.py +0 -41
  262. mirascope/api/_generated/token_cost/__init__.py +0 -7
  263. mirascope/api/_generated/token_cost/client.py +0 -160
  264. mirascope/api/_generated/token_cost/raw_client.py +0 -264
  265. mirascope/api/_generated/token_cost/types/__init__.py +0 -8
  266. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +0 -54
  267. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +0 -52
  268. mirascope/api/_generated/traces/__init__.py +0 -97
  269. mirascope/api/_generated/traces/client.py +0 -1103
  270. mirascope/api/_generated/traces/raw_client.py +0 -2322
  271. mirascope/api/_generated/traces/types/__init__.py +0 -155
  272. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +0 -29
  273. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +0 -27
  274. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +0 -23
  275. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +0 -38
  276. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +0 -19
  277. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +0 -22
  278. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +0 -20
  279. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +0 -29
  280. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +0 -31
  281. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +0 -23
  282. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +0 -38
  283. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +0 -19
  284. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +0 -22
  285. 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
  286. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +0 -48
  287. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +0 -23
  288. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +0 -38
  289. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +0 -19
  290. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +0 -24
  291. 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
  292. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +0 -20
  293. mirascope/api/_generated/traces/types/traces_create_response.py +0 -24
  294. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +0 -22
  295. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +0 -60
  296. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +0 -24
  297. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +0 -22
  298. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +0 -33
  299. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +0 -88
  300. mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +0 -33
  301. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -88
  302. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +0 -25
  303. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +0 -44
  304. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +0 -26
  305. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +0 -7
  306. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +0 -7
  307. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +0 -7
  308. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +0 -26
  309. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +0 -50
  310. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +0 -26
  311. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +0 -7
  312. mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +0 -7
  313. mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +0 -5
  314. mirascope/api/_generated/traces/types/traces_search_response.py +0 -26
  315. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +0 -50
  316. mirascope/api/_generated/types/__init__.py +0 -85
  317. mirascope/api/_generated/types/already_exists_error.py +0 -22
  318. mirascope/api/_generated/types/already_exists_error_tag.py +0 -5
  319. mirascope/api/_generated/types/bad_request_error_body.py +0 -50
  320. mirascope/api/_generated/types/click_house_error.py +0 -22
  321. mirascope/api/_generated/types/database_error.py +0 -22
  322. mirascope/api/_generated/types/database_error_tag.py +0 -5
  323. mirascope/api/_generated/types/date.py +0 -3
  324. mirascope/api/_generated/types/http_api_decode_error.py +0 -27
  325. mirascope/api/_generated/types/http_api_decode_error_tag.py +0 -5
  326. mirascope/api/_generated/types/immutable_resource_error.py +0 -22
  327. mirascope/api/_generated/types/internal_server_error_body.py +0 -49
  328. mirascope/api/_generated/types/issue.py +0 -38
  329. mirascope/api/_generated/types/issue_tag.py +0 -10
  330. mirascope/api/_generated/types/not_found_error_body.py +0 -22
  331. mirascope/api/_generated/types/not_found_error_tag.py +0 -5
  332. mirascope/api/_generated/types/number_from_string.py +0 -3
  333. mirascope/api/_generated/types/permission_denied_error.py +0 -22
  334. mirascope/api/_generated/types/permission_denied_error_tag.py +0 -5
  335. mirascope/api/_generated/types/plan_limit_exceeded_error.py +0 -32
  336. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +0 -7
  337. mirascope/api/_generated/types/pricing_unavailable_error.py +0 -23
  338. mirascope/api/_generated/types/property_key.py +0 -7
  339. mirascope/api/_generated/types/property_key_key.py +0 -25
  340. mirascope/api/_generated/types/property_key_key_tag.py +0 -5
  341. mirascope/api/_generated/types/rate_limit_error.py +0 -31
  342. mirascope/api/_generated/types/rate_limit_error_tag.py +0 -5
  343. mirascope/api/_generated/types/service_unavailable_error_body.py +0 -24
  344. mirascope/api/_generated/types/service_unavailable_error_tag.py +0 -7
  345. mirascope/api/_generated/types/stripe_error.py +0 -20
  346. mirascope/api/_generated/types/subscription_past_due_error.py +0 -31
  347. mirascope/api/_generated/types/subscription_past_due_error_tag.py +0 -7
  348. mirascope/api/_generated/types/unauthorized_error_body.py +0 -21
  349. mirascope/api/_generated/types/unauthorized_error_tag.py +0 -5
  350. mirascope/api/client.py +0 -255
  351. mirascope/api/settings.py +0 -99
  352. mirascope/llm/formatting/output_parser.py +0 -178
  353. mirascope/llm/formatting/primitives.py +0 -192
  354. mirascope/llm/mcp/mcp_client.py +0 -130
  355. mirascope/llm/messages/_utils.py +0 -34
  356. mirascope/llm/models/thinking_config.py +0 -61
  357. mirascope/llm/prompts/prompts.py +0 -487
  358. mirascope/llm/providers/__init__.py +0 -62
  359. mirascope/llm/providers/anthropic/__init__.py +0 -11
  360. mirascope/llm/providers/anthropic/_utils/__init__.py +0 -27
  361. mirascope/llm/providers/anthropic/_utils/beta_decode.py +0 -282
  362. mirascope/llm/providers/anthropic/_utils/beta_encode.py +0 -266
  363. mirascope/llm/providers/anthropic/_utils/encode.py +0 -418
  364. mirascope/llm/providers/anthropic/_utils/errors.py +0 -46
  365. mirascope/llm/providers/anthropic/beta_provider.py +0 -374
  366. mirascope/llm/providers/anthropic/model_id.py +0 -23
  367. mirascope/llm/providers/anthropic/model_info.py +0 -87
  368. mirascope/llm/providers/anthropic/provider.py +0 -479
  369. mirascope/llm/providers/google/__init__.py +0 -6
  370. mirascope/llm/providers/google/_utils/errors.py +0 -50
  371. mirascope/llm/providers/google/model_id.py +0 -22
  372. mirascope/llm/providers/google/model_info.py +0 -63
  373. mirascope/llm/providers/google/provider.py +0 -492
  374. mirascope/llm/providers/mirascope/__init__.py +0 -5
  375. mirascope/llm/providers/mirascope/_utils.py +0 -73
  376. mirascope/llm/providers/mirascope/provider.py +0 -349
  377. mirascope/llm/providers/mlx/__init__.py +0 -9
  378. mirascope/llm/providers/mlx/_utils.py +0 -141
  379. mirascope/llm/providers/mlx/encoding/__init__.py +0 -8
  380. mirascope/llm/providers/mlx/encoding/base.py +0 -72
  381. mirascope/llm/providers/mlx/encoding/transformers.py +0 -150
  382. mirascope/llm/providers/mlx/mlx.py +0 -254
  383. mirascope/llm/providers/mlx/model_id.py +0 -17
  384. mirascope/llm/providers/mlx/provider.py +0 -452
  385. mirascope/llm/providers/model_id.py +0 -16
  386. mirascope/llm/providers/ollama/__init__.py +0 -7
  387. mirascope/llm/providers/ollama/provider.py +0 -71
  388. mirascope/llm/providers/openai/__init__.py +0 -15
  389. mirascope/llm/providers/openai/_utils/__init__.py +0 -5
  390. mirascope/llm/providers/openai/_utils/errors.py +0 -46
  391. mirascope/llm/providers/openai/completions/__init__.py +0 -7
  392. mirascope/llm/providers/openai/completions/base_provider.py +0 -542
  393. mirascope/llm/providers/openai/completions/provider.py +0 -22
  394. mirascope/llm/providers/openai/model_id.py +0 -31
  395. mirascope/llm/providers/openai/model_info.py +0 -303
  396. mirascope/llm/providers/openai/provider.py +0 -441
  397. mirascope/llm/providers/openai/responses/__init__.py +0 -5
  398. mirascope/llm/providers/openai/responses/provider.py +0 -513
  399. mirascope/llm/providers/provider_id.py +0 -24
  400. mirascope/llm/providers/provider_registry.py +0 -299
  401. mirascope/llm/providers/together/__init__.py +0 -7
  402. mirascope/llm/providers/together/provider.py +0 -40
  403. mirascope/llm/responses/usage.py +0 -95
  404. mirascope/ops/__init__.py +0 -111
  405. mirascope/ops/_internal/__init__.py +0 -5
  406. mirascope/ops/_internal/closure.py +0 -1169
  407. mirascope/ops/_internal/configuration.py +0 -177
  408. mirascope/ops/_internal/context.py +0 -76
  409. mirascope/ops/_internal/exporters/__init__.py +0 -26
  410. mirascope/ops/_internal/exporters/exporters.py +0 -395
  411. mirascope/ops/_internal/exporters/processors.py +0 -104
  412. mirascope/ops/_internal/exporters/types.py +0 -165
  413. mirascope/ops/_internal/exporters/utils.py +0 -29
  414. mirascope/ops/_internal/instrumentation/__init__.py +0 -8
  415. mirascope/ops/_internal/instrumentation/llm/__init__.py +0 -8
  416. mirascope/ops/_internal/instrumentation/llm/common.py +0 -530
  417. mirascope/ops/_internal/instrumentation/llm/cost.py +0 -190
  418. mirascope/ops/_internal/instrumentation/llm/encode.py +0 -238
  419. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +0 -38
  420. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +0 -31
  421. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +0 -38
  422. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +0 -18
  423. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +0 -100
  424. mirascope/ops/_internal/instrumentation/llm/llm.py +0 -161
  425. mirascope/ops/_internal/instrumentation/llm/model.py +0 -1798
  426. mirascope/ops/_internal/instrumentation/llm/response.py +0 -521
  427. mirascope/ops/_internal/instrumentation/llm/serialize.py +0 -300
  428. mirascope/ops/_internal/propagation.py +0 -198
  429. mirascope/ops/_internal/protocols.py +0 -133
  430. mirascope/ops/_internal/session.py +0 -139
  431. mirascope/ops/_internal/spans.py +0 -232
  432. mirascope/ops/_internal/traced_calls.py +0 -375
  433. mirascope/ops/_internal/traced_functions.py +0 -523
  434. mirascope/ops/_internal/tracing.py +0 -353
  435. mirascope/ops/_internal/types.py +0 -13
  436. mirascope/ops/_internal/utils.py +0 -123
  437. mirascope/ops/_internal/versioned_calls.py +0 -512
  438. mirascope/ops/_internal/versioned_functions.py +0 -357
  439. mirascope/ops/_internal/versioning.py +0 -303
  440. mirascope/ops/exceptions.py +0 -21
  441. mirascope-2.0.0.dist-info/RECORD +0 -423
  442. /mirascope/llm/{providers → clients}/base/kwargs.py +0 -0
  443. /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