blaxel 0.1.9rc37__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.
Files changed (49) hide show
  1. blaxel/authentication/__init__.py +11 -2
  2. blaxel/authentication/devicemode.py +1 -0
  3. blaxel/common/autoload.py +1 -0
  4. blaxel/common/internal.py +5 -5
  5. blaxel/sandbox/base.py +68 -0
  6. blaxel/sandbox/client/__init__.py +8 -0
  7. blaxel/sandbox/client/api/__init__.py +1 -0
  8. blaxel/sandbox/client/api/filesystem/__init__.py +0 -0
  9. blaxel/sandbox/client/api/filesystem/delete_filesystem_path.py +184 -0
  10. blaxel/sandbox/client/api/filesystem/get_filesystem_path.py +184 -0
  11. blaxel/sandbox/client/api/filesystem/put_filesystem_path.py +189 -0
  12. blaxel/sandbox/client/api/network/__init__.py +0 -0
  13. blaxel/sandbox/client/api/network/delete_network_process_pid_monitor.py +169 -0
  14. blaxel/sandbox/client/api/network/get_network_process_pid_ports.py +169 -0
  15. blaxel/sandbox/client/api/network/post_network_process_pid_monitor.py +195 -0
  16. blaxel/sandbox/client/api/process/__init__.py +0 -0
  17. blaxel/sandbox/client/api/process/delete_process_identifier.py +163 -0
  18. blaxel/sandbox/client/api/process/delete_process_identifier_kill.py +189 -0
  19. blaxel/sandbox/client/api/process/get_process.py +135 -0
  20. blaxel/sandbox/client/api/process/get_process_identifier.py +159 -0
  21. blaxel/sandbox/client/api/process/get_process_identifier_logs.py +167 -0
  22. blaxel/sandbox/client/api/process/post_process.py +176 -0
  23. blaxel/sandbox/client/client.py +162 -0
  24. blaxel/sandbox/client/errors.py +16 -0
  25. blaxel/sandbox/client/models/__init__.py +35 -0
  26. blaxel/sandbox/client/models/delete_network_process_pid_monitor_response_200.py +45 -0
  27. blaxel/sandbox/client/models/directory.py +110 -0
  28. blaxel/sandbox/client/models/error_response.py +60 -0
  29. blaxel/sandbox/client/models/file.py +105 -0
  30. blaxel/sandbox/client/models/file_request.py +78 -0
  31. blaxel/sandbox/client/models/file_with_content.py +114 -0
  32. blaxel/sandbox/client/models/get_network_process_pid_ports_response_200.py +45 -0
  33. blaxel/sandbox/client/models/get_process_identifier_logs_response_200.py +45 -0
  34. blaxel/sandbox/client/models/port_monitor_request.py +60 -0
  35. blaxel/sandbox/client/models/post_network_process_pid_monitor_response_200.py +45 -0
  36. blaxel/sandbox/client/models/process_kill_request.py +60 -0
  37. blaxel/sandbox/client/models/process_request.py +118 -0
  38. blaxel/sandbox/client/models/process_response.py +123 -0
  39. blaxel/sandbox/client/models/success_response.py +69 -0
  40. blaxel/sandbox/client/py.typed +1 -0
  41. blaxel/sandbox/client/types.py +46 -0
  42. blaxel/sandbox/filesystem.py +102 -0
  43. blaxel/sandbox/process.py +57 -0
  44. blaxel/sandbox/sandbox.py +92 -0
  45. blaxel/tools/__init__.py +1 -1
  46. {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/METADATA +1 -1
  47. {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/RECORD +49 -9
  48. {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/WHEEL +0 -0
  49. {blaxel-0.1.9rc37.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,10 +1,10 @@
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
7
- import traceback
8
8
 
9
9
  from mcp import ClientSession
10
10
  from mcp.types import CallToolResult
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blaxel
3
- Version: 0.1.9rc37
3
+ Version: 0.1.10rc38
4
4
  Summary: Add your description here
5
5
  Author-email: cploujoux <cploujoux@blaxel.ai>
6
6
  License-File: LICENSE
@@ -1,9 +1,9 @@
1
1
  blaxel/__init__.py,sha256=qmuJKjl5oGnjj4TbqHcJqUkKoxk4PvCsMb6-8rp67pE,159
2
2
  blaxel/agents/__init__.py,sha256=RDWkvfICIXXaQxJuuSu63jsFj_F8NBAL4U752hfN4AE,5262
3
- blaxel/authentication/__init__.py,sha256=WInBOiziLiEbBcrE0QXF10Ue2HJkL8aCIXjNcF5OvTA,2942
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=kWbArs4okIIDqW-ql5oV2eQRE_LpRwfadCB6LG83irw,5986
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,9 +236,9 @@ 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=gPDNZrVzh28iYUwUbwKudf5y0SvcJ9zBgWibVXEN3fM,262
239
+ blaxel/common/autoload.py,sha256=NFuK71-IHOY2JQyEBSjDCVfUaQ8D8PJsEUEryIdG4AU,263
240
240
  blaxel/common/env.py,sha256=wTbzPDdNgz4HMJiS2NCZmQlN0qpxy1PQEYBaZgtvhoc,1247
241
- blaxel/common/internal.py,sha256=3jIr8wDbi5ErR_N8jebaqize6SEnImq0XcGXnc7EPN8,2406
241
+ blaxel/common/internal.py,sha256=J-etgnBzelb-ln8uBR9WIWzrEUyDds8rdT9FImjes9g,2390
242
242
  blaxel/common/logger.py,sha256=emqgonfZMBIaQPowpngWOOZxWQieKP-yj_OzGZT8Oe8,1918
243
243
  blaxel/common/settings.py,sha256=X0g0_hIR19qfjSeWNf8qraxb_UTSbYukVHJeRHKLTn8,2138
244
244
  blaxel/instrumentation/exporters.py,sha256=EoX3uaBVku1Rg49pSNXKFyHhgY5OV3Ih6UlqgjF5epw,1670
@@ -260,7 +260,47 @@ blaxel/models/pydantic.py,sha256=4_z2KtaeEiRMt_Zz6Ghy6il-QiaXzE3yizDJnCBcWO8,332
260
260
  blaxel/models/custom/langchain/gemini.py,sha256=AkhpuVMXnh1CyJ0zR2NMTtxQFPPHtAdHf_cyNzV3EsA,55421
261
261
  blaxel/models/custom/llamaindex/cohere.py,sha256=Igj5Y1ozf1V4feIXfBHDdaTFU7od_wuOhm0yChZNxMY,19109
262
262
  blaxel/models/custom/pydantic/gemini.py,sha256=rbsunh-M7EEKlD5ir3GlA-8a12JzPFcvsf6NISjzE5I,1052
263
- blaxel/tools/__init__.py,sha256=Ihxy3AHgh4eUK4hbVf01w6jemjZynbZ4xxK9vTd0l-k,11520
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
264
304
  blaxel/tools/common.py,sha256=JGK052v_fvwWBFYnIArlBnFFViYyFrqdDn3gdVf53EU,1332
265
305
  blaxel/tools/crewai.py,sha256=rPrRGwkXejunJQ6In1IsYAxJPNbr6d9EckXrSIHQods,638
266
306
  blaxel/tools/googleadk.py,sha256=65qJysecgAMujxsyGxuCEVL0fWoR5I489DMiSA3ZaGs,2265
@@ -270,7 +310,7 @@ blaxel/tools/llamaindex.py,sha256=-gQ-C9V_h9a11J4ItsbWjXrCJOg0lRKsb98v9rVsNak,71
270
310
  blaxel/tools/openai.py,sha256=GuFXkj6bXEwldyVr89jEsRAi5ihZUVEVe327QuWiGNs,653
271
311
  blaxel/tools/pydantic.py,sha256=CvnNbAG_J4yBtA-XFI4lQrq3FYKjNd39hu841vZT004,1801
272
312
  blaxel/tools/types.py,sha256=YPCGJ4vZDhqR0X2H_TWtc5chQScsC32nGTQdRKJlO8Y,707
273
- blaxel-0.1.9rc37.dist-info/METADATA,sha256=CwCyqpx3AtQTXCJEFxTt4Ikuz1VSK1WMyIF1q-ye9Rs,11606
274
- blaxel-0.1.9rc37.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
275
- blaxel-0.1.9rc37.dist-info/licenses/LICENSE,sha256=p5PNQvpvyDT_0aYBDgmV1fFI_vAD2aSV0wWG7VTgRis,1069
276
- blaxel-0.1.9rc37.dist-info/RECORD,,
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,,