NCBM
f51d11d46f
core/tools/process: add run_command_batch with pipe_out and mix_stderr
2026-07-19 02:46:21 +08:00
NCBM
020e9215bf
tools: new_temporary_workspace with cross-platform allowlist
...
Create scratch dirs under system temp (tempfile), allow absolute paths
under them without rebinding the project workspace or session. Cleanup
owned temps on chat exit. Cap 16 concurrent temps; sanitize prefix.
2026-07-18 18:16:06 +08:00
NCBM
de79dec96f
tools/file: add with_lineno option to read_file
...
When true, prefix each returned line with absolute 1-based line numbers
(N|…) for edit_lineno-friendly reads; works with offset/limit.
2026-07-18 17:52:25 +08:00
NCBM
b1a8c23582
core/tools: soft-confirm shells, REPLs, and python/bash -c one-liners
...
classify_danger prompts on interactive shell/runtime launches and any -c
code (with argv + snippet preview). Confirm deny can attach a user comment
for the model. Restores ToolRegistry.execute after WIP breakage.
2026-07-18 17:41:44 +08:00
NCBM
edd54a427c
core/tools/process: drop host TTY restore; rely on CSI sanitize only
2026-07-18 16:26:23 +08:00
NCBM
896dc98d20
core/tools/process: skip host TTY restore when no PTY closed
2026-07-18 16:14:19 +08:00
NCBM
29230af911
core/tools/process: split write_pty (literal) vs write_pty_keys
2026-07-18 15:46:11 +08:00
NCBM
4ff03d8135
core/tools/process: host TTY restore, sanitize read_pty CSI, write_pty key escapes
2026-07-18 15:20:36 +08:00
NCBM
96cdd98e62
tools/file: tree skip_dirs noise defaults and path_denylist walk
...
Default noise basenames (node_modules, __pycache__, …); skip_dirs=[] disables;
apply_path_denylist hides denied children mid-tree.
2026-07-18 01:32:06 +08:00
NCBM
39acd5967e
tools/chat: rename tools to ask_user_line, ask_user_choice, ask_user_form
...
Model-facing names via @tool(name=…); Python symbols unchanged.
2026-07-17 15:36:29 +08:00
NCBM
fbba2c2a14
core/tools+test: make process and path checks Windows-portable
...
Use sys.executable for process tests; normalize denylist/glob paths; skip readline when missing.
2026-07-15 20:20:25 +08:00
NCBM
c466d09173
core/process: cross-platform PTY via backend and pywinpty
...
POSIX openpty/fork and Windows ConPTY; win32 marker dep plus typings stub.
2026-07-15 20:01:43 +08:00
NCBM
0dc5c876ee
core/process+cli: PTY hardening and config/log polish
...
Mark PTY master FD non-inheritable; run read_pty/close_pty via to_thread;
close_all PTY sessions on chat exit. Add --log-level; clearer invalid
TOML errors. Keep export/status free of provider secrets.
2026-07-15 13:48:58 +08:00
NCBM
f77ac7eea8
core/prompting+tools: shared ask/choose/form and chat tools
...
Add process-wide prompting backends for interactive human I/O; wire CLI
limit/confirm/workspace prompts through it. Expose ask_user, choose_user,
and form_user under tools/chat and include them in DEFAULT_TOOLS.
2026-07-15 11:51:44 +08:00
NCBM
aaf7fe8e7b
ci/lint: ruff format pass and fix compact seed test typing
...
Apply pending ruff format; narrow AssistantChatMessage.content before
membership checks so basedpyright accepts Unset|None unions.
2026-07-15 11:36:01 +08:00
NCBM
5c13e06427
ci/lint: per-file ignores for tests in ruff and basedpyright
...
Relax ANN/ARG/PLR/C901 and related rules under tests/**; silence noisy
basedpyright reports for test fakes and private helpers.
2026-07-15 10:35:30 +08:00
NCBM
5b4d3985b7
core/tools/vcs: add read-only vcs_* agent tools
...
Expose vcs_kind/status/diff/log/branch over detect_vcs; cover git and
custom detector registration.
2026-07-15 10:22:00 +08:00
NCBM
c2d132de09
core/tools/file: add grep_files regex content search
...
Line-oriented regex search under the workspace; skip VCS/hidden/binary
and cap match count.
2026-07-15 10:15:20 +08:00
NCBM
007efdef5a
core/tools/file: add glob_paths workspace search tool
...
Stdlib Path.glob with VCS/hidden skip and match cap; paths relative to
workspace root.
2026-07-15 10:15:13 +08:00
NCBM
510dd67a54
core/tools: classify destructive tools and clarify policy denies
...
Add classify_danger for delete/move/overwrite paths, get_path_denylist,
and clearer path/command denial messages.
2026-07-14 23:30:02 +08:00
NCBM
81a30d0e4d
core/tools/file: add edit_lineno line-range edit tool
...
1-based inclusive range replace/delete/append; document Phase B agent
and tool updates in CLAUDE.md.
2026-07-14 23:24:34 +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
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
f45af76c9b
test/tools: cover workspace, file, run_command and PTY
2026-07-14 18:20:32 +08:00