Commit Graph

374 Commits

Author SHA1 Message Date
Mario Zechner fc3813c24d Fix --session flag to load session messages and restore model/thinking 2025-12-09 01:59:20 +01:00
Mario Zechner c0707bfc28 Add auto-compaction events to AgentSession
- Add AgentSessionEvent type extending AgentEvent with auto_compaction_start/end
- Emit events when auto-compaction starts and completes
- TUI shows loader during auto-compaction with escape to cancel
- Rebuilds chat UI when auto-compaction succeeds
2025-12-09 01:51:51 +01:00
Mario Zechner ba0b5304ae Show pending bash executions in pending area, move to chat on user submit 2025-12-09 01:39:40 +01:00
Mario Zechner 0ebd0db2cd Fix bash execution interleaving with tool calls: defer message insertion while streaming 2025-12-09 01:34:31 +01:00
Mario Zechner a63092e830 Move config.ts from utils/ to src/ 2025-12-09 01:28:06 +01:00
Mario Zechner eca4b55efd Add code map to AGENTS.md, add DEVELOPMENT.md for coding-agent 2025-12-09 01:23:06 +01:00
Mario Zechner 350196694d Remove old implementation files (main.ts, cli.ts, tui-renderer.ts), rename new files 2025-12-09 01:21:28 +01:00
Mario Zechner 4c7b7b5206 Split main-new.ts into modules: cli/args, cli/file-processor, cli/session-picker, core/system-prompt, core/model-resolver 2025-12-09 01:20:31 +01:00
Mario Zechner 9fc6dfb175 Deduplicate interactive-mode: consolidate message rendering, add showStatus helper 2025-12-09 01:12:19 +01:00
Mario Zechner 3b0bec8b90 Refactor selectors: replace show/hide pairs with single showSelector helper 2025-12-09 01:04:55 +01:00
Mario Zechner fd625dd07a Remove unused BashExecutionMessage import 2025-12-09 01:00:11 +01:00
Mario Zechner 790db64a72 Remove unnecessary type cast in interactive-mode.ts 2025-12-09 00:59:25 +01:00
Mario Zechner 94e30e5558 Fix path resolution in config.ts after file reorganization 2025-12-09 00:54:51 +01:00
Mario Zechner 58828adf76 Reorganize file structure: core/, utils/, modes/interactive/components/, modes/interactive/theme/ 2025-12-09 00:51:33 +01:00
Mario Zechner c84dd8379f WP16: Update main-new.ts to use InteractiveMode 2025-12-09 00:36:16 +01:00
Mario Zechner 6e7fd1765a WP15: Create InteractiveMode using AgentSession 2025-12-09 00:34:44 +01:00
Mario Zechner ab26f1a25d WP14: Create main-new.ts and cli-new.ts using AgentSession and new modes 2025-12-09 00:21:18 +01:00
Mario Zechner 5b82995085 WP13: Create modes/index.ts barrel export 2025-12-09 00:16:46 +01:00
Mario Zechner 60ff1508e4 WP12: Create rpc-mode.ts 2025-12-09 00:16:17 +01:00
Mario Zechner d53624b8a3 WP11: Create print-mode.ts 2025-12-09 00:15:37 +01:00
Mario Zechner 99402aed21 WP9+WP10: Add AgentSession session management and utility methods 2025-12-09 00:14:47 +01:00
Mario Zechner 3cdbb02dc8 WP8: Add AgentSession bash execution 2025-12-09 00:13:10 +01:00
Mario Zechner 4a5eeb99aa WP7: Add AgentSession compaction (manual + auto), fix listener preservation 2025-12-09 00:12:07 +01:00
Mario Zechner d11c257490 WP5+WP6: Add AgentSession model, thinking level, and queue mode management 2025-12-09 00:08:36 +01:00
Mario Zechner 7d305e1e00 WP4: Add AgentSession prompting methods (prompt, queue, abort, reset) 2025-12-09 00:07:24 +01:00
Mario Zechner 314f3ddb86 WP3: Add AgentSession event subscription with session persistence 2025-12-09 00:05:54 +01:00
Mario Zechner ce5e888778 WP2: Create AgentSession basic structure + update plan for keep-old-code strategy 2025-12-09 00:05:06 +01:00
Mario Zechner ed81d2ac56 WP1: Create bash-executor.ts with unified bash execution 2025-12-09 00:01:36 +01:00
Mario Zechner 77d6b1457b Add queue mode to AgentSession API, clarify setters vs getters 2025-12-08 23:57:56 +01:00
Mario Zechner 2894b411b1 Fix: use AppMessage[] instead of Message[] in AgentSession 2025-12-08 23:56:08 +01:00
Mario Zechner 862cd3b592 Add refactoring plan for coding-agent 2025-12-08 23:54:41 +01:00
Markus Ylisiurunen aaafc8627d use only model id for fuzzy filtering in model selector (#151) 2025-12-08 23:35:31 +01:00
Mario Zechner 628ead2485 Release v0.14.2 2025-12-08 23:29:05 +01:00
Mario Zechner 5677715707 Fix crash when bash mode outputs binary data
Sanitize shell output by removing Unicode Format characters and lone
surrogates that crash string-width. This fixes crashes when running
commands like curl that download binary files.
2025-12-08 23:26:58 +01:00
Mario Zechner 9b2369e096 Release v0.14.1 2025-12-08 22:59:46 +01:00
Mario Zechner 0b793ea451 Release v0.14.0 2025-12-08 22:51:29 +01:00
Mario Zechner a4c6b47f85 Add green borders around bash execution component 2025-12-08 22:45:05 +01:00
Mario Zechner 570ebebbc3 Add bash mode for executing shell commands
- Add ! prefix in TUI editor to execute shell commands directly
- Output streams in real-time and is added to LLM context
- Supports multiline commands, cancellation (Escape), truncation
- Preview mode shows last 20 lines, Ctrl+O expands full output
- Commands persist in session history as bashExecution messages
- Add bash command to RPC mode via {type:'bash',command:'...'}
- Add RPC tests for bash command execution and context inclusion
- Update docs: rpc.md, session.md, README.md, CHANGELOG.md

Closes #112

Co-authored-by: Markus Ylisiurunen <markus.ylisiurunen@gmail.com>
2025-12-08 22:40:32 +01:00
Mario Zechner 69bce12613 Merge main into bash-mode 2025-12-08 21:39:01 +01:00
Mario Zechner 18df11d10e Add xhigh thinking level for OpenAI codex-max models
- Add 'xhigh' to ThinkingLevel type in ai and agent packages
- Map xhigh to reasoning_effort: 'max' for OpenAI providers
- Add thinkingXhigh color token to theme schema and built-in themes
- Show xhigh option only when using codex-max models
- Update CHANGELOG for both ai and coding-agent packages

closes #143
2025-12-08 21:12:54 +01:00
Mario Zechner ed22731d93 Add OpenAICompat for openai-completions provider quirks
Fixes #133
2025-12-08 19:02:03 +01:00
Nico Bailon 1d03dfbdf4 Fix truncation test assertions to match new message format (#136) 2025-12-07 12:07:15 +01:00
Mario Zechner 788158525c Release v0.13.2 2025-12-07 01:25:17 +01:00
Mario Zechner 84878657af Add changelog entry for tool output truncation (#134) 2025-12-07 01:24:41 +01:00
Mario Zechner 8158b6fa0e Restore TUI warning notices for truncated tool output
Warnings now shown at bottom of tool execution (outside collapsed area)
so users can see truncation occurred even when content is collapsed.
2025-12-07 01:14:57 +01:00
Mario Zechner 62f1c815de Implement tool result truncation with actionable notices (#134)
- read: actionable notices with offset for continuation
  - First line > 30KB: return empty + bash command suggestion
  - Hit limit: '[Showing lines X-Y of Z. Use offset=N to continue]'

- bash: tail truncation with temp file
  - Notice includes line range + temp file path
  - Edge case: last line > 30KB shows partial

- grep: pre-truncate match lines to 500 chars
  - '[... truncated]' suffix on long lines
  - Notice for match limit and line truncation

- find/ls: result/entry limit notices
  - '[N results limit reached. Use limit=M for more]'

- All notices now in text content (LLM sees them)
- TUI simplified (notices render as part of output)
- Never return partial lines (except bash edge case)
2025-12-07 01:11:31 +01:00
Mario Zechner ceb79820fe Add tool output truncation with line/byte limits
- Add truncate.ts utility with truncateHead/truncateTail functions
- Both respect 2000 line and 30KB limits (whichever hits first)
- read: head truncation, returns truncation info in details
- bash: tail truncation, writes full output to temp file if large
- grep: head truncation + 100 match limit
- find: head truncation + 1000 result limit
- ls: head truncation + 500 entry limit
- tool-execution.ts displays truncation notices in warning color
- All tools return clean output + structured truncation in details
2025-12-07 00:03:16 +01:00
Mario Zechner 159a6e7df6 Release v0.13.1 2025-12-06 23:12:36 +01:00
Mario Zechner 30cc0005e9 Release v0.13.0 2025-12-06 22:48:39 +01:00
Mario Zechner 92c654a872 Add totalTokens field to Usage type
- Added totalTokens field to Usage interface in pi-ai
- Anthropic: computed as input + output + cacheRead + cacheWrite
- OpenAI/Google: uses native total_tokens/totalTokenCount
- Fixed openai-completions to compute totalTokens when reasoning tokens present
- Updated calculateContextTokens() to use totalTokens field
- Added comprehensive test covering 13 providers

fixes #130
2025-12-06 22:46:02 +01:00