NCBM
a7d9c9879b
core/cli+agent: run TTY confirms off the event loop
...
Max-rounds and destructive-tool prompts use asyncio.to_thread with
cancel paused on the main thread so multi-tool turns no longer look
like user cancel. Hooks may be sync or async.
2026-07-15 09:41:32 +08:00
NCBM
5cfe4d6a24
core/agent: soft context compact and cooperative cancel points
...
Shrink older tool dumps for model requests without mutating history;
check task cancellation between tool/model steps.
2026-07-14 23:42:50 +08:00
NCBM
35e89c4dcc
core/agent: optional confirm hook on ToolRegistry execute
...
Serialise dangerous-tool prompts under a lock so parallel tool rounds
cannot race the TTY confirm.
2026-07-14 23:30:10 +08:00
NCBM
3363ab928b
core/agent+cli: wire system prompt and agent budgets
...
ChatAgent accepts system_prompt, result budget, and parallel_tools;
CLI loads them from config [agent].
2026-07-14 23:24:23 +08:00
NCBM
b1964951ea
core/agent: parallel tool calls and tool-result char budget
...
Truncate large tool outputs and run multiple tool calls in one round
concurrently when enabled.
2026-07-14 23:24:11 +08:00
NCBM
bd6d98ceda
core/lmproto+agent: stream via chat_completions(stream=True)
...
Keep library async-def→async-iterator shape; remove raw-lines path;
typed StreamToolCallDelta merge; scripted clients emit real chunks.
2026-07-14 22:40:24 +08:00
NCBM
4548828354
core/lmproto+agent: use normal stream API for chat loop
...
Accept async-def returning async iterator; stream via
chat_completions(..., stream=True); typed StreamToolCallDelta merge;
update scripted test clients to emit real chunks.
2026-07-14 22:40:15 +08:00
NCBM
bdb52bdef5
test/agent: cover merge_stream_tool_calls accumulation
2026-07-14 22:22:22 +08:00
NCBM
ed028dc00b
core/cli: update display and state for streaming, error, cancel events
2026-07-14 22:11:30 +08:00
NCBM
e0916a6352
core/agent+cli: defer DB write until turn success; auto/manual retry
...
Failed turns roll back memory and keep pending_retry_text; persist only
after success. CLI auto-retries 10s/20s/30s (cancellable) and /retry.
2026-07-14 20:56:08 +08:00
NCBM
a634021a80
core/cli: interactive continue prompts for loop and PTY limits
...
on_limit raises tool-round allowance; PTY session/budget limits can
prompt to raise; MaxRoundsEvent.continued marks extended runs.
2026-07-14 19:53:34 +08:00
NCBM
bd6f8f5d9a
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.
2026-07-14 19:15:12 +08:00
NCBM
770e239d27
ci/lint: replace dead type:ignore with casts and clean async gen
...
Drop ignored # type: ignore comments (basedpyright skips them); type
tomlkit tables via cast; empty stream without reportUnreachable.
2026-07-14 18:08:22 +08:00
NCBM
6d536ab913
test/agent: cover tools, loop, and memory-backed ChatAgent
2026-07-14 17:45:47 +08:00