Skip to content

Commit e532cee

Browse files
authored
Merge pull request #3 from scaleapi/release-please--branches--main--changes--next
release: 0.1.0-alpha.1
2 parents f9d73b1 + fe600f3 commit e532cee

File tree

365 files changed

+30090
-2411
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

365 files changed

+30090
-2411
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ dist
1414
.envrc
1515
codegen.log
1616
Brewfile.lock.json
17+
18+
.codeartifact-pip-conf

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.9.18
1+
3.12

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.0.1-alpha.1"
2+
".": "0.1.0-alpha.1"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 36
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-021b55c88964b7a5bfc9d692d32a52c6b0150445656d2407c4cb8e9dd1e5f100.yml
3-
openapi_spec_hash: ed92c0d5d6bed9cb5617f8a776ac42c9
4-
config_hash: ea7ccb4f8ed1981b364cef82aa595243
1+
configured_endpoints: 34
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-1d08fb2290b5310c91801d7575d356628d372fd5434e15d3b9cead48eadb893f.yml
3+
openapi_spec_hash: 216a0edbf4e1a3cde23329d4f385faed
4+
config_hash: 7661726e3cccf9f6349179841153601d

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 0.1.0-alpha.1 (2025-07-22)
4+
5+
Full Changelog: [v0.0.1-alpha.1...v0.1.0-alpha.1](https://github.com/scaleapi/agentex-python/compare/v0.0.1-alpha.1...v0.1.0-alpha.1)
6+
7+
### Features
8+
9+
* **api:** manual updates ([06f5fe1](https://github.com/scaleapi/agentex-python/commit/06f5fe115ace5ec4ca8149cd0afa6207b193a04c))
10+
311
## 0.0.1-alpha.1 (2025-07-22)
412

513
Full Changelog: [v0.0.1-alpha.0...v0.0.1-alpha.1](https://github.com/scaleapi/agentex-python/compare/v0.0.1-alpha.0...v0.0.1-alpha.1)

README.md

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,17 @@ pip install git+ssh://[email protected]/scaleapi/agentex-python.git
2828
The full API of this library can be found in [api.md](api.md).
2929

3030
```python
31-
import os
3231
from agentex import Agentex
3332

3433
client = Agentex(
35-
api_key=os.environ.get("AGENTEX_SDK_API_KEY"), # This is the default and can be omitted
34+
# defaults to "production".
35+
environment="development",
3636
)
3737

38-
response = client.echo.send(
39-
message="message",
38+
agent = client.agents.retrieve(
39+
"agent_id",
4040
)
41+
print(agent.id)
4142
```
4243

4344
While you can provide an `api_key` keyword argument,
@@ -50,19 +51,20 @@ so that your API Key is not stored in source control.
5051
Simply import `AsyncAgentex` instead of `Agentex` and use `await` with each API call:
5152

5253
```python
53-
import os
5454
import asyncio
5555
from agentex import AsyncAgentex
5656

5757
client = AsyncAgentex(
58-
api_key=os.environ.get("AGENTEX_SDK_API_KEY"), # This is the default and can be omitted
58+
# defaults to "production".
59+
environment="development",
5960
)
6061

6162

6263
async def main() -> None:
63-
response = await client.echo.send(
64-
message="message",
64+
agent = await client.agents.retrieve(
65+
"agent_id",
6566
)
67+
print(agent.id)
6668

6769

6870
asyncio.run(main())
@@ -91,12 +93,12 @@ from agentex import AsyncAgentex
9193

9294
async def main() -> None:
9395
async with AsyncAgentex(
94-
api_key="My API Key",
9596
http_client=DefaultAioHttpClient(),
9697
) as client:
97-
response = await client.echo.send(
98-
message="message",
98+
agent = await client.agents.retrieve(
99+
"agent_id",
99100
)
101+
print(agent.id)
100102

101103

102104
asyncio.run(main())
@@ -127,8 +129,8 @@ from agentex import Agentex
127129
client = Agentex()
128130

129131
try:
130-
client.echo.send(
131-
message="message",
132+
client.agents.retrieve(
133+
"agent_id",
132134
)
133135
except agentex.APIConnectionError as e:
134136
print("The server could not be reached")
@@ -172,8 +174,8 @@ client = Agentex(
172174
)
173175

174176
# Or, configure per-request:
175-
client.with_options(max_retries=5).echo.send(
176-
message="message",
177+
client.with_options(max_retries=5).agents.retrieve(
178+
"agent_id",
177179
)
178180
```
179181

@@ -197,8 +199,8 @@ client = Agentex(
197199
)
198200

199201
# Override per-request:
200-
client.with_options(timeout=5.0).echo.send(
201-
message="message",
202+
client.with_options(timeout=5.0).agents.retrieve(
203+
"agent_id",
202204
)
203205
```
204206

@@ -240,13 +242,13 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
240242
from agentex import Agentex
241243

242244
client = Agentex()
243-
response = client.echo.with_raw_response.send(
244-
message="message",
245+
response = client.agents.with_raw_response.retrieve(
246+
"agent_id",
245247
)
246248
print(response.headers.get('X-My-Header'))
247249

248-
echo = response.parse() # get the object that `echo.send()` would have returned
249-
print(echo)
250+
agent = response.parse() # get the object that `agents.retrieve()` would have returned
251+
print(agent.id)
250252
```
251253

252254
These methods return an [`APIResponse`](https://github.com/scaleapi/agentex-python/tree/main/src/agentex/_response.py) object.
@@ -260,8 +262,8 @@ The above interface eagerly reads the full response body when you make the reque
260262
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
261263

262264
```python
263-
with client.echo.with_streaming_response.send(
264-
message="message",
265+
with client.agents.with_streaming_response.retrieve(
266+
"agent_id",
265267
) as response:
266268
print(response.headers.get("X-My-Header"))
267269

api.md

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,35 @@
1-
# Agentex
2-
3-
Methods:
4-
5-
- <code title="get /">client.<a href="./src/agentex/_client.py">get_root</a>() -> object</code>
6-
7-
# Echo
8-
9-
Methods:
10-
11-
- <code title="post /echo">client.echo.<a href="./src/agentex/resources/echo.py">send</a>(\*\*<a href="src/agentex/types/echo_send_params.py">params</a>) -> object</code>
12-
131
# Agents
142

153
Types:
164

175
```python
18-
from agentex.types import AcpType, Agent, AgentRpcRequest, AgentListResponse
6+
from agentex.types import (
7+
AcpType,
8+
Agent,
9+
AgentRpcParams,
10+
AgentRpcRequest,
11+
AgentRpcResponse,
12+
AgentRpcResult,
13+
DataDelta,
14+
TaskMessageContent,
15+
TaskMessageDelta,
16+
TaskMessageUpdate,
17+
TextDelta,
18+
ToolRequestDelta,
19+
ToolResponseDelta,
20+
AgentListResponse,
21+
)
1922
```
2023

2124
Methods:
2225

23-
- <code title="get /agents/{agent_id}">client.agents.<a href="./src/agentex/resources/agents/agents.py">retrieve</a>(agent_id) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
24-
- <code title="get /agents">client.agents.<a href="./src/agentex/resources/agents/agents.py">list</a>(\*\*<a href="src/agentex/types/agent_list_params.py">params</a>) -> <a href="./src/agentex/types/agent_list_response.py">AgentListResponse</a></code>
25-
- <code title="delete /agents/{agent_id}">client.agents.<a href="./src/agentex/resources/agents/agents.py">delete</a>(agent_id) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
26-
- <code title="post /agents/{agent_id}/rpc">client.agents.<a href="./src/agentex/resources/agents/agents.py">rpc</a>(agent_id, \*\*<a href="src/agentex/types/agent_rpc_params.py">params</a>) -> object</code>
27-
28-
## Name
29-
30-
Methods:
31-
32-
- <code title="get /agents/name/{agent_name}">client.agents.name.<a href="./src/agentex/resources/agents/name.py">retrieve</a>(agent_name) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
33-
- <code title="delete /agents/name/{agent_name}">client.agents.name.<a href="./src/agentex/resources/agents/name.py">delete</a>(agent_name) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
34-
- <code title="post /agents/name/{agent_name}/rpc">client.agents.name.<a href="./src/agentex/resources/agents/name.py">rpc</a>(agent_name, \*\*<a href="src/agentex/types/agents/name_rpc_params.py">params</a>) -> object</code>
26+
- <code title="get /agents/{agent_id}">client.agents.<a href="./src/agentex/resources/agents.py">retrieve</a>(agent_id) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
27+
- <code title="get /agents">client.agents.<a href="./src/agentex/resources/agents.py">list</a>(\*\*<a href="src/agentex/types/agent_list_params.py">params</a>) -> <a href="./src/agentex/types/agent_list_response.py">AgentListResponse</a></code>
28+
- <code title="delete /agents/{agent_id}">client.agents.<a href="./src/agentex/resources/agents.py">delete</a>(agent_id) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
29+
- <code title="delete /agents/name/{agent_name}">client.agents.<a href="./src/agentex/resources/agents.py">delete_by_name</a>(agent_name) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
30+
- <code title="get /agents/name/{agent_name}">client.agents.<a href="./src/agentex/resources/agents.py">retrieve_by_name</a>(agent_name) -> <a href="./src/agentex/types/agent.py">Agent</a></code>
31+
- <code title="post /agents/{agent_id}/rpc">client.agents.<a href="./src/agentex/resources/agents.py">rpc</a>(agent_id, \*\*<a href="src/agentex/types/agent_rpc_params.py">params</a>) -> <a href="./src/agentex/types/agent_rpc_response.py">AgentRpcResponse</a></code>
32+
- <code title="post /agents/name/{agent_name}/rpc">client.agents.<a href="./src/agentex/resources/agents.py">rpc_by_name</a>(agent_name, \*\*<a href="src/agentex/types/agent_rpc_by_name_params.py">params</a>) -> <a href="./src/agentex/types/agent_rpc_response.py">AgentRpcResponse</a></code>
3533

3634
# Tasks
3735

@@ -43,18 +41,13 @@ from agentex.types import Task, TaskListResponse
4341

4442
Methods:
4543

46-
- <code title="get /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks/tasks.py">retrieve</a>(task_id) -> <a href="./src/agentex/types/task.py">Task</a></code>
47-
- <code title="get /tasks">client.tasks.<a href="./src/agentex/resources/tasks/tasks.py">list</a>() -> <a href="./src/agentex/types/task_list_response.py">TaskListResponse</a></code>
48-
- <code title="delete /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks/tasks.py">delete</a>(task_id) -> <a href="./src/agentex/types/task.py">Task</a></code>
49-
- <code title="get /tasks/{task_id}/stream">client.tasks.<a href="./src/agentex/resources/tasks/tasks.py">stream_events</a>(task_id) -> object</code>
50-
51-
## Name
52-
53-
Methods:
54-
55-
- <code title="get /tasks/name/{task_name}">client.tasks.name.<a href="./src/agentex/resources/tasks/name.py">retrieve</a>(task_name) -> <a href="./src/agentex/types/task.py">Task</a></code>
56-
- <code title="delete /tasks/name/{task_name}">client.tasks.name.<a href="./src/agentex/resources/tasks/name.py">delete</a>(task_name) -> <a href="./src/agentex/types/task.py">Task</a></code>
57-
- <code title="get /tasks/name/{task_name}/stream">client.tasks.name.<a href="./src/agentex/resources/tasks/name.py">stream_events</a>(task_name) -> object</code>
44+
- <code title="get /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks.py">retrieve</a>(task_id) -> <a href="./src/agentex/types/task.py">Task</a></code>
45+
- <code title="get /tasks">client.tasks.<a href="./src/agentex/resources/tasks.py">list</a>() -> <a href="./src/agentex/types/task_list_response.py">TaskListResponse</a></code>
46+
- <code title="delete /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks.py">delete</a>(task_id) -> <a href="./src/agentex/types/task.py">Task</a></code>
47+
- <code title="delete /tasks/name/{task_name}">client.tasks.<a href="./src/agentex/resources/tasks.py">delete_by_name</a>(task_name) -> <a href="./src/agentex/types/task.py">Task</a></code>
48+
- <code title="get /tasks/name/{task_name}">client.tasks.<a href="./src/agentex/resources/tasks.py">retrieve_by_name</a>(task_name) -> <a href="./src/agentex/types/task.py">Task</a></code>
49+
- <code title="get /tasks/{task_id}/stream">client.tasks.<a href="./src/agentex/resources/tasks.py">stream_events</a>(task_id) -> object</code>
50+
- <code title="get /tasks/name/{task_name}/stream">client.tasks.<a href="./src/agentex/resources/tasks.py">stream_events_by_name</a>(task_name) -> object</code>
5851

5952
# Messages
6053

@@ -65,7 +58,6 @@ from agentex.types import (
6558
DataContent,
6659
MessageAuthor,
6760
MessageStyle,
68-
StreamingStatus,
6961
TaskMessage,
7062
TextContent,
7163
ToolRequestContent,
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Python
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
*.so
6+
.Python
7+
build/
8+
develop-eggs/
9+
dist/
10+
downloads/
11+
eggs/
12+
.eggs/
13+
lib/
14+
lib64/
15+
parts/
16+
sdist/
17+
var/
18+
wheels/
19+
*.egg-info/
20+
.installed.cfg
21+
*.egg
22+
23+
# Environments
24+
.env**
25+
.venv
26+
env/
27+
venv/
28+
ENV/
29+
env.bak/
30+
venv.bak/
31+
32+
# IDE
33+
.idea/
34+
.vscode/
35+
*.swp
36+
*.swo
37+
38+
# Git
39+
.git
40+
.gitignore
41+
42+
# Misc
43+
.DS_Store
44+
45+
# CodeArtifact configuration
46+
.codeartifact-pip-conf
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# syntax=docker/dockerfile:1.3
2+
FROM python:3.12-slim
3+
COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/
4+
5+
# Install system dependencies
6+
RUN apt-get update && apt-get install -y \
7+
htop \
8+
vim \
9+
curl \
10+
tar \
11+
python3-dev \
12+
postgresql-client \
13+
build-essential \
14+
libpq-dev \
15+
gcc \
16+
cmake \
17+
netcat-openbsd \
18+
&& apt-get clean \
19+
&& rm -rf /var/lib/apt/lists/*
20+
21+
RUN uv pip install --system --upgrade pip setuptools wheel
22+
23+
ENV UV_HTTP_TIMEOUT=1000
24+
25+
# Copy just the requirements file to optimize caching
26+
COPY 000_hello_acp/requirements.txt /app/requirements.txt
27+
28+
WORKDIR /app/
29+
30+
# Install the required Python packages
31+
RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \
32+
export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \
33+
export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \
34+
uv pip install --system -r requirements.txt
35+
36+
# Copy the project code
37+
COPY 000_hello_acp/project /app/project
38+
39+
WORKDIR /app/project
40+
41+
# Set environment variables
42+
ENV PYTHONPATH=/app
43+
44+
# Run the agent using uvicorn
45+
CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"]

0 commit comments

Comments
 (0)