Commit Graph

125 Commits

Author SHA1 Message Date
NCBM 9ec06c7398 core/config: add [agent] section for profile defaults
Parse and sync system_prompt, max_tool_result_chars, and parallel_tools.
2026-07-14 23:24:17 +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 f26e13c2c1 core/tools/file: copy, move, and delete paths via shutil
Workspace-bound copy_path/move_path/delete_path for files and
directories; overwrite and recursive flags where needed.
2026-07-14 21:47:57 +08:00
NCBM 25ff849efe core/cli: level-1 cancel of in-flight turns via Ctrl+C
Run turns as asyncio tasks; SIGINT cancels the task; agent rolls back
and keeps pending_retry_text for /retry.
2026-07-14 21:02:54 +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 f079ab73df core/tools/file: add tree with depth, entry, and VCS filters
Workspace-relative tree; always skip VCS dirs; skip hidden dirs by
default; max_depth and max_entries caps.
2026-07-14 20:19:49 +08:00
NCBM 4f1e99fa4b core/tools/process: timeout partial output, per-session PTY budget
run_command keeps stdout/stderr on timeout with timed_out=true;
open_pty uses shlex.join; PTY output budget is per-session.
2026-07-14 20:07:07 +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 1b53b415b6 core/tools/process: harden PTY sessions for agents
Structured alive/exit_code/data reads; until= wait; SIGTERM then
SIGKILL; exec-fail marker; session limit, idle TTL, output budget.
2026-07-14 19:47:32 +08:00
NCBM 73c11cee36 core/tools/process: run_command stdin/env and write_pty
Optional stdin and env overlay for run_command; write_pty for
interactive PTY input.
2026-07-14 19:36:46 +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 5d90e48618 core/cli: open config in $EDITOR with optional prompt
shlex-split EDITOR (e.g. codium --wait); prompt when no providers;
add config path/edit commands.
2026-07-14 18:44:32 +08:00
NCBM a017adda39 core/cli: readline Tab completion and persistent history
Complete slash commands and provider/model/tools args; store history
under platformdirs user data.
2026-07-14 18:33:34 +08:00
NCBM 566c1d7d4d test/cli: cover selection, slash commands, and providers list 2026-07-14 18:29:46 +08:00
NCBM f45af76c9b test/tools: cover workspace, file, run_command and PTY 2026-07-14 18:20:32 +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
NCBM 227373914f test/memory+runtime: cover store and client factory
Enable pytest-asyncio auto mode; assert default user, message
round-trip, and provider→client mapping including errors.
2026-07-14 17:25:22 +08:00
NCBM c3e44cfff0 core/config: add database section to config store
Parse and expose [database] with defaults; keep providers API unchanged.
2026-07-14 17:19:21 +08:00
NCBM 223c456ebf test/config: add tests for config 2026-07-06 21:55:48 +08:00
NCBM 21aa7dd143 project: init 2026-06-25 23:22:45 +08:00