Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
317 changes: 216 additions & 101 deletions src/llama_stack_client/_client.py

Large diffs are not rendered by default.

12 changes: 5 additions & 7 deletions src/llama_stack_client/resources/tool_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
)
from .._base_client import make_request_options
from ..types.tool_def import ToolDef
from ..types.shared_params.url import URL
from ..types.mcp_config_param import McpConfigParam
from ..types.tool_invocation_result import ToolInvocationResult

__all__ = ["ToolRuntimeResource", "AsyncToolRuntimeResource"]
Expand Down Expand Up @@ -103,7 +103,7 @@ def list_tools(
self,
*,
tool_group_id: str | NotGiven = NOT_GIVEN,
mcp_endpoint: URL | NotGiven = NOT_GIVEN,
mcp_config: McpConfigParam | NotGiven = NOT_GIVEN,
x_llama_stack_client_version: str | NotGiven = NOT_GIVEN,
x_llama_stack_provider_data: str | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -135,9 +135,7 @@ def list_tools(
}
return self._post(
"/alpha/tool-runtime/list-tools",
body=maybe_transform(
{"mcp_endpoint": mcp_endpoint}, tool_runtime_list_tools_params.ToolRuntimeListToolsParams
),
body=maybe_transform({"mcp_config": mcp_config}, tool_runtime_list_tools_params.ToolRuntimeListToolsParams),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -225,7 +223,7 @@ async def list_tools(
self,
*,
tool_group_id: str | NotGiven = NOT_GIVEN,
mcp_endpoint: URL | NotGiven = NOT_GIVEN,
mcp_config: McpConfigParam | NotGiven = NOT_GIVEN,
x_llama_stack_client_version: str | NotGiven = NOT_GIVEN,
x_llama_stack_provider_data: str | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -258,7 +256,7 @@ async def list_tools(
return await self._post(
"/alpha/tool-runtime/list-tools",
body=await async_maybe_transform(
{"mcp_endpoint": mcp_endpoint}, tool_runtime_list_tools_params.ToolRuntimeListToolsParams
{"mcp_config": mcp_config}, tool_runtime_list_tools_params.ToolRuntimeListToolsParams
),
options=make_request_options(
extra_headers=extra_headers,
Expand Down
16 changes: 10 additions & 6 deletions src/llama_stack_client/resources/toolgroups.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@

import httpx

from ..types import toolgroup_get_params, toolgroup_register_params, toolgroup_unregister_params
from ..types import (
toolgroup_get_params,
toolgroup_register_params,
toolgroup_unregister_params,
)
from .._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
from .._utils import (
maybe_transform,
Expand All @@ -23,7 +27,7 @@
)
from .._base_client import make_request_options
from ..types.tool_group import ToolGroup
from ..types.shared_params.url import URL
from ..types.mcp_config_param import McpConfigParam

__all__ = ["ToolgroupsResource", "AsyncToolgroupsResource"]

Expand Down Expand Up @@ -140,7 +144,7 @@ def register(
provider_id: str,
toolgroup_id: str,
args: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | NotGiven = NOT_GIVEN,
mcp_endpoint: URL | NotGiven = NOT_GIVEN,
mcp_config: McpConfigParam | NotGiven = NOT_GIVEN,
x_llama_stack_client_version: str | NotGiven = NOT_GIVEN,
x_llama_stack_provider_data: str | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -179,7 +183,7 @@ def register(
"provider_id": provider_id,
"toolgroup_id": toolgroup_id,
"args": args,
"mcp_endpoint": mcp_endpoint,
"mcp_config": mcp_config,
},
toolgroup_register_params.ToolgroupRegisterParams,
),
Expand Down Expand Up @@ -350,7 +354,7 @@ async def register(
provider_id: str,
toolgroup_id: str,
args: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | NotGiven = NOT_GIVEN,
mcp_endpoint: URL | NotGiven = NOT_GIVEN,
mcp_config: McpConfigParam | NotGiven = NOT_GIVEN,
x_llama_stack_client_version: str | NotGiven = NOT_GIVEN,
x_llama_stack_provider_data: str | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -389,7 +393,7 @@ async def register(
"provider_id": provider_id,
"toolgroup_id": toolgroup_id,
"args": args,
"mcp_endpoint": mcp_endpoint,
"mcp_config": mcp_config,
},
toolgroup_register_params.ToolgroupRegisterParams,
),
Expand Down
2 changes: 2 additions & 0 deletions src/llama_stack_client/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from .shield import Shield as Shield
from .tool_def import ToolDef as ToolDef
from .eval_task import EvalTask as EvalTask
from .mcp_config import McpConfig as McpConfig
from .route_info import RouteInfo as RouteInfo
from .scoring_fn import ScoringFn as ScoringFn
from .tool_group import ToolGroup as ToolGroup
Expand All @@ -37,6 +38,7 @@
from .tool_def_param import ToolDefParam as ToolDefParam
from .token_log_probs import TokenLogProbs as TokenLogProbs
from .tool_get_params import ToolGetParams as ToolGetParams
from .mcp_config_param import McpConfigParam as McpConfigParam
from .shield_call_step import ShieldCallStep as ShieldCallStep
from .span_with_status import SpanWithStatus as SpanWithStatus
from .tool_list_params import ToolListParams as ToolListParams
Expand Down
28 changes: 28 additions & 0 deletions src/llama_stack_client/types/mcp_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Dict, List, Union, Optional
from typing_extensions import Literal, TypeAlias

from .._models import BaseModel
from .shared.url import URL

__all__ = ["McpConfig", "McpInlineConfig", "McpRemoteConfig"]


class McpInlineConfig(BaseModel):
command: str

type: Literal["inline"]

args: Optional[List[str]] = None

env: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None


class McpRemoteConfig(BaseModel):
mcp_endpoint: URL

type: Literal["remote"]


McpConfig: TypeAlias = Union[McpInlineConfig, McpRemoteConfig]
29 changes: 29 additions & 0 deletions src/llama_stack_client/types/mcp_config_param.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Dict, List, Union, Iterable
from typing_extensions import Literal, Required, TypeAlias, TypedDict

from .shared_params.url import URL

__all__ = ["McpConfigParam", "McpInlineConfig", "McpRemoteConfig"]


class McpInlineConfig(TypedDict, total=False):
command: Required[str]

type: Required[Literal["inline"]]

args: List[str]

env: Dict[str, Union[bool, float, str, Iterable[object], object, None]]


class McpRemoteConfig(TypedDict, total=False):
mcp_endpoint: Required[URL]

type: Required[Literal["remote"]]


McpConfigParam: TypeAlias = Union[McpInlineConfig, McpRemoteConfig]
4 changes: 2 additions & 2 deletions src/llama_stack_client/types/tool_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from typing_extensions import Literal

from .._models import BaseModel
from .shared.url import URL
from .mcp_config import McpConfig

__all__ = ["ToolGroup"]

Expand All @@ -20,4 +20,4 @@ class ToolGroup(BaseModel):

args: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None

mcp_endpoint: Optional[URL] = None
mcp_config: Optional[McpConfig] = None
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
from typing_extensions import Annotated, TypedDict

from .._utils import PropertyInfo
from .shared_params.url import URL
from .mcp_config_param import McpConfigParam

__all__ = ["ToolRuntimeListToolsParams"]


class ToolRuntimeListToolsParams(TypedDict, total=False):
tool_group_id: str

mcp_endpoint: URL
mcp_config: McpConfigParam

x_llama_stack_client_version: Annotated[str, PropertyInfo(alias="X-LlamaStack-Client-Version")]

Expand Down
4 changes: 2 additions & 2 deletions src/llama_stack_client/types/toolgroup_register_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo
from .shared_params.url import URL
from .mcp_config_param import McpConfigParam

__all__ = ["ToolgroupRegisterParams"]

Expand All @@ -18,7 +18,7 @@ class ToolgroupRegisterParams(TypedDict, total=False):

args: Dict[str, Union[bool, float, str, Iterable[object], object, None]]

mcp_endpoint: URL
mcp_config: McpConfigParam

x_llama_stack_client_version: Annotated[str, PropertyInfo(alias="X-LlamaStack-Client-Version")]

Expand Down
14 changes: 12 additions & 2 deletions tests/api_resources/test_tool_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,12 @@ def test_method_list_tools(self, client: LlamaStackClient) -> None:
def test_method_list_tools_with_all_params(self, client: LlamaStackClient) -> None:
tool_runtime = client.tool_runtime.list_tools(
tool_group_id="tool_group_id",
mcp_endpoint={"uri": "uri"},
mcp_config={
"command": "command",
"type": "inline",
"args": ["string"],
"env": {"foo": True},
},
x_llama_stack_client_version="X-LlamaStack-Client-Version",
x_llama_stack_provider_data="X-LlamaStack-Provider-Data",
)
Expand Down Expand Up @@ -174,7 +179,12 @@ async def test_method_list_tools(self, async_client: AsyncLlamaStackClient) -> N
async def test_method_list_tools_with_all_params(self, async_client: AsyncLlamaStackClient) -> None:
tool_runtime = await async_client.tool_runtime.list_tools(
tool_group_id="tool_group_id",
mcp_endpoint={"uri": "uri"},
mcp_config={
"command": "command",
"type": "inline",
"args": ["string"],
"env": {"foo": True},
},
x_llama_stack_client_version="X-LlamaStack-Client-Version",
x_llama_stack_provider_data="X-LlamaStack-Provider-Data",
)
Expand Down
14 changes: 12 additions & 2 deletions tests/api_resources/test_toolgroups.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,12 @@ def test_method_register_with_all_params(self, client: LlamaStackClient) -> None
provider_id="provider_id",
toolgroup_id="toolgroup_id",
args={"foo": True},
mcp_endpoint={"uri": "uri"},
mcp_config={
"command": "command",
"type": "inline",
"args": ["string"],
"env": {"foo": True},
},
x_llama_stack_client_version="X-LlamaStack-Client-Version",
x_llama_stack_provider_data="X-LlamaStack-Provider-Data",
)
Expand Down Expand Up @@ -293,7 +298,12 @@ async def test_method_register_with_all_params(self, async_client: AsyncLlamaSta
provider_id="provider_id",
toolgroup_id="toolgroup_id",
args={"foo": True},
mcp_endpoint={"uri": "uri"},
mcp_config={
"command": "command",
"type": "inline",
"args": ["string"],
"env": {"foo": True},
},
x_llama_stack_client_version="X-LlamaStack-Client-Version",
x_llama_stack_provider_data="X-LlamaStack-Provider-Data",
)
Expand Down
Loading