NCBM
cb137c1dee
core/tools: add truncate token module (chainable cursors)
2026-08-11 14:53:15 +08:00
NCBM
fa0e68d594
docs: document wait tool
2026-08-11 14:47:53 +08:00
NCBM
d3a5200e0f
core/tools: add wait tool (Enter to disturb)
2026-08-11 14:46:58 +08:00
NCBM
fe7b75aad8
core/prompting: add line input with timeout
2026-08-11 14:44:34 +08:00
NCBM
010173cfc7
docs: use run_argv tool names in docs
2026-08-04 21:41:39 +08:00
NCBM
f4c020b761
core/config: point default playbook and reminder at run_argv tools
2026-08-04 21:40:55 +08:00
NCBM
df8f6bf959
core/tools: rename run_command_batch to run_argv_batch (steps/argv keys)
2026-08-04 21:40:25 +08:00
NCBM
d698fbf06f
core/tools: rename run_command to run_argv (argv param)
2026-08-04 21:38:20 +08:00
NCBM
23f7b4e299
core/tools: clear argv error when run_command gets a string
2026-08-04 20:35:22 +08:00
NCBM
c1dfdc8478
release: plyngent 0.3.0
v0.3.0
2026-08-04 00:06:18 +08:00
NCBM
3449f3a77d
lint: drop mypy-style type ignore comments
2026-08-03 23:38:32 +08:00
NCBM
a834984bcc
core/memory: merge session schema migrations by version
2026-08-01 02:47:08 +08:00
NCBM
8954d855d5
docs: document DeepSeek Anthropic convention support
2026-08-01 02:32:45 +08:00
NCBM
a198fa9d41
runtime: route DeepSeek convention=anthropic to Anthropic client
2026-08-01 02:31:21 +08:00
NCBM
439c24a1ce
lmproto: add DeepSeek Anthropic client
2026-08-01 02:30:19 +08:00
NCBM
6e4d229f6f
config: default deepseek anthropic convention url
2026-08-01 02:27:23 +08:00
NCBM
f6072ce2a6
core/agent: interleave responses tool outputs after their calls
2026-08-01 02:16:48 +08:00
NCBM
6932937f87
docs: document DeepSeek Responses via convention field
2026-08-01 02:05:53 +08:00
NCBM
4b7cc93917
runtime: route DeepSeek convention=responses to Responses client
2026-08-01 02:03:52 +08:00
NCBM
bfafe74a6f
core/agent: handle incomplete/failed Responses stream terminals
2026-08-01 02:03:02 +08:00
NCBM
db6d2a83f4
lmproto: add DeepSeek Responses client
2026-08-01 02:01:06 +08:00
NCBM
8ad33af652
config: add typed DeepSeek convention field for API surface
2026-08-01 01:59:39 +08:00
NCBM
a877dba8c1
cli/repl: keep second Ctrl+C inside the REPL
2026-08-01 01:45:10 +08:00
NCBM
3fe1c4cf91
core/agent: add model-friendly hint to truncated tool results
2026-08-01 01:42:17 +08:00
NCBM
49a3ef0004
docs: describe read-line edit guard in tool playbook
2026-08-01 01:25:22 +08:00
NCBM
19ac4533d4
core/tools: invalidate lineno read state on file mutation
2026-08-01 01:22:30 +08:00
NCBM
56ac8d17d7
core/tools: restrict edit_lineno to lines read with line numbers
2026-08-01 01:21:00 +08:00
NCBM
0cb7a29f21
core/agent: track per-line lineno read state
2026-08-01 01:20:51 +08:00
NCBM
1d4e48f6f3
core/agent: normalize provider usage structs in token_usage_from_api
2026-08-01 01:09:12 +08:00
NCBM
626012e92f
core/agent: unify provider finish_reason mapping
2026-08-01 01:05:26 +08:00
NCBM
5198a8da20
core/agent: align missing-terminal contract in messages dispatch
2026-08-01 01:05:17 +08:00
NCBM
e29e66dbc7
core/agent: surface openai responses stream error events
2026-08-01 01:05:09 +08:00
NCBM
9aea91e77c
core/agent: share stream chunk builders across responses and messages bridges
2026-08-01 00:48:44 +08:00
NCBM
06f1b386a0
test/lmproto: cover anthropic messages client HTTP round-trips
2026-08-01 00:41:59 +08:00
NCBM
556eca66db
docs: document openai responses and anthropic messages wiring
2026-08-01 00:34:48 +08:00
NCBM
44a5f047ba
core/runtime: plumb anthropic HTTP timeout
2026-08-01 00:34:41 +08:00
NCBM
3a671f73ea
core/agent: wire anthropic messages bridge and dispatch
2026-08-01 00:34:32 +08:00
NCBM
de7cae83e4
core/agent: restore OpenAI responses dispatch and provider_tools
2026-08-01 00:34:15 +08:00
NCBM
ad58d6cdc6
lint: drop dead code that blocks basedpyright (unused helper and import)
2026-08-01 00:33:25 +08:00
NCBM
ef3594ad62
core/tools: change ask_user_choice and ask_user_form params from JSON strings to typed lists
2026-07-29 01:42:00 +08:00
NCBM
f5b566b371
core/tools: add per-turn guard requiring lineno read before edit_lineno
2026-07-29 01:40:31 +08:00
NCBM
39ecd55ddd
cli: fix limit prompt redundancy and line-break
2026-07-29 01:38:04 +08:00
NCBM
60f9c9b56d
core/agent: danger classification overrides YOLO tag in confirm pipeline
2026-07-29 01:37:17 +08:00
NCBM
904ac3d982
core/agent: remove turn-start todo nag -- nag only fires after complete turn
2026-07-29 01:07:59 +08:00
NCBM
f60fd876c6
test: update for kind-based dispatch and remove ResponsesChatClient references
2026-07-29 00:46:08 +08:00
NCBM
f0c27bf366
core: wire kind-based dispatch through agent, runtime, and state
2026-07-29 00:40:23 +08:00
NCBM
4562eaa1cb
core/agent: remove ChatClient protocol and ResponsesChatClient wrapper
2026-07-29 00:36:19 +08:00
NCBM
6eaadd6ebf
core/lmproto: add kind property to all clients + AnyLLMClient type
2026-07-29 00:34:42 +08:00
NCBM
49e878fe3a
core/lmproto: add Anthropic messages models, config, and client
2026-07-29 00:33:58 +08:00
NCBM
200bde0bfb
core/todo-nag: inject reasoning_content on synthetic assistant messages
...
DeepSeek's reasoning API enforces: if an assistant with tool_calls sits
between two user messages, its reasoning_content must be passed back.
The synthetic todo nag pair creates an AssistantChatMessage with tool_calls
but no reasoning_content, which triggered a 400 error:
"The reasoning_content in the thinking mode must be passed back to the API."
Fix:
1. _append_synthetic_todo_list now sets reasoning_content="" so NEW pairs
carry the field.
2. refresh_synthetic_todo_nags runs _inject_reasoning_content_for_synthetic
to fix EXISTING pairs (in DB) even if reasoning_content was UNSET.
3. The earlier _inject_thinking change is reverted in the next commit since
the real root cause was the missing reasoning_content on forged tool_call
messages, not the thinking parameter itself.
2026-07-29 00:03:04 +08:00