beamlit 0.0.28rc24__py3-none-any.whl → 0.0.29__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.
- beamlit/agents/chain.py +93 -0
- beamlit/agents/decorator.py +14 -4
- beamlit/api/agents/get_agent_trace_ids.py +171 -0
- beamlit/api/default/__init__.py +0 -0
- beamlit/api/default/get_trace.py +150 -0
- beamlit/api/default/get_trace_ids.py +233 -0
- beamlit/api/default/get_trace_logs.py +186 -0
- beamlit/api/functions/get_function_trace_ids.py +171 -0
- beamlit/api/models/get_model_trace_ids.py +171 -0
- beamlit/authentication/authentication.py +16 -13
- beamlit/authentication/clientcredentials.py +1 -1
- beamlit/client.py +14 -2
- beamlit/common/settings.py +15 -9
- beamlit/deploy/deploy.py +5 -5
- beamlit/functions/mcp/mcp.py +26 -18
- beamlit/functions/remote/remote.py +58 -39
- beamlit/models/__init__.py +8 -0
- beamlit/models/get_trace_ids_response_200.py +45 -0
- beamlit/models/get_trace_logs_response_200.py +45 -0
- beamlit/models/get_trace_response_200.py +45 -0
- beamlit/models/trace_ids_response.py +63 -0
- {beamlit-0.0.28rc24.dist-info → beamlit-0.0.29.dist-info}/METADATA +1 -1
- {beamlit-0.0.28rc24.dist-info → beamlit-0.0.29.dist-info}/RECORD +24 -12
- {beamlit-0.0.28rc24.dist-info → beamlit-0.0.29.dist-info}/WHEEL +0 -0
beamlit/deploy/deploy.py
CHANGED
@@ -29,8 +29,8 @@ def set_default_values(resource: Resource, deployment: Agent | Function):
|
|
29
29
|
deployment.metadata.environment = settings.environment
|
30
30
|
if not deployment.metadata.name:
|
31
31
|
deployment.metadata.name = resource.name
|
32
|
-
if not deployment.metadata.
|
33
|
-
deployment.metadata.
|
32
|
+
if not deployment.metadata.display_name:
|
33
|
+
deployment.metadata.display_name = deployment.metadata.name
|
34
34
|
if not deployment.spec.description:
|
35
35
|
deployment.spec.description = get_description(None, resource)
|
36
36
|
if not deployment.spec.runtime:
|
@@ -111,14 +111,14 @@ apiVersion: beamlit.com/v1alpha1
|
|
111
111
|
kind: Agent
|
112
112
|
metadata:
|
113
113
|
name: {agent.metadata.name}
|
114
|
-
displayName: {agent.metadata.
|
114
|
+
displayName: {agent.metadata.display_name or agent.metadata.name}
|
115
115
|
environment: {settings.environment}
|
116
116
|
workspace: {settings.workspace}
|
117
117
|
spec:
|
118
118
|
enabled: true
|
119
119
|
policies: [{", ".join(agent.spec.policies or [])}]
|
120
120
|
functions: [{", ".join([f"{function.metadata.name}" for (_, function) in functions])}]
|
121
|
-
agentChain: {format_agent_chain(agent.spec.
|
121
|
+
agentChain: {format_agent_chain(agent.spec.agent_chain)}
|
122
122
|
model: {agent.spec.model}
|
123
123
|
runtime:
|
124
124
|
image: {agent.spec.runtime.image}
|
@@ -145,7 +145,7 @@ apiVersion: beamlit.com/v1alpha1
|
|
145
145
|
kind: Function
|
146
146
|
metadata:
|
147
147
|
name: {function.metadata.name}
|
148
|
-
displayName: {function.metadata.
|
148
|
+
displayName: {function.metadata.display_name or function.metadata.name}
|
149
149
|
environment: {settings.environment}
|
150
150
|
spec:
|
151
151
|
enabled: true
|
beamlit/functions/mcp/mcp.py
CHANGED
@@ -11,26 +11,35 @@ from beamlit.authentication.authentication import AuthenticatedClient
|
|
11
11
|
from beamlit.common.settings import get_settings
|
12
12
|
from langchain_core.tools.base import BaseTool, BaseToolkit, ToolException
|
13
13
|
from mcp import ListToolsResult
|
14
|
-
from pydantic.json_schema import JsonSchemaValue
|
15
|
-
from pydantic_core import core_schema as cs
|
16
14
|
|
17
15
|
settings = get_settings()
|
18
16
|
|
17
|
+
def create_dynamic_schema(name: str, schema: dict[str, t.Any]) -> type[pydantic.BaseModel]:
|
18
|
+
field_definitions = {}
|
19
|
+
for k, v in schema["properties"].items():
|
20
|
+
field_type = str
|
21
|
+
if v["type"] == "number":
|
22
|
+
field_type = float
|
23
|
+
elif v["type"] == "integer":
|
24
|
+
field_type = int
|
25
|
+
elif v["type"] == "boolean":
|
26
|
+
field_type = bool
|
27
|
+
description = v.get("description") or ""
|
28
|
+
default_ = v.get("default")
|
29
|
+
fields = {}
|
30
|
+
if default_ is not None:
|
31
|
+
fields["default"] = default_
|
32
|
+
if description is not None:
|
33
|
+
fields["description"] = description
|
34
|
+
field_definitions[k] = (
|
35
|
+
field_type,
|
36
|
+
pydantic.Field(**fields)
|
37
|
+
)
|
38
|
+
return pydantic.create_model(
|
39
|
+
f"{name}Schema",
|
40
|
+
**field_definitions
|
41
|
+
)
|
19
42
|
|
20
|
-
def create_schema_model(schema: dict[str, t.Any]) -> type[pydantic.BaseModel]:
|
21
|
-
# Create a new model class that returns our JSON schema.
|
22
|
-
# LangChain requires a BaseModel class.
|
23
|
-
class Schema(pydantic.BaseModel):
|
24
|
-
model_config = pydantic.ConfigDict(extra="allow")
|
25
|
-
|
26
|
-
@t.override
|
27
|
-
@classmethod
|
28
|
-
def __get_pydantic_json_schema__(
|
29
|
-
cls, core_schema: cs.CoreSchema, handler: pydantic.GetJsonSchemaHandler
|
30
|
-
) -> JsonSchemaValue:
|
31
|
-
return schema
|
32
|
-
|
33
|
-
return Schema
|
34
43
|
|
35
44
|
|
36
45
|
class MCPClient:
|
@@ -42,7 +51,6 @@ class MCPClient:
|
|
42
51
|
def list_tools(self) -> requests.Response:
|
43
52
|
client = self.client.get_httpx_client()
|
44
53
|
url = urllib.parse.urljoin(settings.mcp_hub_url, f"{self.server_name}/tools/list")
|
45
|
-
|
46
54
|
response = client.request("GET", url, headers=self.headers)
|
47
55
|
response.raise_for_status()
|
48
56
|
return response
|
@@ -118,7 +126,7 @@ class MCPToolkit(BaseToolkit):
|
|
118
126
|
client=self.client,
|
119
127
|
name=tool.name,
|
120
128
|
description=tool.description or "",
|
121
|
-
args_schema=
|
129
|
+
args_schema=create_dynamic_schema(tool.name, tool.inputSchema),
|
122
130
|
)
|
123
131
|
# list_tools returns a PaginatedResult, but I don't see a way to pass the cursor to retrieve more tools
|
124
132
|
for tool in self._tools.tools
|
@@ -1,33 +1,37 @@
|
|
1
1
|
import asyncio
|
2
|
-
import urllib.parse
|
3
2
|
import warnings
|
4
|
-
from
|
3
|
+
from dataclasses import dataclass
|
4
|
+
from typing import Callable, Literal
|
5
5
|
|
6
6
|
import pydantic
|
7
|
-
import pydantic_core
|
8
7
|
import typing_extensions as t
|
9
8
|
from beamlit.api.functions import get_function
|
10
9
|
from beamlit.authentication.authentication import AuthenticatedClient
|
11
|
-
from beamlit.
|
12
|
-
from
|
13
|
-
from
|
14
|
-
from
|
15
|
-
|
16
|
-
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
10
|
+
from beamlit.common.settings import get_settings
|
11
|
+
from beamlit.models import Function, StoreFunctionParameter
|
12
|
+
from beamlit.run import RunClient
|
13
|
+
from langchain_core.tools.base import BaseTool, ToolException
|
14
|
+
|
15
|
+
|
16
|
+
def create_dynamic_schema(name: str, parameters: list[StoreFunctionParameter]) -> type[pydantic.BaseModel]:
|
17
|
+
field_definitions = {}
|
18
|
+
for param in parameters:
|
19
|
+
field_type = str
|
20
|
+
if param.type_ == "number":
|
21
|
+
field_type = float
|
22
|
+
elif param.type_ == "integer":
|
23
|
+
field_type = int
|
24
|
+
elif param.type_ == "boolean":
|
25
|
+
field_type = bool
|
26
|
+
|
27
|
+
field_definitions[param.name] = (
|
28
|
+
field_type,
|
29
|
+
pydantic.Field(description=param.description or "")
|
30
|
+
)
|
31
|
+
return pydantic.create_model(
|
32
|
+
f"{name}Schema",
|
33
|
+
**field_definitions
|
34
|
+
)
|
31
35
|
|
32
36
|
|
33
37
|
class RemoteTool(BaseTool):
|
@@ -35,7 +39,9 @@ class RemoteTool(BaseTool):
|
|
35
39
|
Remote tool
|
36
40
|
"""
|
37
41
|
|
38
|
-
client:
|
42
|
+
client: RunClient
|
43
|
+
resource_name: str
|
44
|
+
kit: bool = False
|
39
45
|
handle_tool_error: bool | str | Callable[[ToolException], str] | None = True
|
40
46
|
|
41
47
|
@t.override
|
@@ -48,12 +54,18 @@ class RemoteTool(BaseTool):
|
|
48
54
|
|
49
55
|
@t.override
|
50
56
|
async def _arun(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
+
settings = get_settings()
|
58
|
+
body = {**kwargs}
|
59
|
+
if self.kit:
|
60
|
+
body["name"] = self.name
|
61
|
+
result = self.client.run(
|
62
|
+
"function",
|
63
|
+
self.resource_name,
|
64
|
+
settings.environment,
|
65
|
+
"POST",
|
66
|
+
json=body
|
67
|
+
)
|
68
|
+
return result.text
|
57
69
|
|
58
70
|
@t.override
|
59
71
|
@property
|
@@ -61,7 +73,8 @@ class RemoteTool(BaseTool):
|
|
61
73
|
assert self.args_schema is not None # noqa: S101
|
62
74
|
return self.args_schema
|
63
75
|
|
64
|
-
|
76
|
+
@dataclass
|
77
|
+
class RemoteToolkit:
|
65
78
|
"""
|
66
79
|
Remote toolkit
|
67
80
|
"""
|
@@ -75,29 +88,35 @@ class RemoteToolkit(BaseToolkit):
|
|
75
88
|
def initialize(self) -> None:
|
76
89
|
"""Initialize the session and retrieve tools list"""
|
77
90
|
if self._function is None:
|
78
|
-
self._function = get_function(self.function, client=self.client)
|
91
|
+
self._function = get_function.sync_detailed(self.function, client=self.client).parsed
|
79
92
|
|
80
93
|
@t.override
|
81
94
|
def get_tools(self) -> list[BaseTool]:
|
82
|
-
if self.
|
95
|
+
if self._function is None:
|
83
96
|
raise RuntimeError("Must initialize the toolkit first")
|
84
97
|
|
85
98
|
if self._function.spec.kit:
|
86
99
|
return [
|
87
100
|
RemoteTool(
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
101
|
+
client=RunClient(self.client),
|
102
|
+
name=func.name,
|
103
|
+
resource_name=self._function.metadata.name,
|
104
|
+
kit=True,
|
105
|
+
description=func.description or "",
|
106
|
+
args_schema=create_dynamic_schema(func.name, func.parameters),
|
92
107
|
)
|
93
108
|
for func in self._function.spec.kit
|
94
109
|
]
|
95
110
|
|
96
111
|
return [
|
97
112
|
RemoteTool(
|
98
|
-
client=self.client,
|
113
|
+
client=RunClient(self.client),
|
99
114
|
name=self._function.metadata.name,
|
115
|
+
resource_name=self._function.metadata.name,
|
100
116
|
description=self._function.spec.description or "",
|
101
|
-
args_schema=
|
117
|
+
args_schema=create_dynamic_schema(
|
118
|
+
self._function.metadata.name,
|
119
|
+
self._function.spec.parameters
|
120
|
+
),
|
102
121
|
)
|
103
122
|
]
|
beamlit/models/__init__.py
CHANGED
@@ -29,6 +29,9 @@ from .function_kit import FunctionKit
|
|
29
29
|
from .function_metadata import FunctionMetadata
|
30
30
|
from .function_release import FunctionRelease
|
31
31
|
from .function_spec import FunctionSpec
|
32
|
+
from .get_trace_ids_response_200 import GetTraceIdsResponse200
|
33
|
+
from .get_trace_logs_response_200 import GetTraceLogsResponse200
|
34
|
+
from .get_trace_response_200 import GetTraceResponse200
|
32
35
|
from .get_workspace_service_accounts_response_200_item import GetWorkspaceServiceAccountsResponse200Item
|
33
36
|
from .increase_and_rate_metric import IncreaseAndRateMetric
|
34
37
|
from .integration_config import IntegrationConfig
|
@@ -90,6 +93,7 @@ from .store_function_kit import StoreFunctionKit
|
|
90
93
|
from .store_function_labels import StoreFunctionLabels
|
91
94
|
from .store_function_parameter import StoreFunctionParameter
|
92
95
|
from .time_fields import TimeFields
|
96
|
+
from .trace_ids_response import TraceIdsResponse
|
93
97
|
from .update_workspace_service_account_body import UpdateWorkspaceServiceAccountBody
|
94
98
|
from .update_workspace_service_account_response_200 import UpdateWorkspaceServiceAccountResponse200
|
95
99
|
from .update_workspace_user_role_body import UpdateWorkspaceUserRoleBody
|
@@ -128,6 +132,9 @@ __all__ = (
|
|
128
132
|
"FunctionMetadata",
|
129
133
|
"FunctionRelease",
|
130
134
|
"FunctionSpec",
|
135
|
+
"GetTraceIdsResponse200",
|
136
|
+
"GetTraceLogsResponse200",
|
137
|
+
"GetTraceResponse200",
|
131
138
|
"GetWorkspaceServiceAccountsResponse200Item",
|
132
139
|
"IncreaseAndRateMetric",
|
133
140
|
"IntegrationConfig",
|
@@ -185,6 +192,7 @@ __all__ = (
|
|
185
192
|
"StoreFunctionLabels",
|
186
193
|
"StoreFunctionParameter",
|
187
194
|
"TimeFields",
|
195
|
+
"TraceIdsResponse",
|
188
196
|
"UpdateWorkspaceServiceAccountBody",
|
189
197
|
"UpdateWorkspaceServiceAccountResponse200",
|
190
198
|
"UpdateWorkspaceUserRoleBody",
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import Any, TypeVar
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
T = TypeVar("T", bound="GetTraceIdsResponse200")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class GetTraceIdsResponse200:
|
11
|
+
""" """
|
12
|
+
|
13
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
14
|
+
|
15
|
+
def to_dict(self) -> dict[str, Any]:
|
16
|
+
field_dict: dict[str, Any] = {}
|
17
|
+
field_dict.update(self.additional_properties)
|
18
|
+
|
19
|
+
return field_dict
|
20
|
+
|
21
|
+
@classmethod
|
22
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
23
|
+
if not src_dict:
|
24
|
+
return None
|
25
|
+
d = src_dict.copy()
|
26
|
+
get_trace_ids_response_200 = cls()
|
27
|
+
|
28
|
+
get_trace_ids_response_200.additional_properties = d
|
29
|
+
return get_trace_ids_response_200
|
30
|
+
|
31
|
+
@property
|
32
|
+
def additional_keys(self) -> list[str]:
|
33
|
+
return list(self.additional_properties.keys())
|
34
|
+
|
35
|
+
def __getitem__(self, key: str) -> Any:
|
36
|
+
return self.additional_properties[key]
|
37
|
+
|
38
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
39
|
+
self.additional_properties[key] = value
|
40
|
+
|
41
|
+
def __delitem__(self, key: str) -> None:
|
42
|
+
del self.additional_properties[key]
|
43
|
+
|
44
|
+
def __contains__(self, key: str) -> bool:
|
45
|
+
return key in self.additional_properties
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import Any, TypeVar
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
T = TypeVar("T", bound="GetTraceLogsResponse200")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class GetTraceLogsResponse200:
|
11
|
+
""" """
|
12
|
+
|
13
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
14
|
+
|
15
|
+
def to_dict(self) -> dict[str, Any]:
|
16
|
+
field_dict: dict[str, Any] = {}
|
17
|
+
field_dict.update(self.additional_properties)
|
18
|
+
|
19
|
+
return field_dict
|
20
|
+
|
21
|
+
@classmethod
|
22
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
23
|
+
if not src_dict:
|
24
|
+
return None
|
25
|
+
d = src_dict.copy()
|
26
|
+
get_trace_logs_response_200 = cls()
|
27
|
+
|
28
|
+
get_trace_logs_response_200.additional_properties = d
|
29
|
+
return get_trace_logs_response_200
|
30
|
+
|
31
|
+
@property
|
32
|
+
def additional_keys(self) -> list[str]:
|
33
|
+
return list(self.additional_properties.keys())
|
34
|
+
|
35
|
+
def __getitem__(self, key: str) -> Any:
|
36
|
+
return self.additional_properties[key]
|
37
|
+
|
38
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
39
|
+
self.additional_properties[key] = value
|
40
|
+
|
41
|
+
def __delitem__(self, key: str) -> None:
|
42
|
+
del self.additional_properties[key]
|
43
|
+
|
44
|
+
def __contains__(self, key: str) -> bool:
|
45
|
+
return key in self.additional_properties
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import Any, TypeVar
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
T = TypeVar("T", bound="GetTraceResponse200")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class GetTraceResponse200:
|
11
|
+
""" """
|
12
|
+
|
13
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
14
|
+
|
15
|
+
def to_dict(self) -> dict[str, Any]:
|
16
|
+
field_dict: dict[str, Any] = {}
|
17
|
+
field_dict.update(self.additional_properties)
|
18
|
+
|
19
|
+
return field_dict
|
20
|
+
|
21
|
+
@classmethod
|
22
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
23
|
+
if not src_dict:
|
24
|
+
return None
|
25
|
+
d = src_dict.copy()
|
26
|
+
get_trace_response_200 = cls()
|
27
|
+
|
28
|
+
get_trace_response_200.additional_properties = d
|
29
|
+
return get_trace_response_200
|
30
|
+
|
31
|
+
@property
|
32
|
+
def additional_keys(self) -> list[str]:
|
33
|
+
return list(self.additional_properties.keys())
|
34
|
+
|
35
|
+
def __getitem__(self, key: str) -> Any:
|
36
|
+
return self.additional_properties[key]
|
37
|
+
|
38
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
39
|
+
self.additional_properties[key] = value
|
40
|
+
|
41
|
+
def __delitem__(self, key: str) -> None:
|
42
|
+
del self.additional_properties[key]
|
43
|
+
|
44
|
+
def __contains__(self, key: str) -> bool:
|
45
|
+
return key in self.additional_properties
|
@@ -0,0 +1,63 @@
|
|
1
|
+
from typing import Any, TypeVar, Union, cast
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
from ..types import UNSET, Unset
|
7
|
+
|
8
|
+
T = TypeVar("T", bound="TraceIdsResponse")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class TraceIdsResponse:
|
13
|
+
"""Response containing trace IDs
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
trace_ids (Union[Unset, list[str]]): List of trace IDs
|
17
|
+
"""
|
18
|
+
|
19
|
+
trace_ids: Union[Unset, list[str]] = UNSET
|
20
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
21
|
+
|
22
|
+
def to_dict(self) -> dict[str, Any]:
|
23
|
+
trace_ids: Union[Unset, list[str]] = UNSET
|
24
|
+
if not isinstance(self.trace_ids, Unset):
|
25
|
+
trace_ids = self.trace_ids
|
26
|
+
|
27
|
+
field_dict: dict[str, Any] = {}
|
28
|
+
field_dict.update(self.additional_properties)
|
29
|
+
field_dict.update({})
|
30
|
+
if trace_ids is not UNSET:
|
31
|
+
field_dict["trace_ids"] = trace_ids
|
32
|
+
|
33
|
+
return field_dict
|
34
|
+
|
35
|
+
@classmethod
|
36
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
37
|
+
if not src_dict:
|
38
|
+
return None
|
39
|
+
d = src_dict.copy()
|
40
|
+
trace_ids = cast(list[str], d.pop("trace_ids", UNSET))
|
41
|
+
|
42
|
+
trace_ids_response = cls(
|
43
|
+
trace_ids=trace_ids,
|
44
|
+
)
|
45
|
+
|
46
|
+
trace_ids_response.additional_properties = d
|
47
|
+
return trace_ids_response
|
48
|
+
|
49
|
+
@property
|
50
|
+
def additional_keys(self) -> list[str]:
|
51
|
+
return list(self.additional_properties.keys())
|
52
|
+
|
53
|
+
def __getitem__(self, key: str) -> Any:
|
54
|
+
return self.additional_properties[key]
|
55
|
+
|
56
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
57
|
+
self.additional_properties[key] = value
|
58
|
+
|
59
|
+
def __delitem__(self, key: str) -> None:
|
60
|
+
del self.additional_properties[key]
|
61
|
+
|
62
|
+
def __contains__(self, key: str) -> bool:
|
63
|
+
return key in self.additional_properties
|
@@ -1,12 +1,13 @@
|
|
1
1
|
beamlit/__init__.py,sha256=545gFC-wLLwUktWcOAjUWe_Glha40tBetRTOYSfHnbI,164
|
2
|
-
beamlit/client.py,sha256=
|
2
|
+
beamlit/client.py,sha256=PnR6ybZk5dLIJPnDKAf2epHOeQC_7yL0fG4muvphHjA,12695
|
3
3
|
beamlit/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
|
4
4
|
beamlit/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
|
5
5
|
beamlit/run.py,sha256=RLwMv5f_S8lw7Wq7O6DvEcOl0nGYh769qjGl_SmR9Z0,1338
|
6
6
|
beamlit/types.py,sha256=E1hhDh_zXfsSQ0NCt9-uw90_Mr5iIlsdfnfvxv5HarU,1005
|
7
7
|
beamlit/agents/__init__.py,sha256=nf1iwQwGtCG6nDqyVhxfWoqR6dv6X3bvSpCeqkTCFaM,101
|
8
|
+
beamlit/agents/chain.py,sha256=HzBs3nI4xaH86I_r-M-HGGp6roXsJxMx-qXl_GrJaY0,2831
|
8
9
|
beamlit/agents/chat.py,sha256=gVyv4FGBdQTDhdutX8l64OUNa6Fdqaw4eCfEDRH0IPQ,3558
|
9
|
-
beamlit/agents/decorator.py,sha256=
|
10
|
+
beamlit/agents/decorator.py,sha256=4KxPcu6hPoB__1OdzpEJVD5N3QVa_syKd_Y6n6lVEjQ,9715
|
10
11
|
beamlit/api/__init__.py,sha256=zTSiG_ujSjAqWPyc435YXaX9XTlpMjiJWBbV-f-YtdA,45
|
11
12
|
beamlit/api/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
13
|
beamlit/api/agents/create_agent.py,sha256=t5Pr62My2EhQlcIY71MrI73-0_q5Djr3a_Ybt9MIiQQ,3587
|
@@ -17,12 +18,17 @@ beamlit/api/agents/get_agent.py,sha256=IBMiNb36CyNKKyW-RvMSakmOaGrP2hSm3HRa_Gm_c
|
|
17
18
|
beamlit/api/agents/get_agent_environment_logs.py,sha256=Fdd_mvlJXO17BQHbnl0YpUbXcX-1BsuZI2WKz6cgacA,3759
|
18
19
|
beamlit/api/agents/get_agent_history.py,sha256=sDKZQhul8wrSbuRY8WNI6jRNYgFcYtCnaU2fgR1owM8,3846
|
19
20
|
beamlit/api/agents/get_agent_metrics.py,sha256=IRdex5XAekCHSep6T7KQHB9T1J1f9egDx-MaiNynRVU,4344
|
21
|
+
beamlit/api/agents/get_agent_trace_ids.py,sha256=nCYXzCCmu8VXeLvPRX8Rc6N2JKMLVTTObbKtiCOzIg0,4365
|
20
22
|
beamlit/api/agents/list_agent_history.py,sha256=ZMTG5PSSkfd4OLmVHDIvDZy13bElrhQivF7QtBDLK9w,3775
|
21
23
|
beamlit/api/agents/list_agents.py,sha256=d6j_LM-8--2nfTHFjueRkoimHf02RRMAOWTpt8anJGg,4101
|
22
24
|
beamlit/api/agents/put_agent_history.py,sha256=lt1_9yFW_vEgeS_jlh-4EumgbTZCdcZYy9GbA91gewU,4590
|
23
25
|
beamlit/api/agents/update_agent.py,sha256=No9iJkjUFJBCHDth1_vpuDfl2Ev3us1OWHXrrRzzE4E,3937
|
24
26
|
beamlit/api/configurations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
27
|
beamlit/api/configurations/get_configuration.py,sha256=BtazLwvVe1OGjt0dJ-NVVipqAqZt1HwemWTGK2iuN9w,3197
|
28
|
+
beamlit/api/default/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
+
beamlit/api/default/get_trace.py,sha256=2x-qpeu8jpfbq_c4-aAHgliwBQfagLEWEgM77eB_ZiY,3621
|
30
|
+
beamlit/api/default/get_trace_ids.py,sha256=qxT085F7pt4GI0Ir7fpFA19IIR9_NFy47fYL9bPAtJo,6712
|
31
|
+
beamlit/api/default/get_trace_logs.py,sha256=R69_j9GFAwkujsNMp4VTxoZuzw8jFni56l0bRxACT4w,4770
|
26
32
|
beamlit/api/environments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
33
|
beamlit/api/environments/create_environment.py,sha256=ocD_8MlOivWlo9ICeSRkHuZfndLHCrROfiJvCynsADU,4321
|
28
34
|
beamlit/api/environments/delete_environment.py,sha256=bkDsO1akkb1To4TDz1XvKiB4XI34phBOJLj72KXMW6M,3819
|
@@ -37,6 +43,7 @@ beamlit/api/functions/delete_function.py,sha256=dzCBAL50Yg18bDUpcC1COjwFstnfBpqt
|
|
37
43
|
beamlit/api/functions/get_function.py,sha256=U4dXy47eKQh7spED7hyyHOepj6bU2U6QFJ0a2RS2y_8,4301
|
38
44
|
beamlit/api/functions/get_function_environment_logs.py,sha256=Ia7bDcx8k7qCBhxsm8jdDSbYGKwdTDYhkAcgv25Zz-o,3816
|
39
45
|
beamlit/api/functions/get_function_metrics.py,sha256=8FC7OCyj2QTXKRHyY7BPKfF2EAzXw0rg-r8yM19fQSc,4413
|
46
|
+
beamlit/api/functions/get_function_trace_ids.py,sha256=Sz0DNr7K7z0Qzs9wJ8KYb7C8_vZj1aqoFk38MRYC_Xw,4434
|
40
47
|
beamlit/api/functions/list_functions.py,sha256=Z9PaBzpRCv4cfEMSiBaVLnKzRoWCBys4jOXXBWOzEU8,4167
|
41
48
|
beamlit/api/functions/update_function.py,sha256=sH-Oy2epz-X-59_eDnazzeeUsZMVNqG5J8VPe6nYJkg,4084
|
42
49
|
beamlit/api/history/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -71,6 +78,7 @@ beamlit/api/models/delete_model.py,sha256=4uENeuBKoIooCfniM1uZFjScqgHzlEDxl7aLjA
|
|
71
78
|
beamlit/api/models/get_model.py,sha256=sTE7fGpJ91svBMSKy7PGySqSOVy5g1YH3oHjhWbMr9s,4285
|
72
79
|
beamlit/api/models/get_model_environment_logs.py,sha256=Xi4c3I0y7y_JbqUDeZEH64oLom9DZ1Uk735j47QvDT0,3939
|
73
80
|
beamlit/api/models/get_model_metrics.py,sha256=06BcFFYS1Ml0tifIbDos9EqH6gSgGnwssKq75vhO5eU,4516
|
81
|
+
beamlit/api/models/get_model_trace_ids.py,sha256=xIUVeVf3oa1j8m3x7PO58bB3P3y_5mskKEOpWeJteIk,4365
|
74
82
|
beamlit/api/models/list_models.py,sha256=Keqg_qyTTGB-aJNA6JiMGnLdNwUSLIkzr08sdhhXxo4,4297
|
75
83
|
beamlit/api/models/release_model.py,sha256=ik1HHjOUVnaVJEvbbSS1ByQ2TMzkkUbNiGUXmlTiwBo,3893
|
76
84
|
beamlit/api/models/update_model.py,sha256=odMblGfUK6EAJHpu5mWUtpSNjFB8NvyTgqDp0JUygDA,4521
|
@@ -116,8 +124,8 @@ beamlit/api/workspaces/update_workspace.py,sha256=qa5DV2UJSUYuB_ibALb4E9ghKpT1Ha
|
|
116
124
|
beamlit/api/workspaces/update_workspace_user_role.py,sha256=Yn9iuJ4tKtauzBiJyU4-wYUMS9g98X2Om8zs7UkzrY8,4917
|
117
125
|
beamlit/authentication/__init__.py,sha256=wiXqRbc7E-ulrH_ueA9duOGFvXeo7-RvhSD1XbFogMo,1020
|
118
126
|
beamlit/authentication/apikey.py,sha256=KNBTgdi0VBzBAAmSwU2X1QoB58vRbg8wkXb8-GTZCQo,657
|
119
|
-
beamlit/authentication/authentication.py,sha256=
|
120
|
-
beamlit/authentication/clientcredentials.py,sha256=
|
127
|
+
beamlit/authentication/authentication.py,sha256=8R-3WdQSykNjCbebAW2p8Glvw5nlAmSEZr6Ylo-vPuc,3377
|
128
|
+
beamlit/authentication/clientcredentials.py,sha256=cxZPPu--CgizwqX0pdfFQ91gJt1EFKwyy-aBB_dXX7I,3990
|
121
129
|
beamlit/authentication/credentials.py,sha256=p_1xenabCbQuRz7BiFk7oTK4uCxAt_zoyku5o-jcKGE,5343
|
122
130
|
beamlit/authentication/device_mode.py,sha256=tmr22gllKOZwBRub_QjF5pYa425x-nE8tQNpZ_EGR6g,3644
|
123
131
|
beamlit/common/__init__.py,sha256=yDoMJDKj-xjTGl7U1YI59KpWxiOV65HSiUulgO8xdTA,277
|
@@ -125,10 +133,10 @@ beamlit/common/generate.py,sha256=LtdCju_QayRS4lZrrb_0VHqWWvTcv4Mbf-iV1TB_Qko,75
|
|
125
133
|
beamlit/common/instrumentation.py,sha256=MsBDfFcMYqGDiHHj4j5hLHE4EWxZExkhmCeFS3SKzJY,3181
|
126
134
|
beamlit/common/logger.py,sha256=VFRbaZh93n8ZGugeeYKe88IP2nI3g2JNa7XN4j8wVJE,1116
|
127
135
|
beamlit/common/secrets.py,sha256=sid81bOe3LflkMKDHwBsBs9nIju8bp5-v9qU9gkyNMc,212
|
128
|
-
beamlit/common/settings.py,sha256=
|
136
|
+
beamlit/common/settings.py,sha256=bxgQxMV5ncNqDGcWS_Wj3nzOF8FgAmC6alMP2fOdEDU,5895
|
129
137
|
beamlit/common/utils.py,sha256=jouz5igBvT37Xn_e94-foCHyQczVim-UzVcoIF6RWJ4,657
|
130
138
|
beamlit/deploy/__init__.py,sha256=GS7l7Jtm2yKs7iNLKcfjYO-rAhUzggQ3xiYSf3oxLBY,91
|
131
|
-
beamlit/deploy/deploy.py,sha256=
|
139
|
+
beamlit/deploy/deploy.py,sha256=on1i93SdECKrLVRMm3V2BRW5JeolPPq1dJHa4Evp0ns,9188
|
132
140
|
beamlit/deploy/format.py,sha256=78tOoeNPJ8969AhQTeFlIwZgQ3un8gmTSMmrYbRQSds,1818
|
133
141
|
beamlit/deploy/parser.py,sha256=uT-bezLX6yjyxr1ogm1GXIT_MeREqHDUBlKiyav5qg0,6912
|
134
142
|
beamlit/functions/__init__.py,sha256=_RPG1Bfg54JGdIPnViAU6n9zD7E1cDNsdXi8oYGskzE,138
|
@@ -139,11 +147,11 @@ beamlit/functions/github/kit/__init__.py,sha256=jBwPqZv6C23_utukohxqXZwrlicNlI7P
|
|
139
147
|
beamlit/functions/github/kit/pull_request.py,sha256=wQVeRBakiqu-2ouflO8p1z7D5u07KNsitwyNRrp0KjM,1357
|
140
148
|
beamlit/functions/math/__init__.py,sha256=wie4WME8jT-WpFRrtu-lDlHW31Mg6K2cwstjkUdLF3o,43
|
141
149
|
beamlit/functions/math/math.py,sha256=CpoLJGwuvwCPGnVC8k9GYuIyvfUYPDQHKlZg3cx-z-A,1049
|
142
|
-
beamlit/functions/mcp/mcp.py,sha256=
|
143
|
-
beamlit/functions/remote/remote.py,sha256=
|
150
|
+
beamlit/functions/mcp/mcp.py,sha256=gXzvUPAKmvGQPHUKTVzMiINukxpw1BV6H8M2iOWvIGU,4348
|
151
|
+
beamlit/functions/remote/remote.py,sha256=x2eHh4oYkWwHuZWwg5XeylY-E9Opa6SzfN_0396ePZw,3775
|
144
152
|
beamlit/functions/search/__init__.py,sha256=5NAthQ9PBwrkNg1FpLRx4flauvv0HyWuwaVS589c1Pw,49
|
145
153
|
beamlit/functions/search/search.py,sha256=8s9ECltq7YE17j6rTxb12uY2EQY4_eTLHmwlIMThI0w,515
|
146
|
-
beamlit/models/__init__.py,sha256=
|
154
|
+
beamlit/models/__init__.py,sha256=0BldOldXzMn1A6d1bOhsU8mk7i3uRmh33_U-0IYjIRY,7803
|
147
155
|
beamlit/models/acl.py,sha256=tH67gsl_BMaviSbTaaIkO1g9cWZgJ6VgAnYVjQSzGZY,3952
|
148
156
|
beamlit/models/agent.py,sha256=oGZBwd2Hy-i6q_up4WQ0IvOmxqouR5I1Gk8vXvfLKvc,3384
|
149
157
|
beamlit/models/agent_chain.py,sha256=8PN8wVSayS-LoBN2nahZsOmr6r3t62H_LPDK_8fnkM8,2255
|
@@ -173,6 +181,9 @@ beamlit/models/function_kit.py,sha256=VrwV4EOrEqs8QgyaI7MyevRCCt2fhsTkOzfQVWXojt
|
|
173
181
|
beamlit/models/function_metadata.py,sha256=7OKXazGomwAupuMTrROFD67o4D-JCBB33gznzLUj0HI,4608
|
174
182
|
beamlit/models/function_release.py,sha256=T8SuLZBBdgGDvUg3sVluocvrKTvNxzZ6Wq3kjK4lYk4,1955
|
175
183
|
beamlit/models/function_spec.py,sha256=8nTfXLCGqEwCdOHjhF3UH0gwu_CGQZperdhljkxcs-U,10452
|
184
|
+
beamlit/models/get_trace_ids_response_200.py,sha256=m2uE11a9wE5c7xPTDVd4CuubQc2cPYJNaYpbcj-V1rU,1275
|
185
|
+
beamlit/models/get_trace_logs_response_200.py,sha256=NIFtg8qcE26_oJxoRYkt1KSV2JSYUxdUu45Gxs0Qli0,1280
|
186
|
+
beamlit/models/get_trace_response_200.py,sha256=1QePQMknfEP7DjPXb3ulf6v17430R_MJ4SPovdYK0NI,1257
|
176
187
|
beamlit/models/get_workspace_service_accounts_response_200_item.py,sha256=ATEojS0VhRmL6a9JPWT3-fl3plosONbIWa5Jpoe4Pag,2981
|
177
188
|
beamlit/models/increase_and_rate_metric.py,sha256=bRQ05Qi9TMYhYjtN90PeJaMEkNOdgC0A_7aQQBrWCDs,2071
|
178
189
|
beamlit/models/integration_config.py,sha256=lq8yZR1th2qrJmGAk5aEcuvuPy4zAI9XyNol5YjeGVY,1258
|
@@ -232,6 +243,7 @@ beamlit/models/store_function_kit.py,sha256=S0i3KMHkJ6FwWwMcPqUOYfXi8AYZ21WC7TLI
|
|
232
243
|
beamlit/models/store_function_labels.py,sha256=ZoEKD_CUDs7HcdHEobDsPz8OcUAZ11pFW3pVYrbz0KQ,1274
|
233
244
|
beamlit/models/store_function_parameter.py,sha256=0iuvA6WVExwzqt5HRNusS9PFtke5_qwVu8fT2MFOH8c,2553
|
234
245
|
beamlit/models/time_fields.py,sha256=5X-SFQ1-cfs5gTvyFjuQ8tfMJJrAGoK0OBZLuOM5phY,2006
|
246
|
+
beamlit/models/trace_ids_response.py,sha256=fmXsxlIc6dNEduKjCG-Yd-oC6MhsI2VSUWkWk9MSQ0s,1806
|
235
247
|
beamlit/models/update_workspace_service_account_body.py,sha256=fz2MGqwRfrYkMmL8PaFHQdsu3RQcRljvP6n6JIru45o,2004
|
236
248
|
beamlit/models/update_workspace_service_account_response_200.py,sha256=nCLPHFP_iR1MIpicgQMpbiyme97ZMfTFhyQUEbhzkHI,2968
|
237
249
|
beamlit/models/update_workspace_user_role_body.py,sha256=FyLCWy9oRgUxoFPxxtrDvwzh1kHLkoTZ1pL5w3ayexM,1572
|
@@ -243,6 +255,6 @@ beamlit/serve/app.py,sha256=OpwPjRdyHZK6J-ziPwhiRDGGa2mvCrFVcBFE6alJVOM,3071
|
|
243
255
|
beamlit/serve/middlewares/__init__.py,sha256=1dVmnOmhAQWvWktqHkKSIX-YoF6fmMU8xkUQuhg_rJU,148
|
244
256
|
beamlit/serve/middlewares/accesslog.py,sha256=Mu4T4_9OvHybjA0ApzZFpgi2C8f3X1NbUk-76v634XM,631
|
245
257
|
beamlit/serve/middlewares/processtime.py,sha256=lDAaIasZ4bwvN-HKHvZpaD9r-yrkVNZYx4abvbjbrCg,411
|
246
|
-
beamlit-0.0.
|
247
|
-
beamlit-0.0.
|
248
|
-
beamlit-0.0.
|
258
|
+
beamlit-0.0.29.dist-info/METADATA,sha256=6io1k9UDgo25M3N_TnaI5udexlJ9LVZPIH6Uv2xO0zU,2401
|
259
|
+
beamlit-0.0.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
260
|
+
beamlit-0.0.29.dist-info/RECORD,,
|
File without changes
|