agentex-sdk 0.6.0__py3-none-any.whl → 0.6.2__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 (43) hide show
  1. agentex/_client.py +15 -1
  2. agentex/_version.py +1 -1
  3. agentex/lib/adk/providers/_modules/litellm.py +1 -1
  4. agentex/lib/adk/providers/_modules/openai.py +16 -1
  5. agentex/lib/adk/providers/_modules/sgp.py +1 -1
  6. agentex/lib/adk/providers/_modules/sync_provider.py +32 -24
  7. agentex/lib/cli/commands/init.py +7 -18
  8. agentex/lib/cli/templates/default/README.md.j2 +1 -1
  9. agentex/lib/cli/templates/default/dev.ipynb.j2 +1 -1
  10. agentex/lib/cli/templates/default/manifest.yaml.j2 +1 -4
  11. agentex/lib/cli/templates/default/project/acp.py.j2 +3 -3
  12. agentex/lib/cli/templates/default/test_agent.py.j2 +1 -1
  13. agentex/lib/cli/templates/sync/manifest.yaml.j2 +0 -3
  14. agentex/lib/cli/templates/temporal/README.md.j2 +1 -1
  15. agentex/lib/cli/templates/temporal/dev.ipynb.j2 +1 -1
  16. agentex/lib/cli/templates/temporal/manifest.yaml.j2 +2 -5
  17. agentex/lib/cli/templates/temporal/project/acp.py.j2 +1 -1
  18. agentex/lib/cli/templates/temporal/test_agent.py.j2 +1 -1
  19. agentex/lib/core/temporal/plugins/openai_agents/models/temporal_streaming_model.py +66 -0
  20. agentex/lib/core/temporal/plugins/openai_agents/models/temporal_tracing_model.py +94 -17
  21. agentex/lib/environment_variables.py +1 -1
  22. agentex/lib/sdk/config/agent_config.py +1 -1
  23. agentex/lib/sdk/fastacp/base/base_acp_server.py +4 -4
  24. agentex/lib/sdk/fastacp/fastacp.py +30 -16
  25. agentex/lib/sdk/fastacp/impl/{agentic_base_acp.py → async_base_acp.py} +10 -8
  26. agentex/lib/sdk/fastacp/tests/README.md +3 -3
  27. agentex/lib/sdk/fastacp/tests/conftest.py +4 -4
  28. agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py +99 -72
  29. agentex/lib/sdk/fastacp/tests/test_integration.py +24 -24
  30. agentex/lib/types/fastacp.py +8 -5
  31. agentex/lib/utils/dev_tools/async_messages.py +1 -1
  32. agentex/resources/__init__.py +14 -0
  33. agentex/resources/deployment_history.py +272 -0
  34. agentex/types/__init__.py +3 -0
  35. agentex/types/agent.py +4 -1
  36. agentex/types/deployment_history.py +33 -0
  37. agentex/types/deployment_history_list_params.py +18 -0
  38. agentex/types/deployment_history_list_response.py +10 -0
  39. {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/METADATA +1 -1
  40. {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/RECORD +43 -39
  41. {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/WHEEL +0 -0
  42. {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/entry_points.txt +0 -0
  43. {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/licenses/LICENSE +0 -0
@@ -13,7 +13,7 @@ from agentex.lib.types.acp import (
13
13
  )
14
14
  from agentex.lib.sdk.fastacp.impl.sync_acp import SyncACP
15
15
  from agentex.lib.sdk.fastacp.impl.temporal_acp import TemporalACP
16
- from agentex.lib.sdk.fastacp.impl.agentic_base_acp import AgenticBaseACP
16
+ from agentex.lib.sdk.fastacp.impl.async_base_acp import AsyncBaseACP
17
17
 
18
18
 
19
19
  class TestImplementationBehavior:
@@ -29,15 +29,15 @@ class TestImplementationBehavior:
29
29
  assert RPCMethod.MESSAGE_SEND in sync_acp._handlers
30
30
 
31
31
  @pytest.mark.asyncio()
32
- async def test_agentic_acp_default_handlers(self):
33
- """Test AgenticBaseACP has expected default handlers"""
32
+ async def test_async_acp_default_handlers(self):
33
+ """Test AsyncBaseACP has expected default handlers"""
34
34
  with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}):
35
- agentic_acp = AgenticBaseACP.create()
35
+ async_acp = AsyncBaseACP.create()
36
36
 
37
37
  # Should have create, message, and cancel handlers by default
38
- assert RPCMethod.TASK_CREATE in agentic_acp._handlers
39
- assert RPCMethod.EVENT_SEND in agentic_acp._handlers
40
- assert RPCMethod.TASK_CANCEL in agentic_acp._handlers
38
+ assert RPCMethod.TASK_CREATE in async_acp._handlers
39
+ assert RPCMethod.EVENT_SEND in async_acp._handlers
40
+ assert RPCMethod.TASK_CANCEL in async_acp._handlers
41
41
 
42
42
  @pytest.mark.asyncio()
43
43
  async def test_temporal_acp_creation_with_mocked_client(self):
@@ -114,23 +114,23 @@ class TestRealWorldScenarios:
114
114
  await runner.stop()
115
115
 
116
116
  @pytest.mark.asyncio()
117
- async def test_task_lifecycle_management(self, agentic_base_acp, free_port, test_server_runner):
117
+ async def test_task_lifecycle_management(self, async_base_acp, free_port, test_server_runner):
118
118
  """Test complete task lifecycle: create -> message -> cancel"""
119
119
  task_events = []
120
120
 
121
- @agentic_base_acp.on_task_create
121
+ @async_base_acp.on_task_create
122
122
  async def create_handler(params: CreateTaskParams):
123
123
  task_events.append(("created", params.task.id))
124
124
 
125
- @agentic_base_acp.on_task_event_send
125
+ @async_base_acp.on_task_event_send
126
126
  async def message_handler(params: SendEventParams):
127
127
  task_events.append(("message", params.task.id))
128
128
 
129
- @agentic_base_acp.on_task_cancel
129
+ @async_base_acp.on_task_cancel
130
130
  async def cancel_handler(params: CancelTaskParams):
131
131
  task_events.append(("cancelled", params.task_id)) # type: ignore[attr-defined]
132
132
 
133
- runner = test_server_runner(agentic_base_acp, free_port)
133
+ runner = test_server_runner(async_base_acp, free_port)
134
134
  await runner.start()
135
135
 
136
136
  async with httpx.AsyncClient() as client:
@@ -441,10 +441,10 @@ class TestImplementationIsolation:
441
441
  """Test handlers registered on one implementation don't affect others"""
442
442
  with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}):
443
443
  sync_acp = SyncACP.create()
444
- agentic_acp = AgenticBaseACP.create()
444
+ async_acp = AsyncBaseACP.create()
445
445
 
446
446
  sync_handled = False
447
- agentic_handled = False
447
+ async_handled = False
448
448
 
449
449
  @sync_acp.on_task_event_send
450
450
  async def sync_handler(params: SendEventParams):
@@ -452,11 +452,11 @@ class TestImplementationIsolation:
452
452
  sync_handled = True
453
453
  return {"sync": True}
454
454
 
455
- @agentic_acp.on_task_event_send
456
- async def agentic_handler(params: SendEventParams):
457
- nonlocal agentic_handled
458
- agentic_handled = True
459
- return {"agentic": True}
455
+ @async_acp.on_task_event_send
456
+ async def async_handler(params: SendEventParams):
457
+ nonlocal async_handled
458
+ async_handled = True
459
+ return {"async": True}
460
460
 
461
461
  # Create test parameters
462
462
  message_params = SendEventParams( # type: ignore[call-arg]
@@ -467,12 +467,12 @@ class TestImplementationIsolation:
467
467
  # Execute sync handler
468
468
  sync_result = await sync_acp._handlers[RPCMethod.EVENT_SEND](message_params)
469
469
  assert sync_handled is True
470
- assert agentic_handled is False
470
+ assert async_handled is False
471
471
  assert sync_result == {"sync": True}
472
472
 
473
- # Reset and execute agentic handler
473
+ # Reset and execute async handler
474
474
  sync_handled = False
475
- agentic_result = await agentic_acp._handlers[RPCMethod.EVENT_SEND](message_params)
475
+ async_result = await async_acp._handlers[RPCMethod.EVENT_SEND](message_params)
476
476
  assert sync_handled is False
477
- assert agentic_handled is True
478
- assert agentic_result == {"agentic": True}
477
+ assert async_handled is True
478
+ assert async_result == {"async": True}
@@ -29,9 +29,9 @@ class SyncACPConfig(BaseACPConfig):
29
29
  pass
30
30
 
31
31
 
32
- class AgenticACPConfig(BaseACPConfig):
32
+ class AsyncACPConfig(BaseACPConfig):
33
33
  """
34
- Base class for agentic ACP configurations
34
+ Base class for async ACP configurations
35
35
 
36
36
  Attributes:
37
37
  type: The type of ACP implementation
@@ -39,8 +39,9 @@ class AgenticACPConfig(BaseACPConfig):
39
39
 
40
40
  type: Literal["temporal", "base"] = Field(..., frozen=True)
41
41
 
42
+ AgenticACPConfig = AsyncACPConfig
42
43
 
43
- class TemporalACPConfig(AgenticACPConfig):
44
+ class TemporalACPConfig(AsyncACPConfig):
44
45
  """
45
46
  Configuration for TemporalACP implementation
46
47
 
@@ -71,11 +72,13 @@ class TemporalACPConfig(AgenticACPConfig):
71
72
  return v
72
73
 
73
74
 
74
- class AgenticBaseACPConfig(AgenticACPConfig):
75
- """Configuration for AgenticBaseACP implementation
75
+ class AsyncBaseACPConfig(AsyncACPConfig):
76
+ """Configuration for AsyncBaseACP implementation
76
77
 
77
78
  Attributes:
78
79
  type: The type of ACP implementation
79
80
  """
80
81
 
81
82
  type: Literal["base"] = Field(default="base", frozen=True)
83
+
84
+ AgenticBaseACPConfig = AsyncBaseACPConfig
@@ -301,7 +301,7 @@ def subscribe_to_async_task_messages(
301
301
  print_task_message(message, print_messages, rich_print)
302
302
 
303
303
  # Subscribe to server-side events using tasks.stream_events_by_name
304
- # This is the proper way to get agent responses after sending an event in agentic agents
304
+ # This is the proper way to get agent responses after sending an event in async agents
305
305
 
306
306
  # Ensure task has a name
307
307
  if not task.name:
@@ -56,6 +56,14 @@ from .messages import (
56
56
  MessagesResourceWithStreamingResponse,
57
57
  AsyncMessagesResourceWithStreamingResponse,
58
58
  )
59
+ from .deployment_history import (
60
+ DeploymentHistoryResource,
61
+ AsyncDeploymentHistoryResource,
62
+ DeploymentHistoryResourceWithRawResponse,
63
+ AsyncDeploymentHistoryResourceWithRawResponse,
64
+ DeploymentHistoryResourceWithStreamingResponse,
65
+ AsyncDeploymentHistoryResourceWithStreamingResponse,
66
+ )
59
67
 
60
68
  __all__ = [
61
69
  "AgentsResource",
@@ -100,4 +108,10 @@ __all__ = [
100
108
  "AsyncTrackerResourceWithRawResponse",
101
109
  "TrackerResourceWithStreamingResponse",
102
110
  "AsyncTrackerResourceWithStreamingResponse",
111
+ "DeploymentHistoryResource",
112
+ "AsyncDeploymentHistoryResource",
113
+ "DeploymentHistoryResourceWithRawResponse",
114
+ "AsyncDeploymentHistoryResourceWithRawResponse",
115
+ "DeploymentHistoryResourceWithStreamingResponse",
116
+ "AsyncDeploymentHistoryResourceWithStreamingResponse",
103
117
  ]
@@ -0,0 +1,272 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+
7
+ import httpx
8
+
9
+ from ..types import deployment_history_list_params
10
+ from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
11
+ from .._utils import maybe_transform, async_maybe_transform
12
+ from .._compat import cached_property
13
+ from .._resource import SyncAPIResource, AsyncAPIResource
14
+ from .._response import (
15
+ to_raw_response_wrapper,
16
+ to_streamed_response_wrapper,
17
+ async_to_raw_response_wrapper,
18
+ async_to_streamed_response_wrapper,
19
+ )
20
+ from .._base_client import make_request_options
21
+ from ..types.deployment_history import DeploymentHistory
22
+ from ..types.deployment_history_list_response import DeploymentHistoryListResponse
23
+
24
+ __all__ = ["DeploymentHistoryResource", "AsyncDeploymentHistoryResource"]
25
+
26
+
27
+ class DeploymentHistoryResource(SyncAPIResource):
28
+ @cached_property
29
+ def with_raw_response(self) -> DeploymentHistoryResourceWithRawResponse:
30
+ """
31
+ This property can be used as a prefix for any HTTP method call to return
32
+ the raw response object instead of the parsed content.
33
+
34
+ For more information, see https://www.github.com/scaleapi/scale-agentex-python#accessing-raw-response-data-eg-headers
35
+ """
36
+ return DeploymentHistoryResourceWithRawResponse(self)
37
+
38
+ @cached_property
39
+ def with_streaming_response(self) -> DeploymentHistoryResourceWithStreamingResponse:
40
+ """
41
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
42
+
43
+ For more information, see https://www.github.com/scaleapi/scale-agentex-python#with_streaming_response
44
+ """
45
+ return DeploymentHistoryResourceWithStreamingResponse(self)
46
+
47
+ def retrieve(
48
+ self,
49
+ deployment_id: str,
50
+ *,
51
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
52
+ # The extra values given here take precedence over values defined on the client or passed to this method.
53
+ extra_headers: Headers | None = None,
54
+ extra_query: Query | None = None,
55
+ extra_body: Body | None = None,
56
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
57
+ ) -> DeploymentHistory:
58
+ """
59
+ Get a deployment record by its unique ID.
60
+
61
+ Args:
62
+ extra_headers: Send extra headers
63
+
64
+ extra_query: Add additional query parameters to the request
65
+
66
+ extra_body: Add additional JSON properties to the request
67
+
68
+ timeout: Override the client-level default timeout for this request, in seconds
69
+ """
70
+ if not deployment_id:
71
+ raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}")
72
+ return self._get(
73
+ f"/deployment-history/{deployment_id}",
74
+ options=make_request_options(
75
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
76
+ ),
77
+ cast_to=DeploymentHistory,
78
+ )
79
+
80
+ def list(
81
+ self,
82
+ *,
83
+ agent_id: Optional[str] | Omit = omit,
84
+ agent_name: Optional[str] | Omit = omit,
85
+ limit: int | Omit = omit,
86
+ page_number: int | Omit = omit,
87
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
88
+ # The extra values given here take precedence over values defined on the client or passed to this method.
89
+ extra_headers: Headers | None = None,
90
+ extra_query: Query | None = None,
91
+ extra_body: Body | None = None,
92
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
93
+ ) -> DeploymentHistoryListResponse:
94
+ """
95
+ List deployment history for an agent.
96
+
97
+ Args:
98
+ extra_headers: Send extra headers
99
+
100
+ extra_query: Add additional query parameters to the request
101
+
102
+ extra_body: Add additional JSON properties to the request
103
+
104
+ timeout: Override the client-level default timeout for this request, in seconds
105
+ """
106
+ return self._get(
107
+ "/deployment-history",
108
+ options=make_request_options(
109
+ extra_headers=extra_headers,
110
+ extra_query=extra_query,
111
+ extra_body=extra_body,
112
+ timeout=timeout,
113
+ query=maybe_transform(
114
+ {
115
+ "agent_id": agent_id,
116
+ "agent_name": agent_name,
117
+ "limit": limit,
118
+ "page_number": page_number,
119
+ },
120
+ deployment_history_list_params.DeploymentHistoryListParams,
121
+ ),
122
+ ),
123
+ cast_to=DeploymentHistoryListResponse,
124
+ )
125
+
126
+
127
+ class AsyncDeploymentHistoryResource(AsyncAPIResource):
128
+ @cached_property
129
+ def with_raw_response(self) -> AsyncDeploymentHistoryResourceWithRawResponse:
130
+ """
131
+ This property can be used as a prefix for any HTTP method call to return
132
+ the raw response object instead of the parsed content.
133
+
134
+ For more information, see https://www.github.com/scaleapi/scale-agentex-python#accessing-raw-response-data-eg-headers
135
+ """
136
+ return AsyncDeploymentHistoryResourceWithRawResponse(self)
137
+
138
+ @cached_property
139
+ def with_streaming_response(self) -> AsyncDeploymentHistoryResourceWithStreamingResponse:
140
+ """
141
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
142
+
143
+ For more information, see https://www.github.com/scaleapi/scale-agentex-python#with_streaming_response
144
+ """
145
+ return AsyncDeploymentHistoryResourceWithStreamingResponse(self)
146
+
147
+ async def retrieve(
148
+ self,
149
+ deployment_id: str,
150
+ *,
151
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
152
+ # The extra values given here take precedence over values defined on the client or passed to this method.
153
+ extra_headers: Headers | None = None,
154
+ extra_query: Query | None = None,
155
+ extra_body: Body | None = None,
156
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
157
+ ) -> DeploymentHistory:
158
+ """
159
+ Get a deployment record by its unique ID.
160
+
161
+ Args:
162
+ extra_headers: Send extra headers
163
+
164
+ extra_query: Add additional query parameters to the request
165
+
166
+ extra_body: Add additional JSON properties to the request
167
+
168
+ timeout: Override the client-level default timeout for this request, in seconds
169
+ """
170
+ if not deployment_id:
171
+ raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}")
172
+ return await self._get(
173
+ f"/deployment-history/{deployment_id}",
174
+ options=make_request_options(
175
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
176
+ ),
177
+ cast_to=DeploymentHistory,
178
+ )
179
+
180
+ async def list(
181
+ self,
182
+ *,
183
+ agent_id: Optional[str] | Omit = omit,
184
+ agent_name: Optional[str] | Omit = omit,
185
+ limit: int | Omit = omit,
186
+ page_number: int | Omit = omit,
187
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
188
+ # The extra values given here take precedence over values defined on the client or passed to this method.
189
+ extra_headers: Headers | None = None,
190
+ extra_query: Query | None = None,
191
+ extra_body: Body | None = None,
192
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
193
+ ) -> DeploymentHistoryListResponse:
194
+ """
195
+ List deployment history for an agent.
196
+
197
+ Args:
198
+ extra_headers: Send extra headers
199
+
200
+ extra_query: Add additional query parameters to the request
201
+
202
+ extra_body: Add additional JSON properties to the request
203
+
204
+ timeout: Override the client-level default timeout for this request, in seconds
205
+ """
206
+ return await self._get(
207
+ "/deployment-history",
208
+ options=make_request_options(
209
+ extra_headers=extra_headers,
210
+ extra_query=extra_query,
211
+ extra_body=extra_body,
212
+ timeout=timeout,
213
+ query=await async_maybe_transform(
214
+ {
215
+ "agent_id": agent_id,
216
+ "agent_name": agent_name,
217
+ "limit": limit,
218
+ "page_number": page_number,
219
+ },
220
+ deployment_history_list_params.DeploymentHistoryListParams,
221
+ ),
222
+ ),
223
+ cast_to=DeploymentHistoryListResponse,
224
+ )
225
+
226
+
227
+ class DeploymentHistoryResourceWithRawResponse:
228
+ def __init__(self, deployment_history: DeploymentHistoryResource) -> None:
229
+ self._deployment_history = deployment_history
230
+
231
+ self.retrieve = to_raw_response_wrapper(
232
+ deployment_history.retrieve,
233
+ )
234
+ self.list = to_raw_response_wrapper(
235
+ deployment_history.list,
236
+ )
237
+
238
+
239
+ class AsyncDeploymentHistoryResourceWithRawResponse:
240
+ def __init__(self, deployment_history: AsyncDeploymentHistoryResource) -> None:
241
+ self._deployment_history = deployment_history
242
+
243
+ self.retrieve = async_to_raw_response_wrapper(
244
+ deployment_history.retrieve,
245
+ )
246
+ self.list = async_to_raw_response_wrapper(
247
+ deployment_history.list,
248
+ )
249
+
250
+
251
+ class DeploymentHistoryResourceWithStreamingResponse:
252
+ def __init__(self, deployment_history: DeploymentHistoryResource) -> None:
253
+ self._deployment_history = deployment_history
254
+
255
+ self.retrieve = to_streamed_response_wrapper(
256
+ deployment_history.retrieve,
257
+ )
258
+ self.list = to_streamed_response_wrapper(
259
+ deployment_history.list,
260
+ )
261
+
262
+
263
+ class AsyncDeploymentHistoryResourceWithStreamingResponse:
264
+ def __init__(self, deployment_history: AsyncDeploymentHistoryResource) -> None:
265
+ self._deployment_history = deployment_history
266
+
267
+ self.retrieve = async_to_streamed_response_wrapper(
268
+ deployment_history.retrieve,
269
+ )
270
+ self.list = async_to_streamed_response_wrapper(
271
+ deployment_history.list,
272
+ )
agentex/types/__init__.py CHANGED
@@ -28,6 +28,7 @@ from .state_list_params import StateListParams as StateListParams
28
28
  from .agent_rpc_response import AgentRpcResponse as AgentRpcResponse
29
29
  from .agent_task_tracker import AgentTaskTracker as AgentTaskTracker
30
30
  from .data_content_param import DataContentParam as DataContentParam
31
+ from .deployment_history import DeploymentHistory as DeploymentHistory
31
32
  from .span_create_params import SpanCreateParams as SpanCreateParams
32
33
  from .span_list_response import SpanListResponse as SpanListResponse
33
34
  from .span_update_params import SpanUpdateParams as SpanUpdateParams
@@ -62,4 +63,6 @@ from .task_message_content_param import TaskMessageContentParam as TaskMessageCo
62
63
  from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam
63
64
  from .tool_response_content_param import ToolResponseContentParam as ToolResponseContentParam
64
65
  from .task_retrieve_by_name_params import TaskRetrieveByNameParams as TaskRetrieveByNameParams
66
+ from .deployment_history_list_params import DeploymentHistoryListParams as DeploymentHistoryListParams
65
67
  from .task_retrieve_by_name_response import TaskRetrieveByNameResponse as TaskRetrieveByNameResponse
68
+ from .deployment_history_list_response import DeploymentHistoryListResponse as DeploymentHistoryListResponse
agentex/types/agent.py CHANGED
@@ -29,13 +29,16 @@ class Agent(BaseModel):
29
29
  updated_at: datetime
30
30
  """The timestamp when the agent was last updated"""
31
31
 
32
+ agent_input_type: Optional[Literal["text", "json"]] = None
33
+ """The type of input the agent expects."""
34
+
32
35
  registered_at: Optional[datetime] = None
33
36
  """The timestamp when the agent was last registered"""
34
37
 
35
38
  registration_metadata: Optional[Dict[str, object]] = None
36
39
  """The metadata for the agent's registration."""
37
40
 
38
- status: Optional[Literal["Ready", "Failed", "Unknown", "Deleted"]] = None
41
+ status: Optional[Literal["Ready", "Failed", "Unknown", "Deleted", "Unhealthy"]] = None
39
42
  """The status of the action, indicating if it's building, ready, failed, etc."""
40
43
 
41
44
  status_reason: Optional[str] = None
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["DeploymentHistory"]
8
+
9
+
10
+ class DeploymentHistory(BaseModel):
11
+ id: str
12
+ """The unique identifier of the deployment record"""
13
+
14
+ agent_id: str
15
+ """The ID of the agent this deployment belongs to"""
16
+
17
+ author_email: str
18
+ """Email of the commit author"""
19
+
20
+ author_name: str
21
+ """Name of the commit author"""
22
+
23
+ branch_name: str
24
+ """Name of the branch"""
25
+
26
+ build_timestamp: datetime
27
+ """When the build was created"""
28
+
29
+ commit_hash: str
30
+ """Git commit hash for this deployment"""
31
+
32
+ deployment_timestamp: datetime
33
+ """When this deployment was first seen in the system"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
7
+
8
+ __all__ = ["DeploymentHistoryListParams"]
9
+
10
+
11
+ class DeploymentHistoryListParams(TypedDict, total=False):
12
+ agent_id: Optional[str]
13
+
14
+ agent_name: Optional[str]
15
+
16
+ limit: int
17
+
18
+ page_number: int
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .deployment_history import DeploymentHistory
7
+
8
+ __all__ = ["DeploymentHistoryListResponse"]
9
+
10
+ DeploymentHistoryListResponse: TypeAlias = List[DeploymentHistory]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentex-sdk
3
- Version: 0.6.0
3
+ Version: 0.6.2
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