blaxel 0.1.9rc36__py3-none-any.whl → 0.1.10rc38__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.
- blaxel/agents/__init__.py +52 -15
- blaxel/authentication/__init__.py +11 -2
- blaxel/authentication/devicemode.py +1 -0
- blaxel/common/autoload.py +0 -2
- blaxel/common/internal.py +75 -0
- blaxel/common/settings.py +6 -1
- blaxel/mcp/server.py +2 -1
- blaxel/sandbox/base.py +68 -0
- blaxel/sandbox/client/__init__.py +8 -0
- blaxel/sandbox/client/api/__init__.py +1 -0
- blaxel/sandbox/client/api/filesystem/__init__.py +0 -0
- blaxel/sandbox/client/api/filesystem/delete_filesystem_path.py +184 -0
- blaxel/sandbox/client/api/filesystem/get_filesystem_path.py +184 -0
- blaxel/sandbox/client/api/filesystem/put_filesystem_path.py +189 -0
- blaxel/sandbox/client/api/network/__init__.py +0 -0
- blaxel/sandbox/client/api/network/delete_network_process_pid_monitor.py +169 -0
- blaxel/sandbox/client/api/network/get_network_process_pid_ports.py +169 -0
- blaxel/sandbox/client/api/network/post_network_process_pid_monitor.py +195 -0
- blaxel/sandbox/client/api/process/__init__.py +0 -0
- blaxel/sandbox/client/api/process/delete_process_identifier.py +163 -0
- blaxel/sandbox/client/api/process/delete_process_identifier_kill.py +189 -0
- blaxel/sandbox/client/api/process/get_process.py +135 -0
- blaxel/sandbox/client/api/process/get_process_identifier.py +159 -0
- blaxel/sandbox/client/api/process/get_process_identifier_logs.py +167 -0
- blaxel/sandbox/client/api/process/post_process.py +176 -0
- blaxel/sandbox/client/client.py +162 -0
- blaxel/sandbox/client/errors.py +16 -0
- blaxel/sandbox/client/models/__init__.py +35 -0
- blaxel/sandbox/client/models/delete_network_process_pid_monitor_response_200.py +45 -0
- blaxel/sandbox/client/models/directory.py +110 -0
- blaxel/sandbox/client/models/error_response.py +60 -0
- blaxel/sandbox/client/models/file.py +105 -0
- blaxel/sandbox/client/models/file_request.py +78 -0
- blaxel/sandbox/client/models/file_with_content.py +114 -0
- blaxel/sandbox/client/models/get_network_process_pid_ports_response_200.py +45 -0
- blaxel/sandbox/client/models/get_process_identifier_logs_response_200.py +45 -0
- blaxel/sandbox/client/models/port_monitor_request.py +60 -0
- blaxel/sandbox/client/models/post_network_process_pid_monitor_response_200.py +45 -0
- blaxel/sandbox/client/models/process_kill_request.py +60 -0
- blaxel/sandbox/client/models/process_request.py +118 -0
- blaxel/sandbox/client/models/process_response.py +123 -0
- blaxel/sandbox/client/models/success_response.py +69 -0
- blaxel/sandbox/client/py.typed +1 -0
- blaxel/sandbox/client/types.py +46 -0
- blaxel/sandbox/filesystem.py +102 -0
- blaxel/sandbox/process.py +57 -0
- blaxel/sandbox/sandbox.py +92 -0
- blaxel/tools/__init__.py +62 -21
- {blaxel-0.1.9rc36.dist-info → blaxel-0.1.10rc38.dist-info}/METADATA +1 -1
- {blaxel-0.1.9rc36.dist-info → blaxel-0.1.10rc38.dist-info}/RECORD +52 -11
- {blaxel-0.1.9rc36.dist-info → blaxel-0.1.10rc38.dist-info}/WHEEL +0 -0
- {blaxel-0.1.9rc36.dist-info → blaxel-0.1.10rc38.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
import asyncio
|
2
|
+
import logging
|
3
|
+
import time
|
4
|
+
from typing import List
|
5
|
+
|
6
|
+
from ..client.api.compute.create_sandbox import asyncio as create_sandbox
|
7
|
+
from ..client.api.compute.delete_sandbox import asyncio as delete_sandbox
|
8
|
+
from ..client.api.compute.get_sandbox import asyncio as get_sandbox
|
9
|
+
from ..client.api.compute.list_sandboxes import asyncio as list_sandboxes
|
10
|
+
from ..client.client import client
|
11
|
+
from ..client.models import Sandbox
|
12
|
+
from .filesystem import SandboxFileSystem
|
13
|
+
from .process import SandboxProcess
|
14
|
+
|
15
|
+
logger = logging.getLogger(__name__)
|
16
|
+
|
17
|
+
class SandboxInstance:
|
18
|
+
def __init__(self, sandbox: Sandbox):
|
19
|
+
self.sandbox = sandbox
|
20
|
+
self.fs = SandboxFileSystem(sandbox)
|
21
|
+
self.process = SandboxProcess(sandbox)
|
22
|
+
|
23
|
+
@property
|
24
|
+
def metadata(self):
|
25
|
+
return self.sandbox.metadata
|
26
|
+
|
27
|
+
@property
|
28
|
+
def status(self):
|
29
|
+
return self.sandbox.status
|
30
|
+
|
31
|
+
@property
|
32
|
+
def events(self):
|
33
|
+
return self.sandbox.events
|
34
|
+
|
35
|
+
@property
|
36
|
+
def spec(self):
|
37
|
+
return self.sandbox.spec
|
38
|
+
|
39
|
+
async def wait(self, max_wait: int = 60000, interval: int = 1000) -> None:
|
40
|
+
start_time = time.time() * 1000 # Convert to milliseconds
|
41
|
+
while self.sandbox.status != "DEPLOYED":
|
42
|
+
await asyncio.sleep(interval / 1000) # Convert to seconds
|
43
|
+
try:
|
44
|
+
response = await get_sandbox(
|
45
|
+
self.sandbox.metadata.name,
|
46
|
+
client=client,
|
47
|
+
)
|
48
|
+
logger.info(f"Waiting for sandbox to be deployed, status: {response.status}")
|
49
|
+
self.sandbox = response
|
50
|
+
except Exception as e:
|
51
|
+
logger.error("Could not retrieve sandbox", exc_info=e)
|
52
|
+
|
53
|
+
if self.sandbox.status == "FAILED":
|
54
|
+
raise Exception("Sandbox failed to deploy")
|
55
|
+
|
56
|
+
if (time.time() * 1000) - start_time > max_wait:
|
57
|
+
raise Exception("Sandbox did not deploy in time")
|
58
|
+
|
59
|
+
@classmethod
|
60
|
+
async def create(cls, sandbox: Sandbox) -> "SandboxInstance":
|
61
|
+
if not sandbox.spec:
|
62
|
+
raise Exception("Sandbox spec is required")
|
63
|
+
if not sandbox.spec.runtime:
|
64
|
+
raise Exception("Sandbox runtime is required")
|
65
|
+
sandbox.spec.runtime.generation = sandbox.spec.runtime.generation or "mk3"
|
66
|
+
|
67
|
+
response = await create_sandbox(
|
68
|
+
client=client,
|
69
|
+
body=sandbox,
|
70
|
+
)
|
71
|
+
return cls(response)
|
72
|
+
|
73
|
+
@classmethod
|
74
|
+
async def get(cls, sandbox_name: str) -> "SandboxInstance":
|
75
|
+
response = await get_sandbox(
|
76
|
+
sandbox_name,
|
77
|
+
client=client,
|
78
|
+
)
|
79
|
+
return cls(response)
|
80
|
+
|
81
|
+
@classmethod
|
82
|
+
async def list(cls) -> List["SandboxInstance"]:
|
83
|
+
response = await list_sandboxes()
|
84
|
+
return [cls(sandbox) for sandbox in response]
|
85
|
+
|
86
|
+
@classmethod
|
87
|
+
async def delete(cls, sandbox_name: str) -> Sandbox:
|
88
|
+
response = await delete_sandbox(
|
89
|
+
sandbox_name,
|
90
|
+
client=client,
|
91
|
+
)
|
92
|
+
return response
|
blaxel/tools/__init__.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import asyncio
|
2
2
|
import json
|
3
3
|
import os
|
4
|
+
import traceback
|
4
5
|
from contextlib import AsyncExitStack
|
5
6
|
from logging import getLogger
|
6
7
|
from typing import Any, cast
|
@@ -10,6 +11,7 @@ from mcp.types import CallToolResult
|
|
10
11
|
from mcp.types import Tool as MCPTool
|
11
12
|
|
12
13
|
from ..common.env import env
|
14
|
+
from ..common.internal import get_global_unique_hash
|
13
15
|
from ..common.settings import settings
|
14
16
|
from ..instrumentation.span import SpanManager
|
15
17
|
from ..mcp.client import websocket_client
|
@@ -22,15 +24,19 @@ if os.getenv("BL_SERVER_PORT"):
|
|
22
24
|
DEFAULT_TIMEOUT = 5
|
23
25
|
|
24
26
|
class PersistentWebSocket:
|
25
|
-
def __init__(self, url: str, timeout: int = DEFAULT_TIMEOUT, timeout_enabled: bool = True):
|
27
|
+
def __init__(self, url: str, name: str, timeout: int = DEFAULT_TIMEOUT, timeout_enabled: bool = True):
|
26
28
|
self.url = url
|
29
|
+
self.name = name
|
27
30
|
self.timeout = timeout
|
28
|
-
self.timeout_enabled = timeout_enabled
|
29
31
|
self.session_exit_stack = AsyncExitStack()
|
30
32
|
self.client_exit_stack = AsyncExitStack()
|
31
33
|
self.session: ClientSession = None
|
32
34
|
self.timer_task = None
|
33
35
|
self.tools_cache = []
|
36
|
+
if settings.bl_cloud:
|
37
|
+
self.timeout_enabled = False
|
38
|
+
else:
|
39
|
+
self.timeout_enabled = timeout_enabled
|
34
40
|
|
35
41
|
def with_metas(self, metas: dict[str, Any]):
|
36
42
|
self.metas = metas
|
@@ -46,19 +52,32 @@ class PersistentWebSocket:
|
|
46
52
|
logger.debug(f"Tool {tool_name} returned {call_tool_result}")
|
47
53
|
if self.timeout_enabled:
|
48
54
|
self._reset_timer()
|
55
|
+
else:
|
56
|
+
await self._close()
|
49
57
|
return call_tool_result
|
50
58
|
|
51
59
|
async def list_tools(self):
|
52
|
-
|
53
|
-
|
54
|
-
self.
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
self.
|
61
|
-
|
60
|
+
logger.debug(f"Listing tools for {self.name}")
|
61
|
+
span_attributes = {
|
62
|
+
"tool.server": self.url,
|
63
|
+
"tool.server_name": self.name,
|
64
|
+
"span.type": "tool.list",
|
65
|
+
}
|
66
|
+
with SpanManager("blaxel-tracer").create_active_span(self.name, span_attributes) as span:
|
67
|
+
await self._initialize()
|
68
|
+
logger.debug(f"Initialized websocket for {self.name}")
|
69
|
+
if self.timeout_enabled:
|
70
|
+
self._remove_timer()
|
71
|
+
logger.debug("Listing tools")
|
72
|
+
list_tools_result = await self.session.list_tools()
|
73
|
+
self.tools_cache = list_tools_result.tools
|
74
|
+
logger.debug(f"Tools listed: {list_tools_result}")
|
75
|
+
if self.timeout_enabled:
|
76
|
+
self._reset_timer()
|
77
|
+
else:
|
78
|
+
await self._close()
|
79
|
+
span.set_attribute("tool.list.result", list_tools_result.model_dump_json())
|
80
|
+
return list_tools_result
|
62
81
|
|
63
82
|
def get_tools(self):
|
64
83
|
return self.tools_cache
|
@@ -125,6 +144,7 @@ def convert_mcp_tool_to_blaxel_tool(
|
|
125
144
|
"tool.args": json.dumps(arguments),
|
126
145
|
"tool.server": url,
|
127
146
|
"tool.server_name": name,
|
147
|
+
"span.type": "tool.call",
|
128
148
|
}
|
129
149
|
with SpanManager("blaxel-tracer").create_active_span("blaxel-tool-call", span_attributes):
|
130
150
|
logger.debug(f"Calling tool {tool.name} with arguments {arguments}")
|
@@ -163,22 +183,37 @@ class BlTools:
|
|
163
183
|
self.timeout = timeout
|
164
184
|
self.timeout_enabled = timeout_enabled
|
165
185
|
|
166
|
-
def
|
167
|
-
|
186
|
+
def _internal_url(self, name: str):
|
187
|
+
"""Get the internal URL for the agent using a hash of workspace and agent name."""
|
188
|
+
hash = get_global_unique_hash(settings.workspace, "function", name)
|
189
|
+
return f"{settings.run_internal_protocol}://bl-{settings.env}-{hash}.{settings.run_internal_hostname}"
|
168
190
|
|
169
|
-
def
|
191
|
+
def _forced_url(self, name: str):
|
192
|
+
"""Get the forced URL from environment variables if set."""
|
170
193
|
env_var = name.replace("-", "_").upper()
|
171
194
|
if env[f"BL_FUNCTION_{env_var}_URL"]:
|
172
195
|
return env[f"BL_FUNCTION_{env_var}_URL"]
|
173
|
-
|
174
|
-
|
175
|
-
|
196
|
+
return None
|
197
|
+
|
198
|
+
def _external_url(self, name: str):
|
199
|
+
return f"{settings.run_url}/{settings.workspace}/functions/{name}"
|
176
200
|
|
177
|
-
def _fallback_url(self, name: str)
|
201
|
+
def _fallback_url(self, name: str):
|
178
202
|
if self._external_url(name) != self._url(name):
|
179
203
|
return self._external_url(name)
|
180
204
|
return None
|
181
205
|
|
206
|
+
def _url(self, name: str):
|
207
|
+
logger.debug(f"Getting URL for {name}")
|
208
|
+
if self._forced_url(name):
|
209
|
+
logger.debug(f"Forced URL found for {name}: {self._forced_url(name)}")
|
210
|
+
return self._forced_url(name)
|
211
|
+
if settings.run_internal_hostname:
|
212
|
+
logger.debug(f"Internal hostname found for {name}: {self._internal_url(name)}")
|
213
|
+
return self._internal_url(name)
|
214
|
+
logger.debug(f"No URL found for {name}, using external URL")
|
215
|
+
return self._external_url(name)
|
216
|
+
|
182
217
|
def get_tools(self) -> list[Tool]:
|
183
218
|
"""Get a list of all tools from all connected servers."""
|
184
219
|
all_tools: list[Tool] = []
|
@@ -240,8 +275,13 @@ class BlTools:
|
|
240
275
|
except Exception as e:
|
241
276
|
if not self._fallback_url(name):
|
242
277
|
raise e
|
278
|
+
logger.warning(f"Error connecting to {name}: {e}\n{traceback.format_exc()}")
|
243
279
|
url = self._fallback_url(name)
|
244
|
-
|
280
|
+
try:
|
281
|
+
await self.connect_with_url(name, url)
|
282
|
+
except Exception as e:
|
283
|
+
logger.error(f"Error connecting to {name} with fallback URL: {e}\n{traceback.format_exc()}")
|
284
|
+
raise e
|
245
285
|
|
246
286
|
async def connect_with_url(
|
247
287
|
self, name: str, url: str
|
@@ -255,7 +295,8 @@ class BlTools:
|
|
255
295
|
logger.debug(f"Initializing session and loading tools from {url}")
|
256
296
|
|
257
297
|
if not toolPersistances.get(name):
|
258
|
-
|
298
|
+
logger.debug(f"Creating new persistent websocket for {name}")
|
299
|
+
toolPersistances[name] = PersistentWebSocket(url, name, timeout=self.timeout, timeout_enabled=self.timeout_enabled)
|
259
300
|
await toolPersistances[name].list_tools()
|
260
301
|
logger.debug(f"Loaded {len(toolPersistances[name].get_tools())} tools from {url}")
|
261
302
|
return toolPersistances[name].with_metas(self.metas)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
blaxel/__init__.py,sha256=qmuJKjl5oGnjj4TbqHcJqUkKoxk4PvCsMb6-8rp67pE,159
|
2
|
-
blaxel/agents/__init__.py,sha256=
|
3
|
-
blaxel/authentication/__init__.py,sha256=
|
2
|
+
blaxel/agents/__init__.py,sha256=RDWkvfICIXXaQxJuuSu63jsFj_F8NBAL4U752hfN4AE,5262
|
3
|
+
blaxel/authentication/__init__.py,sha256=tL9XKNCek5ixszTqjlKRBvidXMg4Nj6ODlBKlxxA9uk,3283
|
4
4
|
blaxel/authentication/apikey.py,sha256=nOgLVba7EfVk3V-qm7cj-30LAL-BT7NOMIlGL9Ni1jY,1249
|
5
5
|
blaxel/authentication/clientcredentials.py,sha256=SfWNuZVHZw6jjMqoBMMB4ZawmpyKbVPbOpv-JDFqzw8,3080
|
6
|
-
blaxel/authentication/devicemode.py,sha256=
|
6
|
+
blaxel/authentication/devicemode.py,sha256=JorMjo1JNbZ2sWw-cQaNG_909mdCB1Km3nzjmTdFHgs,6024
|
7
7
|
blaxel/authentication/oauth.py,sha256=Q5J0taIK1JrvGB6BC-zz3hM77HPCNu01DPGf4l7xjPQ,1417
|
8
8
|
blaxel/authentication/types.py,sha256=E3lmfbmZuJ4Bc_kGA0Kc0GZC02Sjha1_2CbabP7z6oo,1603
|
9
9
|
blaxel/cache/__init__.py,sha256=i655Ah-0hOKBQXBxLlnnMgK89GHQaOonY30Tv7tKQ04,66
|
@@ -236,10 +236,11 @@ blaxel/client/models/workspace.py,sha256=K_xs5Z6qFVgw6ShzaSBtTLIdltcpfu1Op422IA2
|
|
236
236
|
blaxel/client/models/workspace_labels.py,sha256=WbnUY6eCTkUNdY7hhhSF-KQCl8fWFfkCf7hzCTiNp4A,1246
|
237
237
|
blaxel/client/models/workspace_runtime.py,sha256=dxEpmwCFPOCRKHRKhY-iW7j6TbtL5qUsbjzSn00uTXU,1665
|
238
238
|
blaxel/client/models/workspace_user.py,sha256=70CcifQWYbeWG7TDui4pblTzUe5sVK0AS19vNCzKE8g,3423
|
239
|
-
blaxel/common/autoload.py,sha256=
|
239
|
+
blaxel/common/autoload.py,sha256=NFuK71-IHOY2JQyEBSjDCVfUaQ8D8PJsEUEryIdG4AU,263
|
240
240
|
blaxel/common/env.py,sha256=wTbzPDdNgz4HMJiS2NCZmQlN0qpxy1PQEYBaZgtvhoc,1247
|
241
|
+
blaxel/common/internal.py,sha256=J-etgnBzelb-ln8uBR9WIWzrEUyDds8rdT9FImjes9g,2390
|
241
242
|
blaxel/common/logger.py,sha256=emqgonfZMBIaQPowpngWOOZxWQieKP-yj_OzGZT8Oe8,1918
|
242
|
-
blaxel/common/settings.py,sha256=
|
243
|
+
blaxel/common/settings.py,sha256=X0g0_hIR19qfjSeWNf8qraxb_UTSbYukVHJeRHKLTn8,2138
|
243
244
|
blaxel/instrumentation/exporters.py,sha256=EoX3uaBVku1Rg49pSNXKFyHhgY5OV3Ih6UlqgjF5epw,1670
|
244
245
|
blaxel/instrumentation/log.py,sha256=4tGyvLg6r4DbjqJfajYbbZ1toUzF4Q4H7kHVqYWFAEA,2537
|
245
246
|
blaxel/instrumentation/manager.py,sha256=jVwVasyMI6tu0zv27DVYOaN57nXYuHFJ8QzJQKaNoK4,8880
|
@@ -247,7 +248,7 @@ blaxel/instrumentation/map.py,sha256=zZoiUiQHmik5WQZ4VCWNARSa6ppMi0r7D6hlb41N-Mg
|
|
247
248
|
blaxel/instrumentation/span.py,sha256=X2lwfu_dyxwQTMQJT2vbXOrbVSChEhjRLc413QOxQJM,3244
|
248
249
|
blaxel/mcp/__init__.py,sha256=KednMrtuc4Y0O3lv7u1Lla54FCk8UX9c1k0USjL3Ahk,69
|
249
250
|
blaxel/mcp/client.py,sha256=cFFXfpKXoMu8qTUly2ejF0pX2iBQkSNAxqwvDV1V6xY,4979
|
250
|
-
blaxel/mcp/server.py,sha256=
|
251
|
+
blaxel/mcp/server.py,sha256=GIldtA_NgIc2dzd7ZpPvpbhpIt_7AfKu5yS_YJ0bDGg,7310
|
251
252
|
blaxel/models/__init__.py,sha256=BawkSR3ociBSHAXr42upBiX8AFJTXFVdvnt8F_CMdpc,3880
|
252
253
|
blaxel/models/crewai.py,sha256=xsp8TmbtDjtqj5std5Gpg-yammhhgdTNL7Vlr1RSPa8,1705
|
253
254
|
blaxel/models/googleadk.py,sha256=I2rH3ZpzdrLnFhNt01XqAC73rGvQ9gnwXjIEagFWBk8,1951
|
@@ -259,7 +260,47 @@ blaxel/models/pydantic.py,sha256=4_z2KtaeEiRMt_Zz6Ghy6il-QiaXzE3yizDJnCBcWO8,332
|
|
259
260
|
blaxel/models/custom/langchain/gemini.py,sha256=AkhpuVMXnh1CyJ0zR2NMTtxQFPPHtAdHf_cyNzV3EsA,55421
|
260
261
|
blaxel/models/custom/llamaindex/cohere.py,sha256=Igj5Y1ozf1V4feIXfBHDdaTFU7od_wuOhm0yChZNxMY,19109
|
261
262
|
blaxel/models/custom/pydantic/gemini.py,sha256=rbsunh-M7EEKlD5ir3GlA-8a12JzPFcvsf6NISjzE5I,1052
|
262
|
-
blaxel/
|
263
|
+
blaxel/sandbox/base.py,sha256=Ps1RvasF1MB8h0-XRz3Sxz7UGjpAPaI6pvrfonUckHo,2106
|
264
|
+
blaxel/sandbox/filesystem.py,sha256=vBeKUp1s3Gp1vD6pccg0MDwEolz_j6S-9Bfi7WD0gxQ,4604
|
265
|
+
blaxel/sandbox/process.py,sha256=EWI6UctxdWo4Vd4VUSilABJME3g3x3ceuSuBN2mDfhM,2519
|
266
|
+
blaxel/sandbox/sandbox.py,sha256=meRE_iUx1dvlav-RIBdzQLrrHE_efBTtcbq-u9_mId4,2992
|
267
|
+
blaxel/sandbox/client/__init__.py,sha256=N26bD5o1jsTb48oExow6Rgivd8ylaU9jaWZfZsVilP8,128
|
268
|
+
blaxel/sandbox/client/client.py,sha256=tcP8cJ4Q3dV9aB3yQ01dDXO-ekfsa3WGGFz4DQAEf8I,7079
|
269
|
+
blaxel/sandbox/client/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
|
270
|
+
blaxel/sandbox/client/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
|
271
|
+
blaxel/sandbox/client/types.py,sha256=E1hhDh_zXfsSQ0NCt9-uw90_Mr5iIlsdfnfvxv5HarU,1005
|
272
|
+
blaxel/sandbox/client/api/__init__.py,sha256=zTSiG_ujSjAqWPyc435YXaX9XTlpMjiJWBbV-f-YtdA,45
|
273
|
+
blaxel/sandbox/client/api/filesystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
274
|
+
blaxel/sandbox/client/api/filesystem/delete_filesystem_path.py,sha256=PVm-a_nacy6QQb6mh_HIDx-JkiFYeUOypHZq0AtE6dA,4782
|
275
|
+
blaxel/sandbox/client/api/filesystem/get_filesystem_path.py,sha256=Hp8pM8xvi5zAjO5xujAbKxALUBJHH-JdyvWIEJ8dHo0,5010
|
276
|
+
blaxel/sandbox/client/api/filesystem/put_filesystem_path.py,sha256=GIqwjevow7sRw5Po9iraYY1Yl5UXqgv2pjUw9nle97E,4759
|
277
|
+
blaxel/sandbox/client/api/network/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
278
|
+
blaxel/sandbox/client/api/network/delete_network_process_pid_monitor.py,sha256=nhQe7a4PqBhFQ6pZxSPilcvg-tt3jP0tmuX3Po8bd9g,4581
|
279
|
+
blaxel/sandbox/client/api/network/get_network_process_pid_ports.py,sha256=2lsDR78DMqJChOHe84JCy2iTHGIEDnzDArm4SMnt3JY,4455
|
280
|
+
blaxel/sandbox/client/api/network/post_network_process_pid_monitor.py,sha256=3sUYnFyMwpypQfLBZvIcFB9v8RrhNIMOKGb1uM15pzU,5235
|
281
|
+
blaxel/sandbox/client/api/process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
282
|
+
blaxel/sandbox/client/api/process/delete_process_identifier.py,sha256=7ihlG9_R7p-sbw_4h93cnOyBGYhiWfFtpsjY6z9P7iQ,4179
|
283
|
+
blaxel/sandbox/client/api/process/delete_process_identifier_kill.py,sha256=1x_KMc7uJD_fap8uoTmZkWIDTgLJKmCTGcOP1Mr6X1E,4858
|
284
|
+
blaxel/sandbox/client/api/process/get_process.py,sha256=XWf_hNFZLkS14eWjBjir22QwdtV313_llrQGExJ7lZo,3588
|
285
|
+
blaxel/sandbox/client/api/process/get_process_identifier.py,sha256=OqmxuKKHDGX6rwS0Mavn6nnL0X_7AasPUdS5RS04URc,4159
|
286
|
+
blaxel/sandbox/client/api/process/get_process_identifier_logs.py,sha256=m34pQjMLpEUJsqkjEh0OafdNaMbDhR0NhzaJ1jWLJVk,4513
|
287
|
+
blaxel/sandbox/client/api/process/post_process.py,sha256=cemvWEtrZ24RBx3QHusE9Al_yrgQip9nBSkaQhSGUkI,4527
|
288
|
+
blaxel/sandbox/client/models/__init__.py,sha256=KiSEopbp_UpGTz_3kcRG_XDd7Vfcn3LbOAmj8Ex-PFs,1288
|
289
|
+
blaxel/sandbox/client/models/delete_network_process_pid_monitor_response_200.py,sha256=9cQgKDjG98sMridjXKgeR2oZzFKcQ0G9QIojhwYFosI,1376
|
290
|
+
blaxel/sandbox/client/models/directory.py,sha256=pHJ2lX4IjuMIdZSkb7plmzPsmALP3EwUymfH0Ra4YgA,3482
|
291
|
+
blaxel/sandbox/client/models/error_response.py,sha256=lI15zKBoD2X9yHzSiEaYGUn5TPTxWM7j1Tu5crtd23M,1581
|
292
|
+
blaxel/sandbox/client/models/file.py,sha256=-SwKgrzbXfPQfxhAp2S_P8On-vT5Ac4Q-ODKRdwdsts,2835
|
293
|
+
blaxel/sandbox/client/models/file_request.py,sha256=xOZSru-fae-En-_2YBgkHa_6iGbqbJsG3RLqBuajVY0,2227
|
294
|
+
blaxel/sandbox/client/models/file_with_content.py,sha256=CGRXhUrrYtLAxQIsJi01kFUVAt1Bkj2tFUalULLA77Q,3153
|
295
|
+
blaxel/sandbox/client/models/get_network_process_pid_ports_response_200.py,sha256=x4uv80kK0GVroWO98l5sE84a6uwZ8pnUKTpGg81ipWA,1351
|
296
|
+
blaxel/sandbox/client/models/get_process_identifier_logs_response_200.py,sha256=pEs9vxD29oxrojOgeyppXXmFVvem7beWzm5_i4TkgDc,1343
|
297
|
+
blaxel/sandbox/client/models/port_monitor_request.py,sha256=LK7sjAK1TF1ojgG4vGytaKLVtV6-SNXxfZ3sxew1cRE,1698
|
298
|
+
blaxel/sandbox/client/models/post_network_process_pid_monitor_response_200.py,sha256=Y8BvNGKU8SlzTGqhaQZk_WWIrmFpNU0LVcmLFjNvqhA,1366
|
299
|
+
blaxel/sandbox/client/models/process_kill_request.py,sha256=TqhuOmVPm_yKZj52YFv3yyu2UA8eVgXEio4sgCVAR-0,1614
|
300
|
+
blaxel/sandbox/client/models/process_request.py,sha256=FGWl2SnuHdBY-8t_YatpKwYCUfA3LMHt8RnU0hjPcLc,3598
|
301
|
+
blaxel/sandbox/client/models/process_response.py,sha256=WMfxuNTrL5wo5QT7HOR4_CTyf9XztO5cPvmtlHMdNd8,3624
|
302
|
+
blaxel/sandbox/client/models/success_response.py,sha256=JQbCUIdVJy_TJ3mp8IuvCGbKgCm_iZQMMrqn8uZkxCk,1874
|
303
|
+
blaxel/tools/__init__.py,sha256=4lzqDt0FNWcO8L0DkFzY1KTHLNtgEux66id4Psq7sXY,11520
|
263
304
|
blaxel/tools/common.py,sha256=JGK052v_fvwWBFYnIArlBnFFViYyFrqdDn3gdVf53EU,1332
|
264
305
|
blaxel/tools/crewai.py,sha256=rPrRGwkXejunJQ6In1IsYAxJPNbr6d9EckXrSIHQods,638
|
265
306
|
blaxel/tools/googleadk.py,sha256=65qJysecgAMujxsyGxuCEVL0fWoR5I489DMiSA3ZaGs,2265
|
@@ -269,7 +310,7 @@ blaxel/tools/llamaindex.py,sha256=-gQ-C9V_h9a11J4ItsbWjXrCJOg0lRKsb98v9rVsNak,71
|
|
269
310
|
blaxel/tools/openai.py,sha256=GuFXkj6bXEwldyVr89jEsRAi5ihZUVEVe327QuWiGNs,653
|
270
311
|
blaxel/tools/pydantic.py,sha256=CvnNbAG_J4yBtA-XFI4lQrq3FYKjNd39hu841vZT004,1801
|
271
312
|
blaxel/tools/types.py,sha256=YPCGJ4vZDhqR0X2H_TWtc5chQScsC32nGTQdRKJlO8Y,707
|
272
|
-
blaxel-0.1.
|
273
|
-
blaxel-0.1.
|
274
|
-
blaxel-0.1.
|
275
|
-
blaxel-0.1.
|
313
|
+
blaxel-0.1.10rc38.dist-info/METADATA,sha256=TAXdNIA59FvIxgNACgKP6H9JXvpOFT37sWICNAnhVSA,11607
|
314
|
+
blaxel-0.1.10rc38.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
315
|
+
blaxel-0.1.10rc38.dist-info/licenses/LICENSE,sha256=p5PNQvpvyDT_0aYBDgmV1fFI_vAD2aSV0wWG7VTgRis,1069
|
316
|
+
blaxel-0.1.10rc38.dist-info/RECORD,,
|
File without changes
|
File without changes
|