Skip to content

Commit 2d53df4

Browse files
feat(api)!: use input_schema instead of parameters for tools
1 parent 95f12eb commit 2d53df4

File tree

10 files changed

+165
-103
lines changed

10 files changed

+165
-103
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 109
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-4337a6181c2db17737133e944b4b660a5e00ea10dce6be3252918e39451e9b5f.yml
3-
openapi_spec_hash: a0bc8f4b5f45bc5741fed8eaa61171c3
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-5f0f0b99d1b0bf40e00e11f5d134ed13de97799cf2dfea0c8612e2f003584505.yml
3+
openapi_spec_hash: 5f51544cb340c37aba54b93a526c536e
44
config_hash: 0412cd40c0609550c1a47c69dd104e4f

src/llama_stack_client/types/response_create_params.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
"InputUnionMember1OpenAIResponseOutputMessageFileSearchToolCallResult",
1616
"InputUnionMember1OpenAIResponseOutputMessageFunctionToolCall",
1717
"InputUnionMember1OpenAIResponseInputFunctionToolCallOutput",
18+
"InputUnionMember1OpenAIResponseMcpApprovalRequest",
19+
"InputUnionMember1OpenAIResponseMcpApprovalResponse",
1820
"InputUnionMember1OpenAIResponseMessage",
1921
"InputUnionMember1OpenAIResponseMessageContentUnionMember1",
2022
"InputUnionMember1OpenAIResponseMessageContentUnionMember1OpenAIResponseInputMessageContentText",
@@ -150,6 +152,30 @@ class InputUnionMember1OpenAIResponseInputFunctionToolCallOutput(TypedDict, tota
150152
status: str
151153

152154

155+
class InputUnionMember1OpenAIResponseMcpApprovalRequest(TypedDict, total=False):
156+
id: Required[str]
157+
158+
arguments: Required[str]
159+
160+
name: Required[str]
161+
162+
server_label: Required[str]
163+
164+
type: Required[Literal["mcp_approval_request"]]
165+
166+
167+
class InputUnionMember1OpenAIResponseMcpApprovalResponse(TypedDict, total=False):
168+
approval_request_id: Required[str]
169+
170+
approve: Required[bool]
171+
172+
type: Required[Literal["mcp_approval_response"]]
173+
174+
id: str
175+
176+
reason: str
177+
178+
153179
class InputUnionMember1OpenAIResponseMessageContentUnionMember1OpenAIResponseInputMessageContentText(
154180
TypedDict, total=False
155181
):
@@ -279,6 +305,8 @@ class InputUnionMember1OpenAIResponseMessage(TypedDict, total=False):
279305
InputUnionMember1OpenAIResponseOutputMessageFileSearchToolCall,
280306
InputUnionMember1OpenAIResponseOutputMessageFunctionToolCall,
281307
InputUnionMember1OpenAIResponseInputFunctionToolCallOutput,
308+
InputUnionMember1OpenAIResponseMcpApprovalRequest,
309+
InputUnionMember1OpenAIResponseMcpApprovalResponse,
282310
InputUnionMember1OpenAIResponseMessage,
283311
]
284312

src/llama_stack_client/types/response_list_response.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
"InputOpenAIResponseOutputMessageFileSearchToolCallResult",
1717
"InputOpenAIResponseOutputMessageFunctionToolCall",
1818
"InputOpenAIResponseInputFunctionToolCallOutput",
19+
"InputOpenAIResponseMcpApprovalRequest",
20+
"InputOpenAIResponseMcpApprovalResponse",
1921
"InputOpenAIResponseMessage",
2022
"InputOpenAIResponseMessageContentUnionMember1",
2123
"InputOpenAIResponseMessageContentUnionMember1OpenAIResponseInputMessageContentText",
@@ -44,6 +46,7 @@
4446
"OutputOpenAIResponseOutputMessageMcpCall",
4547
"OutputOpenAIResponseOutputMessageMcpListTools",
4648
"OutputOpenAIResponseOutputMessageMcpListToolsTool",
49+
"OutputOpenAIResponseMcpApprovalRequest",
4750
"Text",
4851
"TextFormat",
4952
"Error",
@@ -127,6 +130,30 @@ class InputOpenAIResponseInputFunctionToolCallOutput(BaseModel):
127130
status: Optional[str] = None
128131

129132

133+
class InputOpenAIResponseMcpApprovalRequest(BaseModel):
134+
id: str
135+
136+
arguments: str
137+
138+
name: str
139+
140+
server_label: str
141+
142+
type: Literal["mcp_approval_request"]
143+
144+
145+
class InputOpenAIResponseMcpApprovalResponse(BaseModel):
146+
approval_request_id: str
147+
148+
approve: bool
149+
150+
type: Literal["mcp_approval_response"]
151+
152+
id: Optional[str] = None
153+
154+
reason: Optional[str] = None
155+
156+
130157
class InputOpenAIResponseMessageContentUnionMember1OpenAIResponseInputMessageContentText(BaseModel):
131158
text: str
132159
"""The text content of the input message"""
@@ -246,6 +273,8 @@ class InputOpenAIResponseMessage(BaseModel):
246273
InputOpenAIResponseOutputMessageFileSearchToolCall,
247274
InputOpenAIResponseOutputMessageFunctionToolCall,
248275
InputOpenAIResponseInputFunctionToolCallOutput,
276+
InputOpenAIResponseMcpApprovalRequest,
277+
InputOpenAIResponseMcpApprovalResponse,
249278
InputOpenAIResponseMessage,
250279
]
251280

@@ -477,6 +506,18 @@ class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel):
477506
"""Tool call type identifier, always "mcp_list_tools" """
478507

479508

509+
class OutputOpenAIResponseMcpApprovalRequest(BaseModel):
510+
id: str
511+
512+
arguments: str
513+
514+
name: str
515+
516+
server_label: str
517+
518+
type: Literal["mcp_approval_request"]
519+
520+
480521
Output: TypeAlias = Annotated[
481522
Union[
482523
OutputOpenAIResponseMessage,
@@ -485,6 +526,7 @@ class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel):
485526
OutputOpenAIResponseOutputMessageFunctionToolCall,
486527
OutputOpenAIResponseOutputMessageMcpCall,
487528
OutputOpenAIResponseOutputMessageMcpListTools,
529+
OutputOpenAIResponseMcpApprovalRequest,
488530
],
489531
PropertyInfo(discriminator="type"),
490532
]

src/llama_stack_client/types/response_object.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"OutputOpenAIResponseOutputMessageMcpCall",
2929
"OutputOpenAIResponseOutputMessageMcpListTools",
3030
"OutputOpenAIResponseOutputMessageMcpListToolsTool",
31+
"OutputOpenAIResponseMcpApprovalRequest",
3132
"Text",
3233
"TextFormat",
3334
"Error",
@@ -261,6 +262,18 @@ class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel):
261262
"""Tool call type identifier, always "mcp_list_tools" """
262263

263264

265+
class OutputOpenAIResponseMcpApprovalRequest(BaseModel):
266+
id: str
267+
268+
arguments: str
269+
270+
name: str
271+
272+
server_label: str
273+
274+
type: Literal["mcp_approval_request"]
275+
276+
264277
Output: TypeAlias = Annotated[
265278
Union[
266279
OutputOpenAIResponseMessage,
@@ -269,6 +282,7 @@ class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel):
269282
OutputOpenAIResponseOutputMessageFunctionToolCall,
270283
OutputOpenAIResponseOutputMessageMcpCall,
271284
OutputOpenAIResponseOutputMessageMcpListTools,
285+
OutputOpenAIResponseMcpApprovalRequest,
272286
],
273287
PropertyInfo(discriminator="type"),
274288
]

src/llama_stack_client/types/response_object_stream.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpCall",
3030
"OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpListTools",
3131
"OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpListToolsTool",
32+
"OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMcpApprovalRequest",
3233
"OpenAIResponseObjectStreamResponseOutputItemDone",
3334
"OpenAIResponseObjectStreamResponseOutputItemDoneItem",
3435
"OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessage",
@@ -48,6 +49,7 @@
4849
"OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpCall",
4950
"OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpListTools",
5051
"OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpListToolsTool",
52+
"OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMcpApprovalRequest",
5153
"OpenAIResponseObjectStreamResponseOutputTextDelta",
5254
"OpenAIResponseObjectStreamResponseOutputTextDone",
5355
"OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta",
@@ -330,6 +332,18 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM
330332
"""Tool call type identifier, always "mcp_list_tools" """
331333

332334

335+
class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMcpApprovalRequest(BaseModel):
336+
id: str
337+
338+
arguments: str
339+
340+
name: str
341+
342+
server_label: str
343+
344+
type: Literal["mcp_approval_request"]
345+
346+
333347
OpenAIResponseObjectStreamResponseOutputItemAddedItem: TypeAlias = Annotated[
334348
Union[
335349
OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage,
@@ -338,6 +352,7 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM
338352
OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFunctionToolCall,
339353
OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpCall,
340354
OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpListTools,
355+
OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMcpApprovalRequest,
341356
],
342357
PropertyInfo(discriminator="type"),
343358
]
@@ -607,6 +622,18 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe
607622
"""Tool call type identifier, always "mcp_list_tools" """
608623

609624

625+
class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMcpApprovalRequest(BaseModel):
626+
id: str
627+
628+
arguments: str
629+
630+
name: str
631+
632+
server_label: str
633+
634+
type: Literal["mcp_approval_request"]
635+
636+
610637
OpenAIResponseObjectStreamResponseOutputItemDoneItem: TypeAlias = Annotated[
611638
Union[
612639
OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessage,
@@ -615,6 +642,7 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe
615642
OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFunctionToolCall,
616643
OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpCall,
617644
OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpListTools,
645+
OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMcpApprovalRequest,
618646
],
619647
PropertyInfo(discriminator="type"),
620648
]

src/llama_stack_client/types/responses/input_item_list_response.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
"DataOpenAIResponseOutputMessageFileSearchToolCallResult",
1515
"DataOpenAIResponseOutputMessageFunctionToolCall",
1616
"DataOpenAIResponseInputFunctionToolCallOutput",
17+
"DataOpenAIResponseMcpApprovalRequest",
18+
"DataOpenAIResponseMcpApprovalResponse",
1719
"DataOpenAIResponseMessage",
1820
"DataOpenAIResponseMessageContentUnionMember1",
1921
"DataOpenAIResponseMessageContentUnionMember1OpenAIResponseInputMessageContentText",
@@ -104,6 +106,30 @@ class DataOpenAIResponseInputFunctionToolCallOutput(BaseModel):
104106
status: Optional[str] = None
105107

106108

109+
class DataOpenAIResponseMcpApprovalRequest(BaseModel):
110+
id: str
111+
112+
arguments: str
113+
114+
name: str
115+
116+
server_label: str
117+
118+
type: Literal["mcp_approval_request"]
119+
120+
121+
class DataOpenAIResponseMcpApprovalResponse(BaseModel):
122+
approval_request_id: str
123+
124+
approve: bool
125+
126+
type: Literal["mcp_approval_response"]
127+
128+
id: Optional[str] = None
129+
130+
reason: Optional[str] = None
131+
132+
107133
class DataOpenAIResponseMessageContentUnionMember1OpenAIResponseInputMessageContentText(BaseModel):
108134
text: str
109135
"""The text content of the input message"""
@@ -223,6 +249,8 @@ class DataOpenAIResponseMessage(BaseModel):
223249
DataOpenAIResponseOutputMessageFileSearchToolCall,
224250
DataOpenAIResponseOutputMessageFunctionToolCall,
225251
DataOpenAIResponseInputFunctionToolCallOutput,
252+
DataOpenAIResponseMcpApprovalRequest,
253+
DataOpenAIResponseMcpApprovalResponse,
226254
DataOpenAIResponseMessage,
227255
]
228256

src/llama_stack_client/types/tool.py

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,7 @@
55

66
from .._models import BaseModel
77

8-
__all__ = ["Tool", "Parameter"]
9-
10-
11-
class Parameter(BaseModel):
12-
description: str
13-
"""Human-readable description of what the parameter does"""
14-
15-
name: str
16-
"""Name of the parameter"""
17-
18-
parameter_type: str
19-
"""Type of the parameter (e.g., string, integer)"""
20-
21-
required: bool
22-
"""Whether this parameter is required for tool invocation"""
23-
24-
default: Union[bool, float, str, List[object], object, None] = None
25-
"""(Optional) Default value for the parameter if not provided"""
26-
27-
items: Optional[object] = None
28-
"""Type of the elements when parameter_type is array"""
29-
30-
title: Optional[str] = None
31-
"""(Optional) Title of the parameter"""
8+
__all__ = ["Tool"]
329

3310

3411
class Tool(BaseModel):
@@ -37,9 +14,6 @@ class Tool(BaseModel):
3714

3815
identifier: str
3916

40-
parameters: List[Parameter]
41-
"""List of parameters this tool accepts"""
42-
4317
provider_id: str
4418

4519
toolgroup_id: str
@@ -48,7 +22,13 @@ class Tool(BaseModel):
4822
type: Literal["tool"]
4923
"""Type of resource, always 'tool'"""
5024

25+
input_schema: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None
26+
"""JSON Schema for the tool's input parameters"""
27+
5128
metadata: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None
5229
"""(Optional) Additional metadata about the tool"""
5330

31+
output_schema: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None
32+
"""JSON Schema for the tool's output"""
33+
5434
provider_resource_id: Optional[str] = None

src/llama_stack_client/types/tool_def.py

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,7 @@
44

55
from .._models import BaseModel
66

7-
__all__ = ["ToolDef", "Parameter"]
8-
9-
10-
class Parameter(BaseModel):
11-
description: str
12-
"""Human-readable description of what the parameter does"""
13-
14-
name: str
15-
"""Name of the parameter"""
16-
17-
parameter_type: str
18-
"""Type of the parameter (e.g., string, integer)"""
19-
20-
required: bool
21-
"""Whether this parameter is required for tool invocation"""
22-
23-
default: Union[bool, float, str, List[object], object, None] = None
24-
"""(Optional) Default value for the parameter if not provided"""
25-
26-
items: Optional[object] = None
27-
"""Type of the elements when parameter_type is array"""
28-
29-
title: Optional[str] = None
30-
"""(Optional) Title of the parameter"""
7+
__all__ = ["ToolDef"]
318

329

3310
class ToolDef(BaseModel):
@@ -37,8 +14,11 @@ class ToolDef(BaseModel):
3714
description: Optional[str] = None
3815
"""(Optional) Human-readable description of what the tool does"""
3916

17+
input_schema: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None
18+
"""(Optional) JSON Schema for tool inputs (MCP inputSchema)"""
19+
4020
metadata: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None
4121
"""(Optional) Additional metadata about the tool"""
4222

43-
parameters: Optional[List[Parameter]] = None
44-
"""(Optional) List of parameters this tool accepts"""
23+
output_schema: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None
24+
"""(Optional) JSON Schema for tool outputs (MCP outputSchema)"""

0 commit comments

Comments
 (0)