core/cli: resume sessions, history, editline Tab, higher tool rounds

Default to file SQLite DB and latest session; /history and /rounds;
bind Tab for libedit; max tool rounds default 32.
This commit is contained in:
2026-07-14 19:15:12 +08:00
parent 366199fc0c
commit bd6f8f5d9a
11 changed files with 223 additions and 13 deletions
+19
View File
@@ -121,3 +121,22 @@ async def test_resume(state: ReplState) -> None:
assert sid is not None
state.agent.messages.clear()
assert await handle_slash(state, f"/resume {sid}") is True
async def test_history(state: ReplState, capsys: pytest.CaptureFixture[str]) -> None:
from plyngent.lmproto.openai_compatible.model import AssistantChatMessage, UserChatMessage
state.agent.messages = [
UserChatMessage(content="hello"),
AssistantChatMessage(content="hi there"),
]
assert await handle_slash(state, "/history") is True
out = capsys.readouterr().out
assert "user: hello" in out
assert "assistant: hi there" in out
async def test_rounds(state: ReplState) -> None:
assert await handle_slash(state, "/rounds 40") is True
assert state.max_rounds == 40 # noqa: PLR2004
assert state.agent.max_rounds == 40 # noqa: PLR2004