agenta 0.65.0__py3-none-any.whl → 0.70.1__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.
@@ -0,0 +1,48 @@
1
+ import os
2
+ from typing import TYPE_CHECKING
3
+
4
+ from agenta.sdk.workflows.runners.base import CodeRunner
5
+ from agenta.sdk.workflows.runners.local import LocalRunner
6
+
7
+ if TYPE_CHECKING:
8
+ from agenta.sdk.workflows.runners.daytona import DaytonaRunner
9
+
10
+
11
+ def _get_daytona_runner() -> "DaytonaRunner":
12
+ from agenta.sdk.workflows.runners.daytona import DaytonaRunner
13
+
14
+ return DaytonaRunner()
15
+
16
+
17
+ def get_runner() -> CodeRunner:
18
+ """
19
+ Registry to get the appropriate code runner based on environment configuration.
20
+
21
+ Uses AGENTA_SERVICES_SANDBOX_RUNNER environment variable:
22
+ - "local" (default): Uses RestrictedPython for local execution
23
+ - "daytona": Uses Daytona remote sandbox
24
+
25
+ Returns:
26
+ CodeRunner: An instance of LocalRunner or DaytonaRunner
27
+
28
+ Raises:
29
+ ValueError: If Daytona runner is selected but required environment variables are missing
30
+ """
31
+ runner_type = os.getenv("AGENTA_SERVICES_SANDBOX_RUNNER", "local").lower()
32
+
33
+ if runner_type == "daytona":
34
+ try:
35
+ return _get_daytona_runner()
36
+ except ImportError as exc:
37
+ raise ValueError(
38
+ "Daytona runner requires the 'daytona' package. "
39
+ "Install optional dependencies or set "
40
+ "AGENTA_SERVICES_SANDBOX_RUNNER=local."
41
+ ) from exc
42
+ elif runner_type == "local":
43
+ return LocalRunner()
44
+ else:
45
+ raise ValueError(
46
+ f"Unknown AGENTA_SERVICES_SANDBOX_RUNNER value: {runner_type}. "
47
+ f"Supported values: 'local', 'daytona'"
48
+ )
@@ -1,14 +1,9 @@
1
1
  from typing import Union, Text, Dict, Any
2
2
 
3
- from RestrictedPython import safe_builtins, compile_restricted, utility_builtins
4
- from RestrictedPython.Eval import (
5
- default_guarded_getiter,
6
- default_guarded_getitem,
7
- )
8
- from RestrictedPython.Guards import (
9
- guarded_iter_unpack_sequence,
10
- full_write_guard,
11
- )
3
+ from agenta.sdk.workflows.runners import get_runner
4
+
5
+ # Cache for the runner instance
6
+ _runner = None
12
7
 
13
8
 
14
9
  def is_import_safe(python_code: Text) -> bool:
@@ -36,83 +31,25 @@ def execute_code_safely(
36
31
  code: Text,
37
32
  ) -> Union[float, None]:
38
33
  """
39
- Execute the provided Python code safely using RestrictedPython.
34
+ Execute the provided Python code safely.
35
+
36
+ Uses the configured runner (local RestrictedPython or remote Daytona)
37
+ based on the AGENTA_SERVICES_SANDBOX_RUNNER environment variable.
40
38
 
41
39
  Args:
42
- - app_params (Dict[str, str]): The parameters of the app variant.
43
- - inputs (dict): Inputs to be used during code execution.
44
- - output (str): The output of the app variant after being called.
45
- - correct_answer (str): The correct answer (or target) of the app variant.
40
+ - app_params (Dict[str, Any]): The parameters of the app variant.
41
+ - inputs (Dict[str, Any]): Inputs to be used during code execution.
42
+ - output (Union[dict, str]): The output of the app variant after being called.
43
+ - correct_answer (Any): The correct answer (or target) of the app variant.
46
44
  - code (Text): The Python code to be executed.
47
- - datapoint (Dict[str, str]): The test datapoint.
48
45
 
49
46
  Returns:
50
- - (float): Result of the execution if successful. Should be between 0 and 1.
51
- - None if execution fails or result is not a float between 0 and 1.
47
+ - (float): Result of the execution if successful. Should be between 0 and 1.
48
+ - None if execution fails or result is not a float between 0 and 1.
52
49
  """
53
- # Define the available built-ins
54
- local_builtins = safe_builtins.copy()
55
-
56
- # Add the __import__ built-in function to the local builtins
57
- local_builtins["__import__"] = __import__
58
-
59
- # Define supported packages
60
- allowed_imports = [
61
- "math",
62
- "random",
63
- "datetime",
64
- "json",
65
- "requests",
66
- "typing",
67
- ]
68
-
69
- # Create a dictionary to simulate allowed imports
70
- allowed_modules = {}
71
- for package_name in allowed_imports:
72
- allowed_modules[package_name] = __import__(package_name)
73
-
74
- # Add the allowed modules to the local built-ins
75
- local_builtins.update(allowed_modules)
76
- local_builtins.update(utility_builtins)
77
-
78
- # Define the environment for the code execution
79
- environment = {
80
- "_getiter_": default_guarded_getiter,
81
- "_getitem_": default_guarded_getitem,
82
- "_iter_unpack_sequence_": guarded_iter_unpack_sequence,
83
- "_write_": full_write_guard,
84
- "__builtins__": local_builtins,
85
- }
86
-
87
- # Compile the code in a restricted environment
88
- byte_code = compile_restricted(code, filename="<inline>", mode="exec")
89
-
90
- # Call the evaluation function, extract the result if it exists
91
- # and is a float between 0 and 1
92
- try:
93
- # Execute the code
94
- exec(byte_code, environment)
95
-
96
- # Call the evaluation function, extract the result
97
- result = environment["evaluate"](app_params, inputs, output, correct_answer)
98
-
99
- # Attempt to convert result to float
100
- if isinstance(result, (float, int, str)):
101
- try:
102
- result = float(result)
103
- except ValueError as e:
104
- raise ValueError(f"Result cannot be converted to float: {e}")
105
-
106
- if not isinstance(result, float):
107
- raise TypeError(f"Result is not a float after conversion: {type(result)}")
108
-
109
- return result
110
-
111
- except KeyError as e:
112
- raise KeyError(f"Missing expected key in environment: {e}")
50
+ global _runner
113
51
 
114
- except SyntaxError as e:
115
- raise SyntaxError(f"Syntax error in provided code: {e}")
52
+ if _runner is None:
53
+ _runner = get_runner()
116
54
 
117
- except Exception as e:
118
- raise RuntimeError(f"Error during code execution: {e}")
55
+ return _runner.run(code, app_params, inputs, output, correct_answer)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agenta
3
- Version: 0.65.0
3
+ Version: 0.70.1
4
4
  Summary: The SDK for agenta is an open-source LLMOps platform.
5
5
  Keywords: LLMOps,LLM,evaluation,prompt engineering
6
6
  Author: Mahmoud Mabrouk
@@ -15,7 +15,8 @@ Classifier: Programming Language :: Python :: 3.13
15
15
  Classifier: Programming Language :: Python :: 3.14
16
16
  Classifier: Programming Language :: Python :: 3.9
17
17
  Classifier: Topic :: Software Development :: Libraries
18
- Requires-Dist: fastapi (>=0.122,<0.123)
18
+ Requires-Dist: daytona (>=0.121.0,<0.122.0)
19
+ Requires-Dist: fastapi (>=0.125)
19
20
  Requires-Dist: httpx (>=0.28,<0.29)
20
21
  Requires-Dist: importlib-metadata (>=8,<9)
21
22
  Requires-Dist: jinja2 (>=3,<4)
@@ -25,6 +26,7 @@ Requires-Dist: opentelemetry-api (>=1,<2)
25
26
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1,<2)
26
27
  Requires-Dist: opentelemetry-instrumentation (>=0.59b0,<0.60)
27
28
  Requires-Dist: opentelemetry-sdk (>=1,<2)
29
+ Requires-Dist: orjson (>=3,<4)
28
30
  Requires-Dist: pydantic (>=2,<3)
29
31
  Requires-Dist: python-dotenv (>=1,<2)
30
32
  Requires-Dist: python-jsonpath (>=2,<3)
@@ -1,4 +1,4 @@
1
- agenta/__init__.py,sha256=ltMd-tuCDxglMfUT51-XlvSqwoE9QsoYi5JSQ4WKO9Q,2597
1
+ agenta/__init__.py,sha256=OtejSy4-gUHKpLOLgQ_yHYROKaJ57u7DHuBMDTDrmJM,3677
2
2
  agenta/client/Readme.md,sha256=ZQJ_nBVYfVJizfMaD_3WPdXPBfi8okrV7i8LAUAfdu0,7604
3
3
  agenta/client/__init__.py,sha256=dXPiqGSFUGv0XIZtKXcmoMea1oRFOiTi5247VVk56Ig,10832
4
4
  agenta/client/backend/__init__.py,sha256=KmQImSlBeXCum1aWUOKN0415fAs0-CGoWgWcKhr0wmI,10559
@@ -248,7 +248,7 @@ agenta/client/backend/types/status_dto.py,sha256=uB5qmKQATBO4dbsYv90gm4a49EDXhpd
248
248
  agenta/client/backend/types/tags_request.py,sha256=2Zu42tyEoa2OfEQ_cArZ9EzRYQHfEf_F9QCmksKKvCI,770
249
249
  agenta/client/backend/types/testcase_response.py,sha256=xfCMXlt1FGFKZNOYp1IHRwGcI_35I_a7y8gUUDXIkQE,838
250
250
  agenta/client/backend/types/testset.py,sha256=wLYSXJyjvG5X-o-eRP4p6TdgPZTYDXBe7H7xtyeqczE,1399
251
- agenta/client/backend/types/testset_output_response.py,sha256=QRMX6ypP_LuwhCz-HEOBqE22CC-cEa69AJ65iSRzduA,731
251
+ agenta/client/backend/types/testset_output_response.py,sha256=eeNYr5cvEoYD1Grhr6xmEKRSfVAp17dqFJxTiqr8V0w,761
252
252
  agenta/client/backend/types/testset_request.py,sha256=-jxEdDlmtxM4Z07ruo0nyJWBKu88ElM3XcPOS4cHp7I,579
253
253
  agenta/client/backend/types/testset_response.py,sha256=KES03ufUqhK5xJhzpCK1o0N-v5lpR-BQF3cov9bas2g,619
254
254
  agenta/client/backend/types/testset_simple_response.py,sha256=qQnuFDPhqFeRzKcBNxRyXHe5KktG5NZOs6WoE7PKSCg,582
@@ -306,8 +306,8 @@ agenta/client/types.py,sha256=wBGDVktTL2EblEKW23Y-VrFp7V_JHLPMHltt2jEkF0Q,129
306
306
  agenta/config.py,sha256=0VrTqduB4g8Mt_Ll7ffFcEjKF5qjTUIxmUtTPW2ygWw,653
307
307
  agenta/config.toml,sha256=sIORbhnyct2R9lJrquxhNL4pHul3O0R7iaipCoja5MY,193
308
308
  agenta/sdk/__init__.py,sha256=7QUpZ409HcLB22A80qaZydzhs6afPnCvG0Tfq6PE4fk,3011
309
- agenta/sdk/agenta_init.py,sha256=hBFb0weC54fIReu95779ueUYlBZDqK446nUi8gTdZNE,7280
310
- agenta/sdk/assets.py,sha256=51uSUp-qlFLB-nLSrDDTDXOQhM-2yGIuODgALYt1i9Y,8699
309
+ agenta/sdk/agenta_init.py,sha256=KiZpk0cfzvKNUtO5S0I_FQghcy8AKRkSxDtVjlZaNkw,9950
310
+ agenta/sdk/assets.py,sha256=c7fbv-ZJdoY8xcHwTJfgT9UeSSamfZuhimfPNYyQZ_k,8865
311
311
  agenta/sdk/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
312
312
  agenta/sdk/context/running.py,sha256=3gEuUdQrJwcuN93MlXFZ6aHXNxUW6dUk_EudgaxOkCU,907
313
313
  agenta/sdk/context/serving.py,sha256=jGRd6v4wWNNoDFM7PJ4ct0MXcMDAVY6puPuseSeIL60,960
@@ -333,9 +333,9 @@ agenta/sdk/engines/tracing/inline.py,sha256=y2S_MGGqmXgyUgbkNNyrb8_X-QtGuDy8Jwxl
333
333
  agenta/sdk/engines/tracing/processors.py,sha256=lRhT-ifu1LEPMOoqMzeX_qtWQ0cHbodUpSjlBGZcDZA,5149
334
334
  agenta/sdk/engines/tracing/propagation.py,sha256=Zu_z5In8eOhy0tkYzQOI09T4OwdjGMP74nhzvElvyFE,2593
335
335
  agenta/sdk/engines/tracing/spans.py,sha256=luZ6lB1mBqrilm2hXZx2ELx6sBQmZM9wThdr8G-yeyM,3715
336
- agenta/sdk/engines/tracing/tracing.py,sha256=NF3Vl_FzzH_rxRRu2puTUAbX34KHcz8olhqGbf7RARE,9281
336
+ agenta/sdk/engines/tracing/tracing.py,sha256=pt40BWz_GA6ycogPrqNhddpvrufB-vAVClIBGI9ON_s,9284
337
337
  agenta/sdk/evaluations/__init__.py,sha256=hFb_O8aNkDS0LuZxJYydLxvYLIBPNuab7JIYL87OXPc,105
338
- agenta/sdk/evaluations/metrics.py,sha256=AQGQau5njqc6dfPZHbry5tVep3cmuzi4woRM26cqP60,830
338
+ agenta/sdk/evaluations/metrics.py,sha256=rBXxPpI9T1QLI1AB6JXEFeCEGCCAjrzG9KBTOeLm04o,841
339
339
  agenta/sdk/evaluations/preview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
340
  agenta/sdk/evaluations/preview/evaluate.py,sha256=fUVVsGlSwpdE97e2iCnGJKyHi-DeZzZwDedTEmgSyY8,27450
341
341
  agenta/sdk/evaluations/preview/utils.py,sha256=o-9GvQDhLgnbQ81r8A9zj49BDtd9Pe5_oJlO9ay_qTg,32049
@@ -343,7 +343,7 @@ agenta/sdk/evaluations/results.py,sha256=3pe2c0oI1Wc1wFCKFeQnbe_iwtNn9U0MO_c4U3H
343
343
  agenta/sdk/evaluations/runs.py,sha256=8euS2Zfzcw9a7SDOnhK4DymuYNIjIXQ1iWlRuuf0q78,3398
344
344
  agenta/sdk/evaluations/scenarios.py,sha256=XlsVa_M8FmnSvVniF_FEZUhZDLYIotx4V0SRmPEzWS8,1024
345
345
  agenta/sdk/litellm/__init__.py,sha256=Bpz1gfHQc0MN1yolWcjifLWznv6GjHggvRGQSpxpihM,37
346
- agenta/sdk/litellm/litellm.py,sha256=E7omr9kz0yn8CUK5O0g0QUlDA4bD5fllYtHK9RL2bXE,10646
346
+ agenta/sdk/litellm/litellm.py,sha256=5UJ9PcxwocgskHjrwKDW1XCz5y4OxUHq2dL2EwTXkq0,11288
347
347
  agenta/sdk/litellm/mockllm.py,sha256=R32eoGvXokxNk0WihgP8rIdd5mTwCPXF--U5NDisnJE,2255
348
348
  agenta/sdk/litellm/mocks/__init__.py,sha256=dqTLo5sFH6IkjyunWPuBPpahfZ-cbUHOkRloTWTq7BY,5262
349
349
  agenta/sdk/managers/__init__.py,sha256=SN-LRwG0pRRDV3u2Q4JiiSTigN3-mYpzGNM35RzT4mc,238
@@ -359,13 +359,13 @@ agenta/sdk/managers/testsets.py,sha256=m8U6LA-ZuS_8sm_sIFR2rUXFScNncMZ52Ps1hSPt-
359
359
  agenta/sdk/managers/variant.py,sha256=A5ga3mq3b0weUTXa9HO72MGaspthGcu1uK9K5OnP738,4172
360
360
  agenta/sdk/managers/vault.py,sha256=wqDVFPuUi-Zida9zVhuHeW6y63K2kez1-4Kk5U0dY48,334
361
361
  agenta/sdk/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
362
- agenta/sdk/middleware/auth.py,sha256=z-FEr9UbcxM0snf_2KlW1O7GvQFMf2ZET-wxSs4CDkI,10233
362
+ agenta/sdk/middleware/auth.py,sha256=UUwqEfsrNt49U1hs-Qfjsjkl5t7-I25VWhS7dsrHqJs,10528
363
363
  agenta/sdk/middleware/config.py,sha256=0eKRkARI0fkXwmq3NNL4x7iOue0_xN3RQCgoHk8guTc,8723
364
364
  agenta/sdk/middleware/cors.py,sha256=q3r7lGkrIdMcT_vuhsburMcjG7pyl7w0ycxrIrGJ2e8,921
365
365
  agenta/sdk/middleware/inline.py,sha256=ee8E4XBGcRSrHTvblqX1yRXuTN_sxLm7lY1jnywrBG8,901
366
366
  agenta/sdk/middleware/mock.py,sha256=bCUN9iJBxePyN9MBwBpJs-_iCNkUQeUjIIu3WElS1oQ,759
367
- agenta/sdk/middleware/otel.py,sha256=lHzhGUv4fq2RPuTPH2keJ16v-_cBUrLrTqWzHUmEVdI,1041
368
- agenta/sdk/middleware/vault.py,sha256=0fMsNY0HOxm4tmkgchxGe6EfaOMdvS-gzs3E7zoAhQI,12200
367
+ agenta/sdk/middleware/otel.py,sha256=M0cIFdRXVx17g3Nh2bvPjjVBBjoKwyI0MrGtJ4aGjjA,886
368
+ agenta/sdk/middleware/vault.py,sha256=xPrR8XUAMG7pgJ4SKMJxAlrfQGgeeIHFoJ-gYfqVWj0,12471
369
369
  agenta/sdk/middlewares/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
370
370
  agenta/sdk/middlewares/routing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
371
371
  agenta/sdk/middlewares/routing/auth.py,sha256=WmZLxSu4lj9ltI-SpF31MAfAp7uJh3-E9T-U2L4Y58g,10476
@@ -374,12 +374,12 @@ agenta/sdk/middlewares/routing/otel.py,sha256=w-J7PpoBSyWYAFeoqAHxywjMuYMaW_eJ-t
374
374
  agenta/sdk/middlewares/running/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
375
375
  agenta/sdk/middlewares/running/normalizer.py,sha256=8D7iJkYDbqWiQEGISZOInZCyEjqyOlXETTq3dvDWFac,11384
376
376
  agenta/sdk/middlewares/running/resolver.py,sha256=I4nX7jpsq7oKSwQnlsoLm9kh94G2qxBdablJob1l_fs,5013
377
- agenta/sdk/middlewares/running/vault.py,sha256=DqeWyViDDRJycXtRKEO1S7ihlBfCnPFtXSfj_6trW98,3845
377
+ agenta/sdk/middlewares/running/vault.py,sha256=C4bKrQOdSc1L16peAm9adOw-hOlEnbN4CQSLtp_C4L4,3839
378
378
  agenta/sdk/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
379
379
  agenta/sdk/models/blobs.py,sha256=g8zV6V3UcuskEV6tK_tvt8GDWqx1okfE3Oy4n59mgU0,576
380
- agenta/sdk/models/evaluations.py,sha256=HQfV2Wyt7FINgaNlup9NAWQSgRVu6eaEDB6D2mqbQlI,2599
380
+ agenta/sdk/models/evaluations.py,sha256=twHFZQlAT2xYSqefJdpwtDLSu5GpsDmswV_o04ACyFs,3003
381
381
  agenta/sdk/models/git.py,sha256=ol5H3lu6s3Lx2l7K3glbCqcvAnPXsDsYa-OsSR0CupM,2415
382
- agenta/sdk/models/shared.py,sha256=ynHFXsOgkpvzHJuBcmPp2lMj7ia6x0e9LvNAiKVpPSo,4020
382
+ agenta/sdk/models/shared.py,sha256=zZz0dqSjOhtfGdXq7_zMe35AuUdb2moIoyZafQxUhyM,4022
383
383
  agenta/sdk/models/testsets.py,sha256=cHCZEWqnDMGqKKH9yVuM5FroG10YFKJ4nF5xZniE-Ds,3415
384
384
  agenta/sdk/models/tracing.py,sha256=adxOguxuU_uFRL1sGWPr31xCHs9qnfkD92xYcgHEDdA,5079
385
385
  agenta/sdk/models/workflows.py,sha256=VhPPK4V15pkrbI3otA9RxmoXvTeVd_KHVmYK86iw_MU,18997
@@ -387,12 +387,12 @@ agenta/sdk/router.py,sha256=mOguvtOwl2wmyAgOuWTsf98pQwpNiUILKIo67W_hR3A,119
387
387
  agenta/sdk/tracing/__init__.py,sha256=rQNe5-zT5Kt7_CDhq-lnUIi1EYTBVzVf_MbfcIxVD98,41
388
388
  agenta/sdk/tracing/attributes.py,sha256=Brqle9hGV3DaEJjeYCBq7MDlbvHMAIwmkUj2Lni8dF4,5563
389
389
  agenta/sdk/tracing/conventions.py,sha256=JBtznBXZ3aRkGKkLl7cPwdMNh3w1G-H2Ta2YrAxbr38,950
390
- agenta/sdk/tracing/exporters.py,sha256=NYqw80liPrs91ywkkQC13530pPmpUZguPgTEDO0JKFs,5118
390
+ agenta/sdk/tracing/exporters.py,sha256=6KEI3ESEJaMqktnq0DyTljWRXSVNBv6qcHezfVI9apA,5178
391
391
  agenta/sdk/tracing/inline.py,sha256=UKt10JGKdS6gVDIpExng3UC8vegAcuA2KxlzyvSdUZ0,31886
392
- agenta/sdk/tracing/processors.py,sha256=A7rsaicpFq9xZgyhU3hV5ZQoz6X33gB81G9IhB-x3Xg,8597
392
+ agenta/sdk/tracing/processors.py,sha256=AXCVPLgvUXRHuJwaHvG6K0TkP3pUnSeVk3en6wu3n6s,9019
393
393
  agenta/sdk/tracing/propagation.py,sha256=Zu_z5In8eOhy0tkYzQOI09T4OwdjGMP74nhzvElvyFE,2593
394
394
  agenta/sdk/tracing/spans.py,sha256=r-R68d12BjvilHgbqN-1xp26qxdVRzxRcFUO-IB_u94,3780
395
- agenta/sdk/tracing/tracing.py,sha256=5M_cyptJFR9wnMcRktSB5atjYSTZ8CsdwYtAbFXhRpI,9233
395
+ agenta/sdk/tracing/tracing.py,sha256=dP2LShcNBtWqGQKQBAGA52dDqNN15IcKcvXz_EwHigI,12200
396
396
  agenta/sdk/types.py,sha256=41yIQagl5L_7WFInjiACHwuNfCQqDrrDOusD17kJGWs,28469
397
397
  agenta/sdk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
398
398
  agenta/sdk/utils/cache.py,sha256=Er1Hvu1QVLGl99HkUHZ2lKBg3f6PnpkD1uZRvK9r3u4,1429
@@ -414,8 +414,13 @@ agenta/sdk/workflows/configurations.py,sha256=k1YGP3y49WwiFMaQ1rKpCHqCYWWe6nQ7EP
414
414
  agenta/sdk/workflows/errors.py,sha256=x582njGfNTMfu4v8bhHdU_Wf_oa8_mHXc3CEE9F2ZBk,8350
415
415
  agenta/sdk/workflows/handlers.py,sha256=z_DtfgiejsToO4kqXvXBnO36hd0rk97Y2J2hYlIfZmo,59496
416
416
  agenta/sdk/workflows/interfaces.py,sha256=I5Bfil0awdL1TAb_vHqW5n5BHxSBOTuDMhOi4RnUt8A,36315
417
- agenta/sdk/workflows/sandbox.py,sha256=pzy5mdNDjBAQu1qFwMAxHirWiKX20mq2i7lrwA-ABjc,3816
417
+ agenta/sdk/workflows/runners/__init__.py,sha256=HoYaKf9G03WEUbY7B1uX4O_6xE5dfliNCG1nEuWp1ks,87
418
+ agenta/sdk/workflows/runners/base.py,sha256=WgX0OgbLL5PHeGqLNAvrV7NC3FHDWVfU7v9EBj8MIW0,857
419
+ agenta/sdk/workflows/runners/daytona.py,sha256=PqpbXh3HD_SZoS5lMYBW2lE7i0pepTzTDfHir5dNhv0,9531
420
+ agenta/sdk/workflows/runners/local.py,sha256=SJ1msO35mQ4XzlqZi9fE25QJu-PDnYru8a66pMo-5vs,3636
421
+ agenta/sdk/workflows/runners/registry.py,sha256=QKU_6IXMcbdq_kxoQlOhjVBJ9nBq07QqHIBxFqSI7Uk,1556
422
+ agenta/sdk/workflows/sandbox.py,sha256=O1Opeg4hc9jygAzyF5cCsStmMjYgrahA_aF0JdGbBO0,1734
418
423
  agenta/sdk/workflows/utils.py,sha256=UDG5or8qqiSCpqi0Fphjxkkhu4MdbiCkHn_yIQcTd0c,11664
419
- agenta-0.65.0.dist-info/METADATA,sha256=ra40-qrD1LG0M-Tzdl-P_NAa0ea7DXyqpR6IxUf8F_8,31528
420
- agenta-0.65.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
421
- agenta-0.65.0.dist-info/RECORD,,
424
+ agenta-0.70.1.dist-info/METADATA,sha256=-w_Gfj3Sz_2mDtULdrTUoviZQoL2botY1pg-pYjrk9c,31596
425
+ agenta-0.70.1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
426
+ agenta-0.70.1.dist-info/RECORD,,