mirascope 2.0.1__py3-none-any.whl → 2.1.0__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 (75) hide show
  1. mirascope/_stubs.py +39 -18
  2. mirascope/_utils.py +34 -0
  3. mirascope/api/_generated/__init__.py +4 -0
  4. mirascope/api/_generated/organization_invitations/client.py +2 -2
  5. mirascope/api/_generated/organization_invitations/raw_client.py +2 -2
  6. mirascope/api/_generated/project_memberships/__init__.py +4 -0
  7. mirascope/api/_generated/project_memberships/client.py +91 -0
  8. mirascope/api/_generated/project_memberships/raw_client.py +239 -0
  9. mirascope/api/_generated/project_memberships/types/__init__.py +4 -0
  10. mirascope/api/_generated/project_memberships/types/project_memberships_get_response.py +33 -0
  11. mirascope/api/_generated/project_memberships/types/project_memberships_get_response_role.py +7 -0
  12. mirascope/api/_generated/reference.md +73 -1
  13. mirascope/llm/__init__.py +19 -0
  14. mirascope/llm/calls/calls.py +28 -21
  15. mirascope/llm/calls/decorator.py +17 -24
  16. mirascope/llm/formatting/__init__.py +2 -2
  17. mirascope/llm/formatting/format.py +2 -4
  18. mirascope/llm/formatting/types.py +19 -2
  19. mirascope/llm/models/models.py +66 -146
  20. mirascope/llm/prompts/decorator.py +5 -16
  21. mirascope/llm/prompts/prompts.py +35 -38
  22. mirascope/llm/providers/anthropic/_utils/beta_decode.py +22 -7
  23. mirascope/llm/providers/anthropic/_utils/beta_encode.py +22 -16
  24. mirascope/llm/providers/anthropic/_utils/decode.py +45 -7
  25. mirascope/llm/providers/anthropic/_utils/encode.py +28 -15
  26. mirascope/llm/providers/anthropic/beta_provider.py +33 -69
  27. mirascope/llm/providers/anthropic/provider.py +52 -91
  28. mirascope/llm/providers/base/_utils.py +4 -9
  29. mirascope/llm/providers/base/base_provider.py +89 -205
  30. mirascope/llm/providers/google/_utils/decode.py +51 -1
  31. mirascope/llm/providers/google/_utils/encode.py +38 -21
  32. mirascope/llm/providers/google/provider.py +33 -69
  33. mirascope/llm/providers/mirascope/provider.py +25 -61
  34. mirascope/llm/providers/mlx/encoding/base.py +3 -6
  35. mirascope/llm/providers/mlx/encoding/transformers.py +4 -8
  36. mirascope/llm/providers/mlx/mlx.py +9 -21
  37. mirascope/llm/providers/mlx/provider.py +33 -69
  38. mirascope/llm/providers/openai/completions/_utils/encode.py +39 -20
  39. mirascope/llm/providers/openai/completions/base_provider.py +34 -75
  40. mirascope/llm/providers/openai/provider.py +25 -61
  41. mirascope/llm/providers/openai/responses/_utils/decode.py +31 -2
  42. mirascope/llm/providers/openai/responses/_utils/encode.py +32 -17
  43. mirascope/llm/providers/openai/responses/provider.py +34 -75
  44. mirascope/llm/responses/__init__.py +2 -1
  45. mirascope/llm/responses/base_stream_response.py +4 -0
  46. mirascope/llm/responses/response.py +8 -12
  47. mirascope/llm/responses/stream_response.py +8 -12
  48. mirascope/llm/responses/usage.py +44 -0
  49. mirascope/llm/tools/__init__.py +24 -0
  50. mirascope/llm/tools/provider_tools.py +18 -0
  51. mirascope/llm/tools/tool_schema.py +11 -4
  52. mirascope/llm/tools/toolkit.py +24 -6
  53. mirascope/llm/tools/types.py +112 -0
  54. mirascope/llm/tools/web_search_tool.py +32 -0
  55. mirascope/ops/__init__.py +19 -1
  56. mirascope/ops/_internal/closure.py +4 -1
  57. mirascope/ops/_internal/exporters/exporters.py +13 -46
  58. mirascope/ops/_internal/exporters/utils.py +37 -0
  59. mirascope/ops/_internal/instrumentation/__init__.py +20 -0
  60. mirascope/ops/_internal/instrumentation/llm/common.py +19 -49
  61. mirascope/ops/_internal/instrumentation/llm/model.py +61 -82
  62. mirascope/ops/_internal/instrumentation/llm/serialize.py +36 -12
  63. mirascope/ops/_internal/instrumentation/providers/__init__.py +29 -0
  64. mirascope/ops/_internal/instrumentation/providers/anthropic.py +78 -0
  65. mirascope/ops/_internal/instrumentation/providers/base.py +179 -0
  66. mirascope/ops/_internal/instrumentation/providers/google_genai.py +85 -0
  67. mirascope/ops/_internal/instrumentation/providers/openai.py +82 -0
  68. mirascope/ops/_internal/traced_calls.py +14 -0
  69. mirascope/ops/_internal/traced_functions.py +7 -2
  70. mirascope/ops/_internal/utils.py +12 -4
  71. mirascope/ops/_internal/versioned_functions.py +1 -1
  72. {mirascope-2.0.1.dist-info → mirascope-2.1.0.dist-info}/METADATA +96 -68
  73. {mirascope-2.0.1.dist-info → mirascope-2.1.0.dist-info}/RECORD +75 -64
  74. {mirascope-2.0.1.dist-info → mirascope-2.1.0.dist-info}/WHEEL +0 -0
  75. {mirascope-2.0.1.dist-info → mirascope-2.1.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mirascope
3
- Version: 2.0.1
3
+ Version: 2.1.0
4
4
  Summary: Every frontier LLM. One unified interface.
5
5
  Project-URL: Homepage, https://mirascope.com
6
6
  Project-URL: Documentation, https://mirascope.com/docs/mirascope/v2
@@ -60,6 +60,9 @@ Requires-Dist: mlx-lm<1,>=0.28.4; extra == 'all'
60
60
  Requires-Dist: openai<3,>=2.15.0; extra == 'all'
61
61
  Requires-Dist: opentelemetry-api<2,>=1.38.0; extra == 'all'
62
62
  Requires-Dist: opentelemetry-exporter-otlp<2,>=1.38.0; extra == 'all'
63
+ Requires-Dist: opentelemetry-instrumentation-anthropic<1,>=0.50.0; extra == 'all'
64
+ Requires-Dist: opentelemetry-instrumentation-google-genai<1,>=0.3b0; extra == 'all'
65
+ Requires-Dist: opentelemetry-instrumentation-openai-v2<3,>=2.0b0; extra == 'all'
63
66
  Requires-Dist: opentelemetry-instrumentation<1,>=0.59b0; extra == 'all'
64
67
  Requires-Dist: opentelemetry-propagator-b3<2,>=1.38.0; extra == 'all'
65
68
  Requires-Dist: opentelemetry-propagator-b3>=1.38.0; extra == 'all'
@@ -88,6 +91,9 @@ Provides-Extra: ops
88
91
  Requires-Dist: libcst>=1.8.6; extra == 'ops'
89
92
  Requires-Dist: opentelemetry-api<2,>=1.38.0; extra == 'ops'
90
93
  Requires-Dist: opentelemetry-exporter-otlp<2,>=1.38.0; extra == 'ops'
94
+ Requires-Dist: opentelemetry-instrumentation-anthropic<1,>=0.50.0; extra == 'ops'
95
+ Requires-Dist: opentelemetry-instrumentation-google-genai<1,>=0.3b0; extra == 'ops'
96
+ Requires-Dist: opentelemetry-instrumentation-openai-v2<3,>=2.0b0; extra == 'ops'
91
97
  Requires-Dist: opentelemetry-instrumentation<1,>=0.59b0; extra == 'ops'
92
98
  Requires-Dist: opentelemetry-propagator-b3<2,>=1.38.0; extra == 'ops'
93
99
  Requires-Dist: opentelemetry-propagator-b3>=1.38.0; extra == 'ops'
@@ -97,9 +103,66 @@ Requires-Dist: orjson>=3.11.4; extra == 'ops'
97
103
  Requires-Dist: packaging>=25.0; extra == 'ops'
98
104
  Description-Content-Type: text/markdown
99
105
 
100
- ## Mirascope v2 Python
106
+ # Mirascope Python
101
107
 
102
- This directory contains the Python implementation of Mirascope.
108
+ This directory contains the Python implementation of Mirascope: The LLM Anti-Framework. It's intended as a "Goldilocks API" that affords the fine-grained control you'd get from using raw provider APIs, as well as the type safety and easy ergonomics that are offered by higher-level agent frameworks. Think of Mirascope as the "React" of LLM development, where provider native APIs are HTML/CSS, and the agent frameworks are Angular.
109
+
110
+ ## Documentation
111
+
112
+ - [Why use Mirascope?](https://mirascope.com/docs/why)
113
+ - [Mirascope Quickstart](https://mirascope.com/docs/quickstart)
114
+ - [Mirascope Concepts](https://mirascope.com/docs/learn/llm)
115
+
116
+ ## Installation
117
+
118
+ ```bash
119
+ # using uv, with all provider deps
120
+ uv add "mirascope[all]"
121
+
122
+ # using uv, with just Anthropic
123
+ uv add "mirascope[anthropic]"
124
+
125
+ # using pip, with all deps
126
+ pip install "mirascope[all]"
127
+
128
+ # using pip, just OpenAI
129
+ pip install "mirascope[openai]"
130
+ ```
131
+
132
+ ## Usage
133
+
134
+ Here's an example of creating a simple agent, with tool-calling and streaming, using Mirascope. For many more examples, [read the docs](https://mirascope.com/docs).
135
+
136
+ ```python
137
+ from mirascope import llm
138
+
139
+ @llm.tool
140
+ def exp(a: float, b: float) -> float:
141
+ """Compute an exponent"""
142
+ return a ** b
143
+
144
+ @llm.tool
145
+ def add(a: float, b: float) -> float:
146
+ """Add two numbers"""
147
+ return a + b
148
+
149
+ model = llm.Model("anthropic/claude-haiku-4-5")
150
+ response = model.stream("What is 42 ** 4 + 37 ** 3?", tools=[exp, add])
151
+
152
+ while True:
153
+ for stream in response.streams():
154
+ if stream.content_type == "text":
155
+ for delta in stream:
156
+ print(delta, end="", flush=True)
157
+ elif stream.content_type == "tool_call":
158
+ stream.collect() # consume the stream
159
+ print(f"\n> Calling {stream.tool_name}({stream.partial_args})")
160
+ print()
161
+ if response.tool_calls:
162
+ response = response.resume(response.execute_tools())
163
+ else:
164
+ break
165
+ ```
103
166
 
104
167
  ## Development Setup
105
168
 
@@ -107,97 +170,62 @@ This directory contains the Python implementation of Mirascope.
107
170
  ```bash
108
171
  cp .env.example .env
109
172
  # Edit .env with your API keys
173
+ # Necessary for updating e2e snapshot tests
110
174
  ```
111
175
 
112
176
  2. **Install Dependencies**:
113
177
 
114
178
  ```bash
179
+ cd python
115
180
  uv sync --all-extras --dev
116
181
  ```
117
182
 
118
- 3. **Run Tests**:
119
- ```bash
120
- uv run pytest
121
- ```
183
+ ## Helpful Commands:
122
184
 
123
- ## `ops.span` and Session Tracing
185
+ Here are helpful development commands. All must be run from within the `python` directory.
124
186
 
125
- `mirascope.ops` provides tracing helpers to trace any Python function, not just
126
- `llm.Model` calls.
187
+ - `uv run pyright .`
127
188
 
128
- 1. Install the OTEL extra and set up a tracer provider exactly as shown above.
129
- `ops.span` automatically reuses the active provider, so spans from manual
130
- instrumentation and GenAI instrumentation end up in the same trace tree.
131
- 2. Use `ops.session` to group related spans and attach metadata:
132
- ```python
133
- from mirascope import ops
189
+ Run typechecking.
134
190
 
135
- with ops.session(id="req-42", attributes={"team": "core"}):
136
- with ops.span("load-data") as span:
137
- span.set(stage="ingest")
138
- # expensive work here
139
- ```
140
- 3. The span exposes `span_id`/`trace_id`, logging helpers, and graceful no-op
141
- behavior when OTEL is not configured. When OTEL is active, session metadata is
142
- attached to every span, and additional tools like `ops.trace`/`ops.version`
143
- (planned) can build on the same context.
191
+ - `uv run ruff check --fix .`
144
192
 
145
- ## `ops.trace` Decorator
193
+ Check ruff linter (fixing issues where possible).
146
194
 
147
- `@ops.trace` adds span instrumentation to any Python callable (including
148
- `llm.Model` helpers) so you can capture argument/return metadata alongside the
149
- GenAI spans emitted by `llm.instrument_opentelemetry`.
195
+ - `uv run ruff format .`
150
196
 
151
- ```python
152
- from mirascope import ops
197
+ Run ruff formatter.
153
198
 
154
- @ops.trace(tags=["ingest"])
155
- def normalize(record: dict[str, str]) -> dict[str, str]:
156
- return {k: v.strip() for k, v in record.items()}
199
+ - `uv run pytest`
157
200
 
158
- result = normalize({"foo": " bar "})
159
- wrapped = normalize.wrapped({"foo": " bar "})
160
- print(wrapped.span_id, wrapped.trace_id)
161
- ```
201
+ Run all Python unit tests.
162
202
 
163
- - The decorator automatically handles sync/async functions and reuses `ops.span`
164
- serialization logic for arguments/results.
165
- - Combine with `ops.session` to tag spans with contextual metadata, and with
166
- `ops.instrument_opentelemetry` to obtain both model-level GenAI spans
167
- and method-level spans like `recommend_book.__call__`.
168
- - For now we focus on Mirascope-layer entry points (e.g., decorated functions or
169
- `llm.Model` wrappers) and do not auto-instrument underlying provider SDK calls.
203
+ - `uv run pytest --cov --cov-config=.coverargc --cov-report=term-missing`
170
204
 
171
- ## Testing
205
+ Run all Python unit tests, and report code coverage. (We require 100% coverage in CI.)
172
206
 
173
- ### VCR Cassettes
207
+ - `uv run pytest --fix`
174
208
 
175
- The project uses [VCR.py](https://vcrpy.readthedocs.io/) to record and replay HTTP interactions with LLM APIs. This allows tests to run quickly and consistently without making actual API calls.
209
+ Run all Python unit tests, and update any changed snapshots.
176
210
 
177
- - **Cassettes Location**: Test cassettes are stored in `tests/llm/clients/*/cassettes/`
178
- - **Recording Mode**: Tests use `"once"` mode - records new interactions if no cassette exists, replays existing cassettes otherwise
179
- - **CI/CD**: In CI environments, tests use existing cassettes and never make real API calls
211
+ - `uvx codespell --config ../.codespellrc`
180
212
 
181
- ### Inline Snapshots
213
+ Run codespell, identifying many common spelling mistakes.
182
214
 
183
- The project uses [inline-snapshot](https://15r10nk.github.io/inline-snapshot/) to capture expected test outputs directly in the test code.
215
+ ## Typechecking
184
216
 
185
- - **Update Snapshots**: Run `uv run pytest --inline-snapshot=fix` to update all snapshots with actual values
186
- - **Review Changes**: Run `uv run pytest --inline-snapshot=review` to preview what would change
187
- - **Formatted Output**: Snapshots are automatically formatted with `ruff` for consistency
217
+ We prize type safety, both on the API surface and internally. You can run typechecking via `uv run pyright .` within this `python/` directory. (We're looking into supporting `ty` so as to speed up our typechecking.)
188
218
 
189
- Example:
190
- ```python
191
- def test_api_response():
192
- response = client.call(messages=[user("Hello")])
193
- assert response.content == snapshot([Text(text="Hi there!")])
194
- ```
219
+ ## Testing
220
+
221
+ This project makes extensive use of e2e tests, which replay real interactions with various LLM providers to ensure that Mirascope truly works on the providers' APIs. We use [VCR.py](https://vcrpy.readthedocs.io/) and [inline-snapshot](https://15r10nk.github.io/inline-snapshot/) to maintain these e2e tests. For more details, read [tests/e2e/README.md](./tests/e2e/README.md).
222
+
223
+ If you make changes to Mirascope that require new snapshots, you should manually delete the outdated cassette files, and then run `uv run pytest python/tests/e2e --fix`. Note that doing so requires real API keys in your `.env` file.
224
+
225
+ We require 100% code coverage in CI. You can get a code coverage report via:
195
226
 
196
- ### Recording New Test Interactions
227
+ `uv run pytest --cov --cov-config=.coverargc --cov-report=term-missing`
197
228
 
198
- To record new test interactions:
229
+ ## Read More
199
230
 
200
- 1. Ensure your API keys are set in `.env`
201
- 2. Delete the relevant cassette file (if updating an existing test)
202
- 3. Run the specific test: `uv run pytest tests/path/to/test.py::test_name`
203
- 4. The cassette will be automatically created/updated
231
+ For more info on contributing, read [the contributing page in our docs](https://mirascope.com/docs/contributing).
@@ -1,13 +1,14 @@
1
1
  mirascope/__init__.py,sha256=V3T7JlZJ4G9dA5lmq5eTtLYUajbQmTvT3-tUlv8o-fg,265
2
- mirascope/_stubs.py,sha256=iq5hxVYdLEZ_b2fyBNeY5HXcL50Dcw22HBaBr3ydPgU,12179
2
+ mirascope/_stubs.py,sha256=AqkduLc9K8aBso7H5PstEkgXeJlGqqp8sQKSqjAMIQk,13211
3
+ mirascope/_utils.py,sha256=hSwsMKURXrje8Dpl2-KhEBLWJrudWKqExbemKwozRyE,1036
3
4
  mirascope/api/__init__.py,sha256=FL0OpTweJC0SUpOnZJddDzeC0JwxPDkIaL78VpeMtko,498
4
5
  mirascope/api/client.py,sha256=3JrrC2zNlEttAUXHGN1kbDpGczyI9zCNiSZ3dEyqtAI,8253
5
6
  mirascope/api/settings.py,sha256=N9mqpEpx7dupszKYK9li8vY-iDq2FFvlus0fK-gYPu0,2639
6
7
  mirascope/api/_generated/README.md,sha256=7-B_qhXCHaXKX9FPG-G112hKmXM64uM6eNqmSdpaL_8,6079
7
- mirascope/api/_generated/__init__.py,sha256=ZIX_SjuD8PIB3gifL9sDgEt8zqfEFTv2IvjK-_GzOsw,16800
8
+ mirascope/api/_generated/__init__.py,sha256=NL-bCeIoDl0-VavSWKQpN_WAXlIxh4VJb1zrFfFWdfI,16952
8
9
  mirascope/api/_generated/client.py,sha256=Xh_VGnnbdZaSUpWzjGWu-1lwoZ_6isz9eU-BATjo_vs,8775
9
10
  mirascope/api/_generated/environment.py,sha256=eKhvb5ZF3qzJj2OtEI7E9STAquQ1VivYLdmHRc4hFV4,262
10
- mirascope/api/_generated/reference.md,sha256=Zb8SXjz4ZRLdaGdWGzCldyCwykWkmyotNK2qD3XJX9A,53535
11
+ mirascope/api/_generated/reference.md,sha256=GvMROs5SFqtQQIHH31FLkpLgOznJI9BadG-dfq2GNNQ,54335
11
12
  mirascope/api/_generated/annotations/__init__.py,sha256=z1rsEyNXWcegCIeC-Y2P9TBI0fVbNs1FohqSJiqrK84,987
12
13
  mirascope/api/_generated/annotations/client.py,sha256=rikFtCmou4D4hSZqtaxFnIc7ZKMt86XztUyh4pMcXII,13818
13
14
  mirascope/api/_generated/annotations/raw_client.py,sha256=EEC2Rr5KT_WmLn9aFgQxApnxHGl3MdOOcoYAti4syhE,54205
@@ -96,8 +97,8 @@ mirascope/api/_generated/health/types/__init__.py,sha256=dYIZPgww1FuKOKJTeUWMDad
96
97
  mirascope/api/_generated/health/types/health_check_response.py,sha256=OCmNPA0BN9mfNoQKzl1aS2uFwzG60su540pZtC8gFJI,659
97
98
  mirascope/api/_generated/health/types/health_check_response_status.py,sha256=eCSX3a4cA5zETaIbLvtYkSeS3585DuJa9VnM1fw3VxE,155
98
99
  mirascope/api/_generated/organization_invitations/__init__.py,sha256=4LHOmmo5wJRLPqyiZ3jVG_VW3LK-VQVbFUfTwweMbcw,1247
99
- mirascope/api/_generated/organization_invitations/client.py,sha256=4vpnNlGWnIJ4L8PAkUxn5iU4dTv_qCIP-gMZ6Ap2rCk,13992
100
- mirascope/api/_generated/organization_invitations/raw_client.py,sha256=MQ1AopdvO0xGMuxTnd-2nS0ytalLW2IFp2D9PUysUfI,58289
100
+ mirascope/api/_generated/organization_invitations/client.py,sha256=EHGrekNKf4uhupP9IffP20SGBKtYJotyv34Tjs3haqY,14048
101
+ mirascope/api/_generated/organization_invitations/raw_client.py,sha256=6Or-I-vkvnx2LHC3G50oCExFAfWdRJIaSNP6OtJuP3U,58345
101
102
  mirascope/api/_generated/organization_invitations/types/__init__.py,sha256=eoOMa4pr1aks2d79z2YXDV8JsPs2giYVC-KVLxFWmos,1956
102
103
  mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py,sha256=pbvwLUaCkCQ5fuPKlh2OR0U5JINptYKHL4E_g9JusmA,1129
103
104
  mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py,sha256=s7pe7kJSJ_QZuvK1GNmD3v8Kwyy8GhDPrE7wokylXbw,199
@@ -145,13 +146,15 @@ mirascope/api/_generated/organizations/types/organizations_update_response.py,sh
145
146
  mirascope/api/_generated/organizations/types/organizations_update_response_role.py,sha256=qyCnx6lOhkw0r95dXv7mX9MR2wzQkaHVoVfoIS-vTiw,183
146
147
  mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py,sha256=42gFruhWa0lQLJffzpsZscDlQdwGnoIUQcn4UJsoEPI,201
147
148
  mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py,sha256=NTTFm8FP44eq2qoRMK0KmguBv4Y852JzGipFC0ulisM,1147
148
- mirascope/api/_generated/project_memberships/__init__.py,sha256=AYWPIJfcssyclHJKpbAN9cpYs3DW3ELo90OAvMyBzzc,791
149
- mirascope/api/_generated/project_memberships/client.py,sha256=8U23Jr9LhszwTnZ02uNcnQK478gOxdY0PqgUAzLK-4Q,11106
150
- mirascope/api/_generated/project_memberships/raw_client.py,sha256=2YGlbChBPPoGBuKKBKphXm0pb4pQrxOiZh0xohqQgvk,39206
151
- mirascope/api/_generated/project_memberships/types/__init__.py,sha256=0eoRZ7kipXg7BukA1DiKC1H0_z1M-oJFH8fqeve7Qkw,1176
149
+ mirascope/api/_generated/project_memberships/__init__.py,sha256=cDVAuJbqdCiVQgLWzSqsikTPuhJW4vRxE7SDiag7TuI,943
150
+ mirascope/api/_generated/project_memberships/client.py,sha256=gsq4CtUiUDyE6eO3DogrOuXLJ8Jc4r8m_cJ4B7tMlfY,13350
151
+ mirascope/api/_generated/project_memberships/raw_client.py,sha256=bUkOn1GqnYVtp9gvieWKhyt7ev72n88Rh21P6Obf_7c,48259
152
+ mirascope/api/_generated/project_memberships/types/__init__.py,sha256=b_Id5-a8YClUwNcgydgnBzur4QBgse74Yyj1NpXBreQ,1415
152
153
  mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py,sha256=WlaXQSfGPQDLrRSkTFPTj7iWsyjReAxrt0KZ34SomRk,210
153
154
  mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py,sha256=uF_2wiUu35UBgKrvJ7o2jnmKXL_BqQoMq3a8Sp51sQw,1192
154
155
  mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py,sha256=v3l9P-EvNy3qOmf0qw6lG2pSnLMWZNWxK_4qY9m34j8,211
156
+ mirascope/api/_generated/project_memberships/types/project_memberships_get_response.py,sha256=559ZWB6VqV8pWMv3zx0Y8z3SJkYqWrM2rUGQpeltMnM,1171
157
+ mirascope/api/_generated/project_memberships/types/project_memberships_get_response_role.py,sha256=5Srt_6XiVK2Jmld1FzNjDti3M2bdPFFIbNNAYV-oG7I,208
155
158
  mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py,sha256=boQnM-dzUWvGM8sJh7jtmUtEbBS_SVWeBvheFqVE9tE,1064
156
159
  mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py,sha256=kiiEQJxcJAVRBWg7omRSmeaBOD528f3BtdrRxrD8x1k,213
157
160
  mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py,sha256=YkpNUrCzZrR3SC8XdUBHG6-C5B9ULe9BRc3HwDqPv5w,210
@@ -262,11 +265,11 @@ mirascope/api/_generated/types/subscription_past_due_error.py,sha256=a-1Rb33jN_p
262
265
  mirascope/api/_generated/types/subscription_past_due_error_tag.py,sha256=ghRiStRa--el9MUbcTwhfYKdhj60cqf08DIqZYUArFg,185
263
266
  mirascope/api/_generated/types/unauthorized_error_body.py,sha256=0k725xKXRagfrb1HJoygl87SQvZdd6WEU2ACrDbt694,618
264
267
  mirascope/api/_generated/types/unauthorized_error_tag.py,sha256=sx-QdNmQjboMaPni2EVKoorYvWk5OmHHlT5-IBiFhQw,165
265
- mirascope/llm/__init__.py,sha256=1hP54tE5tO6lyrgiZHafc8JbF3LOIKrPON9UQJPo9uw,5879
268
+ mirascope/llm/__init__.py,sha256=AeP8Lghi-EFgStXshoqO_MCgYtE8UyxpJ41CyCSyebA,6234
266
269
  mirascope/llm/exceptions.py,sha256=hYc8A8A6unqPaB9GmvdlWIEUso4NWlR7lXELEVVyGFc,10839
267
270
  mirascope/llm/calls/__init__.py,sha256=aA-IoOlXdmhVybHTj_fGx1jDlIL-a7ed7xncO2aMIJY,293
268
- mirascope/llm/calls/calls.py,sha256=K4lLbAgfpvuNyYfh8UYm37onUr8QcEm4BMK_1CBr7i4,11836
269
- mirascope/llm/calls/decorator.py,sha256=hMJscJ1cPnQctGZfTqJV6hoCScYherCutOecIcpJfbk,9006
271
+ mirascope/llm/calls/calls.py,sha256=g71njIpo5hWvNCnSsDeT8c3l-IaAes01iKrwMyPIYlY,12089
272
+ mirascope/llm/calls/decorator.py,sha256=dPD04bfpvJueZWcJ4H7LY-a63U-RYQ7VRnv0M3BKxqI,8945
270
273
  mirascope/llm/content/__init__.py,sha256=4a5UaoiF8OKfXS9j7INFvOnU7bkNpacpiZ6IlLgC6Lc,1926
271
274
  mirascope/llm/content/audio.py,sha256=W6liY1PuQ0pF91eDBnNKW52dr-G7-vnd-rhlSqebx9Y,5311
272
275
  mirascope/llm/content/document.py,sha256=oz3LSUEhJh-lEUDCss5p_xkPBDYQhAu9m9SGFr64_pI,2369
@@ -278,146 +281,154 @@ mirascope/llm/content/tool_output.py,sha256=M2pOtjEQfkK_ERgiZCGJmxiScVzSAnZrEvJ8
278
281
  mirascope/llm/context/__init__.py,sha256=2Bx8CQhTXWbtwMirZ8ppmFKPXjuYezyi10XfmRpAE5I,179
279
282
  mirascope/llm/context/_utils.py,sha256=3DbV0NL49m9oZYMUOHJULnVFMu6sO_SXZiriDs1L-vc,1210
280
283
  mirascope/llm/context/context.py,sha256=qvmRXsyea34wXP-_0CCe6RwkT3H57dojCw6HHnv8LVc,629
281
- mirascope/llm/formatting/__init__.py,sha256=6zM0U-WyMEmSlk0DJG_SIKAYf8Ot_zS0o29RgNRW7oc,1097
282
- mirascope/llm/formatting/format.py,sha256=8XeRBRsp7nimvNO5FJu2IEnrz2wbiCHVXrHYJr9mFOQ,10223
284
+ mirascope/llm/formatting/__init__.py,sha256=QwoDzng3odFgEogcAhsjIBnFv1jg4HaiLT0Wx9jRgDU,1107
285
+ mirascope/llm/formatting/format.py,sha256=vvprN1hu2OtcihF1M9cc3og3GVs5r1ddqiwOzb_uaq8,10173
283
286
  mirascope/llm/formatting/from_call_args.py,sha256=FfnInMf-KCo6VKIPWsppMSzapWqtGlfKwNMJSkzo2ys,917
284
287
  mirascope/llm/formatting/output_parser.py,sha256=qmqWjO4cJX-xgxf0Tgd1bK3rejgRJzqfSDiD2-KTphU,5806
285
288
  mirascope/llm/formatting/partial.py,sha256=RcByspgDHIR3H8TtrQuI0uaTc71Pc0wThAD6Vgfslps,4555
286
289
  mirascope/llm/formatting/primitives.py,sha256=6Y73meE0L-J0gy35YPFUhygJg-bgH8ueCiX2SqtHyPs,4997
287
- mirascope/llm/formatting/types.py,sha256=5TM5wMAxT6UmKuwfy_xF3J9wrvklvOVV57q0BmB__4Y,2627
290
+ mirascope/llm/formatting/types.py,sha256=l2SkPtG00qst9kSKl1npVCgEas7Kts7HME8_DJR-hgU,3159
288
291
  mirascope/llm/mcp/__init__.py,sha256=WaITd9dM6QZqsvBLqHkUhWRYGGlVsgEMF1MN36G7ckM,198
289
292
  mirascope/llm/mcp/mcp_client.py,sha256=FNYY7jPnJWNf0T3jo6ZpaTnPouetb7SKR_K_MVFoNjM,4471
290
293
  mirascope/llm/messages/__init__.py,sha256=N2w3oWTJjOhoYXTPEVjkyOOPFINBGuGHbE0TQVxZ_Hc,807
291
294
  mirascope/llm/messages/_utils.py,sha256=jmE_S01LAW1MWCv6pUoTk92mHJxqcu3bocRJzKgY_lo,977
292
295
  mirascope/llm/messages/message.py,sha256=GkF556Na5H8AMGSMqA6Y4n-uHI3ZKRaq6K9d9acdtaE,6521
293
296
  mirascope/llm/models/__init__.py,sha256=3U4pAV4iwpHS29Ip9mG-dlHpR2OhbJFiKEZ1y0VkeM0,648
294
- mirascope/llm/models/models.py,sha256=jMj9gs2rmtUSEZb57QHczrDCn08tDDulS8HYUa6hoDg,47416
297
+ mirascope/llm/models/models.py,sha256=ar1ORdETDPOp4NpcC8-foZAi8CvAXiIREI9GCHowel4,45222
295
298
  mirascope/llm/models/params.py,sha256=D5Evg-9YDJoJ24cihqFMnV0CvKLt3yBabxGs1erN9T0,2636
296
299
  mirascope/llm/models/thinking_config.py,sha256=CkFOkw-fjDlsZbHJbV68v4yRwb5o6miVxBySrZbHGXw,2627
297
300
  mirascope/llm/prompts/__init__.py,sha256=rOtSiZvw6vsJl7vCFWzKZnm3haNhnLtPRzPfdbgoH7U,727
298
301
  mirascope/llm/prompts/_utils.py,sha256=42hTqm8PuLpDOz4Mi59kaUou43qeo5R-9703l8cciSg,1018
299
- mirascope/llm/prompts/decorator.py,sha256=UiCA921u1qCQZPqrDRE4xERg7nzyzf1rChAEN216ojA,7179
300
- mirascope/llm/prompts/prompts.py,sha256=WZUERWWVIvJq6LGMl6ixSGFoAayVwdVjm16CLEUGyew,15926
302
+ mirascope/llm/prompts/decorator.py,sha256=lwGfPokTxaeiJlHby4vsN09DII8Rd4piThNWwtoGmoc,6921
303
+ mirascope/llm/prompts/prompts.py,sha256=-HFdzebMOmp5Yy7fPfVSADdLZVVnhzo6g7cEfgeLa8M,16019
301
304
  mirascope/llm/prompts/protocols.py,sha256=auopJnLAfOognCFVVnXrvb4zFj3102Ofi2iVHfublM0,2242
302
305
  mirascope/llm/providers/__init__.py,sha256=JP1cW_IFUZwkcHWP2Kc9ezihfQu7CY80ayqmkVeR9pc,1953
303
306
  mirascope/llm/providers/model_id.py,sha256=qr7RKkP_3Blgxjzw_HvQVJLM1aTzsP-jVFsycz0itI8,292
304
307
  mirascope/llm/providers/provider_id.py,sha256=NfZeoJWJ1UUrbhmaPkbFQGz-utPQGMiMqIaXvrjQMEo,1038
305
308
  mirascope/llm/providers/provider_registry.py,sha256=AVg9nh58v21JXFvDaBxrB998cqnSgXQe-XO0RB3qskU,10753
306
309
  mirascope/llm/providers/anthropic/__init__.py,sha256=t9m32IiohMu6Aqlj7iVBcngY6KiUlJBnJBFyPYttXpY,261
307
- mirascope/llm/providers/anthropic/beta_provider.py,sha256=VF550Qam3Fzq9LiGF7UJS_2vKC0-kLF3uv2Rvc3V8h8,13078
310
+ mirascope/llm/providers/anthropic/beta_provider.py,sha256=JlqVVodG_IHypcqghrKalFMbDSY8Ui1EUxeW3WScavk,12066
308
311
  mirascope/llm/providers/anthropic/model_id.py,sha256=3Wf4cZG8NUO3i7dHmw3At46JMfTuRWpS8pKYX2s-8B8,715
309
312
  mirascope/llm/providers/anthropic/model_info.py,sha256=YuklafFMIpkyLBJSBB0XlB6MK9Bz6hp9Z6APxJ9G1j4,2965
310
- mirascope/llm/providers/anthropic/provider.py,sha256=n2zeMIKtTPq2LqqrK_njwloBZZW0qdluaeLt55Q7Lt0,16778
313
+ mirascope/llm/providers/anthropic/provider.py,sha256=9pk-BOftKHZFTAy2vjjuzr4fa-0LfnWtSrrFYFfL8uE,15729
311
314
  mirascope/llm/providers/anthropic/_utils/__init__.py,sha256=tp-7bIM6G7JHoP7UgfG1hp1lcKdSM5C5UU2kB0Nxj8M,662
312
- mirascope/llm/providers/anthropic/_utils/beta_decode.py,sha256=vMXBVAsicZf-wxdHxhYdcuucnRa_mN5NlGEisj0BrxQ,10627
313
- mirascope/llm/providers/anthropic/_utils/beta_encode.py,sha256=zRoeIpoju3TJ9SMzZOtGmmcPl24GkRCP0LuCvRgXvDE,8879
314
- mirascope/llm/providers/anthropic/_utils/decode.py,sha256=SYhL8X8YG11OD2uulUG9wrN-26SDHmq2zKHJxDzQXhA,10863
315
- mirascope/llm/providers/anthropic/_utils/encode.py,sha256=m2_X-TcgokC7xgJcjxHyNKL19fcRlZYJvSpx529ZdyY,14888
315
+ mirascope/llm/providers/anthropic/_utils/beta_decode.py,sha256=M707Q6_9acOBgfXZynHwvoC8B_ktBkTc1NTYokhKbl4,11168
316
+ mirascope/llm/providers/anthropic/_utils/beta_encode.py,sha256=SxzwC74OcjNMpWDBzqIRxL00n0gG9eEQgP-lwLOLAoU,9222
317
+ mirascope/llm/providers/anthropic/_utils/decode.py,sha256=SBEEkA4qo864naWmPHKs87xXBjDcc36N1QE6RCIMiJU,12191
318
+ mirascope/llm/providers/anthropic/_utils/encode.py,sha256=uC3hN0t5XDOELZUHN-hcmQ4rxqYYFLJ4IaIinOUUEZM,15206
316
319
  mirascope/llm/providers/anthropic/_utils/errors.py,sha256=PoKmVYvo9eYHviDOSU0Pd3qaXqpWYN52JvZbtrMDPhw,1724
317
320
  mirascope/llm/providers/base/__init__.py,sha256=bCn-JWBHmCUuobB_Rekzhy2ry4B6A5qBwMlVnz51zY0,292
318
- mirascope/llm/providers/base/_utils.py,sha256=Yfmrg2wAaxej2367Wm34LPSHnDcIhqk244gNlrAADE4,9202
319
- mirascope/llm/providers/base/base_provider.py,sha256=41q-8A8V6qXzo8JObSbENKJCWadtNl9viMUfq-tMnGA,53351
321
+ mirascope/llm/providers/base/_utils.py,sha256=GfFpZm7AKgA21DV4xdXtdm3XGKjuSBCheX5ckbGv6PI,9066
322
+ mirascope/llm/providers/base/base_provider.py,sha256=WNqGuZKRrCPOE0ZGxaH96VKd2L0ucPAJuA7Fi-bFLRI,49459
320
323
  mirascope/llm/providers/base/kwargs.py,sha256=pjaHVqtlmScUBqG8ZAllVaLoepdKE-KYl2eTqzOBXm0,406
321
324
  mirascope/llm/providers/google/__init__.py,sha256=EuZ4D5aSldPfd1rvG62_l9ERzJzqTyp6276RGRXBiqQ,157
322
325
  mirascope/llm/providers/google/message.py,sha256=ryNsMKPSyBSVXl_H0MQEaSiWC3FFybjxIUuORNSiKTk,179
323
326
  mirascope/llm/providers/google/model_id.py,sha256=vZJeKT-_J7oiFT5AkudintCFE4DhFJ-VZOFOcLP1rn0,603
324
327
  mirascope/llm/providers/google/model_info.py,sha256=AEW-UciRp_62AOzS40G6G0C3He8KkU10ZbfgIDgCxcQ,2019
325
- mirascope/llm/providers/google/provider.py,sha256=Z-00NATbvahQjyeschDDrxnadmKG_JlpaPXycClP4cE,17041
328
+ mirascope/llm/providers/google/provider.py,sha256=dx1e_NoCxfmpqDq63o6t-qEyQvl_UXyfzahEOFMe8GQ,16029
326
329
  mirascope/llm/providers/google/_utils/__init__.py,sha256=8yvZ73EQ3iF0Om2oWHMTYjVCFnYEHyASLGifwOJnz-k,369
327
- mirascope/llm/providers/google/_utils/decode.py,sha256=kji0lSJL3VnS_2O7WOhSwQbc3c3mZ4_Uf3KZfxJgRlI,11972
328
- mirascope/llm/providers/google/_utils/encode.py,sha256=kHVZplmhF7sdvgadPU6N3FUMokDgXksyLL5RAVUSswE,15177
330
+ mirascope/llm/providers/google/_utils/decode.py,sha256=W9YBe0hcpTK3WrmnL_b9VrNI6eJqLQXBKnJJoCX8tf0,13838
331
+ mirascope/llm/providers/google/_utils/encode.py,sha256=wMoaGCY_3B1boTneUPNXUBvDrpQ4-j8LYlv3qawtLpk,15716
329
332
  mirascope/llm/providers/google/_utils/errors.py,sha256=or1eSWtw4tBhLsVIRUE-7i8PnSQPWfvmuZdbo9xRisw,1410
330
333
  mirascope/llm/providers/mirascope/__init__.py,sha256=koKKp7SctUQWBzSMDFMJ-ejWCvCXK3GCIOSAEd406mw,132
331
334
  mirascope/llm/providers/mirascope/_utils.py,sha256=AeRZT6jqq8PbQ8iVz4wT3XLANAPO8AK4LrcM9G1tbFA,2322
332
- mirascope/llm/providers/mirascope/provider.py,sha256=rnOP4h5a-kKriRqK2GZWykr4XmkIa03NFk2Cpm7aewY,11446
335
+ mirascope/llm/providers/mirascope/provider.py,sha256=aD1DW5Qr2tMY1Ifb3QIES3a37RLoXyniOzhlrGiMGIg,10434
333
336
  mirascope/llm/providers/mlx/__init__.py,sha256=_tJnr28-86i87FbryFFPCYgEqwbcg1NaXb1oUo2s_hY,153
334
337
  mirascope/llm/providers/mlx/_utils.py,sha256=eEhOW9mTo2v3fOD7Vgza_kPSdo_kyl1JXoYnS0qx5Zs,4210
335
- mirascope/llm/providers/mlx/mlx.py,sha256=qoFqyL-UwusTHX4yngLS6CqZVRb17gwfUIBBTzmITcs,8437
338
+ mirascope/llm/providers/mlx/mlx.py,sha256=8tXV8rfvHIm9lYngPogT7hudNIyLS_FIE-73zczBtqE,8023
336
339
  mirascope/llm/providers/mlx/model_id.py,sha256=oHj-ptT4vTPcatHtjDSw7Z7-xs8ACMfYeRoEsKkM6yE,618
337
- mirascope/llm/providers/mlx/provider.py,sha256=oI9cKXZeZ6GePUjJmkcyFFd2M7e8gBmn44oF6knsBQo,14859
340
+ mirascope/llm/providers/mlx/provider.py,sha256=JekTY1eev5OASCrkSDfQ-uSHLS8_Y4R4UxgzYNog_dM,13847
338
341
  mirascope/llm/providers/mlx/encoding/__init__.py,sha256=qdI7HELeha1wj1OoOn1jH0Xta6yNkI_SDlYbqoWUd0c,163
339
- mirascope/llm/providers/mlx/encoding/base.py,sha256=zpDMZbgAWuBomtWMs_1kiXl56MaW8HRgoizalceThVM,2295
340
- mirascope/llm/providers/mlx/encoding/transformers.py,sha256=JwGASFHOCyrK3LSELq-7y8Qrb2gBwo-7WAGw8FuAddM,5078
342
+ mirascope/llm/providers/mlx/encoding/base.py,sha256=TSRpquWhsLLOd9ayPtZrm0v7G7D_HOL9Ms6ilncBCk4,2190
343
+ mirascope/llm/providers/mlx/encoding/transformers.py,sha256=hvLbxzDlcYXaZj5e4Y_bwvBOSE62i2WzE8O39eBcEMI,4877
341
344
  mirascope/llm/providers/ollama/__init__.py,sha256=M6kIJVYg4JYGTCk6Nq1uiu9xl7p6g6nERrVeS71Sn7U,113
342
345
  mirascope/llm/providers/ollama/provider.py,sha256=9c0pKDtc--H0SLiyqrjBKzt-Ya8gE9qZ-jpZvKEG90Y,2311
343
346
  mirascope/llm/providers/openai/__init__.py,sha256=D1b01XExoHIDdPdoWEBtnEZLZdEL54ASqOrPnt3YfAE,454
344
347
  mirascope/llm/providers/openai/model_id.py,sha256=XDQxd2BgG_YIGwzyTRNaySRXoU80-q0AR-xOdtvpB8I,1009
345
348
  mirascope/llm/providers/openai/model_info.py,sha256=DN-y-qzq2UahK11hJUe12SB1upRD6BWZkTLhEX092sY,9563
346
- mirascope/llm/providers/openai/provider.py,sha256=z8h3bOOjbak12QHzvZwC2hCEe1pUCnnsh9g8GybGEPs,15774
349
+ mirascope/llm/providers/openai/provider.py,sha256=VStI-KaGb3gwXB2TRcv3TTqnHoaxLUgb_SrxkIyzvFo,14762
347
350
  mirascope/llm/providers/openai/_utils/__init__.py,sha256=jzAtRZEqvbHnJw8iEillZU4tWXedmtTWuE_PqyYUVvM,101
348
351
  mirascope/llm/providers/openai/_utils/errors.py,sha256=760JxYcm9LJk7aIYmyPTrvjfBG2ku8-wZDb0_rkNpMs,1634
349
352
  mirascope/llm/providers/openai/completions/__init__.py,sha256=yZ-REySFP37yKjBozFybRu1ZSRPr7r5W4_bOu7z8Ymg,190
350
- mirascope/llm/providers/openai/completions/base_provider.py,sha256=LNYNgXLVuHsFemCGYaAO8E4wr__a6XSOwa2atffOzXY,18548
353
+ mirascope/llm/providers/openai/completions/base_provider.py,sha256=OYZCcVUA3ilqkrbQrqbfPF6l_L030XVCMVSD9FTwndw,17515
351
354
  mirascope/llm/providers/openai/completions/provider.py,sha256=jEH-9rMmNLEBDWVaOZj0rMuRtjwQxdK917tODk-C6pE,719
352
355
  mirascope/llm/providers/openai/completions/_utils/__init__.py,sha256=j6brTqACyRS71pkZIcL-LxneE5ALhaHkCtUnBUS0448,266
353
356
  mirascope/llm/providers/openai/completions/_utils/decode.py,sha256=C-hSaLcxrN0JzYkWYLweIqd6Eq1-QF0Bt9NH2XET2sc,8951
354
- mirascope/llm/providers/openai/completions/_utils/encode.py,sha256=mXTwKFiOxfd7bDbDMg5cFhS7Jzn3qTgfaZMMyd__Qz4,14019
357
+ mirascope/llm/providers/openai/completions/_utils/encode.py,sha256=BooTe22JyK2oaj82gaXD8V0-EswDEqNsYKtEgUVNQjg,14862
355
358
  mirascope/llm/providers/openai/responses/__init__.py,sha256=_r-w3uzGYdP9T7v2c__izSOXbolrg8axmK6j9TTRgbA,92
356
- mirascope/llm/providers/openai/responses/provider.py,sha256=W5d53_UOHUX5X4jRsXr5nm-AWrLKpWThCJUTidaBpWk,17962
359
+ mirascope/llm/providers/openai/responses/provider.py,sha256=NPC52fg0Xicy_qxYJ-gZvMKPgg_7kZdAGJ-iOo1oRbw,16929
357
360
  mirascope/llm/providers/openai/responses/_utils/__init__.py,sha256=7TVVzYepHXvhe-XOt454VIGGIm2soCikX18s8jNhclc,309
358
- mirascope/llm/providers/openai/responses/_utils/decode.py,sha256=nuINrGsjSo0uupCTNXnsNGa4jFO3wMIel_NfyshdJTo,9912
359
- mirascope/llm/providers/openai/responses/_utils/encode.py,sha256=1EXKlFw6nEQw0BxITZQvWC-rW-X1vsfOd8uv0wV8LR8,13867
361
+ mirascope/llm/providers/openai/responses/_utils/decode.py,sha256=1P1kw0TaoWWD05wtozFFCSKlbraMCQwyODuw4ytsuvY,11158
362
+ mirascope/llm/providers/openai/responses/_utils/encode.py,sha256=3Wm_ieSa0mREzdvmrvWO2F4AZhsmvnAeOZwANsFfNL8,14273
360
363
  mirascope/llm/providers/together/__init__.py,sha256=ukc99bsfsYB0fq4alaRqClxFG3bKJ0eYGPj7AfjLnpM,122
361
364
  mirascope/llm/providers/together/provider.py,sha256=LauQR6kdxFNkO8CqaJIbiyn2TxI6mO3z5GhnZbHxQa0,1295
362
- mirascope/llm/responses/__init__.py,sha256=5A9uc3eBzeN3-zMm2yYoJqh--5YZaAt699e3iy3s1mA,1516
365
+ mirascope/llm/responses/__init__.py,sha256=wZQ1RgeO6fl2KkZmQFqW5fdMBCIad31rOhJQAANDQqo,1560
363
366
  mirascope/llm/responses/_utils.py,sha256=0_vuY5qcFD91sF2uCOM1PxJse5vP6pEPedEFqKAabXI,4096
364
367
  mirascope/llm/responses/base_response.py,sha256=Se0tf3hIB8Y7cBvAeLJEctA-w-pdLIHOURBn023m51s,4269
365
- mirascope/llm/responses/base_stream_response.py,sha256=EnkUorTV-i9o8f3RPxJjShss0ngX-MDIB4OZ61VhGdY,33113
368
+ mirascope/llm/responses/base_stream_response.py,sha256=YujpLwk0T0Mi98p7OPlsmuuBKfXyuyEcTpMReQQWB_8,33363
366
369
  mirascope/llm/responses/finish_reason.py,sha256=Az5OY6pfZoOPEpzVnl07AqZPz5ZC-w4YKwpUPbFJGdM,798
367
- mirascope/llm/responses/response.py,sha256=BZ8Bw263DJQFnWZyp0Ky3mVYrG4z7l_bZ88CSlxOw4A,12518
370
+ mirascope/llm/responses/response.py,sha256=sFwHQ8sko-jpJ8L6tRMOgXPHMY7sJ0ww2QcpISUUPFY,12357
368
371
  mirascope/llm/responses/root_response.py,sha256=LXAMDgI29UF8VYv0a76IfZkiQnebpTPFDkgJR8zFdZo,9246
369
- mirascope/llm/responses/stream_response.py,sha256=G3iIM4a6IuRVuW40-CT6y_1TOJkaSoyseIIaYjtpSMs,24094
372
+ mirascope/llm/responses/stream_response.py,sha256=CX9wLZ_80BKJ6M-Ukku4aSbtC5lRgE9evFsxk7-8y54,23933
370
373
  mirascope/llm/responses/streams.py,sha256=TmEFvLVEWHfVYplik61yUWisxe8JGbaZdh7yC7e-axI,10789
371
- mirascope/llm/responses/usage.py,sha256=mm4f9EDBzR57bqPTG2B0iqYnwbyog7csHqo0zjnwWVM,2984
372
- mirascope/llm/tools/__init__.py,sha256=P9NX6pP5fKScTAuR9K3fODdW17wQ-6fcArVx2klGies,961
374
+ mirascope/llm/responses/usage.py,sha256=OvPhe9TpSnxNu2fhH2nCTPDrNTZFtT2_MEhpzVLmw_s,4376
375
+ mirascope/llm/tools/__init__.py,sha256=4Rrnl0GBdZrw3KqACLoDLWqDer32DuU6VKJmN4sjzRo,1515
373
376
  mirascope/llm/tools/_utils.py,sha256=mUi6vUEwYuwu8W9FCQcQ_9h_VE_U-Y3Y2UQ2YptPZL4,1171
374
377
  mirascope/llm/tools/decorator.py,sha256=2ZTvYH0jrft0E3BdQ2BB9Okyb72JOIqQvBkLWmWuo7w,5663
375
378
  mirascope/llm/tools/protocols.py,sha256=pUgGuh4TilRuoipeEHfTzu5cXacMnUpz0Q5YXQyAY2I,3050
376
- mirascope/llm/tools/tool_schema.py,sha256=2wVqbXx2B12dE1u_By9Vlbrjz0R_s8pmE6M1Av4GrAE,10291
377
- mirascope/llm/tools/toolkit.py,sha256=YFBEUWEeFRsujYjhsBvD7Hu3-tlvQP3sihp_c65ZVHE,5284
379
+ mirascope/llm/tools/provider_tools.py,sha256=AvMCMdwIwDZq7mIz4OLcaZcWvoFviYZ2XGlDJaZ9F_k,552
380
+ mirascope/llm/tools/tool_schema.py,sha256=AdpyWxXLCkFlL_gyhEGr7bLOazQI7eVrNe0qJI1ThcA,10483
381
+ mirascope/llm/tools/toolkit.py,sha256=poWFj3pjRB2ABoZK_RroMrSjJMwVmwOsvgBqfW9noM0,6077
378
382
  mirascope/llm/tools/tools.py,sha256=CaSGvjFnj-A8KIpInc7m5VNj7wY-eW25f4fvAZeDwWQ,9844
383
+ mirascope/llm/tools/types.py,sha256=-IW_e2t6f39jg0-sjS5EX3lLlSU1hf984emG1LWrZ7w,3408
384
+ mirascope/llm/tools/web_search_tool.py,sha256=JRFxpC4iiN31dllG0qUrjBeoxwdQqzpjAo8SzqRFRJQ,1116
379
385
  mirascope/llm/types/__init__.py,sha256=lqzi1FkZ-s-D9-KQzVkAHuQQ1zp6B6yM3r9UNo46teE,357
380
386
  mirascope/llm/types/dataclass.py,sha256=y4_9M3Yqw_4I-H0V4TwvgGIp6JvRdtpW11NxqufnsJk,247
381
387
  mirascope/llm/types/jsonable.py,sha256=KY6l21_RBhlHQRXQ_xy6pUqqbTVb_jVFSU4ykRy_OLU,1104
382
388
  mirascope/llm/types/type_vars.py,sha256=OsAcQAZh5T_X8ZTLlP4GC1x3qgVY9rfYSnME8aMTDxw,642
383
- mirascope/ops/__init__.py,sha256=tS2HIXbbKo9VY2LPngNaAtel9aNQblt2Tz3scyYUmyw,2617
389
+ mirascope/ops/__init__.py,sha256=FU7H1RnaZZI5c16vjUQCXLZuxnhPN_qDAHXCBiFMjCw,3141
384
390
  mirascope/ops/exceptions.py,sha256=N5AES285tTxFJ1THIeJht-_ZEQ7-7_FWoes4EBAu3B8,641
385
391
  mirascope/ops/_internal/__init__.py,sha256=yCf8bnHiQFWYsBkwBPyMqknI5apmOwlmyf105mH9EAE,173
386
- mirascope/ops/_internal/closure.py,sha256=lPkZLfL33OZ3yxdZhT3RXqhD0ychKWH0zevU4V-VHCY,42465
392
+ mirascope/ops/_internal/closure.py,sha256=lZuT71ufwHd987BWb7mdk88_d0_eO18fNs9sS16zLss,42727
387
393
  mirascope/ops/_internal/configuration.py,sha256=kWgqLM6XOJ9WK_7y7R3ULQ0UE7r9dgxxMIfg4YRZ0c4,5228
388
394
  mirascope/ops/_internal/context.py,sha256=G0Jiv6XfWjeDyRrh5-Wg6I0UlqiDj17SNMhtQ6Rw3lM,2522
389
395
  mirascope/ops/_internal/propagation.py,sha256=2in7uttv2b5MBoe3Ol1mgn6N20TqhH0sErGak7hMUDY,7032
390
396
  mirascope/ops/_internal/protocols.py,sha256=72K-AIHpDsflo58cig_jO1_xdAwuqZaQBU96G4sGe_I,4229
391
397
  mirascope/ops/_internal/session.py,sha256=-7r2TbJiAKeEQ0YaJ9X_2BlumLK7x6h9wP6f8ei-5GA,4105
392
398
  mirascope/ops/_internal/spans.py,sha256=Mx4x2sSYYIhibcHKr99TTboUdGrSPV09NpftJD5kkBE,7675
393
- mirascope/ops/_internal/traced_calls.py,sha256=nHz2NgG9IHyhDKozKp7m252lDetdSaGn-tYhtZSO9LM,13000
394
- mirascope/ops/_internal/traced_functions.py,sha256=dAMx6BfBs6phc8LgdbsBZFUCN7el-sRMhK6yBYm6zVw,18884
399
+ mirascope/ops/_internal/traced_calls.py,sha256=L0LG1SWW7DNYnvqajPoD1ptPi8IUM9JssYBqHo7rp0E,13577
400
+ mirascope/ops/_internal/traced_functions.py,sha256=lPN8c-lzHY-BxhhbcDpKC7JQtvgnmYMDDpx7M46VP-8,19136
395
401
  mirascope/ops/_internal/tracing.py,sha256=RzHBc-yEbj3Z_Kjobh26FWDSnF6AGbRCsb0JXBSzPdc,10244
396
402
  mirascope/ops/_internal/types.py,sha256=5B1RgChTEbGkLZvdoX8XA2vMKn4bS8BczjGDElxmugI,412
397
- mirascope/ops/_internal/utils.py,sha256=qxr0ysyrBZP7ov9pqAirtDjftprMswwq3szbbVqjabk,4466
403
+ mirascope/ops/_internal/utils.py,sha256=uGGKuAToxUUlkiqcmZIAICCAtmQay_fQ_ciVWF6jcIQ,4907
398
404
  mirascope/ops/_internal/versioned_calls.py,sha256=7oePDEuf98ph6yrHKJmXSagc1mGz5sdTTJgQnB2CyHM,18445
399
- mirascope/ops/_internal/versioned_functions.py,sha256=lX0jgOPdtaajFM8kEkkEBRbGCrLuTo65EApnYCSDo_U,13522
405
+ mirascope/ops/_internal/versioned_functions.py,sha256=g_m-szx6NiBmwxakygNDnJTOyOQN-cVEgsUZZXLFh0w,13528
400
406
  mirascope/ops/_internal/versioning.py,sha256=MxiezWrGUPiLZxZnwwXDFTR7EMrfTHR7rmd14TuDCL8,8286
401
407
  mirascope/ops/_internal/exporters/__init__.py,sha256=3PUd75TczW_8bUImcWgddWyoRmygGf6T_jL7Jo3t_sY,608
402
- mirascope/ops/_internal/exporters/exporters.py,sha256=nRyDXxf0Mgy0D5sni60tdi8Hgfivj2eLO1dWwtaydRI,14932
408
+ mirascope/ops/_internal/exporters/exporters.py,sha256=9RUKKgtKCxrhh-9H0eaYdG_LApmirmvRZjNIlhr3tGA,14043
403
409
  mirascope/ops/_internal/exporters/processors.py,sha256=hkNwA5m0e_KJoPQf_EPUaK6ItZlJ8D5TCBs-JAhGKXo,3511
404
410
  mirascope/ops/_internal/exporters/types.py,sha256=1ge7nwNQ3HUH4qVoYeHhSUp3LxohkvDSoqPw2MDLEqw,4057
405
- mirascope/ops/_internal/exporters/utils.py,sha256=zDZihsj4BxLZH3o2RKCofCvSUf4Nbo8Yro2dqkm0rI4,727
406
- mirascope/ops/_internal/instrumentation/__init__.py,sha256=Fz2WUX_vFvLqHbMxkuVQAGRXyWkk9Oqug8DcA-oa4p8,180
411
+ mirascope/ops/_internal/exporters/utils.py,sha256=1EwxK70bKrB5fkm9y3MnXduSF-NKJqRbBDgqD1T0fnc,2026
412
+ mirascope/ops/_internal/instrumentation/__init__.py,sha256=qB8Fr3GdQ28fpSRUu_G3sk76TJfjyEpztKFbMtHo8Zk,735
407
413
  mirascope/ops/_internal/instrumentation/llm/__init__.py,sha256=_L6JL3sw6XbW9ICsWe4RZpkT-_BFSIBbh_n00O9h_SM,184
408
- mirascope/ops/_internal/instrumentation/llm/common.py,sha256=bb4rHjnQyAs55Cf_qy0OupEuzxvskpOTvRBGEJyByfY,17637
414
+ mirascope/ops/_internal/instrumentation/llm/common.py,sha256=SxOMTIfKXsJaCK7Rbsxpwtm3NAI8C0ZV1Vf-aYyvIIo,16480
409
415
  mirascope/ops/_internal/instrumentation/llm/cost.py,sha256=TcXgJOsBoAePf3quMh1wgbRCNfoznHxhZ-TfYweSi5Y,6725
410
416
  mirascope/ops/_internal/instrumentation/llm/encode.py,sha256=I8hB76_hjPPzmDbiG5S6jzJQJIu2pyWMyT3wJQabx90,8349
411
417
  mirascope/ops/_internal/instrumentation/llm/llm.py,sha256=WUHXdzyhp8xbe_E6-GTFG5LUDHwTJguLjmEtv_RzKvw,5138
412
- mirascope/ops/_internal/instrumentation/llm/model.py,sha256=DX5AgGXtQb0hR9JOcXJJPGXkK4FQrKs_RNg3wayBM3Y,55306
418
+ mirascope/ops/_internal/instrumentation/llm/model.py,sha256=L8wYAP8gSts-Y3gA09nBmBmv-Z5qWHBs6qhZJvY5hsA,53584
413
419
  mirascope/ops/_internal/instrumentation/llm/response.py,sha256=j0sRAE0bk8PYfeU4LQBr5QySXbiVgrOHQc-UDw_kIFI,19362
414
- mirascope/ops/_internal/instrumentation/llm/serialize.py,sha256=EW-VNwg8SX7DvgdChi78xqrjEGXHVOlSmgh0tU_Y4S8,10894
420
+ mirascope/ops/_internal/instrumentation/llm/serialize.py,sha256=fctaKT4XFF2OPC4uL3Kq3IEyXfKHZmxUvfwEzHKOENI,11493
415
421
  mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py,sha256=37jQoprefVlma7K9SJih78TbRqvKyx_PDRNLS31Y_kc,813
416
422
  mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py,sha256=T35Lrskt0OvMu2kF98V2dgVhnQoRy_3ZJ2yTYgyxm48,758
417
423
  mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py,sha256=qxLxSmwd_2EdymR4a5cDXc9DTSFGQXMhqSHGgS219Y4,957
418
424
  mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py,sha256=ZkWNOh6-tG6LtFP_0Hjfdf_8BqAsIFyP3tNybeo1FnY,388
419
425
  mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py,sha256=JpmcF1i25EHc8KMv6nkpBwyIU46B_T8v1L71C16n080,3004
420
- mirascope-2.0.1.dist-info/METADATA,sha256=C9jPBWHGrM_vyZG6XA69yUmOwOz9uDb2UMq_jpC3yvI,9019
421
- mirascope-2.0.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
422
- mirascope-2.0.1.dist-info/licenses/LICENSE,sha256=MxD-HQ4YHSi2YqZ3UH2MsjclZbesds6j5it4O2IWyJs,1072
423
- mirascope-2.0.1.dist-info/RECORD,,
426
+ mirascope/ops/_internal/instrumentation/providers/__init__.py,sha256=rKT_HJ9aIwPKC_OYqEBbHBxjd9RYU4oI2u1dAwn86Pc,665
427
+ mirascope/ops/_internal/instrumentation/providers/anthropic.py,sha256=P3NgIKg9ztr9h1Ngt-MPCL98Co7HioClQX4J4Tbe6gE,2584
428
+ mirascope/ops/_internal/instrumentation/providers/base.py,sha256=7jl37MhcDCfWMWkkUqgdqATv0OQIggk8t9JSlCOlNFo,6072
429
+ mirascope/ops/_internal/instrumentation/providers/google_genai.py,sha256=1QtxjyCrM5vjXEW0TVdpzdYJuHB8YKsqY8EQEWnIn3o,2948
430
+ mirascope/ops/_internal/instrumentation/providers/openai.py,sha256=mVXebcl8bwRvFfOVXfiX4uxo5X_uqIOXgttkifIGCZg,2638
431
+ mirascope-2.1.0.dist-info/METADATA,sha256=NATy9oB5Toj3JgdMEMXLoJ9a8f0aoD3DpCgxQW5fex8,9719
432
+ mirascope-2.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
433
+ mirascope-2.1.0.dist-info/licenses/LICENSE,sha256=MxD-HQ4YHSi2YqZ3UH2MsjclZbesds6j5it4O2IWyJs,1072
434
+ mirascope-2.1.0.dist-info/RECORD,,