agentex-sdk 0.2.7__py3-none-any.whl → 0.2.9__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/_version.py +1 -1
- agentex/lib/cli/handlers/deploy_handlers.py +91 -42
- agentex/lib/cli/templates/default/Dockerfile-uv.j2 +1 -3
- agentex/lib/cli/templates/default/Dockerfile.j2 +3 -3
- agentex/lib/cli/templates/sync/Dockerfile-uv.j2 +1 -3
- agentex/lib/cli/templates/sync/Dockerfile.j2 +3 -2
- agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 +1 -3
- agentex/lib/cli/templates/temporal/Dockerfile.j2 +3 -3
- agentex/lib/cli/templates/temporal/project/run_worker.py.j2 +1 -1
- agentex/lib/core/temporal/services/temporal_task_service.py +3 -2
- agentex/lib/sdk/fastacp/impl/temporal_acp.py +1 -1
- agentex/resources/agents.py +36 -22
- {agentex_sdk-0.2.7.dist-info → agentex_sdk-0.2.9.dist-info}/METADATA +1 -1
- {agentex_sdk-0.2.7.dist-info → agentex_sdk-0.2.9.dist-info}/RECORD +17 -17
- {agentex_sdk-0.2.7.dist-info → agentex_sdk-0.2.9.dist-info}/WHEEL +0 -0
- {agentex_sdk-0.2.7.dist-info → agentex_sdk-0.2.9.dist-info}/entry_points.txt +0 -0
- {agentex_sdk-0.2.7.dist-info → agentex_sdk-0.2.9.dist-info}/licenses/LICENSE +0 -0
agentex/_version.py
CHANGED
@@ -133,7 +133,7 @@ def merge_deployment_configs(
|
|
133
133
|
raise DeploymentError("Repository and image tag are required")
|
134
134
|
|
135
135
|
# Start with global configuration
|
136
|
-
helm_values = {
|
136
|
+
helm_values: dict[str, Any] = {
|
137
137
|
"global": {
|
138
138
|
"image": {
|
139
139
|
"repository": repository,
|
@@ -157,54 +157,76 @@ def merge_deployment_configs(
|
|
157
157
|
"memory": manifest.deployment.global_config.resources.limits.memory,
|
158
158
|
},
|
159
159
|
},
|
160
|
+
# Enable autoscaling by default for production deployments
|
161
|
+
"autoscaling": {
|
162
|
+
"enabled": True,
|
163
|
+
"minReplicas": 1,
|
164
|
+
"maxReplicas": 10,
|
165
|
+
"targetCPUUtilizationPercentage": 50,
|
166
|
+
},
|
160
167
|
}
|
161
168
|
|
162
169
|
# Handle temporal configuration using new helper methods
|
163
170
|
if agent_config.is_temporal_agent():
|
164
171
|
temporal_config = agent_config.get_temporal_workflow_config()
|
165
172
|
if temporal_config:
|
166
|
-
helm_values[TEMPORAL_WORKER_KEY] = {
|
173
|
+
helm_values[TEMPORAL_WORKER_KEY] = {
|
174
|
+
"enabled": True,
|
175
|
+
# Enable autoscaling for temporal workers as well
|
176
|
+
"autoscaling": {
|
177
|
+
"enabled": True,
|
178
|
+
"minReplicas": 1,
|
179
|
+
"maxReplicas": 10,
|
180
|
+
"targetCPUUtilizationPercentage": 50,
|
181
|
+
},
|
182
|
+
}
|
167
183
|
helm_values["global"]["workflow"] = {
|
168
184
|
"name": temporal_config.name,
|
169
185
|
"taskQueue": temporal_config.queue_name,
|
170
186
|
}
|
171
|
-
helm_values[TEMPORAL_WORKER_KEY]["enabled"] = True
|
172
187
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
"name": credential.env_var_name,
|
179
|
-
"secretName": credential.secret_name,
|
180
|
-
"secretKey": credential.secret_key,
|
181
|
-
}
|
182
|
-
)
|
183
|
-
|
184
|
-
helm_values["secretEnvVars"] = secret_env_vars
|
185
|
-
if TEMPORAL_WORKER_KEY in helm_values:
|
186
|
-
helm_values[TEMPORAL_WORKER_KEY]["secretEnvVars"] = secret_env_vars
|
187
|
-
|
188
|
-
# Set the agent_config env vars first to the helm values and so then it can be overriden by the cluster config
|
188
|
+
# Collect all environment variables with conflict detection
|
189
|
+
all_env_vars: dict[str, str] = {}
|
190
|
+
secret_env_vars: list[dict[str, str]] = []
|
191
|
+
|
192
|
+
# Start with agent_config env vars
|
189
193
|
if agent_config.env:
|
190
|
-
|
191
|
-
if TEMPORAL_WORKER_KEY in helm_values:
|
192
|
-
helm_values[TEMPORAL_WORKER_KEY]["env"] = agent_config.env
|
194
|
+
all_env_vars.update(agent_config.env)
|
193
195
|
|
194
196
|
# Add auth principal env var if manifest principal is set
|
195
197
|
encoded_principal = _encode_principal_context(manifest)
|
196
198
|
if encoded_principal:
|
197
|
-
|
198
|
-
helm_values["env"] = {}
|
199
|
-
helm_values["env"][EnvVarKeys.AUTH_PRINCIPAL_B64.value] = encoded_principal
|
199
|
+
all_env_vars[EnvVarKeys.AUTH_PRINCIPAL_B64.value] = encoded_principal
|
200
200
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
201
|
+
# Handle credentials and check for conflicts
|
202
|
+
if agent_config.credentials:
|
203
|
+
for credential in agent_config.credentials:
|
204
|
+
# Handle both CredentialMapping objects and legacy dict format
|
205
|
+
if isinstance(credential, dict):
|
206
|
+
env_var_name = credential["env_var_name"]
|
207
|
+
secret_name = credential["secret_name"]
|
208
|
+
secret_key = credential["secret_key"]
|
209
|
+
else:
|
210
|
+
env_var_name = credential.env_var_name
|
211
|
+
secret_name = credential.secret_name
|
212
|
+
secret_key = credential.secret_key
|
213
|
+
|
214
|
+
# Check if the environment variable name conflicts with existing env vars
|
215
|
+
if env_var_name in all_env_vars:
|
216
|
+
logger.warning(
|
217
|
+
f"Environment variable '{env_var_name}' is defined in both "
|
218
|
+
f"env and secretEnvVars. The secret value will take precedence."
|
219
|
+
)
|
220
|
+
# Remove from regular env vars since secret takes precedence
|
221
|
+
del all_env_vars[env_var_name]
|
222
|
+
|
223
|
+
secret_env_vars.append(
|
224
|
+
{
|
225
|
+
"name": env_var_name,
|
226
|
+
"secretName": secret_name,
|
227
|
+
"secretKey": secret_key,
|
228
|
+
}
|
229
|
+
)
|
208
230
|
|
209
231
|
# Apply cluster-specific overrides
|
210
232
|
if cluster_config:
|
@@ -235,23 +257,50 @@ def merge_deployment_configs(
|
|
235
257
|
}
|
236
258
|
)
|
237
259
|
|
260
|
+
# Handle cluster env vars with conflict detection
|
238
261
|
if cluster_config.env:
|
239
|
-
|
262
|
+
# Convert cluster env list to dict for easier conflict detection
|
263
|
+
cluster_env_dict = {env_var["name"]: env_var["value"] for env_var in cluster_config.env}
|
264
|
+
|
265
|
+
# Check for conflicts with secret env vars
|
266
|
+
for secret_env_var in secret_env_vars:
|
267
|
+
if secret_env_var["name"] in cluster_env_dict:
|
268
|
+
logger.warning(
|
269
|
+
f"Environment variable '{secret_env_var['name']}' is defined in both "
|
270
|
+
f"cluster config env and secretEnvVars. The secret value will take precedence."
|
271
|
+
)
|
272
|
+
del cluster_env_dict[secret_env_var["name"]]
|
273
|
+
|
274
|
+
# Update all_env_vars with cluster overrides
|
275
|
+
all_env_vars.update(cluster_env_dict)
|
240
276
|
|
241
277
|
# Apply additional arbitrary overrides
|
242
278
|
if cluster_config.additional_overrides:
|
243
279
|
_deep_merge(helm_values, cluster_config.additional_overrides)
|
244
280
|
|
245
|
-
#
|
246
|
-
if
|
247
|
-
helm_values["env"] = convert_env_vars_dict_to_list(
|
248
|
-
|
249
|
-
# Convert the temporal worker env vars to a list of dictionaries
|
250
|
-
if TEMPORAL_WORKER_KEY in helm_values and "env" in helm_values[TEMPORAL_WORKER_KEY]:
|
251
|
-
helm_values[TEMPORAL_WORKER_KEY]["env"] = convert_env_vars_dict_to_list(
|
252
|
-
helm_values[TEMPORAL_WORKER_KEY]["env"]
|
253
|
-
)
|
281
|
+
# Set final environment variables
|
282
|
+
if all_env_vars:
|
283
|
+
helm_values["env"] = convert_env_vars_dict_to_list(all_env_vars)
|
254
284
|
|
285
|
+
if secret_env_vars:
|
286
|
+
helm_values["secretEnvVars"] = secret_env_vars
|
287
|
+
|
288
|
+
# Set environment variables for temporal worker if enabled
|
289
|
+
if TEMPORAL_WORKER_KEY in helm_values:
|
290
|
+
if all_env_vars:
|
291
|
+
helm_values[TEMPORAL_WORKER_KEY]["env"] = convert_env_vars_dict_to_list(all_env_vars)
|
292
|
+
if secret_env_vars:
|
293
|
+
helm_values[TEMPORAL_WORKER_KEY]["secretEnvVars"] = secret_env_vars
|
294
|
+
|
295
|
+
# Handle image pull secrets
|
296
|
+
if manifest.deployment and manifest.deployment.imagePullSecrets:
|
297
|
+
pull_secrets = [
|
298
|
+
pull_secret.to_dict()
|
299
|
+
for pull_secret in manifest.deployment.imagePullSecrets
|
300
|
+
]
|
301
|
+
helm_values["global"]["imagePullSecrets"] = pull_secrets
|
302
|
+
helm_values["imagePullSecrets"] = pull_secrets
|
303
|
+
|
255
304
|
# Add dynamic ACP command based on manifest configuration
|
256
305
|
add_acp_command_to_helm_values(helm_values, manifest, manifest_path)
|
257
306
|
|
@@ -33,10 +33,8 @@ RUN uv pip install --system .
|
|
33
33
|
# Copy the project code
|
34
34
|
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
|
35
35
|
|
36
|
-
WORKDIR /app/{{ project_path_from_build_root }}/project
|
37
|
-
|
38
36
|
# Set environment variables
|
39
37
|
ENV PYTHONPATH=/app
|
40
38
|
|
41
39
|
# Run the agent using uvicorn
|
42
|
-
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
40
|
+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
@@ -15,6 +15,8 @@ RUN apt-get update && apt-get install -y \
|
|
15
15
|
gcc \
|
16
16
|
cmake \
|
17
17
|
netcat-openbsd \
|
18
|
+
node \
|
19
|
+
npm \
|
18
20
|
&& apt-get clean \
|
19
21
|
&& rm -rf /var/lib/apt/lists/*
|
20
22
|
|
@@ -33,10 +35,8 @@ RUN uv pip install --system -r requirements.txt
|
|
33
35
|
# Copy the project code
|
34
36
|
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
|
35
37
|
|
36
|
-
WORKDIR /app/{{ project_path_from_build_root }}/project
|
37
|
-
|
38
38
|
# Set environment variables
|
39
39
|
ENV PYTHONPATH=/app
|
40
40
|
|
41
41
|
# Run the agent using uvicorn
|
42
|
-
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
42
|
+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
@@ -33,10 +33,8 @@ RUN uv pip install --system .
|
|
33
33
|
# Copy the project code
|
34
34
|
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
|
35
35
|
|
36
|
-
WORKDIR /app/{{ project_path_from_build_root }}/project
|
37
|
-
|
38
36
|
# Set environment variables
|
39
37
|
ENV PYTHONPATH=/app
|
40
38
|
|
41
39
|
# Run the agent using uvicorn
|
42
|
-
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
40
|
+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
@@ -15,6 +15,8 @@ RUN apt-get update && apt-get install -y \
|
|
15
15
|
gcc \
|
16
16
|
cmake \
|
17
17
|
netcat-openbsd \
|
18
|
+
node \
|
19
|
+
npm \
|
18
20
|
&& apt-get clean \
|
19
21
|
&& rm -rf /var/lib/apt/lists/*
|
20
22
|
|
@@ -33,10 +35,9 @@ RUN uv pip install --system -r requirements.txt
|
|
33
35
|
# Copy the project code
|
34
36
|
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
|
35
37
|
|
36
|
-
WORKDIR /app/{{ project_path_from_build_root }}/project
|
37
38
|
|
38
39
|
# Set environment variables
|
39
40
|
ENV PYTHONPATH=/app
|
40
41
|
|
41
42
|
# Run the agent using uvicorn
|
42
|
-
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
43
|
+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
@@ -39,10 +39,8 @@ RUN uv pip install --system .
|
|
39
39
|
# Copy the project code
|
40
40
|
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
|
41
41
|
|
42
|
-
WORKDIR /app/{{ project_path_from_build_root }}/project
|
43
|
-
|
44
42
|
# Run the ACP server using uvicorn
|
45
|
-
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
43
|
+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
46
44
|
|
47
45
|
# When we deploy the worker, we will replace the CMD with the following
|
48
46
|
# CMD ["python", "-m", "run_worker"]
|
@@ -15,6 +15,8 @@ RUN apt-get update && apt-get install -y \
|
|
15
15
|
gcc \
|
16
16
|
cmake \
|
17
17
|
netcat-openbsd \
|
18
|
+
node \
|
19
|
+
npm \
|
18
20
|
&& apt-get clean \
|
19
21
|
&& rm -rf /var/lib/apt/lists/*
|
20
22
|
|
@@ -39,10 +41,8 @@ RUN uv pip install --system -r requirements.txt
|
|
39
41
|
# Copy the project code
|
40
42
|
COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project
|
41
43
|
|
42
|
-
WORKDIR /app/{{ project_path_from_build_root }}/project
|
43
|
-
|
44
44
|
# Run the ACP server using uvicorn
|
45
|
-
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
45
|
+
CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"]
|
46
46
|
|
47
47
|
# When we deploy the worker, we will replace the CMD with the following
|
48
48
|
# CMD ["python", "-m", "run_worker"]
|
@@ -6,7 +6,7 @@ from agentex.lib.utils.logging import make_logger
|
|
6
6
|
from agentex.lib.utils.debug import setup_debug_if_enabled
|
7
7
|
from agentex.lib.environment_variables import EnvironmentVariables
|
8
8
|
|
9
|
-
from workflow import {{ workflow_class }}
|
9
|
+
from project.workflow import {{ workflow_class }}
|
10
10
|
|
11
11
|
|
12
12
|
environment_variables = EnvironmentVariables.refresh()
|
@@ -1,3 +1,4 @@
|
|
1
|
+
from typing import Any
|
1
2
|
from agentex.lib.core.clients.temporal.temporal_client import TemporalClient
|
2
3
|
from agentex.lib.core.clients.temporal.types import WorkflowState
|
3
4
|
from agentex.lib.core.temporal.types.workflow import SignalName
|
@@ -22,7 +23,7 @@ class TemporalTaskService:
|
|
22
23
|
self._temporal_client = temporal_client
|
23
24
|
self._env_vars = env_vars
|
24
25
|
|
25
|
-
async def submit_task(self, agent: Agent, task: Task) -> str:
|
26
|
+
async def submit_task(self, agent: Agent, task: Task, params: dict[str, Any] | None) -> str:
|
26
27
|
"""
|
27
28
|
Submit a task to the async runtime for execution.
|
28
29
|
|
@@ -33,7 +34,7 @@ class TemporalTaskService:
|
|
33
34
|
arg=CreateTaskParams(
|
34
35
|
agent=agent,
|
35
36
|
task=task,
|
36
|
-
params=
|
37
|
+
params=params,
|
37
38
|
),
|
38
39
|
id=task.id,
|
39
40
|
task_queue=self._env_vars.WORKFLOW_TASK_QUEUE,
|
@@ -71,7 +71,7 @@ class TemporalACP(BaseACPServer):
|
|
71
71
|
async def handle_task_create(params: CreateTaskParams) -> None:
|
72
72
|
"""Default create task handler - logs the task"""
|
73
73
|
logger.info(f"TemporalACP received task create rpc call for task {params.task.id}")
|
74
|
-
await self._temporal_task_service.submit_task(agent=params.agent, task=params.task)
|
74
|
+
await self._temporal_task_service.submit_task(agent=params.agent, task=params.task, params=params.params)
|
75
75
|
|
76
76
|
@self.on_task_event_send
|
77
77
|
async def handle_event_send(params: SendEventParams) -> None:
|
agentex/resources/agents.py
CHANGED
@@ -508,17 +508,24 @@ class AgentsResource(SyncAPIResource):
|
|
508
508
|
raise ValueError("Either agent_id or agent_name must be provided")
|
509
509
|
|
510
510
|
with raw_agent_rpc_response as response:
|
511
|
-
for
|
512
|
-
if
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
511
|
+
for _line in response.iter_lines():
|
512
|
+
if not _line:
|
513
|
+
continue
|
514
|
+
line = _line.strip()
|
515
|
+
# Handle optional SSE-style prefix
|
516
|
+
if line.startswith("data:"):
|
517
|
+
line = line[len("data:"):].strip()
|
518
|
+
if not line:
|
519
|
+
continue
|
520
|
+
try:
|
521
|
+
chunk_rpc_response = SendMessageStreamResponse.model_validate(
|
522
|
+
json.loads(line),
|
523
|
+
from_attributes=True
|
524
|
+
)
|
525
|
+
yield chunk_rpc_response
|
526
|
+
except json.JSONDecodeError:
|
527
|
+
# Skip invalid JSON lines
|
528
|
+
continue
|
522
529
|
|
523
530
|
def send_event(
|
524
531
|
self,
|
@@ -1048,17 +1055,24 @@ class AsyncAgentsResource(AsyncAPIResource):
|
|
1048
1055
|
raise ValueError("Either agent_id or agent_name must be provided")
|
1049
1056
|
|
1050
1057
|
async with raw_agent_rpc_response as response:
|
1051
|
-
async for
|
1052
|
-
if
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1058
|
+
async for _line in response.iter_lines():
|
1059
|
+
if not _line:
|
1060
|
+
continue
|
1061
|
+
line = _line.strip()
|
1062
|
+
# Handle optional SSE-style prefix
|
1063
|
+
if line.startswith("data:"):
|
1064
|
+
line = line[len("data:"):].strip()
|
1065
|
+
if not line:
|
1066
|
+
continue
|
1067
|
+
try:
|
1068
|
+
chunk_rpc_response = SendMessageStreamResponse.model_validate(
|
1069
|
+
json.loads(line),
|
1070
|
+
from_attributes=True
|
1071
|
+
)
|
1072
|
+
yield chunk_rpc_response
|
1073
|
+
except json.JSONDecodeError:
|
1074
|
+
# Skip invalid JSON lines
|
1075
|
+
continue
|
1062
1076
|
|
1063
1077
|
async def send_event(
|
1064
1078
|
self,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: agentex-sdk
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.9
|
4
4
|
Summary: The official Python library for the agentex API
|
5
5
|
Project-URL: Homepage, https://github.com/scaleapi/agentex-python
|
6
6
|
Project-URL: Repository, https://github.com/scaleapi/agentex-python
|
@@ -11,7 +11,7 @@ agentex/_resource.py,sha256=S1t7wmR5WUvoDIhZjo_x-E7uoTJBynJ3d8tPJMQYdjw,1106
|
|
11
11
|
agentex/_response.py,sha256=Tb9zazsnemO2rTxWtBjAD5WBqlhli5ZaXGbiKgdu5DE,28794
|
12
12
|
agentex/_streaming.py,sha256=FNGJExRCF-vTRUZHFKUfoAWFhDGOB3XbioVCF37Jr7E,10104
|
13
13
|
agentex/_types.py,sha256=KyKYySGIfHPod2hho1fPxssk5NuVn8C4MeMTtA-lg80,6198
|
14
|
-
agentex/_version.py,sha256=
|
14
|
+
agentex/_version.py,sha256=T7zw7XtZUyGqffKHlZES064K_tkpufj17wIkOelHN5o,159
|
15
15
|
agentex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
agentex/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
|
17
17
|
agentex/_utils/_logs.py,sha256=LUjFPc3fweSChBUmjhQD8uYmwQAmFMNDuVFKfjYBQfM,777
|
@@ -61,12 +61,12 @@ agentex/lib/cli/debug/debug_handlers.py,sha256=i2Og0v5MPKIxG0uMZIp4NpmCpAro23t7P
|
|
61
61
|
agentex/lib/cli/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
62
|
agentex/lib/cli/handlers/agent_handlers.py,sha256=iVZ-4TSQJuq7XpPBYjYIN76M33XwxDjQTuNwTzzynec,5573
|
63
63
|
agentex/lib/cli/handlers/cleanup_handlers.py,sha256=V1V0zeErOUGTgCQqjyUl6CWtzGjFW878uzFaLOQJEyQ,7073
|
64
|
-
agentex/lib/cli/handlers/deploy_handlers.py,sha256=
|
64
|
+
agentex/lib/cli/handlers/deploy_handlers.py,sha256=SrHHY8p0TGS0KzaCY3FPgf3awXqoMo2G-qpIOcnO1pw,16942
|
65
65
|
agentex/lib/cli/handlers/run_handlers.py,sha256=b02-ng64fMHdd7u2hB_tmwHrm2_0DL-pcA565JDpyPc,14949
|
66
66
|
agentex/lib/cli/handlers/secret_handlers.py,sha256=VfAdAQovW9tG36Xgk_gGIGwTyFMxR3P6xc7fmAviNA8,24719
|
67
67
|
agentex/lib/cli/templates/default/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
|
68
|
-
agentex/lib/cli/templates/default/Dockerfile-uv.j2,sha256=
|
69
|
-
agentex/lib/cli/templates/default/Dockerfile.j2,sha256=
|
68
|
+
agentex/lib/cli/templates/default/Dockerfile-uv.j2,sha256=I527RB_2Byn6tkBNVxxCq7ivVFJDgDNRSC7Vz2w9u4k,1060
|
69
|
+
agentex/lib/cli/templates/default/Dockerfile.j2,sha256=Q-8T9mid_DfgZlQd6JFZKphdDngEsTLlqDvJtEvU_7k,1092
|
70
70
|
agentex/lib/cli/templates/default/README.md.j2,sha256=4Sn_cY_TMfN_c5h-I_L3TgTrNKUvhzQvKGDZjS3n2Gw,6361
|
71
71
|
agentex/lib/cli/templates/default/dev.ipynb.j2,sha256=8xY82gVfQ0mhzlEZzI4kLqIXCF19YgimLnpEirDMX8I,3395
|
72
72
|
agentex/lib/cli/templates/default/manifest.yaml.j2,sha256=n-XK6LqSyBVY6a7KOfIlOQx4LbMNEVzzHIh6yEiqAhs,3752
|
@@ -77,8 +77,8 @@ agentex/lib/cli/templates/default/project/acp.py.j2,sha256=XZsHNQaQDNvooarFt_NvM
|
|
77
77
|
agentex/lib/cli/templates/deploy/Screenshot 2025-03-19 at 10.36.57 AM.png,sha256=D6OT4fcXnaFPBub5__OFwzrOIkj0UmpWMfR_hkUXdoM,3133708
|
78
78
|
agentex/lib/cli/templates/deploy/example.yaml.j2,sha256=sHIEuhtruyCfGPgeLQ1ilCCnRH0HpsqhDdQT44UWUaU,1554
|
79
79
|
agentex/lib/cli/templates/sync/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
|
80
|
-
agentex/lib/cli/templates/sync/Dockerfile-uv.j2,sha256=
|
81
|
-
agentex/lib/cli/templates/sync/Dockerfile.j2,sha256
|
80
|
+
agentex/lib/cli/templates/sync/Dockerfile-uv.j2,sha256=I527RB_2Byn6tkBNVxxCq7ivVFJDgDNRSC7Vz2w9u4k,1060
|
81
|
+
agentex/lib/cli/templates/sync/Dockerfile.j2,sha256=-P2CwE84h4mwO1Gnl779c4MdoOcVX8_ndpesq9M4fQQ,1093
|
82
82
|
agentex/lib/cli/templates/sync/README.md.j2,sha256=_S7Ngl4qOUQHPFldLXDBvuIWPFU2-WcuxGmr5EXLX6k,8816
|
83
83
|
agentex/lib/cli/templates/sync/dev.ipynb.j2,sha256=Z42iRveuI_k5LcJqWX-3H1glPtNTkxg_MKVe1lwuJos,6055
|
84
84
|
agentex/lib/cli/templates/sync/manifest.yaml.j2,sha256=V497KXzvA76sHrgIJ5zRJptpIH8sGbSXZaIsEyp5NZ4,3747
|
@@ -87,8 +87,8 @@ agentex/lib/cli/templates/sync/requirements.txt.j2,sha256=iTmO-z8qFkUa1jTctFCs0W
|
|
87
87
|
agentex/lib/cli/templates/sync/deploy/example.yaml.j2,sha256=sHIEuhtruyCfGPgeLQ1ilCCnRH0HpsqhDdQT44UWUaU,1554
|
88
88
|
agentex/lib/cli/templates/sync/project/acp.py.j2,sha256=X5RaE9iR4Dp-kPJL0r1QAe6ohfiOTcYizwtwGW2GzHg,1003
|
89
89
|
agentex/lib/cli/templates/temporal/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
|
90
|
-
agentex/lib/cli/templates/temporal/Dockerfile-uv.j2,sha256=
|
91
|
-
agentex/lib/cli/templates/temporal/Dockerfile.j2,sha256=
|
90
|
+
agentex/lib/cli/templates/temporal/Dockerfile-uv.j2,sha256=_FNRUdE8m1jfcmYR3rZAAkm2mqyTCwUXbLs4dm4lZs8,1401
|
91
|
+
agentex/lib/cli/templates/temporal/Dockerfile.j2,sha256=N1Z73jb8pnxsjP9zbs-tSyNHO6usVzyOdtWorbR5gVY,1434
|
92
92
|
agentex/lib/cli/templates/temporal/README.md.j2,sha256=d6BQAZBf7lCKROXnpDu-Ml1Rq0OM8cCFEOpmStoPWfc,10132
|
93
93
|
agentex/lib/cli/templates/temporal/dev.ipynb.j2,sha256=8xY82gVfQ0mhzlEZzI4kLqIXCF19YgimLnpEirDMX8I,3395
|
94
94
|
agentex/lib/cli/templates/temporal/manifest.yaml.j2,sha256=S-hJlpVCnT62r66otqHa3iROOn1w_yYvehOOxvLQotY,4483
|
@@ -96,7 +96,7 @@ agentex/lib/cli/templates/temporal/pyproject.toml.j2,sha256=MoR1g6KnGOQrXWOXhFKM
|
|
96
96
|
agentex/lib/cli/templates/temporal/requirements.txt.j2,sha256=iTmO-z8qFkUa1jTctFCs0WYuq7Sqi6VNQAwATakh2fQ,94
|
97
97
|
agentex/lib/cli/templates/temporal/deploy/example.yaml.j2,sha256=sHIEuhtruyCfGPgeLQ1ilCCnRH0HpsqhDdQT44UWUaU,1554
|
98
98
|
agentex/lib/cli/templates/temporal/project/acp.py.j2,sha256=Ha5oBaGT1WC93TEBfWMM7OtbmAYOF2t3PjY6uOL6mJE,2386
|
99
|
-
agentex/lib/cli/templates/temporal/project/run_worker.py.j2,sha256=
|
99
|
+
agentex/lib/cli/templates/temporal/project/run_worker.py.j2,sha256=ozHR7uXB9Tc012wY9vRhHe5N6n1HC1ihYiKQdL2WCyc,987
|
100
100
|
agentex/lib/cli/templates/temporal/project/workflow.py.j2,sha256=VPnHnzr09i5y68vCOIJ8wTrc8KVHoDp5WooQew0GiWg,3210
|
101
101
|
agentex/lib/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
102
102
|
agentex/lib/cli/utils/auth_utils.py,sha256=Y8pCqvQxhYtyQOzbpFZ_PUIp6vo8XGDOPdyoRI1_KG8,489
|
@@ -158,7 +158,7 @@ agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py,sha256=C8n9
|
|
158
158
|
agentex/lib/core/temporal/activities/adk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
159
159
|
agentex/lib/core/temporal/activities/adk/utils/templating_activities.py,sha256=dX6wpcTKY_qWsm3uJV-XU5fQLqwWAhnjO83k8EK0N7o,1189
|
160
160
|
agentex/lib/core/temporal/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
161
|
-
agentex/lib/core/temporal/services/temporal_task_service.py,sha256=
|
161
|
+
agentex/lib/core/temporal/services/temporal_task_service.py,sha256=oxaegtUMfr3ECWNzJJfQ8HJxd_T7ELlNwb9Sau9kHRA,2341
|
162
162
|
agentex/lib/core/temporal/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
163
163
|
agentex/lib/core/temporal/types/workflow.py,sha256=o8lBUloI44NTYFfbA1BLgzUneyN7aLbt042Eq_9OKo8,89
|
164
164
|
agentex/lib/core/temporal/workers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -184,7 +184,7 @@ agentex/lib/sdk/fastacp/fastacp.py,sha256=K4D7a9EiJfCgWp2hrE_TbpZBaF4Uc46MfndZK3
|
|
184
184
|
agentex/lib/sdk/fastacp/base/base_acp_server.py,sha256=fkEVg5M4Ni2uPt_oiCP7_jfTmRvcC0o2VTg0Oka7mXA,14590
|
185
185
|
agentex/lib/sdk/fastacp/impl/agentic_base_acp.py,sha256=LWLAlHrs-2Lc2UICBAEFL8c3JwTA6oxPnzUzW0qQWSA,2694
|
186
186
|
agentex/lib/sdk/fastacp/impl/sync_acp.py,sha256=8FEDfBxI31NoVLX9nyckQ8QwA0UV4svC3fhGKgXBIwk,3862
|
187
|
-
agentex/lib/sdk/fastacp/impl/temporal_acp.py,sha256=
|
187
|
+
agentex/lib/sdk/fastacp/impl/temporal_acp.py,sha256=hQa_zGG6l_jIHNC75H_KXlPUuVqNBc-zIm-pmCDSZ6w,3759
|
188
188
|
agentex/lib/sdk/fastacp/tests/README.md,sha256=HejScemERLCs-wCgU3l1Xo4tcQ4gQy15GgoF-CkNh-0,8270
|
189
189
|
agentex/lib/sdk/fastacp/tests/conftest.py,sha256=wU3DCGZNBqY-HcJ4tz_tlphhS_5xGbZ6gSd72fGY2E0,9490
|
190
190
|
agentex/lib/sdk/fastacp/tests/pytest.ini,sha256=MdF2xHp4oPyUC4z7-xoNZR9vFyYkBoFvuCfgEEprv4k,231
|
@@ -228,7 +228,7 @@ agentex/lib/utils/temporal.py,sha256=sXo8OPMMXiyrF7OSBCJBuN_ufyQOD2bLOXgDbVZoyds
|
|
228
228
|
agentex/lib/utils/dev_tools/__init__.py,sha256=oaHxw6ymfhNql-kzXHv3NWVHuqD4fHumasNXJG7kHTU,261
|
229
229
|
agentex/lib/utils/dev_tools/async_messages.py,sha256=-alUK1KFltcRb6xtRtIJIRJW9Sf1FwDRgaNPhOn-luw,18105
|
230
230
|
agentex/resources/__init__.py,sha256=74rMqWBzQ2dSrKQqsrd7-jskPws0O_ogkFltvZO3HoU,3265
|
231
|
-
agentex/resources/agents.py,sha256=
|
231
|
+
agentex/resources/agents.py,sha256=WLG7wTQcCZCtqvNiyi2wjuDA2u85nEA5o9kUr5pBQXE,46977
|
232
232
|
agentex/resources/events.py,sha256=Zc9JhUm3bq2VFnBAolC0M7KZernzj1AjZ_vj0ibP4GY,10412
|
233
233
|
agentex/resources/spans.py,sha256=wmcUs4XbXIF5rPeyU_f39c2RTbTLnkuh2LYogZEBD6s,20936
|
234
234
|
agentex/resources/states.py,sha256=O31A8--n7n0rHsng2e1oCUAzLNjQIxDUk7rq0IXfgGM,19262
|
@@ -296,8 +296,8 @@ agentex/types/messages/batch_update_params.py,sha256=Ug5CThbD49a8j4qucg04OdmVrp_
|
|
296
296
|
agentex/types/messages/batch_update_response.py,sha256=TbSBe6SuPzjXXWSj-nRjT1JHGBooTshHQQDa1AixQA8,278
|
297
297
|
agentex/types/shared/__init__.py,sha256=IKs-Qn5Yja0kFh1G1kDqYZo43qrOu1hSoxlPdN-85dI,149
|
298
298
|
agentex/types/shared/delete_response.py,sha256=8qH3zvQXaOHYQSHyXi7UQxdR4miTzR7V9K4zXVsiUyk,215
|
299
|
-
agentex_sdk-0.2.
|
300
|
-
agentex_sdk-0.2.
|
301
|
-
agentex_sdk-0.2.
|
302
|
-
agentex_sdk-0.2.
|
303
|
-
agentex_sdk-0.2.
|
299
|
+
agentex_sdk-0.2.9.dist-info/METADATA,sha256=T1rkbRBnJy8GLDSASHqV3fL96ze48KTNaMYzD11Z9kI,15037
|
300
|
+
agentex_sdk-0.2.9.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
301
|
+
agentex_sdk-0.2.9.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
|
302
|
+
agentex_sdk-0.2.9.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
|
303
|
+
agentex_sdk-0.2.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|