Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agent-client-protocol"
version = "0.10.1"
version = "0.11.0"
description = "A Python implement of Agent Client Protocol (ACP, by Zed Industries)"
authors = [
{ name = "Chojan Shang", email = "psiace@apache.org" },
Expand Down
2 changes: 1 addition & 1 deletion schema/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
refs/tags/v0.12.2
refs/tags/v0.13.3
5 changes: 5 additions & 0 deletions schema/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"document_did_save": "document/didSave",
"initialize": "initialize",
"logout": "logout",
"mcp_message": "mcp/message",
"nes_accept": "nes/accept",
"nes_close": "nes/close",
"nes_reject": "nes/reject",
Expand All @@ -18,6 +19,7 @@
"providers_set": "providers/set",
"session_cancel": "session/cancel",
"session_close": "session/close",
"session_delete": "session/delete",
"session_fork": "session/fork",
"session_list": "session/list",
"session_load": "session/load",
Expand All @@ -33,6 +35,9 @@
"elicitation_create": "elicitation/create",
"fs_read_text_file": "fs/read_text_file",
"fs_write_text_file": "fs/write_text_file",
"mcp_connect": "mcp/connect",
"mcp_disconnect": "mcp/disconnect",
"mcp_message": "mcp/message",
"session_request_permission": "session/request_permission",
"session_update": "session/update",
"terminal_create": "terminal/create",
Expand Down
479 changes: 444 additions & 35 deletions schema/schema.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions scripts/gen_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"ContentBlock5": "EmbeddedResourceContentBlock",
"McpServer1": "HttpMcpServer",
"McpServer2": "SseMcpServer",
"McpServer3": "AcpMcpServer",
"RequestPermissionOutcome1": "DeniedOutcome",
"RequestPermissionOutcome2": "AllowedOutcome",
"AuthMethod1": "EnvVarAuthMethod",
Expand Down
19 changes: 7 additions & 12 deletions src/acp/client/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from ..interfaces import Agent, Client
from ..meta import AGENT_METHODS
from ..schema import (
AcpMcpServer,
AudioContentBlock,
AuthenticateRequest,
AuthenticateResponse,
Expand Down Expand Up @@ -101,7 +102,7 @@ async def new_session(
self,
cwd: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> NewSessionResponse:
resolved_mcp_servers = mcp_servers or []
Expand All @@ -123,7 +124,7 @@ async def load_session(
cwd: str,
session_id: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> LoadSessionResponse:
resolved_mcp_servers = mcp_servers or []
Expand All @@ -142,18 +143,12 @@ async def load_session(

@param_model(ListSessionsRequest)
async def list_sessions(
self,
additional_directories: list[str] | None = None,
cursor: str | None = None,
cwd: str | None = None,
**kwargs: Any,
self, cursor: str | None = None, cwd: str | None = None, **kwargs: Any
) -> ListSessionsResponse:
return await request_model_from_dict(
self._conn,
AGENT_METHODS["session_list"],
ListSessionsRequest(
additional_directories=additional_directories, cursor=cursor, cwd=cwd, field_meta=kwargs or None
),
ListSessionsRequest(cursor=cursor, cwd=cwd, field_meta=kwargs or None),
ListSessionsResponse,
)

Expand Down Expand Up @@ -228,7 +223,7 @@ async def fork_session(
cwd: str,
session_id: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> ForkSessionResponse:
return await request_model(
Expand All @@ -250,7 +245,7 @@ async def resume_session(
cwd: str,
session_id: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> ResumeSessionResponse:
return await request_model(
Expand Down
15 changes: 6 additions & 9 deletions src/acp/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from typing import Any, Protocol

from .schema import (
AcpMcpServer,
AgentMessageChunk,
AgentPlanUpdate,
AgentThoughtChunk,
Expand Down Expand Up @@ -160,7 +161,7 @@ async def new_session(
self,
cwd: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> NewSessionResponse: ...

Expand All @@ -170,17 +171,13 @@ async def load_session(
cwd: str,
session_id: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> LoadSessionResponse | None: ...

@param_model(ListSessionsRequest)
async def list_sessions(
self,
additional_directories: list[str] | None = None,
cursor: str | None = None,
cwd: str | None = None,
**kwargs: Any,
self, cursor: str | None = None, cwd: str | None = None, **kwargs: Any
) -> ListSessionsResponse: ...

@param_model(SetSessionModeRequest)
Expand Down Expand Up @@ -220,7 +217,7 @@ async def fork_session(
cwd: str,
session_id: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> ForkSessionResponse: ...

Expand All @@ -230,7 +227,7 @@ async def resume_session(
cwd: str,
session_id: str,
additional_directories: list[str] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | McpServerStdio] | None = None,
mcp_servers: list[HttpMcpServer | SseMcpServer | AcpMcpServer | McpServerStdio] | None = None,
**kwargs: Any,
) -> ResumeSessionResponse: ...

Expand Down
7 changes: 6 additions & 1 deletion src/acp/meta.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Generated from schema/meta.json. Do not edit by hand.
# Schema ref: refs/tags/v0.12.2
# Schema ref: refs/tags/v0.13.3
AGENT_METHODS = {
"authenticate": "authenticate",
"document_did_change": "document/didChange",
Expand All @@ -9,6 +9,7 @@
"document_did_save": "document/didSave",
"initialize": "initialize",
"logout": "logout",
"mcp_message": "mcp/message",
"nes_accept": "nes/accept",
"nes_close": "nes/close",
"nes_reject": "nes/reject",
Expand All @@ -19,6 +20,7 @@
"providers_set": "providers/set",
"session_cancel": "session/cancel",
"session_close": "session/close",
"session_delete": "session/delete",
"session_fork": "session/fork",
"session_list": "session/list",
"session_load": "session/load",
Expand All @@ -34,6 +36,9 @@
"elicitation_create": "elicitation/create",
"fs_read_text_file": "fs/read_text_file",
"fs_write_text_file": "fs/write_text_file",
"mcp_connect": "mcp/connect",
"mcp_disconnect": "mcp/disconnect",
"mcp_message": "mcp/message",
"session_request_permission": "session/request_permission",
"session_update": "session/update",
"terminal_create": "terminal/create",
Expand Down
Loading
Loading