letta-client 1.0.0a11__py3-none-any.whl → 1.0.0a12__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.

Potentially problematic release.


This version of letta-client might be problematic. Click here for more details.

Files changed (36) hide show
  1. letta_client/_client.py +23 -0
  2. letta_client/_streaming.py +4 -6
  3. letta_client/_version.py +1 -1
  4. letta_client/resources/__init__.py +14 -0
  5. letta_client/resources/agents/agents.py +0 -8
  6. letta_client/resources/groups/groups.py +1 -17
  7. letta_client/resources/identities/identities.py +1 -17
  8. letta_client/resources/mcp_servers/__init__.py +47 -0
  9. letta_client/resources/mcp_servers/mcp_servers.py +1165 -0
  10. letta_client/resources/mcp_servers/refresh.py +192 -0
  11. letta_client/resources/mcp_servers/tools.py +351 -0
  12. letta_client/resources/steps/steps.py +1 -9
  13. letta_client/resources/tools.py +4 -4
  14. letta_client/types/__init__.py +6 -0
  15. letta_client/types/agent_create_params.py +1 -5
  16. letta_client/types/group_create_params.py +1 -5
  17. letta_client/types/group_modify_params.py +1 -5
  18. letta_client/types/identity_create_params.py +1 -5
  19. letta_client/types/identity_upsert_params.py +1 -5
  20. letta_client/types/mcp_server_create_params.py +67 -0
  21. letta_client/types/mcp_server_create_response.py +74 -0
  22. letta_client/types/mcp_server_list_response.py +86 -0
  23. letta_client/types/mcp_server_modify_params.py +76 -0
  24. letta_client/types/mcp_server_modify_response.py +74 -0
  25. letta_client/types/mcp_server_retrieve_response.py +74 -0
  26. letta_client/types/mcp_servers/__init__.py +8 -0
  27. letta_client/types/mcp_servers/refresh_trigger_params.py +12 -0
  28. letta_client/types/mcp_servers/tool_list_response.py +10 -0
  29. letta_client/types/mcp_servers/tool_run_params.py +15 -0
  30. letta_client/types/mcp_servers/tool_run_response.py +43 -0
  31. letta_client/types/step_list_params.py +1 -5
  32. letta_client/types/tool.py +4 -4
  33. {letta_client-1.0.0a11.dist-info → letta_client-1.0.0a12.dist-info}/METADATA +1 -1
  34. {letta_client-1.0.0a11.dist-info → letta_client-1.0.0a12.dist-info}/RECORD +36 -21
  35. {letta_client-1.0.0a11.dist-info → letta_client-1.0.0a12.dist-info}/WHEEL +0 -0
  36. {letta_client-1.0.0a11.dist-info → letta_client-1.0.0a12.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,192 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+
7
+ import httpx
8
+
9
+ from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
10
+ from ..._utils import maybe_transform, async_maybe_transform
11
+ from ..._compat import cached_property
12
+ from ..._resource import SyncAPIResource, AsyncAPIResource
13
+ from ..._response import (
14
+ to_raw_response_wrapper,
15
+ to_streamed_response_wrapper,
16
+ async_to_raw_response_wrapper,
17
+ async_to_streamed_response_wrapper,
18
+ )
19
+ from ..._base_client import make_request_options
20
+ from ...types.mcp_servers import refresh_trigger_params
21
+
22
+ __all__ = ["RefreshResource", "AsyncRefreshResource"]
23
+
24
+
25
+ class RefreshResource(SyncAPIResource):
26
+ @cached_property
27
+ def with_raw_response(self) -> RefreshResourceWithRawResponse:
28
+ """
29
+ This property can be used as a prefix for any HTTP method call to return
30
+ the raw response object instead of the parsed content.
31
+
32
+ For more information, see https://www.github.com/letta-ai/letta-python#accessing-raw-response-data-eg-headers
33
+ """
34
+ return RefreshResourceWithRawResponse(self)
35
+
36
+ @cached_property
37
+ def with_streaming_response(self) -> RefreshResourceWithStreamingResponse:
38
+ """
39
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
40
+
41
+ For more information, see https://www.github.com/letta-ai/letta-python#with_streaming_response
42
+ """
43
+ return RefreshResourceWithStreamingResponse(self)
44
+
45
+ def trigger(
46
+ self,
47
+ mcp_server_id: str,
48
+ *,
49
+ agent_id: Optional[str] | Omit = omit,
50
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
51
+ # The extra values given here take precedence over values defined on the client or passed to this method.
52
+ extra_headers: Headers | None = None,
53
+ extra_query: Query | None = None,
54
+ extra_body: Body | None = None,
55
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
56
+ ) -> object:
57
+ """Refresh tools for an MCP server by:
58
+
59
+ 1.
60
+
61
+ Fetching current tools from the MCP server
62
+ 2. Deleting tools that no longer exist on the server
63
+ 3. Updating schemas for existing tools
64
+ 4. Adding new tools from the server
65
+
66
+ Returns a summary of changes made.
67
+
68
+ Args:
69
+ extra_headers: Send extra headers
70
+
71
+ extra_query: Add additional query parameters to the request
72
+
73
+ extra_body: Add additional JSON properties to the request
74
+
75
+ timeout: Override the client-level default timeout for this request, in seconds
76
+ """
77
+ if not mcp_server_id:
78
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
79
+ return self._patch(
80
+ f"/v1/mcp-servers/{mcp_server_id}/refresh",
81
+ options=make_request_options(
82
+ extra_headers=extra_headers,
83
+ extra_query=extra_query,
84
+ extra_body=extra_body,
85
+ timeout=timeout,
86
+ query=maybe_transform({"agent_id": agent_id}, refresh_trigger_params.RefreshTriggerParams),
87
+ ),
88
+ cast_to=object,
89
+ )
90
+
91
+
92
+ class AsyncRefreshResource(AsyncAPIResource):
93
+ @cached_property
94
+ def with_raw_response(self) -> AsyncRefreshResourceWithRawResponse:
95
+ """
96
+ This property can be used as a prefix for any HTTP method call to return
97
+ the raw response object instead of the parsed content.
98
+
99
+ For more information, see https://www.github.com/letta-ai/letta-python#accessing-raw-response-data-eg-headers
100
+ """
101
+ return AsyncRefreshResourceWithRawResponse(self)
102
+
103
+ @cached_property
104
+ def with_streaming_response(self) -> AsyncRefreshResourceWithStreamingResponse:
105
+ """
106
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
107
+
108
+ For more information, see https://www.github.com/letta-ai/letta-python#with_streaming_response
109
+ """
110
+ return AsyncRefreshResourceWithStreamingResponse(self)
111
+
112
+ async def trigger(
113
+ self,
114
+ mcp_server_id: str,
115
+ *,
116
+ agent_id: Optional[str] | Omit = omit,
117
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
118
+ # The extra values given here take precedence over values defined on the client or passed to this method.
119
+ extra_headers: Headers | None = None,
120
+ extra_query: Query | None = None,
121
+ extra_body: Body | None = None,
122
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
123
+ ) -> object:
124
+ """Refresh tools for an MCP server by:
125
+
126
+ 1.
127
+
128
+ Fetching current tools from the MCP server
129
+ 2. Deleting tools that no longer exist on the server
130
+ 3. Updating schemas for existing tools
131
+ 4. Adding new tools from the server
132
+
133
+ Returns a summary of changes made.
134
+
135
+ Args:
136
+ extra_headers: Send extra headers
137
+
138
+ extra_query: Add additional query parameters to the request
139
+
140
+ extra_body: Add additional JSON properties to the request
141
+
142
+ timeout: Override the client-level default timeout for this request, in seconds
143
+ """
144
+ if not mcp_server_id:
145
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
146
+ return await self._patch(
147
+ f"/v1/mcp-servers/{mcp_server_id}/refresh",
148
+ options=make_request_options(
149
+ extra_headers=extra_headers,
150
+ extra_query=extra_query,
151
+ extra_body=extra_body,
152
+ timeout=timeout,
153
+ query=await async_maybe_transform({"agent_id": agent_id}, refresh_trigger_params.RefreshTriggerParams),
154
+ ),
155
+ cast_to=object,
156
+ )
157
+
158
+
159
+ class RefreshResourceWithRawResponse:
160
+ def __init__(self, refresh: RefreshResource) -> None:
161
+ self._refresh = refresh
162
+
163
+ self.trigger = to_raw_response_wrapper(
164
+ refresh.trigger,
165
+ )
166
+
167
+
168
+ class AsyncRefreshResourceWithRawResponse:
169
+ def __init__(self, refresh: AsyncRefreshResource) -> None:
170
+ self._refresh = refresh
171
+
172
+ self.trigger = async_to_raw_response_wrapper(
173
+ refresh.trigger,
174
+ )
175
+
176
+
177
+ class RefreshResourceWithStreamingResponse:
178
+ def __init__(self, refresh: RefreshResource) -> None:
179
+ self._refresh = refresh
180
+
181
+ self.trigger = to_streamed_response_wrapper(
182
+ refresh.trigger,
183
+ )
184
+
185
+
186
+ class AsyncRefreshResourceWithStreamingResponse:
187
+ def __init__(self, refresh: AsyncRefreshResource) -> None:
188
+ self._refresh = refresh
189
+
190
+ self.trigger = async_to_streamed_response_wrapper(
191
+ refresh.trigger,
192
+ )
@@ -0,0 +1,351 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict
6
+
7
+ import httpx
8
+
9
+ from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
10
+ from ..._utils import maybe_transform, async_maybe_transform
11
+ from ..._compat import cached_property
12
+ from ..._resource import SyncAPIResource, AsyncAPIResource
13
+ from ..._response import (
14
+ to_raw_response_wrapper,
15
+ to_streamed_response_wrapper,
16
+ async_to_raw_response_wrapper,
17
+ async_to_streamed_response_wrapper,
18
+ )
19
+ from ...types.tool import Tool
20
+ from ..._base_client import make_request_options
21
+ from ...types.mcp_servers import tool_run_params
22
+ from ...types.mcp_servers.tool_run_response import ToolRunResponse
23
+ from ...types.mcp_servers.tool_list_response import ToolListResponse
24
+
25
+ __all__ = ["ToolsResource", "AsyncToolsResource"]
26
+
27
+
28
+ class ToolsResource(SyncAPIResource):
29
+ @cached_property
30
+ def with_raw_response(self) -> ToolsResourceWithRawResponse:
31
+ """
32
+ This property can be used as a prefix for any HTTP method call to return
33
+ the raw response object instead of the parsed content.
34
+
35
+ For more information, see https://www.github.com/letta-ai/letta-python#accessing-raw-response-data-eg-headers
36
+ """
37
+ return ToolsResourceWithRawResponse(self)
38
+
39
+ @cached_property
40
+ def with_streaming_response(self) -> ToolsResourceWithStreamingResponse:
41
+ """
42
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
43
+
44
+ For more information, see https://www.github.com/letta-ai/letta-python#with_streaming_response
45
+ """
46
+ return ToolsResourceWithStreamingResponse(self)
47
+
48
+ def retrieve(
49
+ self,
50
+ tool_id: str,
51
+ *,
52
+ mcp_server_id: str,
53
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
54
+ # The extra values given here take precedence over values defined on the client or passed to this method.
55
+ extra_headers: Headers | None = None,
56
+ extra_query: Query | None = None,
57
+ extra_body: Body | None = None,
58
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
59
+ ) -> Tool:
60
+ """
61
+ Get a specific MCP tool by its ID
62
+
63
+ Args:
64
+ extra_headers: Send extra headers
65
+
66
+ extra_query: Add additional query parameters to the request
67
+
68
+ extra_body: Add additional JSON properties to the request
69
+
70
+ timeout: Override the client-level default timeout for this request, in seconds
71
+ """
72
+ if not mcp_server_id:
73
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
74
+ if not tool_id:
75
+ raise ValueError(f"Expected a non-empty value for `tool_id` but received {tool_id!r}")
76
+ return self._get(
77
+ f"/v1/mcp-servers/{mcp_server_id}/tools/{tool_id}",
78
+ options=make_request_options(
79
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
80
+ ),
81
+ cast_to=Tool,
82
+ )
83
+
84
+ def list(
85
+ self,
86
+ mcp_server_id: str,
87
+ *,
88
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
89
+ # The extra values given here take precedence over values defined on the client or passed to this method.
90
+ extra_headers: Headers | None = None,
91
+ extra_query: Query | None = None,
92
+ extra_body: Body | None = None,
93
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
94
+ ) -> ToolListResponse:
95
+ """
96
+ Get a list of all tools for a specific MCP server
97
+
98
+ Args:
99
+ extra_headers: Send extra headers
100
+
101
+ extra_query: Add additional query parameters to the request
102
+
103
+ extra_body: Add additional JSON properties to the request
104
+
105
+ timeout: Override the client-level default timeout for this request, in seconds
106
+ """
107
+ if not mcp_server_id:
108
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
109
+ return self._get(
110
+ f"/v1/mcp-servers/{mcp_server_id}/tools",
111
+ options=make_request_options(
112
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
113
+ ),
114
+ cast_to=ToolListResponse,
115
+ )
116
+
117
+ def run(
118
+ self,
119
+ tool_id: str,
120
+ *,
121
+ mcp_server_id: str,
122
+ args: Dict[str, object] | Omit = omit,
123
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
124
+ # The extra values given here take precedence over values defined on the client or passed to this method.
125
+ extra_headers: Headers | None = None,
126
+ extra_query: Query | None = None,
127
+ extra_body: Body | None = None,
128
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
129
+ ) -> ToolRunResponse:
130
+ """
131
+ Execute a specific MCP tool
132
+
133
+ The request body should contain the tool arguments in the MCPToolExecuteRequest
134
+ format.
135
+
136
+ Args:
137
+ args: Arguments to pass to the MCP tool
138
+
139
+ extra_headers: Send extra headers
140
+
141
+ extra_query: Add additional query parameters to the request
142
+
143
+ extra_body: Add additional JSON properties to the request
144
+
145
+ timeout: Override the client-level default timeout for this request, in seconds
146
+ """
147
+ if not mcp_server_id:
148
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
149
+ if not tool_id:
150
+ raise ValueError(f"Expected a non-empty value for `tool_id` but received {tool_id!r}")
151
+ return self._post(
152
+ f"/v1/mcp-servers/{mcp_server_id}/tools/{tool_id}/run",
153
+ body=maybe_transform({"args": args}, tool_run_params.ToolRunParams),
154
+ options=make_request_options(
155
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
156
+ ),
157
+ cast_to=ToolRunResponse,
158
+ )
159
+
160
+
161
+ class AsyncToolsResource(AsyncAPIResource):
162
+ @cached_property
163
+ def with_raw_response(self) -> AsyncToolsResourceWithRawResponse:
164
+ """
165
+ This property can be used as a prefix for any HTTP method call to return
166
+ the raw response object instead of the parsed content.
167
+
168
+ For more information, see https://www.github.com/letta-ai/letta-python#accessing-raw-response-data-eg-headers
169
+ """
170
+ return AsyncToolsResourceWithRawResponse(self)
171
+
172
+ @cached_property
173
+ def with_streaming_response(self) -> AsyncToolsResourceWithStreamingResponse:
174
+ """
175
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
176
+
177
+ For more information, see https://www.github.com/letta-ai/letta-python#with_streaming_response
178
+ """
179
+ return AsyncToolsResourceWithStreamingResponse(self)
180
+
181
+ async def retrieve(
182
+ self,
183
+ tool_id: str,
184
+ *,
185
+ mcp_server_id: str,
186
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
187
+ # The extra values given here take precedence over values defined on the client or passed to this method.
188
+ extra_headers: Headers | None = None,
189
+ extra_query: Query | None = None,
190
+ extra_body: Body | None = None,
191
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
192
+ ) -> Tool:
193
+ """
194
+ Get a specific MCP tool by its ID
195
+
196
+ Args:
197
+ extra_headers: Send extra headers
198
+
199
+ extra_query: Add additional query parameters to the request
200
+
201
+ extra_body: Add additional JSON properties to the request
202
+
203
+ timeout: Override the client-level default timeout for this request, in seconds
204
+ """
205
+ if not mcp_server_id:
206
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
207
+ if not tool_id:
208
+ raise ValueError(f"Expected a non-empty value for `tool_id` but received {tool_id!r}")
209
+ return await self._get(
210
+ f"/v1/mcp-servers/{mcp_server_id}/tools/{tool_id}",
211
+ options=make_request_options(
212
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
213
+ ),
214
+ cast_to=Tool,
215
+ )
216
+
217
+ async def list(
218
+ self,
219
+ mcp_server_id: str,
220
+ *,
221
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
222
+ # The extra values given here take precedence over values defined on the client or passed to this method.
223
+ extra_headers: Headers | None = None,
224
+ extra_query: Query | None = None,
225
+ extra_body: Body | None = None,
226
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
227
+ ) -> ToolListResponse:
228
+ """
229
+ Get a list of all tools for a specific MCP server
230
+
231
+ Args:
232
+ extra_headers: Send extra headers
233
+
234
+ extra_query: Add additional query parameters to the request
235
+
236
+ extra_body: Add additional JSON properties to the request
237
+
238
+ timeout: Override the client-level default timeout for this request, in seconds
239
+ """
240
+ if not mcp_server_id:
241
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
242
+ return await self._get(
243
+ f"/v1/mcp-servers/{mcp_server_id}/tools",
244
+ options=make_request_options(
245
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
246
+ ),
247
+ cast_to=ToolListResponse,
248
+ )
249
+
250
+ async def run(
251
+ self,
252
+ tool_id: str,
253
+ *,
254
+ mcp_server_id: str,
255
+ args: Dict[str, object] | Omit = omit,
256
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
257
+ # The extra values given here take precedence over values defined on the client or passed to this method.
258
+ extra_headers: Headers | None = None,
259
+ extra_query: Query | None = None,
260
+ extra_body: Body | None = None,
261
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
262
+ ) -> ToolRunResponse:
263
+ """
264
+ Execute a specific MCP tool
265
+
266
+ The request body should contain the tool arguments in the MCPToolExecuteRequest
267
+ format.
268
+
269
+ Args:
270
+ args: Arguments to pass to the MCP tool
271
+
272
+ extra_headers: Send extra headers
273
+
274
+ extra_query: Add additional query parameters to the request
275
+
276
+ extra_body: Add additional JSON properties to the request
277
+
278
+ timeout: Override the client-level default timeout for this request, in seconds
279
+ """
280
+ if not mcp_server_id:
281
+ raise ValueError(f"Expected a non-empty value for `mcp_server_id` but received {mcp_server_id!r}")
282
+ if not tool_id:
283
+ raise ValueError(f"Expected a non-empty value for `tool_id` but received {tool_id!r}")
284
+ return await self._post(
285
+ f"/v1/mcp-servers/{mcp_server_id}/tools/{tool_id}/run",
286
+ body=await async_maybe_transform({"args": args}, tool_run_params.ToolRunParams),
287
+ options=make_request_options(
288
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
289
+ ),
290
+ cast_to=ToolRunResponse,
291
+ )
292
+
293
+
294
+ class ToolsResourceWithRawResponse:
295
+ def __init__(self, tools: ToolsResource) -> None:
296
+ self._tools = tools
297
+
298
+ self.retrieve = to_raw_response_wrapper(
299
+ tools.retrieve,
300
+ )
301
+ self.list = to_raw_response_wrapper(
302
+ tools.list,
303
+ )
304
+ self.run = to_raw_response_wrapper(
305
+ tools.run,
306
+ )
307
+
308
+
309
+ class AsyncToolsResourceWithRawResponse:
310
+ def __init__(self, tools: AsyncToolsResource) -> None:
311
+ self._tools = tools
312
+
313
+ self.retrieve = async_to_raw_response_wrapper(
314
+ tools.retrieve,
315
+ )
316
+ self.list = async_to_raw_response_wrapper(
317
+ tools.list,
318
+ )
319
+ self.run = async_to_raw_response_wrapper(
320
+ tools.run,
321
+ )
322
+
323
+
324
+ class ToolsResourceWithStreamingResponse:
325
+ def __init__(self, tools: ToolsResource) -> None:
326
+ self._tools = tools
327
+
328
+ self.retrieve = to_streamed_response_wrapper(
329
+ tools.retrieve,
330
+ )
331
+ self.list = to_streamed_response_wrapper(
332
+ tools.list,
333
+ )
334
+ self.run = to_streamed_response_wrapper(
335
+ tools.run,
336
+ )
337
+
338
+
339
+ class AsyncToolsResourceWithStreamingResponse:
340
+ def __init__(self, tools: AsyncToolsResource) -> None:
341
+ self._tools = tools
342
+
343
+ self.retrieve = async_to_streamed_response_wrapper(
344
+ tools.retrieve,
345
+ )
346
+ self.list = async_to_streamed_response_wrapper(
347
+ tools.list,
348
+ )
349
+ self.run = async_to_streamed_response_wrapper(
350
+ tools.run,
351
+ )
@@ -25,7 +25,7 @@ from .metrics import (
25
25
  AsyncMetricsResourceWithStreamingResponse,
26
26
  )
27
27
  from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
28
- from ..._utils import maybe_transform, strip_not_given
28
+ from ..._utils import maybe_transform
29
29
  from .feedback import (
30
30
  FeedbackResource,
31
31
  AsyncFeedbackResource,
@@ -145,7 +145,6 @@ class StepsResource(SyncAPIResource):
145
145
  start_date: Optional[str] | Omit = omit,
146
146
  tags: Optional[SequenceNotStr[str]] | Omit = omit,
147
147
  trace_ids: Optional[SequenceNotStr[str]] | Omit = omit,
148
- x_project: str | Omit = omit,
149
148
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
150
149
  # The extra values given here take precedence over values defined on the client or passed to this method.
151
150
  extra_headers: Headers | None = None,
@@ -186,8 +185,6 @@ class StepsResource(SyncAPIResource):
186
185
 
187
186
  trace_ids: Filter by trace ids returned by the server
188
187
 
189
- x_project: Filter by project slug to associate with the group (cloud only).
190
-
191
188
  extra_headers: Send extra headers
192
189
 
193
190
  extra_query: Add additional query parameters to the request
@@ -196,7 +193,6 @@ class StepsResource(SyncAPIResource):
196
193
 
197
194
  timeout: Override the client-level default timeout for this request, in seconds
198
195
  """
199
- extra_headers = {**strip_not_given({"X-Project": x_project}), **(extra_headers or {})}
200
196
  return self._get_api_list(
201
197
  "/v1/steps/",
202
198
  page=SyncArrayPage[Step],
@@ -317,7 +313,6 @@ class AsyncStepsResource(AsyncAPIResource):
317
313
  start_date: Optional[str] | Omit = omit,
318
314
  tags: Optional[SequenceNotStr[str]] | Omit = omit,
319
315
  trace_ids: Optional[SequenceNotStr[str]] | Omit = omit,
320
- x_project: str | Omit = omit,
321
316
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
322
317
  # The extra values given here take precedence over values defined on the client or passed to this method.
323
318
  extra_headers: Headers | None = None,
@@ -358,8 +353,6 @@ class AsyncStepsResource(AsyncAPIResource):
358
353
 
359
354
  trace_ids: Filter by trace ids returned by the server
360
355
 
361
- x_project: Filter by project slug to associate with the group (cloud only).
362
-
363
356
  extra_headers: Send extra headers
364
357
 
365
358
  extra_query: Add additional query parameters to the request
@@ -368,7 +361,6 @@ class AsyncStepsResource(AsyncAPIResource):
368
361
 
369
362
  timeout: Override the client-level default timeout for this request, in seconds
370
363
  """
371
- extra_headers = {**strip_not_given({"X-Project": x_project}), **(extra_headers or {})}
372
364
  return self._get_api_list(
373
365
  "/v1/steps/",
374
366
  page=AsyncArrayPage[Step],
@@ -2,10 +2,14 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import typing
6
+ import inspect
5
7
  from typing import Dict, Iterable, Optional
8
+ from textwrap import dedent
6
9
  from typing_extensions import Literal
7
10
 
8
11
  import httpx
12
+ from pydantic import BaseModel
9
13
 
10
14
  from ..types import tool_list_params, tool_count_params, tool_create_params, tool_modify_params, tool_upsert_params
11
15
  from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
@@ -25,10 +29,6 @@ from ..types.tool_count_response import ToolCountResponse
25
29
  from ..types.npm_requirement_param import NpmRequirementParam
26
30
  from ..types.pip_requirement_param import PipRequirementParam
27
31
  from ..types.tool_upsert_base_tools_response import ToolUpsertBaseToolsResponse
28
- import typing
29
- from pydantic import BaseModel
30
- from textwrap import dedent
31
- import inspect
32
32
 
33
33
  __all__ = ["ToolsResource", "AsyncToolsResource"]
34
34
 
@@ -94,18 +94,24 @@ from .sleeptime_manager_param import SleeptimeManagerParam as SleeptimeManagerPa
94
94
  from .agent_export_file_params import AgentExportFileParams as AgentExportFileParams
95
95
  from .agent_import_file_params import AgentImportFileParams as AgentImportFileParams
96
96
  from .continue_tool_rule_param import ContinueToolRuleParam as ContinueToolRuleParam
97
+ from .mcp_server_create_params import McpServerCreateParams as McpServerCreateParams
98
+ from .mcp_server_list_response import McpServerListResponse as McpServerListResponse
99
+ from .mcp_server_modify_params import McpServerModifyParams as McpServerModifyParams
97
100
  from .supervisor_manager_param import SupervisorManagerParam as SupervisorManagerParam
98
101
  from .terminal_tool_rule_param import TerminalToolRuleParam as TerminalToolRuleParam
99
102
  from .round_robin_manager_param import RoundRobinManagerParam as RoundRobinManagerParam
100
103
  from .agent_environment_variable import AgentEnvironmentVariable as AgentEnvironmentVariable
101
104
  from .agent_export_file_response import AgentExportFileResponse as AgentExportFileResponse
102
105
  from .agent_import_file_response import AgentImportFileResponse as AgentImportFileResponse
106
+ from .mcp_server_create_response import McpServerCreateResponse as McpServerCreateResponse
107
+ from .mcp_server_modify_response import McpServerModifyResponse as McpServerModifyResponse
103
108
  from .text_response_format_param import TextResponseFormatParam as TextResponseFormatParam
104
109
  from .conditional_tool_rule_param import ConditionalToolRuleParam as ConditionalToolRuleParam
105
110
  from .json_object_response_format import JsonObjectResponseFormat as JsonObjectResponseFormat
106
111
  from .json_schema_response_format import JsonSchemaResponseFormat as JsonSchemaResponseFormat
107
112
  from .requires_approval_tool_rule import RequiresApprovalToolRule as RequiresApprovalToolRule
108
113
  from .max_count_per_step_tool_rule import MaxCountPerStepToolRule as MaxCountPerStepToolRule
114
+ from .mcp_server_retrieve_response import McpServerRetrieveResponse as McpServerRetrieveResponse
109
115
  from .voice_sleeptime_manager_param import VoiceSleeptimeManagerParam as VoiceSleeptimeManagerParam
110
116
  from .required_before_exit_tool_rule import RequiredBeforeExitToolRule as RequiredBeforeExitToolRule
111
117
  from .tool_upsert_base_tools_response import ToolUpsertBaseToolsResponse as ToolUpsertBaseToolsResponse
@@ -3,10 +3,9 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Dict, Union, Iterable, Optional
6
- from typing_extensions import Annotated, TypeAlias, TypedDict
6
+ from typing_extensions import TypeAlias, TypedDict
7
7
 
8
8
  from .._types import SequenceNotStr
9
- from .._utils import PropertyInfo
10
9
  from .agent_type import AgentType
11
10
  from .llm_config_param import LlmConfigParam
12
11
  from .create_block_param import CreateBlockParam
@@ -199,9 +198,6 @@ class AgentCreateParams(TypedDict, total=False):
199
198
  tools: Optional[SequenceNotStr[str]]
200
199
  """The tools used by the agent."""
201
200
 
202
- x_project: Annotated[str, PropertyInfo(alias="X-Project")]
203
- """The project slug to associate with the agent (cloud only)."""
204
-
205
201
 
206
202
  ResponseFormat: TypeAlias = Union[TextResponseFormatParam, JsonSchemaResponseFormatParam, JsonObjectResponseFormatParam]
207
203