mirascope 2.0.0a6__py3-none-any.whl → 2.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. mirascope/api/_generated/__init__.py +186 -5
  2. mirascope/api/_generated/annotations/client.py +38 -6
  3. mirascope/api/_generated/annotations/raw_client.py +366 -47
  4. mirascope/api/_generated/annotations/types/annotations_create_response.py +19 -6
  5. mirascope/api/_generated/annotations/types/annotations_get_response.py +19 -6
  6. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +22 -7
  7. mirascope/api/_generated/annotations/types/annotations_update_response.py +19 -6
  8. mirascope/api/_generated/api_keys/__init__.py +12 -2
  9. mirascope/api/_generated/api_keys/client.py +107 -6
  10. mirascope/api/_generated/api_keys/raw_client.py +486 -38
  11. mirascope/api/_generated/api_keys/types/__init__.py +7 -1
  12. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +40 -0
  13. mirascope/api/_generated/client.py +36 -0
  14. mirascope/api/_generated/docs/raw_client.py +71 -9
  15. mirascope/api/_generated/environment.py +3 -3
  16. mirascope/api/_generated/environments/__init__.py +6 -0
  17. mirascope/api/_generated/environments/client.py +158 -9
  18. mirascope/api/_generated/environments/raw_client.py +620 -52
  19. mirascope/api/_generated/environments/types/__init__.py +10 -0
  20. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +60 -0
  21. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +24 -0
  22. mirascope/api/_generated/{organizations/types/organizations_credits_response.py → environments/types/environments_get_analytics_response_top_models_item.py} +6 -3
  23. mirascope/api/_generated/errors/__init__.py +6 -0
  24. mirascope/api/_generated/errors/bad_request_error.py +5 -2
  25. mirascope/api/_generated/errors/conflict_error.py +5 -2
  26. mirascope/api/_generated/errors/payment_required_error.py +15 -0
  27. mirascope/api/_generated/errors/service_unavailable_error.py +14 -0
  28. mirascope/api/_generated/errors/too_many_requests_error.py +15 -0
  29. mirascope/api/_generated/functions/__init__.py +10 -0
  30. mirascope/api/_generated/functions/client.py +222 -8
  31. mirascope/api/_generated/functions/raw_client.py +975 -134
  32. mirascope/api/_generated/functions/types/__init__.py +28 -4
  33. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +53 -0
  34. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +22 -0
  35. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +25 -0
  36. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +56 -0
  37. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +22 -0
  38. mirascope/api/_generated/health/raw_client.py +74 -10
  39. mirascope/api/_generated/organization_invitations/__init__.py +33 -0
  40. mirascope/api/_generated/organization_invitations/client.py +546 -0
  41. mirascope/api/_generated/organization_invitations/raw_client.py +1519 -0
  42. mirascope/api/_generated/organization_invitations/types/__init__.py +53 -0
  43. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +34 -0
  44. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +7 -0
  45. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +7 -0
  46. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +48 -0
  47. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +7 -0
  48. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +7 -0
  49. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +48 -0
  50. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +7 -0
  51. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +7 -0
  52. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +48 -0
  53. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +7 -0
  54. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +7 -0
  55. mirascope/api/_generated/organization_memberships/__init__.py +19 -0
  56. mirascope/api/_generated/organization_memberships/client.py +302 -0
  57. mirascope/api/_generated/organization_memberships/raw_client.py +736 -0
  58. mirascope/api/_generated/organization_memberships/types/__init__.py +27 -0
  59. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +33 -0
  60. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +7 -0
  61. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +7 -0
  62. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +31 -0
  63. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +7 -0
  64. mirascope/api/_generated/organizations/__init__.py +26 -2
  65. mirascope/api/_generated/organizations/client.py +442 -20
  66. mirascope/api/_generated/organizations/raw_client.py +1763 -164
  67. mirascope/api/_generated/organizations/types/__init__.py +48 -2
  68. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +24 -0
  69. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +7 -0
  70. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +47 -0
  71. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +33 -0
  72. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +7 -0
  73. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +24 -0
  74. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +53 -0
  75. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +7 -0
  76. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +26 -0
  77. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +34 -0
  78. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +7 -0
  79. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +7 -0
  80. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +35 -0
  81. mirascope/api/_generated/project_memberships/__init__.py +25 -0
  82. mirascope/api/_generated/project_memberships/client.py +437 -0
  83. mirascope/api/_generated/project_memberships/raw_client.py +1039 -0
  84. mirascope/api/_generated/project_memberships/types/__init__.py +29 -0
  85. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +7 -0
  86. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +35 -0
  87. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +7 -0
  88. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +33 -0
  89. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +7 -0
  90. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +7 -0
  91. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +35 -0
  92. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +7 -0
  93. mirascope/api/_generated/projects/raw_client.py +415 -58
  94. mirascope/api/_generated/reference.md +2767 -397
  95. mirascope/api/_generated/tags/__init__.py +19 -0
  96. mirascope/api/_generated/tags/client.py +504 -0
  97. mirascope/api/_generated/tags/raw_client.py +1288 -0
  98. mirascope/api/_generated/tags/types/__init__.py +17 -0
  99. mirascope/api/_generated/tags/types/tags_create_response.py +41 -0
  100. mirascope/api/_generated/tags/types/tags_get_response.py +41 -0
  101. mirascope/api/_generated/tags/types/tags_list_response.py +23 -0
  102. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +41 -0
  103. mirascope/api/_generated/tags/types/tags_update_response.py +41 -0
  104. mirascope/api/_generated/token_cost/__init__.py +7 -0
  105. mirascope/api/_generated/token_cost/client.py +160 -0
  106. mirascope/api/_generated/token_cost/raw_client.py +264 -0
  107. mirascope/api/_generated/token_cost/types/__init__.py +8 -0
  108. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +54 -0
  109. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +52 -0
  110. mirascope/api/_generated/traces/__init__.py +20 -0
  111. mirascope/api/_generated/traces/client.py +543 -0
  112. mirascope/api/_generated/traces/raw_client.py +1366 -96
  113. mirascope/api/_generated/traces/types/__init__.py +28 -0
  114. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +6 -0
  115. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +33 -0
  116. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +88 -0
  117. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -2
  118. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +25 -0
  119. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +44 -0
  120. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +26 -0
  121. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +7 -0
  122. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +7 -0
  123. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +7 -0
  124. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +26 -0
  125. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +50 -0
  126. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +10 -1
  127. mirascope/api/_generated/types/__init__.py +32 -2
  128. mirascope/api/_generated/types/bad_request_error_body.py +50 -0
  129. mirascope/api/_generated/types/date.py +3 -0
  130. mirascope/api/_generated/types/immutable_resource_error.py +22 -0
  131. mirascope/api/_generated/types/internal_server_error_body.py +3 -3
  132. mirascope/api/_generated/types/plan_limit_exceeded_error.py +32 -0
  133. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +7 -0
  134. mirascope/api/_generated/types/pricing_unavailable_error.py +23 -0
  135. mirascope/api/_generated/types/rate_limit_error.py +31 -0
  136. mirascope/api/_generated/types/rate_limit_error_tag.py +5 -0
  137. mirascope/api/_generated/types/service_unavailable_error_body.py +24 -0
  138. mirascope/api/_generated/types/service_unavailable_error_tag.py +7 -0
  139. mirascope/api/_generated/types/subscription_past_due_error.py +31 -0
  140. mirascope/api/_generated/types/subscription_past_due_error_tag.py +7 -0
  141. mirascope/api/settings.py +19 -1
  142. mirascope/llm/__init__.py +53 -10
  143. mirascope/llm/calls/__init__.py +2 -1
  144. mirascope/llm/calls/calls.py +3 -1
  145. mirascope/llm/calls/decorator.py +21 -7
  146. mirascope/llm/content/tool_output.py +22 -5
  147. mirascope/llm/exceptions.py +284 -71
  148. mirascope/llm/formatting/__init__.py +17 -0
  149. mirascope/llm/formatting/format.py +112 -35
  150. mirascope/llm/formatting/output_parser.py +178 -0
  151. mirascope/llm/formatting/partial.py +80 -7
  152. mirascope/llm/formatting/primitives.py +192 -0
  153. mirascope/llm/formatting/types.py +20 -8
  154. mirascope/llm/messages/__init__.py +3 -0
  155. mirascope/llm/messages/_utils.py +34 -0
  156. mirascope/llm/models/__init__.py +5 -0
  157. mirascope/llm/models/models.py +137 -69
  158. mirascope/llm/{providers/base → models}/params.py +7 -57
  159. mirascope/llm/models/thinking_config.py +61 -0
  160. mirascope/llm/prompts/_utils.py +0 -32
  161. mirascope/llm/prompts/decorator.py +16 -5
  162. mirascope/llm/prompts/prompts.py +131 -68
  163. mirascope/llm/providers/__init__.py +1 -4
  164. mirascope/llm/providers/anthropic/_utils/__init__.py +2 -0
  165. mirascope/llm/providers/anthropic/_utils/beta_decode.py +18 -9
  166. mirascope/llm/providers/anthropic/_utils/beta_encode.py +62 -13
  167. mirascope/llm/providers/anthropic/_utils/decode.py +18 -9
  168. mirascope/llm/providers/anthropic/_utils/encode.py +26 -7
  169. mirascope/llm/providers/anthropic/_utils/errors.py +2 -2
  170. mirascope/llm/providers/anthropic/beta_provider.py +64 -18
  171. mirascope/llm/providers/anthropic/provider.py +91 -33
  172. mirascope/llm/providers/base/__init__.py +0 -4
  173. mirascope/llm/providers/base/_utils.py +55 -6
  174. mirascope/llm/providers/base/base_provider.py +116 -37
  175. mirascope/llm/providers/google/_utils/__init__.py +2 -0
  176. mirascope/llm/providers/google/_utils/decode.py +20 -7
  177. mirascope/llm/providers/google/_utils/encode.py +26 -7
  178. mirascope/llm/providers/google/_utils/errors.py +3 -2
  179. mirascope/llm/providers/google/provider.py +64 -18
  180. mirascope/llm/providers/mirascope/_utils.py +13 -17
  181. mirascope/llm/providers/mirascope/provider.py +49 -18
  182. mirascope/llm/providers/mlx/_utils.py +7 -2
  183. mirascope/llm/providers/mlx/encoding/base.py +5 -2
  184. mirascope/llm/providers/mlx/encoding/transformers.py +5 -2
  185. mirascope/llm/providers/mlx/mlx.py +23 -6
  186. mirascope/llm/providers/mlx/provider.py +42 -13
  187. mirascope/llm/providers/openai/_utils/errors.py +2 -2
  188. mirascope/llm/providers/openai/completions/_utils/encode.py +20 -16
  189. mirascope/llm/providers/openai/completions/base_provider.py +40 -11
  190. mirascope/llm/providers/openai/provider.py +40 -10
  191. mirascope/llm/providers/openai/responses/_utils/__init__.py +2 -0
  192. mirascope/llm/providers/openai/responses/_utils/decode.py +19 -6
  193. mirascope/llm/providers/openai/responses/_utils/encode.py +22 -10
  194. mirascope/llm/providers/openai/responses/provider.py +56 -18
  195. mirascope/llm/providers/provider_registry.py +93 -19
  196. mirascope/llm/responses/__init__.py +6 -1
  197. mirascope/llm/responses/_utils.py +102 -12
  198. mirascope/llm/responses/base_response.py +5 -2
  199. mirascope/llm/responses/base_stream_response.py +115 -25
  200. mirascope/llm/responses/response.py +2 -1
  201. mirascope/llm/responses/root_response.py +89 -17
  202. mirascope/llm/responses/stream_response.py +6 -9
  203. mirascope/llm/tools/decorator.py +9 -4
  204. mirascope/llm/tools/tool_schema.py +12 -6
  205. mirascope/llm/tools/toolkit.py +35 -27
  206. mirascope/llm/tools/tools.py +45 -20
  207. mirascope/ops/__init__.py +4 -0
  208. mirascope/ops/_internal/configuration.py +82 -31
  209. mirascope/ops/_internal/exporters/exporters.py +64 -11
  210. mirascope/ops/_internal/instrumentation/llm/common.py +530 -0
  211. mirascope/ops/_internal/instrumentation/llm/cost.py +190 -0
  212. mirascope/ops/_internal/instrumentation/llm/encode.py +1 -1
  213. mirascope/ops/_internal/instrumentation/llm/llm.py +116 -1242
  214. mirascope/ops/_internal/instrumentation/llm/model.py +1798 -0
  215. mirascope/ops/_internal/instrumentation/llm/response.py +521 -0
  216. mirascope/ops/_internal/instrumentation/llm/serialize.py +300 -0
  217. mirascope/ops/_internal/protocols.py +83 -1
  218. mirascope/ops/_internal/traced_calls.py +4 -0
  219. mirascope/ops/_internal/traced_functions.py +118 -8
  220. mirascope/ops/_internal/tracing.py +78 -1
  221. mirascope/ops/_internal/utils.py +52 -4
  222. {mirascope-2.0.0a6.dist-info → mirascope-2.0.1.dist-info}/METADATA +12 -11
  223. mirascope-2.0.1.dist-info/RECORD +423 -0
  224. {mirascope-2.0.0a6.dist-info → mirascope-2.0.1.dist-info}/licenses/LICENSE +1 -1
  225. mirascope-2.0.0a6.dist-info/RECORD +0 -316
  226. {mirascope-2.0.0a6.dist-info → mirascope-2.0.1.dist-info}/WHEEL +0 -0
@@ -74,10 +74,28 @@ from .traces_get_analytics_summary_response_top_functions_item import (
74
74
  from .traces_get_analytics_summary_response_top_models_item import (
75
75
  TracesGetAnalyticsSummaryResponseTopModelsItem,
76
76
  )
77
+ from .traces_get_trace_detail_by_env_response import TracesGetTraceDetailByEnvResponse
78
+ from .traces_get_trace_detail_by_env_response_spans_item import (
79
+ TracesGetTraceDetailByEnvResponseSpansItem,
80
+ )
77
81
  from .traces_get_trace_detail_response import TracesGetTraceDetailResponse
78
82
  from .traces_get_trace_detail_response_spans_item import (
79
83
  TracesGetTraceDetailResponseSpansItem,
80
84
  )
85
+ from .traces_list_by_function_hash_response import TracesListByFunctionHashResponse
86
+ from .traces_list_by_function_hash_response_traces_item import (
87
+ TracesListByFunctionHashResponseTracesItem,
88
+ )
89
+ from .traces_search_by_env_request_attribute_filters_item import (
90
+ TracesSearchByEnvRequestAttributeFiltersItem,
91
+ )
92
+ from .traces_search_by_env_request_attribute_filters_item_operator import (
93
+ TracesSearchByEnvRequestAttributeFiltersItemOperator,
94
+ )
95
+ from .traces_search_by_env_request_sort_by import TracesSearchByEnvRequestSortBy
96
+ from .traces_search_by_env_request_sort_order import TracesSearchByEnvRequestSortOrder
97
+ from .traces_search_by_env_response import TracesSearchByEnvResponse
98
+ from .traces_search_by_env_response_spans_item import TracesSearchByEnvResponseSpansItem
81
99
  from .traces_search_request_attribute_filters_item import (
82
100
  TracesSearchRequestAttributeFiltersItem,
83
101
  )
@@ -116,8 +134,18 @@ __all__ = [
116
134
  "TracesGetAnalyticsSummaryResponse",
117
135
  "TracesGetAnalyticsSummaryResponseTopFunctionsItem",
118
136
  "TracesGetAnalyticsSummaryResponseTopModelsItem",
137
+ "TracesGetTraceDetailByEnvResponse",
138
+ "TracesGetTraceDetailByEnvResponseSpansItem",
119
139
  "TracesGetTraceDetailResponse",
120
140
  "TracesGetTraceDetailResponseSpansItem",
141
+ "TracesListByFunctionHashResponse",
142
+ "TracesListByFunctionHashResponseTracesItem",
143
+ "TracesSearchByEnvRequestAttributeFiltersItem",
144
+ "TracesSearchByEnvRequestAttributeFiltersItemOperator",
145
+ "TracesSearchByEnvRequestSortBy",
146
+ "TracesSearchByEnvRequestSortOrder",
147
+ "TracesSearchByEnvResponse",
148
+ "TracesSearchByEnvResponseSpansItem",
121
149
  "TracesSearchRequestAttributeFiltersItem",
122
150
  "TracesSearchRequestAttributeFiltersItemOperator",
123
151
  "TracesSearchRequestSortBy",
@@ -30,6 +30,12 @@ class TracesGetAnalyticsSummaryResponse(UniversalBaseModel):
30
30
  ] = None
31
31
  error_rate: typing_extensions.Annotated[float, FieldMetadata(alias="errorRate")]
32
32
  total_tokens: typing_extensions.Annotated[float, FieldMetadata(alias="totalTokens")]
33
+ total_input_tokens: typing_extensions.Annotated[
34
+ float, FieldMetadata(alias="totalInputTokens")
35
+ ]
36
+ total_output_tokens: typing_extensions.Annotated[
37
+ float, FieldMetadata(alias="totalOutputTokens")
38
+ ]
33
39
  total_cost_usd: typing_extensions.Annotated[
34
40
  float, FieldMetadata(alias="totalCostUsd")
35
41
  ]
@@ -0,0 +1,33 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from .traces_get_trace_detail_by_env_response_spans_item import (
10
+ TracesGetTraceDetailByEnvResponseSpansItem,
11
+ )
12
+
13
+
14
+ class TracesGetTraceDetailByEnvResponse(UniversalBaseModel):
15
+ trace_id: typing_extensions.Annotated[str, FieldMetadata(alias="traceId")]
16
+ spans: typing.List[TracesGetTraceDetailByEnvResponseSpansItem]
17
+ root_span_id: typing_extensions.Annotated[
18
+ typing.Optional[str], FieldMetadata(alias="rootSpanId")
19
+ ] = None
20
+ total_duration_ms: typing_extensions.Annotated[
21
+ typing.Optional[float], FieldMetadata(alias="totalDurationMs")
22
+ ] = None
23
+
24
+ if IS_PYDANTIC_V2:
25
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
26
+ extra="allow", frozen=True
27
+ ) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,88 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+
10
+
11
+ class TracesGetTraceDetailByEnvResponseSpansItem(UniversalBaseModel):
12
+ trace_id: typing_extensions.Annotated[str, FieldMetadata(alias="traceId")]
13
+ span_id: typing_extensions.Annotated[str, FieldMetadata(alias="spanId")]
14
+ parent_span_id: typing_extensions.Annotated[
15
+ typing.Optional[str], FieldMetadata(alias="parentSpanId")
16
+ ] = None
17
+ environment_id: typing_extensions.Annotated[
18
+ str, FieldMetadata(alias="environmentId")
19
+ ]
20
+ project_id: typing_extensions.Annotated[str, FieldMetadata(alias="projectId")]
21
+ organization_id: typing_extensions.Annotated[
22
+ str, FieldMetadata(alias="organizationId")
23
+ ]
24
+ start_time: typing_extensions.Annotated[str, FieldMetadata(alias="startTime")]
25
+ end_time: typing_extensions.Annotated[str, FieldMetadata(alias="endTime")]
26
+ duration_ms: typing_extensions.Annotated[
27
+ typing.Optional[float], FieldMetadata(alias="durationMs")
28
+ ] = None
29
+ name: str
30
+ kind: float
31
+ status_code: typing_extensions.Annotated[
32
+ typing.Optional[float], FieldMetadata(alias="statusCode")
33
+ ] = None
34
+ status_message: typing_extensions.Annotated[
35
+ typing.Optional[str], FieldMetadata(alias="statusMessage")
36
+ ] = None
37
+ model: typing.Optional[str] = None
38
+ provider: typing.Optional[str] = None
39
+ input_tokens: typing_extensions.Annotated[
40
+ typing.Optional[float], FieldMetadata(alias="inputTokens")
41
+ ] = None
42
+ output_tokens: typing_extensions.Annotated[
43
+ typing.Optional[float], FieldMetadata(alias="outputTokens")
44
+ ] = None
45
+ total_tokens: typing_extensions.Annotated[
46
+ typing.Optional[float], FieldMetadata(alias="totalTokens")
47
+ ] = None
48
+ cost_usd: typing_extensions.Annotated[
49
+ typing.Optional[float], FieldMetadata(alias="costUsd")
50
+ ] = None
51
+ function_id: typing_extensions.Annotated[
52
+ typing.Optional[str], FieldMetadata(alias="functionId")
53
+ ] = None
54
+ function_name: typing_extensions.Annotated[
55
+ typing.Optional[str], FieldMetadata(alias="functionName")
56
+ ] = None
57
+ function_version: typing_extensions.Annotated[
58
+ typing.Optional[str], FieldMetadata(alias="functionVersion")
59
+ ] = None
60
+ error_type: typing_extensions.Annotated[
61
+ typing.Optional[str], FieldMetadata(alias="errorType")
62
+ ] = None
63
+ error_message: typing_extensions.Annotated[
64
+ typing.Optional[str], FieldMetadata(alias="errorMessage")
65
+ ] = None
66
+ attributes: str
67
+ events: typing.Optional[str] = None
68
+ links: typing.Optional[str] = None
69
+ service_name: typing_extensions.Annotated[
70
+ typing.Optional[str], FieldMetadata(alias="serviceName")
71
+ ] = None
72
+ service_version: typing_extensions.Annotated[
73
+ typing.Optional[str], FieldMetadata(alias="serviceVersion")
74
+ ] = None
75
+ resource_attributes: typing_extensions.Annotated[
76
+ typing.Optional[str], FieldMetadata(alias="resourceAttributes")
77
+ ] = None
78
+
79
+ if IS_PYDANTIC_V2:
80
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
81
+ extra="allow", frozen=True
82
+ ) # type: ignore # Pydantic v2
83
+ else:
84
+
85
+ class Config:
86
+ frozen = True
87
+ smart_union = True
88
+ extra = pydantic.Extra.allow
@@ -9,8 +9,6 @@ from ...core.serialization import FieldMetadata
9
9
 
10
10
 
11
11
  class TracesGetTraceDetailResponseSpansItem(UniversalBaseModel):
12
- id: str
13
- trace_db_id: typing_extensions.Annotated[str, FieldMetadata(alias="traceDbId")]
14
12
  trace_id: typing_extensions.Annotated[str, FieldMetadata(alias="traceId")]
15
13
  span_id: typing_extensions.Annotated[str, FieldMetadata(alias="spanId")]
16
14
  parent_span_id: typing_extensions.Annotated[
@@ -0,0 +1,25 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .traces_list_by_function_hash_response_traces_item import (
8
+ TracesListByFunctionHashResponseTracesItem,
9
+ )
10
+
11
+
12
+ class TracesListByFunctionHashResponse(UniversalBaseModel):
13
+ traces: typing.List[TracesListByFunctionHashResponseTracesItem]
14
+ total: float
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
18
+ extra="allow", frozen=True
19
+ ) # type: ignore # Pydantic v2
20
+ else:
21
+
22
+ class Config:
23
+ frozen = True
24
+ smart_union = True
25
+ extra = pydantic.Extra.allow
@@ -0,0 +1,44 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+
10
+
11
+ class TracesListByFunctionHashResponseTracesItem(UniversalBaseModel):
12
+ id: str
13
+ otel_trace_id: typing_extensions.Annotated[str, FieldMetadata(alias="otelTraceId")]
14
+ environment_id: typing_extensions.Annotated[
15
+ str, FieldMetadata(alias="environmentId")
16
+ ]
17
+ project_id: typing_extensions.Annotated[str, FieldMetadata(alias="projectId")]
18
+ organization_id: typing_extensions.Annotated[
19
+ str, FieldMetadata(alias="organizationId")
20
+ ]
21
+ service_name: typing_extensions.Annotated[
22
+ typing.Optional[str], FieldMetadata(alias="serviceName")
23
+ ] = None
24
+ service_version: typing_extensions.Annotated[
25
+ typing.Optional[str], FieldMetadata(alias="serviceVersion")
26
+ ] = None
27
+ resource_attributes: typing_extensions.Annotated[
28
+ typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]],
29
+ FieldMetadata(alias="resourceAttributes"),
30
+ ] = None
31
+ created_at: typing_extensions.Annotated[
32
+ typing.Optional[str], FieldMetadata(alias="createdAt")
33
+ ] = None
34
+
35
+ if IS_PYDANTIC_V2:
36
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
37
+ extra="allow", frozen=True
38
+ ) # type: ignore # Pydantic v2
39
+ else:
40
+
41
+ class Config:
42
+ frozen = True
43
+ smart_union = True
44
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .traces_search_by_env_request_attribute_filters_item_operator import (
8
+ TracesSearchByEnvRequestAttributeFiltersItemOperator,
9
+ )
10
+
11
+
12
+ class TracesSearchByEnvRequestAttributeFiltersItem(UniversalBaseModel):
13
+ key: str
14
+ operator: TracesSearchByEnvRequestAttributeFiltersItemOperator
15
+ value: typing.Optional[str] = None
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TracesSearchByEnvRequestAttributeFiltersItemOperator = typing.Union[
6
+ typing.Literal["eq", "neq", "contains", "exists"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TracesSearchByEnvRequestSortBy = typing.Union[
6
+ typing.Literal["start_time", "duration_ms", "total_tokens"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TracesSearchByEnvRequestSortOrder = typing.Union[
6
+ typing.Literal["asc", "desc"], typing.Any
7
+ ]
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from .traces_search_by_env_response_spans_item import TracesSearchByEnvResponseSpansItem
10
+
11
+
12
+ class TracesSearchByEnvResponse(UniversalBaseModel):
13
+ spans: typing.List[TracesSearchByEnvResponseSpansItem]
14
+ total: float
15
+ has_more: typing_extensions.Annotated[bool, FieldMetadata(alias="hasMore")]
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,50 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+
10
+
11
+ class TracesSearchByEnvResponseSpansItem(UniversalBaseModel):
12
+ trace_id: typing_extensions.Annotated[str, FieldMetadata(alias="traceId")]
13
+ span_id: typing_extensions.Annotated[str, FieldMetadata(alias="spanId")]
14
+ name: str
15
+ start_time: typing_extensions.Annotated[str, FieldMetadata(alias="startTime")]
16
+ duration_ms: typing_extensions.Annotated[
17
+ typing.Optional[float], FieldMetadata(alias="durationMs")
18
+ ] = None
19
+ model: typing.Optional[str] = None
20
+ provider: typing.Optional[str] = None
21
+ input_tokens: typing_extensions.Annotated[
22
+ typing.Optional[float], FieldMetadata(alias="inputTokens")
23
+ ] = None
24
+ output_tokens: typing_extensions.Annotated[
25
+ typing.Optional[float], FieldMetadata(alias="outputTokens")
26
+ ] = None
27
+ total_tokens: typing_extensions.Annotated[
28
+ typing.Optional[float], FieldMetadata(alias="totalTokens")
29
+ ] = None
30
+ cost_usd: typing_extensions.Annotated[
31
+ typing.Optional[float], FieldMetadata(alias="costUsd")
32
+ ] = None
33
+ function_id: typing_extensions.Annotated[
34
+ typing.Optional[str], FieldMetadata(alias="functionId")
35
+ ] = None
36
+ function_name: typing_extensions.Annotated[
37
+ typing.Optional[str], FieldMetadata(alias="functionName")
38
+ ] = None
39
+ has_children: typing_extensions.Annotated[bool, FieldMetadata(alias="hasChildren")]
40
+
41
+ if IS_PYDANTIC_V2:
42
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
43
+ extra="allow", frozen=True
44
+ ) # type: ignore # Pydantic v2
45
+ else:
46
+
47
+ class Config:
48
+ frozen = True
49
+ smart_union = True
50
+ extra = pydantic.Extra.allow
@@ -9,7 +9,6 @@ from ...core.serialization import FieldMetadata
9
9
 
10
10
 
11
11
  class TracesSearchResponseSpansItem(UniversalBaseModel):
12
- id: str
13
12
  trace_id: typing_extensions.Annotated[str, FieldMetadata(alias="traceId")]
14
13
  span_id: typing_extensions.Annotated[str, FieldMetadata(alias="spanId")]
15
14
  name: str
@@ -19,15 +18,25 @@ class TracesSearchResponseSpansItem(UniversalBaseModel):
19
18
  ] = None
20
19
  model: typing.Optional[str] = None
21
20
  provider: typing.Optional[str] = None
21
+ input_tokens: typing_extensions.Annotated[
22
+ typing.Optional[float], FieldMetadata(alias="inputTokens")
23
+ ] = None
24
+ output_tokens: typing_extensions.Annotated[
25
+ typing.Optional[float], FieldMetadata(alias="outputTokens")
26
+ ] = None
22
27
  total_tokens: typing_extensions.Annotated[
23
28
  typing.Optional[float], FieldMetadata(alias="totalTokens")
24
29
  ] = None
30
+ cost_usd: typing_extensions.Annotated[
31
+ typing.Optional[float], FieldMetadata(alias="costUsd")
32
+ ] = None
25
33
  function_id: typing_extensions.Annotated[
26
34
  typing.Optional[str], FieldMetadata(alias="functionId")
27
35
  ] = None
28
36
  function_name: typing_extensions.Annotated[
29
37
  typing.Optional[str], FieldMetadata(alias="functionName")
30
38
  ] = None
39
+ has_children: typing_extensions.Annotated[bool, FieldMetadata(alias="hasChildren")]
31
40
 
32
41
  if IS_PYDANTIC_V2:
33
42
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
@@ -4,15 +4,22 @@
4
4
 
5
5
  from .already_exists_error import AlreadyExistsError
6
6
  from .already_exists_error_tag import AlreadyExistsErrorTag
7
+ from .bad_request_error_body import (
8
+ BadRequestErrorBody,
9
+ BadRequestErrorBody_HttpApiDecodeError,
10
+ BadRequestErrorBody_ImmutableResourceError,
11
+ )
7
12
  from .click_house_error import ClickHouseError
8
13
  from .database_error import DatabaseError
9
14
  from .database_error_tag import DatabaseErrorTag
15
+ from .date import Date
10
16
  from .http_api_decode_error import HttpApiDecodeError
11
17
  from .http_api_decode_error_tag import HttpApiDecodeErrorTag
18
+ from .immutable_resource_error import ImmutableResourceError
12
19
  from .internal_server_error_body import (
13
20
  InternalServerErrorBody,
21
+ InternalServerErrorBody_ClickHouseError,
14
22
  InternalServerErrorBody_DatabaseError,
15
- InternalServerErrorBody_StripeError,
16
23
  )
17
24
  from .issue import Issue
18
25
  from .issue_tag import IssueTag
@@ -21,24 +28,38 @@ from .not_found_error_tag import NotFoundErrorTag
21
28
  from .number_from_string import NumberFromString
22
29
  from .permission_denied_error import PermissionDeniedError
23
30
  from .permission_denied_error_tag import PermissionDeniedErrorTag
31
+ from .plan_limit_exceeded_error import PlanLimitExceededError
32
+ from .plan_limit_exceeded_error_tag import PlanLimitExceededErrorTag
33
+ from .pricing_unavailable_error import PricingUnavailableError
24
34
  from .property_key import PropertyKey
25
35
  from .property_key_key import PropertyKeyKey
26
36
  from .property_key_key_tag import PropertyKeyKeyTag
37
+ from .rate_limit_error import RateLimitError
38
+ from .rate_limit_error_tag import RateLimitErrorTag
39
+ from .service_unavailable_error_body import ServiceUnavailableErrorBody
40
+ from .service_unavailable_error_tag import ServiceUnavailableErrorTag
27
41
  from .stripe_error import StripeError
42
+ from .subscription_past_due_error import SubscriptionPastDueError
43
+ from .subscription_past_due_error_tag import SubscriptionPastDueErrorTag
28
44
  from .unauthorized_error_body import UnauthorizedErrorBody
29
45
  from .unauthorized_error_tag import UnauthorizedErrorTag
30
46
 
31
47
  __all__ = [
32
48
  "AlreadyExistsError",
33
49
  "AlreadyExistsErrorTag",
50
+ "BadRequestErrorBody",
51
+ "BadRequestErrorBody_HttpApiDecodeError",
52
+ "BadRequestErrorBody_ImmutableResourceError",
34
53
  "ClickHouseError",
35
54
  "DatabaseError",
36
55
  "DatabaseErrorTag",
56
+ "Date",
37
57
  "HttpApiDecodeError",
38
58
  "HttpApiDecodeErrorTag",
59
+ "ImmutableResourceError",
39
60
  "InternalServerErrorBody",
61
+ "InternalServerErrorBody_ClickHouseError",
40
62
  "InternalServerErrorBody_DatabaseError",
41
- "InternalServerErrorBody_StripeError",
42
63
  "Issue",
43
64
  "IssueTag",
44
65
  "NotFoundErrorBody",
@@ -46,10 +67,19 @@ __all__ = [
46
67
  "NumberFromString",
47
68
  "PermissionDeniedError",
48
69
  "PermissionDeniedErrorTag",
70
+ "PlanLimitExceededError",
71
+ "PlanLimitExceededErrorTag",
72
+ "PricingUnavailableError",
49
73
  "PropertyKey",
50
74
  "PropertyKeyKey",
51
75
  "PropertyKeyKeyTag",
76
+ "RateLimitError",
77
+ "RateLimitErrorTag",
78
+ "ServiceUnavailableErrorBody",
79
+ "ServiceUnavailableErrorTag",
52
80
  "StripeError",
81
+ "SubscriptionPastDueError",
82
+ "SubscriptionPastDueErrorTag",
53
83
  "UnauthorizedErrorBody",
54
84
  "UnauthorizedErrorTag",
55
85
  ]
@@ -0,0 +1,50 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from __future__ import annotations
4
+
5
+ import typing
6
+
7
+ import pydantic
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from .http_api_decode_error_tag import HttpApiDecodeErrorTag
10
+ from .issue import Issue
11
+
12
+
13
+ class BadRequestErrorBody_HttpApiDecodeError(UniversalBaseModel):
14
+ tag: typing.Literal["HttpApiDecodeError"] = "HttpApiDecodeError"
15
+ issues: typing.List[Issue]
16
+ message: str
17
+ tag: HttpApiDecodeErrorTag
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
21
+ extra="allow", frozen=True
22
+ ) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow
29
+
30
+
31
+ class BadRequestErrorBody_ImmutableResourceError(UniversalBaseModel):
32
+ tag: typing.Literal["ImmutableResourceError"] = "ImmutableResourceError"
33
+ message: str
34
+ resource: typing.Optional[str] = None
35
+
36
+ if IS_PYDANTIC_V2:
37
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
38
+ extra="allow", frozen=True
39
+ ) # type: ignore # Pydantic v2
40
+ else:
41
+
42
+ class Config:
43
+ frozen = True
44
+ smart_union = True
45
+ extra = pydantic.Extra.allow
46
+
47
+
48
+ BadRequestErrorBody = typing.Union[
49
+ BadRequestErrorBody_HttpApiDecodeError, BadRequestErrorBody_ImmutableResourceError
50
+ ]
@@ -0,0 +1,3 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ Date = str
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+
8
+
9
+ class ImmutableResourceError(UniversalBaseModel):
10
+ message: str
11
+ resource: typing.Optional[str] = None
12
+
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -9,8 +9,8 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
9
  from .database_error_tag import DatabaseErrorTag
10
10
 
11
11
 
12
- class InternalServerErrorBody_StripeError(UniversalBaseModel):
13
- tag: typing.Literal["StripeError"] = "StripeError"
12
+ class InternalServerErrorBody_ClickHouseError(UniversalBaseModel):
13
+ tag: typing.Literal["ClickHouseError"] = "ClickHouseError"
14
14
  message: str
15
15
  cause: typing.Optional[typing.Optional[typing.Any]] = None
16
16
 
@@ -45,5 +45,5 @@ class InternalServerErrorBody_DatabaseError(UniversalBaseModel):
45
45
 
46
46
 
47
47
  InternalServerErrorBody = typing.Union[
48
- InternalServerErrorBody_StripeError, InternalServerErrorBody_DatabaseError
48
+ InternalServerErrorBody_ClickHouseError, InternalServerErrorBody_DatabaseError
49
49
  ]
@@ -0,0 +1,32 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .plan_limit_exceeded_error_tag import PlanLimitExceededErrorTag
10
+
11
+
12
+ class PlanLimitExceededError(UniversalBaseModel):
13
+ message: str
14
+ resource: str
15
+ limit_type: typing_extensions.Annotated[str, FieldMetadata(alias="limitType")]
16
+ current_usage: typing_extensions.Annotated[
17
+ float, FieldMetadata(alias="currentUsage")
18
+ ]
19
+ limit: float
20
+ plan_tier: typing_extensions.Annotated[str, FieldMetadata(alias="planTier")]
21
+ tag: PlanLimitExceededErrorTag
22
+
23
+ if IS_PYDANTIC_V2:
24
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
25
+ extra="allow", frozen=True
26
+ ) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ PlanLimitExceededErrorTag = typing.Union[
6
+ typing.Literal["PlanLimitExceededError"], typing.Any
7
+ ]