agentex-sdk 0.8.1__py3-none-any.whl → 0.9.0__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.
- agentex/_base_client.py +134 -11
- agentex/_models.py +16 -1
- agentex/_types.py +9 -0
- agentex/_version.py +1 -1
- agentex/lib/cli/commands/agents.py +141 -73
- agentex/lib/cli/commands/init.py +13 -2
- agentex/lib/cli/handlers/agent_handlers.py +130 -12
- agentex/lib/cli/templates/sync-openai-agents/.dockerignore.j2 +43 -0
- agentex/lib/cli/templates/sync-openai-agents/Dockerfile-uv.j2 +42 -0
- agentex/lib/cli/templates/sync-openai-agents/Dockerfile.j2 +43 -0
- agentex/lib/cli/templates/sync-openai-agents/README.md.j2 +313 -0
- agentex/lib/cli/templates/sync-openai-agents/dev.ipynb.j2 +167 -0
- agentex/lib/cli/templates/sync-openai-agents/environments.yaml.j2 +53 -0
- agentex/lib/cli/templates/sync-openai-agents/manifest.yaml.j2 +115 -0
- agentex/lib/cli/templates/sync-openai-agents/project/acp.py.j2 +137 -0
- agentex/lib/cli/templates/sync-openai-agents/pyproject.toml.j2 +32 -0
- agentex/lib/cli/templates/sync-openai-agents/requirements.txt.j2 +5 -0
- agentex/lib/cli/templates/sync-openai-agents/test_agent.py.j2 +70 -0
- agentex/lib/sdk/config/environment_config.py +113 -73
- agentex/lib/sdk/config/validation.py +62 -61
- {agentex_sdk-0.8.1.dist-info → agentex_sdk-0.9.0.dist-info}/METADATA +1 -1
- {agentex_sdk-0.8.1.dist-info → agentex_sdk-0.9.0.dist-info}/RECORD +25 -14
- {agentex_sdk-0.8.1.dist-info → agentex_sdk-0.9.0.dist-info}/licenses/LICENSE +1 -1
- {agentex_sdk-0.8.1.dist-info → agentex_sdk-0.9.0.dist-info}/WHEEL +0 -0
- {agentex_sdk-0.8.1.dist-info → agentex_sdk-0.9.0.dist-info}/entry_points.txt +0 -0
|
@@ -4,6 +4,7 @@ Validation framework for agent configuration files.
|
|
|
4
4
|
This module provides validation functions for agent configurations,
|
|
5
5
|
with clear error messages and best practices enforcement.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
from __future__ import annotations
|
|
8
9
|
|
|
9
10
|
from typing import Any, Dict, List, Optional
|
|
@@ -17,7 +18,7 @@ logger = make_logger(__name__)
|
|
|
17
18
|
|
|
18
19
|
class ConfigValidationError(Exception):
|
|
19
20
|
"""Exception raised when configuration validation fails."""
|
|
20
|
-
|
|
21
|
+
|
|
21
22
|
def __init__(self, message: str, file_path: Optional[str] = None):
|
|
22
23
|
self.file_path = file_path
|
|
23
24
|
super().__init__(message)
|
|
@@ -25,88 +26,95 @@ class ConfigValidationError(Exception):
|
|
|
25
26
|
|
|
26
27
|
class EnvironmentsValidationError(ConfigValidationError):
|
|
27
28
|
"""Exception raised when environments.yaml validation fails."""
|
|
29
|
+
|
|
28
30
|
pass
|
|
29
31
|
|
|
30
32
|
|
|
31
33
|
def validate_environments_config(
|
|
32
|
-
environments_config: AgentEnvironmentsConfig,
|
|
33
|
-
required_environments: Optional[List[str]] = None
|
|
34
|
+
environments_config: AgentEnvironmentsConfig, required_environments: Optional[List[str]] = None
|
|
34
35
|
) -> None:
|
|
35
36
|
"""
|
|
36
37
|
Validate environments configuration with comprehensive checks.
|
|
37
|
-
|
|
38
|
+
|
|
38
39
|
Args:
|
|
39
40
|
environments_config: The loaded environments configuration
|
|
40
41
|
required_environments: List of environment names that must be present
|
|
41
|
-
|
|
42
|
+
|
|
42
43
|
Raises:
|
|
43
44
|
EnvironmentsValidationError: If validation fails
|
|
44
45
|
"""
|
|
45
46
|
# Check for required environments
|
|
46
47
|
if required_environments:
|
|
48
|
+
# this must exist as a top-level key or via the environment indicator
|
|
47
49
|
missing_envs: List[str] = []
|
|
50
|
+
environment_mappings = [env.environment for env in environments_config.environments.values() if env.environment]
|
|
51
|
+
top_level_envs = [env for env in environments_config.environments]
|
|
52
|
+
all_envs = set(environment_mappings + top_level_envs)
|
|
48
53
|
for env_name in required_environments:
|
|
49
|
-
if env_name not in
|
|
54
|
+
if env_name not in all_envs:
|
|
50
55
|
missing_envs.append(env_name)
|
|
51
|
-
|
|
56
|
+
|
|
52
57
|
if missing_envs:
|
|
53
|
-
available_envs = list(environments_config.environments.keys())
|
|
54
58
|
raise EnvironmentsValidationError(
|
|
55
59
|
f"Missing required environments: {', '.join(missing_envs)}. "
|
|
56
|
-
f"Available environments: {', '.join(
|
|
60
|
+
f"Available environments: {', '.join(all_envs)}"
|
|
57
61
|
)
|
|
58
|
-
|
|
62
|
+
|
|
63
|
+
# if environment mappings are set, you cannot have a top-level env_name that maps to an `environment: value`
|
|
64
|
+
# and another environment that has the mapping i.e.
|
|
65
|
+
# enviorments:
|
|
66
|
+
# dev:
|
|
67
|
+
# ....
|
|
68
|
+
# dev1:
|
|
69
|
+
# environment: dev
|
|
70
|
+
# this is invalid because its unclear if "dev" refers to just that top-level environment or the mapping
|
|
71
|
+
#
|
|
59
72
|
# Validate each environment configuration
|
|
60
73
|
for env_name, env_config in environments_config.environments.items():
|
|
61
74
|
try:
|
|
62
75
|
_validate_single_environment_config(env_name, env_config)
|
|
63
76
|
except Exception as e:
|
|
64
|
-
raise EnvironmentsValidationError(
|
|
65
|
-
f"Environment '{env_name}' configuration error: {str(e)}"
|
|
66
|
-
) from e
|
|
77
|
+
raise EnvironmentsValidationError(f"Environment '{env_name}' configuration error: {str(e)}") from e
|
|
67
78
|
|
|
68
79
|
|
|
69
80
|
def _validate_single_environment_config(env_name: str, env_config: AgentEnvironmentConfig) -> None:
|
|
70
81
|
"""
|
|
71
82
|
Validate a single environment configuration.
|
|
72
|
-
|
|
83
|
+
|
|
73
84
|
Args:
|
|
74
85
|
env_name: Name of the environment
|
|
75
86
|
env_config: AgentEnvironmentConfig instance
|
|
76
|
-
|
|
87
|
+
|
|
77
88
|
Raises:
|
|
78
89
|
ValueError: If validation fails
|
|
79
90
|
"""
|
|
80
91
|
# Validate namespace naming conventions if kubernetes config exists
|
|
81
92
|
if env_config.kubernetes and env_config.kubernetes.namespace:
|
|
82
93
|
namespace = env_config.kubernetes.namespace
|
|
83
|
-
|
|
94
|
+
|
|
84
95
|
# Check for common namespace naming issues
|
|
85
96
|
if namespace != namespace.lower():
|
|
86
97
|
logger.warning(
|
|
87
|
-
f"Namespace '{namespace}' contains uppercase letters. "
|
|
88
|
-
"Kubernetes namespaces should be lowercase."
|
|
98
|
+
f"Namespace '{namespace}' contains uppercase letters. Kubernetes namespaces should be lowercase."
|
|
89
99
|
)
|
|
90
|
-
|
|
91
|
-
if namespace.startswith(
|
|
92
|
-
raise ValueError(
|
|
93
|
-
|
|
94
|
-
)
|
|
95
|
-
|
|
100
|
+
|
|
101
|
+
if namespace.startswith("-") or namespace.endswith("-"):
|
|
102
|
+
raise ValueError(f"Namespace '{namespace}' cannot start or end with hyphens")
|
|
103
|
+
|
|
96
104
|
# Validate auth principal
|
|
97
105
|
principal = env_config.auth.principal
|
|
98
|
-
if not principal.get(
|
|
106
|
+
if not principal.get("user_id"):
|
|
99
107
|
raise ValueError("Auth principal must contain non-empty 'user_id'")
|
|
100
|
-
|
|
108
|
+
|
|
101
109
|
# Check for environment-specific user_id patterns
|
|
102
|
-
user_id = principal[
|
|
110
|
+
user_id = principal["user_id"]
|
|
103
111
|
if isinstance(user_id, str):
|
|
104
|
-
if not any(env_name.lower() in user_id.lower() for env_name in [
|
|
112
|
+
if not any(env_name.lower() in user_id.lower() for env_name in ["dev", "prod", "staging", env_name]):
|
|
105
113
|
logger.warning(
|
|
106
114
|
f"User ID '{user_id}' doesn't contain environment indicator. "
|
|
107
115
|
f"Consider including '{env_name}' in the user_id for clarity."
|
|
108
116
|
)
|
|
109
|
-
|
|
117
|
+
|
|
110
118
|
# Validate helm overrides if present
|
|
111
119
|
if env_config.helm_overrides:
|
|
112
120
|
_validate_helm_overrides(env_config.helm_overrides)
|
|
@@ -115,26 +123,26 @@ def _validate_single_environment_config(env_name: str, env_config: AgentEnvironm
|
|
|
115
123
|
def _validate_helm_overrides(helm_overrides: Dict[str, Any]) -> None:
|
|
116
124
|
"""
|
|
117
125
|
Validate helm override configuration.
|
|
118
|
-
|
|
126
|
+
|
|
119
127
|
Args:
|
|
120
128
|
helm_overrides: Dictionary of helm overrides
|
|
121
|
-
|
|
129
|
+
|
|
122
130
|
Raises:
|
|
123
131
|
ValueError: If validation fails
|
|
124
132
|
"""
|
|
125
133
|
# Check for common helm override issues
|
|
126
|
-
if
|
|
127
|
-
resources = helm_overrides[
|
|
134
|
+
if "resources" in helm_overrides:
|
|
135
|
+
resources = helm_overrides["resources"]
|
|
128
136
|
if isinstance(resources, dict):
|
|
129
137
|
# Validate resource format
|
|
130
|
-
if
|
|
131
|
-
for resource_type in [
|
|
138
|
+
if "requests" in resources or "limits" in resources:
|
|
139
|
+
for resource_type in ["requests", "limits"]:
|
|
132
140
|
if resource_type in resources:
|
|
133
141
|
resource_config: Any = resources[resource_type]
|
|
134
142
|
if isinstance(resource_config, dict):
|
|
135
143
|
# Check for valid resource specifications
|
|
136
144
|
for key, value in resource_config.items():
|
|
137
|
-
if key in [
|
|
145
|
+
if key in ["cpu", "memory"] and not isinstance(value, str):
|
|
138
146
|
logger.warning(
|
|
139
147
|
f"Resource {key} should be a string (e.g., '500m', '1Gi'), "
|
|
140
148
|
f"got {type(value).__name__}: {value}"
|
|
@@ -144,13 +152,13 @@ def _validate_helm_overrides(helm_overrides: Dict[str, Any]) -> None:
|
|
|
144
152
|
def validate_environments_yaml_file(file_path: str) -> AgentEnvironmentsConfig:
|
|
145
153
|
"""
|
|
146
154
|
Load and validate environments.yaml file.
|
|
147
|
-
|
|
155
|
+
|
|
148
156
|
Args:
|
|
149
157
|
file_path: Path to environments.yaml file
|
|
150
|
-
|
|
158
|
+
|
|
151
159
|
Returns:
|
|
152
160
|
Validated AgentEnvironmentsConfig
|
|
153
|
-
|
|
161
|
+
|
|
154
162
|
Raises:
|
|
155
163
|
EnvironmentsValidationError: If file is invalid
|
|
156
164
|
"""
|
|
@@ -164,66 +172,59 @@ def validate_environments_yaml_file(file_path: str) -> AgentEnvironmentsConfig:
|
|
|
164
172
|
"📋 Why required:\n"
|
|
165
173
|
" Environment-specific settings (auth, namespace, resources)\n"
|
|
166
174
|
" must be separated from global manifest for proper isolation.",
|
|
167
|
-
file_path=file_path
|
|
175
|
+
file_path=file_path,
|
|
168
176
|
) from None
|
|
169
177
|
except Exception as e:
|
|
170
|
-
raise EnvironmentsValidationError(
|
|
171
|
-
f"Invalid environments.yaml file: {str(e)}",
|
|
172
|
-
file_path=file_path
|
|
173
|
-
) from e
|
|
178
|
+
raise EnvironmentsValidationError(f"Invalid environments.yaml file: {str(e)}", file_path=file_path) from e
|
|
174
179
|
|
|
175
180
|
|
|
176
181
|
def validate_manifest_and_environments(
|
|
177
|
-
manifest_path: str,
|
|
178
|
-
required_environment: Optional[str] = None
|
|
182
|
+
manifest_path: str, required_environment: Optional[str] = None
|
|
179
183
|
) -> tuple[str, AgentEnvironmentsConfig]:
|
|
180
184
|
"""
|
|
181
185
|
Validate both manifest.yaml and environments.yaml files together.
|
|
182
|
-
|
|
186
|
+
|
|
183
187
|
Args:
|
|
184
188
|
manifest_path: Path to manifest.yaml file
|
|
185
189
|
required_environment: Specific environment that must be present
|
|
186
|
-
|
|
190
|
+
|
|
187
191
|
Returns:
|
|
188
192
|
Tuple of (manifest_path, environments_config)
|
|
189
|
-
|
|
193
|
+
|
|
190
194
|
Raises:
|
|
191
195
|
ConfigValidationError: If validation fails
|
|
192
196
|
"""
|
|
193
197
|
manifest_file = Path(manifest_path)
|
|
194
198
|
if not manifest_file.exists():
|
|
195
199
|
raise ConfigValidationError(f"Manifest file not found: {manifest_path}")
|
|
196
|
-
|
|
200
|
+
|
|
197
201
|
# Look for environments.yaml in same directory
|
|
198
202
|
environments_file = manifest_file.parent / "environments.yaml"
|
|
199
203
|
environments_config = validate_environments_yaml_file(str(environments_file))
|
|
200
|
-
|
|
204
|
+
|
|
201
205
|
# Validate specific environment if requested
|
|
202
206
|
if required_environment:
|
|
203
|
-
validate_environments_config(
|
|
204
|
-
|
|
205
|
-
required_environments=[required_environment]
|
|
206
|
-
)
|
|
207
|
-
|
|
207
|
+
validate_environments_config(environments_config, required_environments=[required_environment])
|
|
208
|
+
|
|
208
209
|
return manifest_path, environments_config
|
|
209
210
|
|
|
210
211
|
|
|
211
212
|
def generate_helpful_error_message(error: Exception, context: str = "") -> str:
|
|
212
213
|
"""
|
|
213
214
|
Generate helpful error message with troubleshooting tips.
|
|
214
|
-
|
|
215
|
+
|
|
215
216
|
Args:
|
|
216
217
|
error: The original exception
|
|
217
218
|
context: Additional context about where the error occurred
|
|
218
|
-
|
|
219
|
+
|
|
219
220
|
Returns:
|
|
220
221
|
Formatted error message with troubleshooting tips
|
|
221
222
|
"""
|
|
222
223
|
base_msg = str(error)
|
|
223
|
-
|
|
224
|
+
|
|
224
225
|
if context:
|
|
225
226
|
base_msg = f"{context}: {base_msg}"
|
|
226
|
-
|
|
227
|
+
|
|
227
228
|
# Add troubleshooting tips based on error type
|
|
228
229
|
if isinstance(error, FileNotFoundError):
|
|
229
230
|
if "environments.yaml" in base_msg:
|
|
@@ -246,5 +247,5 @@ def generate_helpful_error_message(error: Exception, context: str = "") -> str:
|
|
|
246
247
|
"- Include team and environment (e.g., 'team-dev-agent')\n"
|
|
247
248
|
"- Keep under 63 characters"
|
|
248
249
|
)
|
|
249
|
-
|
|
250
|
+
|
|
250
251
|
return base_msg
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: agentex-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: The official Python library for the agentex API
|
|
5
5
|
Project-URL: Homepage, https://github.com/scaleapi/scale-agentex-python
|
|
6
6
|
Project-URL: Repository, https://github.com/scaleapi/scale-agentex-python
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
agentex/__init__.py,sha256=TvS8DtvGAnubcoUjYIsuCpBzpsdpxBaJCS76s-l-PRo,2712
|
|
2
|
-
agentex/_base_client.py,sha256=
|
|
2
|
+
agentex/_base_client.py,sha256=gb-HyiWzYErOgODj-HypzcOTPQnxZxCuW2wZD2wixrY,73410
|
|
3
3
|
agentex/_client.py,sha256=39ydvoIqEPVYkM891ZMhCMKrbXR59QUxuKTtrTJGgMM,28482
|
|
4
4
|
agentex/_compat.py,sha256=DQBVORjFb33zch24jzkhM14msvnzY7mmSmgDLaVFUM8,6562
|
|
5
5
|
agentex/_constants.py,sha256=oGldMuFz7eZtwD8_6rJUippKhZB5fGSA7ffbCDGourA,466
|
|
6
6
|
agentex/_exceptions.py,sha256=B09aFjWFRSShb9BFJd-MNDblsGDyGk3w-vItYmjg_AI,3222
|
|
7
7
|
agentex/_files.py,sha256=KnEzGi_O756MvKyJ4fOCW_u3JhOeWPQ4RsmDvqihDQU,3545
|
|
8
|
-
agentex/_models.py,sha256=
|
|
8
|
+
agentex/_models.py,sha256=R3MpO2z4XhTAnD3ObEks32suRXleF1g7BEgQTOLIxTs,32112
|
|
9
9
|
agentex/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
|
|
10
10
|
agentex/_resource.py,sha256=S1t7wmR5WUvoDIhZjo_x-E7uoTJBynJ3d8tPJMQYdjw,1106
|
|
11
11
|
agentex/_response.py,sha256=Tb9zazsnemO2rTxWtBjAD5WBqlhli5ZaXGbiKgdu5DE,28794
|
|
12
12
|
agentex/_streaming.py,sha256=aOvLOte7kaclPGm-D0iNdM3uRcWrZ-T2B8t9BDNmpuA,10225
|
|
13
|
-
agentex/_types.py,sha256=
|
|
14
|
-
agentex/_version.py,sha256=
|
|
13
|
+
agentex/_types.py,sha256=fa7vkH4XTd2n7GdGxf8-i_2kMDtXgwO3X_usN1GyknI,7595
|
|
14
|
+
agentex/_version.py,sha256=QknnjghXHjI-VZe2lpTxhOcs4xErxRJqPkosahapkpw,159
|
|
15
15
|
agentex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
agentex/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
|
|
17
17
|
agentex/_utils/_compat.py,sha256=D8gtAvjJQrDWt9upS0XaG9Rr5l1QhiAx_I_1utT_tt0,1195
|
|
@@ -52,8 +52,8 @@ agentex/lib/adk/utils/_modules/client.py,sha256=UYSTThuZoX3nqF8iuRmRI8uPO00NrYgC
|
|
|
52
52
|
agentex/lib/adk/utils/_modules/templating.py,sha256=tSiJGoDrF-XkMEi4MB_wVH6nyKyhSQwVZ8krN5R-86Q,3598
|
|
53
53
|
agentex/lib/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
agentex/lib/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
-
agentex/lib/cli/commands/agents.py,sha256=
|
|
56
|
-
agentex/lib/cli/commands/init.py,sha256=
|
|
55
|
+
agentex/lib/cli/commands/agents.py,sha256=QbqRdZEJNlbfSpQ5HrN0xfQBL6bCKD0l1PijTYSb1ak,17014
|
|
56
|
+
agentex/lib/cli/commands/init.py,sha256=pf8FHuJKO1NtTNEKkpB34EcJ-V8D7TcPP_EUrgbkaZs,16041
|
|
57
57
|
agentex/lib/cli/commands/main.py,sha256=QWychw-Xq3nQ00BMypgOEF4w1WauNrgQ06PDardNP_8,1042
|
|
58
58
|
agentex/lib/cli/commands/secrets.py,sha256=t4zvoyjOHmw-8qp6nsxdZCvqy43QXOl0MWXA3ooBO6Q,5640
|
|
59
59
|
agentex/lib/cli/commands/tasks.py,sha256=fvZJjYI8Dh-6nbTVpRa2-VdF6A8D4w3Dmd4tMslSTPI,3741
|
|
@@ -62,7 +62,7 @@ agentex/lib/cli/debug/__init__.py,sha256=-ZF2Hg8tyREDjPTefhJG_KesX4DA1gZue89pzf4
|
|
|
62
62
|
agentex/lib/cli/debug/debug_config.py,sha256=XlMyq7jP9NPAncO9Saob1Ga7dn-6DhmJ86iKAlQC9WY,3388
|
|
63
63
|
agentex/lib/cli/debug/debug_handlers.py,sha256=CZ8i5Xf50IQOeMvNfNgE5AgphkxnPo4jf2VbMt2jDEE,5690
|
|
64
64
|
agentex/lib/cli/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
agentex/lib/cli/handlers/agent_handlers.py,sha256=
|
|
65
|
+
agentex/lib/cli/handlers/agent_handlers.py,sha256=KwfWIwjJX1gYaddU19X-U_fIUZegAqoLDPM2FmfAIhg,9985
|
|
66
66
|
agentex/lib/cli/handlers/cleanup_handlers.py,sha256=-MISeCxZ9zOcSL8gBzEHrSMwhW3cJtoXrQkGAzGeknE,7179
|
|
67
67
|
agentex/lib/cli/handlers/deploy_handlers.py,sha256=DcTIi0QUaZRiJG0LcPhKfN2Jkd1aOcRhEZYk8kUQt1w,16243
|
|
68
68
|
agentex/lib/cli/handlers/run_handlers.py,sha256=UFUm-vOUq2aIGUYiuAre7c73U3hd6AHrDXPA1fPmAEw,15963
|
|
@@ -89,6 +89,17 @@ agentex/lib/cli/templates/sync/pyproject.toml.j2,sha256=eyN6dYqJTFzb5WztJMxboy9W
|
|
|
89
89
|
agentex/lib/cli/templates/sync/requirements.txt.j2,sha256=iTmO-z8qFkUa1jTctFCs0WYuq7Sqi6VNQAwATakh2fQ,94
|
|
90
90
|
agentex/lib/cli/templates/sync/test_agent.py.j2,sha256=zMJMCqWcEvKUUxfXSC0GRtLveqvGTknZjZWy2-HbtNU,2049
|
|
91
91
|
agentex/lib/cli/templates/sync/project/acp.py.j2,sha256=PUVXnN7IikBWYnfqLMgual-iXdl_benAjEfNcRADHBk,998
|
|
92
|
+
agentex/lib/cli/templates/sync-openai-agents/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
|
|
93
|
+
agentex/lib/cli/templates/sync-openai-agents/Dockerfile-uv.j2,sha256=9-xbz3mh5yGuSxtQ6FRltzY45OyUzvi1ZmlfwOioK-M,1085
|
|
94
|
+
agentex/lib/cli/templates/sync-openai-agents/Dockerfile.j2,sha256=-P2CwE84h4mwO1Gnl779c4MdoOcVX8_ndpesq9M4fQQ,1093
|
|
95
|
+
agentex/lib/cli/templates/sync-openai-agents/README.md.j2,sha256=_S7Ngl4qOUQHPFldLXDBvuIWPFU2-WcuxGmr5EXLX6k,8816
|
|
96
|
+
agentex/lib/cli/templates/sync-openai-agents/dev.ipynb.j2,sha256=Z42iRveuI_k5LcJqWX-3H1glPtNTkxg_MKVe1lwuJos,6055
|
|
97
|
+
agentex/lib/cli/templates/sync-openai-agents/environments.yaml.j2,sha256=BGprRPca_Y2sPA7kOiSK8COYp4_USoikB4cQ3wbAg94,1769
|
|
98
|
+
agentex/lib/cli/templates/sync-openai-agents/manifest.yaml.j2,sha256=pvH3AmdSsp4NvOtQkGTHE9ZM5wou0j99RF5ITWK5wH8,3848
|
|
99
|
+
agentex/lib/cli/templates/sync-openai-agents/pyproject.toml.j2,sha256=eyN6dYqJTFzb5WztJMxboy9Wc0XPXVnKYaF5JBxJE7o,507
|
|
100
|
+
agentex/lib/cli/templates/sync-openai-agents/requirements.txt.j2,sha256=iTmO-z8qFkUa1jTctFCs0WYuq7Sqi6VNQAwATakh2fQ,94
|
|
101
|
+
agentex/lib/cli/templates/sync-openai-agents/test_agent.py.j2,sha256=zMJMCqWcEvKUUxfXSC0GRtLveqvGTknZjZWy2-HbtNU,2049
|
|
102
|
+
agentex/lib/cli/templates/sync-openai-agents/project/acp.py.j2,sha256=a4DFVzRnKksz3Nz0z9FvHJp1dA3kno5NSuYyKrRPQVw,4354
|
|
92
103
|
agentex/lib/cli/templates/temporal/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
|
|
93
104
|
agentex/lib/cli/templates/temporal/Dockerfile-uv.j2,sha256=g8zECsR9_byvlc8bPdbY4Lw97w9nlWb8edx5FPiJav0,1426
|
|
94
105
|
agentex/lib/cli/templates/temporal/Dockerfile.j2,sha256=N1Z73jb8pnxsjP9zbs-tSyNHO6usVzyOdtWorbR5gVY,1434
|
|
@@ -215,10 +226,10 @@ agentex/lib/sdk/config/agent_config.py,sha256=4q1qMdE9_gBTsLB_NplY4exzUYLd8wQIyw
|
|
|
215
226
|
agentex/lib/sdk/config/agent_manifest.py,sha256=28e2o6yDe_hQMfegMUh07w-B5Kh9WZHv0z77kJvcJFk,8626
|
|
216
227
|
agentex/lib/sdk/config/build_config.py,sha256=pTgtvecHQejp4SlCvS6f6TfGnWqXFG-Ac0L8zthvyGk,1085
|
|
217
228
|
agentex/lib/sdk/config/deployment_config.py,sha256=QZ8zsYt4Uchw1hCs2y9mHJ8EPVBbbOfmBktv1SC_4K4,4028
|
|
218
|
-
agentex/lib/sdk/config/environment_config.py,sha256=
|
|
229
|
+
agentex/lib/sdk/config/environment_config.py,sha256=zI-U060RsZZf8G6AAh1Y9F0Ls2AQIy0-Jn98NQT2yP8,8904
|
|
219
230
|
agentex/lib/sdk/config/local_development_config.py,sha256=Sx7Cf3bP4oVjavdqy5rx4pvLZocyS19uJcrEj_mA5Nc,1733
|
|
220
231
|
agentex/lib/sdk/config/project_config.py,sha256=uMrg9BqEQFcnqdlqqSLYsaQkP1mMedhEZZMzPBSyCK0,3698
|
|
221
|
-
agentex/lib/sdk/config/validation.py,sha256=
|
|
232
|
+
agentex/lib/sdk/config/validation.py,sha256=yzt9n7KTwHotA-vExa_LK_D_mgq4FCDGIjHuKSgs0Ks,9319
|
|
222
233
|
agentex/lib/sdk/fastacp/__init__.py,sha256=UvAdexdnfb4z0F4a2sfXROFyh9EjH89kf3AxHPybzCM,75
|
|
223
234
|
agentex/lib/sdk/fastacp/fastacp.py,sha256=3aT74pFwF76VoTbQnGZsF6As42aLa2o_JrO6EP_XHQM,4591
|
|
224
235
|
agentex/lib/sdk/fastacp/base/base_acp_server.py,sha256=W2rMZUC-5GLvLJsLFKZHtmyG9Uhrsgffqo9qcomThsQ,17163
|
|
@@ -351,8 +362,8 @@ agentex/types/messages/batch_update_params.py,sha256=Ug5CThbD49a8j4qucg04OdmVrp_
|
|
|
351
362
|
agentex/types/messages/batch_update_response.py,sha256=TbSBe6SuPzjXXWSj-nRjT1JHGBooTshHQQDa1AixQA8,278
|
|
352
363
|
agentex/types/shared/__init__.py,sha256=IKs-Qn5Yja0kFh1G1kDqYZo43qrOu1hSoxlPdN-85dI,149
|
|
353
364
|
agentex/types/shared/delete_response.py,sha256=8qH3zvQXaOHYQSHyXi7UQxdR4miTzR7V9K4zXVsiUyk,215
|
|
354
|
-
agentex_sdk-0.
|
|
355
|
-
agentex_sdk-0.
|
|
356
|
-
agentex_sdk-0.
|
|
357
|
-
agentex_sdk-0.
|
|
358
|
-
agentex_sdk-0.
|
|
365
|
+
agentex_sdk-0.9.0.dist-info/METADATA,sha256=fyyMd_afMH7xhLdmQ7mLlYCvFU6SiqmMrIn4dVFe9eg,15553
|
|
366
|
+
agentex_sdk-0.9.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
367
|
+
agentex_sdk-0.9.0.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
|
|
368
|
+
agentex_sdk-0.9.0.dist-info/licenses/LICENSE,sha256=Eejl902yry8m7Bl6gRYRUObLifIrC61CmV369C6-dqQ,11337
|
|
369
|
+
agentex_sdk-0.9.0.dist-info/RECORD,,
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2026 Agentex
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
File without changes
|
|
File without changes
|