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.
- agentex/_client.py +15 -1
- agentex/_version.py +1 -1
- agentex/lib/adk/providers/_modules/litellm.py +1 -1
- agentex/lib/adk/providers/_modules/openai.py +16 -1
- agentex/lib/adk/providers/_modules/sgp.py +1 -1
- agentex/lib/adk/providers/_modules/sync_provider.py +32 -24
- agentex/lib/cli/commands/init.py +7 -18
- agentex/lib/cli/templates/default/README.md.j2 +1 -1
- agentex/lib/cli/templates/default/dev.ipynb.j2 +1 -1
- agentex/lib/cli/templates/default/manifest.yaml.j2 +1 -4
- agentex/lib/cli/templates/default/project/acp.py.j2 +3 -3
- agentex/lib/cli/templates/default/test_agent.py.j2 +1 -1
- agentex/lib/cli/templates/sync/manifest.yaml.j2 +0 -3
- agentex/lib/cli/templates/temporal/README.md.j2 +1 -1
- agentex/lib/cli/templates/temporal/dev.ipynb.j2 +1 -1
- agentex/lib/cli/templates/temporal/manifest.yaml.j2 +2 -5
- agentex/lib/cli/templates/temporal/project/acp.py.j2 +1 -1
- agentex/lib/cli/templates/temporal/test_agent.py.j2 +1 -1
- agentex/lib/core/temporal/plugins/openai_agents/models/temporal_streaming_model.py +66 -0
- agentex/lib/core/temporal/plugins/openai_agents/models/temporal_tracing_model.py +94 -17
- agentex/lib/environment_variables.py +1 -1
- agentex/lib/sdk/config/agent_config.py +1 -1
- agentex/lib/sdk/fastacp/base/base_acp_server.py +4 -4
- agentex/lib/sdk/fastacp/fastacp.py +30 -16
- agentex/lib/sdk/fastacp/impl/{agentic_base_acp.py → async_base_acp.py} +10 -8
- agentex/lib/sdk/fastacp/tests/README.md +3 -3
- agentex/lib/sdk/fastacp/tests/conftest.py +4 -4
- agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py +99 -72
- agentex/lib/sdk/fastacp/tests/test_integration.py +24 -24
- agentex/lib/types/fastacp.py +8 -5
- agentex/lib/utils/dev_tools/async_messages.py +1 -1
- agentex/resources/__init__.py +14 -0
- agentex/resources/deployment_history.py +272 -0
- agentex/types/__init__.py +3 -0
- agentex/types/agent.py +4 -1
- agentex/types/deployment_history.py +33 -0
- agentex/types/deployment_history_list_params.py +18 -0
- agentex/types/deployment_history_list_response.py +10 -0
- {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/METADATA +1 -1
- {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/RECORD +43 -39
- {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/WHEEL +0 -0
- {agentex_sdk-0.6.0.dist-info → agentex_sdk-0.6.2.dist-info}/entry_points.txt +0 -0
- {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.
|
|
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
|
|
33
|
-
"""Test
|
|
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
|
-
|
|
35
|
+
async_acp = AsyncBaseACP.create()
|
|
36
36
|
|
|
37
37
|
# Should have create, message, and cancel handlers by default
|
|
38
|
-
assert RPCMethod.TASK_CREATE in
|
|
39
|
-
assert RPCMethod.EVENT_SEND in
|
|
40
|
-
assert RPCMethod.TASK_CANCEL in
|
|
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,
|
|
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
|
-
@
|
|
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
|
-
@
|
|
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
|
-
@
|
|
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(
|
|
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
|
-
|
|
444
|
+
async_acp = AsyncBaseACP.create()
|
|
445
445
|
|
|
446
446
|
sync_handled = False
|
|
447
|
-
|
|
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
|
-
@
|
|
456
|
-
async def
|
|
457
|
-
nonlocal
|
|
458
|
-
|
|
459
|
-
return {"
|
|
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
|
|
470
|
+
assert async_handled is False
|
|
471
471
|
assert sync_result == {"sync": True}
|
|
472
472
|
|
|
473
|
-
# Reset and execute
|
|
473
|
+
# Reset and execute async handler
|
|
474
474
|
sync_handled = False
|
|
475
|
-
|
|
475
|
+
async_result = await async_acp._handlers[RPCMethod.EVENT_SEND](message_params)
|
|
476
476
|
assert sync_handled is False
|
|
477
|
-
assert
|
|
478
|
-
assert
|
|
477
|
+
assert async_handled is True
|
|
478
|
+
assert async_result == {"async": True}
|
agentex/lib/types/fastacp.py
CHANGED
|
@@ -29,9 +29,9 @@ class SyncACPConfig(BaseACPConfig):
|
|
|
29
29
|
pass
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
class
|
|
32
|
+
class AsyncACPConfig(BaseACPConfig):
|
|
33
33
|
"""
|
|
34
|
-
Base class for
|
|
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(
|
|
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
|
|
75
|
-
"""Configuration for
|
|
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
|
|
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:
|
agentex/resources/__init__.py
CHANGED
|
@@ -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.
|
|
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
|