Commit Graph

189 Commits

Author SHA1 Message Date
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 366199fc0c core/lmproto: allow null assistant content and optional response fields
Providers return content=null with tool_calls; relax choice logprobs,
finish_reason, fingerprint, and usage for real API payloads.
2026-07-14 18:52:27 +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 054b2e8837 docs: document CLI in CLAUDE.md 2026-07-14 18:29:46 +08:00
NCBM 566c1d7d4d test/cli: cover selection, slash commands, and providers list 2026-07-14 18:29:46 +08:00
NCBM e1f71e7828 core/cli: click app, chat/providers commands, entry points
Expose plyngent console script and python -m plyngent.
2026-07-14 18:29:46 +08:00
NCBM 6be0ef5ac9 core/cli: readline REPL with slash commands 2026-07-14 18:29:46 +08:00
NCBM a1edfd2947 core/cli: provider selection, event display, REPL state 2026-07-14 18:29:46 +08:00
NCBM a64e3bf769 deps: add click for CLI 2026-07-14 18:29:46 +08:00
NCBM 2d589eb36f docs: document tools package in CLAUDE.md 2026-07-14 18:20:32 +08:00
NCBM f45af76c9b test/tools: cover workspace, file, run_command and PTY 2026-07-14 18:20:32 +08:00
NCBM f23780171b core/tools: export DEFAULT_TOOLS and package surface 2026-07-14 18:20:32 +08:00
NCBM facd8d8a61 core/tools/process: minimal PTY open/read/close sessions 2026-07-14 18:20:32 +08:00
NCBM fa9d157708 core/tools/process: run_command without shell
Async argv exec with timeout, cwd under workspace, output truncation
and command denylist.
2026-07-14 18:20:32 +08:00
NCBM 94720f4e57 core/tools/file: read, write, listdir, edit_replace
Module-level @tool handlers under workspace root; first-occurrence
string replace.
2026-07-14 18:20:32 +08:00
NCBM 111a554e80 core/tools: workspace root, path and command denylists 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 b72a9a8c1c docs: document agent package in CLAUDE.md 2026-07-14 17:45:47 +08:00
NCBM 6d536ab913 test/agent: cover tools, loop, and memory-backed ChatAgent 2026-07-14 17:45:47 +08:00
NCBM 85fae1cb2f core/agent: ChatAgent wrapper with optional memory bind 2026-07-14 17:45:47 +08:00
NCBM 54cf73452b core/agent: multi-round chat/tool loop with event stream
run_chat_loop appends assistant/tool messages, yields events,
stops on no tool_calls or max_rounds.
2026-07-14 17:45:47 +08:00
NCBM 50863fa1c6 core/agent: add @tool decorator and ToolRegistry
Infer JSON Schema from type hints; execute tools by name with
string results for the model.
2026-07-14 17:45:47 +08:00
NCBM 8646752139 core/agent: add AgentEvent types and ChatClient protocol 2026-07-14 17:45:47 +08:00
NCBM 27c6cb77f5 docs: update CLAUDE.md for memory, runtime, and pytest 2026-07-14 17:25:22 +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 c129498efa core/runtime: map Provider config to protocol clients
create_client supports openai, openai-compatible, and deepseek
(openai convention); anthropic and deepseek anthropic raise.
2026-07-14 17:25:18 +08:00
NCBM 0c5cc20d0b core/memory: add async MemoryStore with default local user
Open SQLite via aiosqlite, create schema, ensure default user, and
CRUD sessions/messages with msgspec AnyChatMessage JSON.
2026-07-14 17:25:14 +08:00
NCBM 8a1994a785 core/lmproto: fix msgspec Unset and tag multi-struct unions
Use Unset=UnsetType (not PEP 695 alias) and tag role/type fields so
decoders and convert work for chat messages and tool calls.
2026-07-14 17:25:09 +08:00
NCBM 123aadeadf docs: add architecture notes and development principles 2026-07-14 17:19:31 +08:00
NCBM 43edb12d6a core/memory: add SQLAlchemy schema for user, session, message 2026-07-14 17:19:31 +08:00
NCBM a24d01f139 deps: add sqlalchemy, aiosqlite and pytest-asyncio
Runtime DB (async SQLite) and async test support for memory layer.
2026-07-14 17:19:26 +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 7f63e7980b core/lmproto: add openai-compatible and deepseek clients
OpenAI-compatible models, config, and async client via niquests;
DeepSeek OpenAI-compat extension with reasoning fields.
2026-07-14 17:19:16 +08:00
NCBM 223c456ebf test/config: add tests for config 2026-07-06 21:55:48 +08:00
NCBM fd6126fce7 core/config: add configuration center 2026-07-06 21:55:17 +08:00
NCBM 27396c9844 deps: add web request, configuration and test dependencies 2026-07-06 18:26:59 +08:00
NCBM 81087b5003 deps/lock: update lock due to pyproject reformat 2026-06-26 01:49:07 +08:00
NCBM 21aa7dd143 project: init 2026-06-25 23:22:45 +08:00