Skip to content
Open
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
6 changes: 5 additions & 1 deletion src/kimi_cli/acp/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,11 @@ async def list_sessions(
)

async def set_session_mode(self, mode_id: str, session_id: str, **kwargs: Any) -> None:
assert mode_id == "default", "Only default mode is supported"
if session_id not in self.sessions:
raise acp.RequestError.invalid_params({"session_id": "Session not found"})

if mode_id != "default":
raise acp.RequestError.invalid_params({"mode_id": "Only default mode is supported"})

async def set_session_model(self, model_id: str, session_id: str, **kwargs: Any) -> None:
logger.info(
Expand Down
34 changes: 34 additions & 0 deletions tests/acp/test_protocol_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,37 @@ async def test_cancel_session(

# cancel should not raise
await conn.cancel(session_id=session_resp.session_id)


@pytest.mark.asyncio
async def test_set_session_mode_rejects_non_default_mode(acp_client, tmp_path):
conn, _ = acp_client
await conn.initialize(protocol_version=1)

work_dir = tmp_path / "workdir"
work_dir.mkdir(exist_ok=True)
session = await conn.new_session(cwd=str(work_dir))

with pytest.raises(acp.RequestError) as exc_info:
await conn.set_session_mode(
mode_id="non-default",
session_id=session.session_id,
)

assert exc_info.value.code == -32602
assert exc_info.value.data == {"mode_id": "Only default mode is supported"}


@pytest.mark.asyncio
async def test_set_session_mode_rejects_unknown_session(acp_client):
conn, _ = acp_client
await conn.initialize(protocol_version=1)

with pytest.raises(acp.RequestError) as exc_info:
await conn.set_session_mode(
mode_id="default",
session_id="missing-session",
)

assert exc_info.value.code == -32602
assert exc_info.value.data == {"session_id": "Session not found"}
Loading