Commit Graph
100 Commits
Author SHA1 Message Date
Mario Zechner e7a5ca144c Release v0.8.4 2025-11-21 05:09:58 +01:00
Mario Zechner aa46dfecd4 Release v0.8.3 2025-11-21 04:57:24 +01:00
Mario Zechner 85adcf22bf Release v0.8.0 2025-11-21 03:12:42 +01:00
Mario Zechner cc88095140 WIP: Add theming system with /theme command
- Consolidated theme system into single src/theme/ directory
- Created Theme class with fg(), bg(), bold(), italic(), underline()
- Added dark and light built-in themes with 36 color tokens
- Support for custom themes in ~/.pi/agent/themes/*.json
- JSON schema for theme validation
- Theme selector UI with /theme command
- Save theme preference to settings
- Uses chalk for text formatting to preserve colors

TODO:
- Replace hardcoded colors throughout TUI components
- Apply markdown theming to Markdown components
- Add theme support to all TUI elements
2025-11-20 23:16:59 +01:00
Mario Zechner 93a60b7969 Downgrade Biome to 2.3.5 to fix false positive noUnusedPrivateClassMembers warnings 2025-11-20 22:32:45 +01:00
Mario Zechner c7d00e6ba4 Updated README.md 2025-11-20 21:17:32 +01:00
Mario Zechner ba5bf54af4 Release v0.7.29
- Show offset/limit in read tool display (e.g., read src/main.ts:100-200)
- Fix PI_CODING_AGENT_DIR env var name in help and code
- Add all API key env vars to help text
2025-11-20 20:48:25 +01:00
Mario Zechner d44073b140 Release v0.7.28
- Add message queuing with configurable modes (one-at-a-time/all) (#15)
- Add /queue command to select queue mode
- Add TruncatedText component for proper viewport-aware text truncation
- Queue mode setting persists in ~/.pi/agent/settings.json
- Visual feedback for queued messages with proper ANSI handling
- Press Escape to abort and restore queued messages to editor
2025-11-20 20:39:43 +01:00
Mario Zechner e694d435fd Release v0.7.27
- Fix slash command submission requiring two Enter presses (#30)
- Fix slash command autocomplete not re-triggering after typos (#29)
2025-11-20 18:56:27 +01:00
Mario Zechner 3655ce74f1 Fix: Change prepublish to prepublishOnly to prevent build failing on npm install
The prepublish hook was running during npm install, before optional platform-specific dependencies were installed. This caused build failures on Linux for packages like @typescript/native-preview-linux-x64 and @parcel/watcher-linux-x64-glibc.

prepublishOnly only runs before npm publish, not during install.

Fixes #41
2025-11-20 17:47:52 +01:00
Mario Zechner 11aa39c5e4 Release v0.7.26 2025-11-20 17:29:24 +01:00
Mario Zechner 4afb3231e4 Fix up prompt for image-tool-result for Gemini 2025-11-20 17:09:32 +01:00
Mario Zechner de39f1f493 Add custom headers support for models.json
Fixes #39

- Added headers field to Model type (provider and model level)
- Model headers override provider headers when merged
- Supported in all APIs:
  - Anthropic: defaultHeaders
  - OpenAI (completions/responses): defaultHeaders
  - Google: httpOptions.headers
- Enables bypassing Cloudflare bot detection for proxied endpoints
- Updated documentation with examples

Also fixed:
- Mistral/Chutes syntax error (iif -> if)
- process.env.ANTHROPIC_API_KEY bug (use delete instead of = undefined)
2025-11-20 17:05:31 +01:00
Mario Zechner 425890e674 Merge pull request #42 from butelo/fix/chutes-ai-provider-400-error
fix 400 error when trying to use chutes ai provider
2025-11-20 16:39:14 +01:00
Mario Zechner 4ccc7d47e0 Release v0.7.25 2025-11-20 13:41:38 +01:00
Mario Zechner 9555b75674 Add PR and contributor credits to CHANGELOG 2025-11-20 13:41:19 +01:00
Mario Zechner a1215fc32c Add table of contents to README 2025-11-20 13:20:48 +01:00
Mario Zechner ee5228becf Fix help text to use 'pi' instead of 'coding-agent' 2025-11-20 13:00:38 +01:00
Mario Zechner 95247a3e5e Add documentation for model cycling feature 2025-11-20 12:58:31 +01:00
Mario ZechnerandTino Ehrich fecf9734b0 Add --models parameter for quick model cycling with Ctrl+P
- Add --models CLI arg accepting comma-separated patterns
- Implement smart matching: prefers aliases over dated versions
- Add Ctrl+P to cycle through scoped models (or all if no scope)
- Show model scope hint at startup
- Update help text with examples

Co-authored-by: Tino Ehrich <tino.ehrich@hey.com>
2025-11-20 12:57:20 +01:00
Mario Zechner 097ff25ed4 Release v0.7.24 2025-11-20 12:41:00 +01:00
Mario Zechner c7e4c84731 Simplify thinking level display in footer (remove 'Thinking:' prefix) 2025-11-20 12:38:55 +01:00
Mario Zechner 23d6746bb9 Don't show 'Thinking: off' in footer when thinking is disabled 2025-11-20 12:37:17 +01:00
Mario Zechner cfcdcf055d Add CHANGELOG and README docs for thinking level cycling feature 2025-11-20 12:35:54 +01:00
Mario Zechner 973a129407 Merge PR #36: Add Shift+Tab thinking level cycling with visual border feedback 2025-11-20 12:34:12 +01:00
Mario Zechner d771475f98 Fix superfluous newline in update notification 2025-11-20 12:28:18 +01:00
Mario Zechner e3c4dd22ae Fix TypeScript error in version check 2025-11-20 12:00:51 +01:00
Mario Zechner b3d4478b61 Release v0.7.23 2025-11-20 11:59:17 +01:00
Mario Zechner ddb5a4497f Remove the garbage the agent left behind and commited 2025-11-20 11:03:01 +01:00
Mario Zechner 1f68d6eb40 Release v0.7.22 2025-11-19 01:50:45 +01:00
Mario Zechner 1b28780155 Release v0.7.21 2025-11-19 00:56:16 +01:00
Mario Zechner 5112fc6ba9 Release v0.7.20 2025-11-18 22:52:49 +01:00
Mario Zechner 38ac29acfb Add ANSI-aware word wrapping to TUI components
- Created shared wrapTextWithAnsi() function in utils.ts
- Handles word-based wrapping while preserving ANSI escape codes
- Properly tracks active ANSI codes across wrapped lines
- Supports multi-byte characters (emoji, surrogate pairs)
- Updated Markdown and Text components to use shared wrapping
- Removed duplicate wrapping logic (158 lines total)
2025-11-18 22:26:24 +01:00
Mario Zechner 22d8a0ae4a Release v0.7.18 2025-11-18 22:08:44 +01:00
Mario Zechner a11c1aa4ff Release v0.7.17 2025-11-18 17:49:12 +01:00
Mario Zechner 587d7c39a4 feat(coding-agent): add OAuth authentication for Claude Pro/Max
- Add /login and /logout commands for OAuth flow
- OAuth tokens stored in ~/.pi/agent/oauth.json with 0600 permissions
- Auto-refresh tokens when expired (5min buffer)
- Priority: OAuth > ANTHROPIC_OAUTH_TOKEN env > ANTHROPIC_API_KEY env
- Fix model selector async loading and re-render
- Add bracketed paste support to Input component for long codes
- Update README.md with OAuth documentation
- Add implementation docs and testing checklist
2025-11-18 17:33:33 +01:00
Mario Zechner 387cc97bac Fix Anthropic API rejection when resubmitting aborted thinking blocks
- Convert thinking blocks with missing/empty signatures to text blocks
- Prevents 400 error: 'Invalid signature in thinking block'
- Occurs when stream is aborted mid-thinking and message is resubmitted
2025-11-18 14:36:57 +01:00
Mario Zechner 6680034a64 Release v0.7.16 2025-11-17 14:12:04 +01:00
Mario Zechner f2b3953711 v0.7.15: Anthropic OAuth support 2025-11-17 12:53:57 +01:00
Mario Zechner 063b7e0f11 chore: bump coding-agent to 0.7.14 - fix Anthropic OAuth and Mistral API compatibility 2025-11-17 12:46:59 +01:00
Mario Zechner a5ed6ab641 v0.7.13: Unicode input support for TUI editor 2025-11-16 23:08:10 +01:00
Mario Zechner 21f24061bb Merge branch 'fix/support-umlauts-and-unicode' 2025-11-16 23:06:06 +01:00
Mario Zechner 3b6ef6cf57 refactor(tui): Use explicit charCode check for unicode filtering
- Use 'charCodeAt(0) >= 32' instead of open 'else' in handleInput()
- Use same filter in handlePaste() for consistency
- Prevents control characters while allowing all unicode
- More explicit and safer than accepting everything
2025-11-16 23:05:19 +01:00
Mario Zechner 0c5cbd0068 v0.7.12: Custom models/providers support via models.json
- Add ~/.pi/agent/models.json config for custom providers (Ollama, vLLM, etc.)
- Support all 4 API types (openai-completions, openai-responses, anthropic-messages, google-generative-ai)
- Live reload models.json on /model selector open
- Smart model defaults per provider (claude-sonnet-4-5, gpt-5.1-codex, etc.)
- Graceful session fallback when saved model missing or no API key
- Validation errors show precise file/field info in CLI and TUI
- Agent knows its own README.md path for self-documentation
- Added gpt-5.1-codex (400k context, 128k output, reasoning)

Fixes #21
2025-11-16 22:56:24 +01:00
Mario Zechner 112ce6e5d1 Footer shouldn't explode when no model is given. 2025-11-16 22:35:27 +01:00
Mario Zechner e0c2745989 Add gpt-5.1-codex to model list 2025-11-16 22:35:09 +01:00
Mario Zechner 9b08f92dd9 Filter model selector by API keys and add user-facing documentation
- Model selector now only shows models with configured API keys
- Added yellow hint in model selector UI explaining the filtering
- Updated README.md to document the filtering behavior in both API Keys and /model sections
- Bumped version to 0.7.11
2025-11-16 21:01:31 +01:00
Mario Zechner 977dfec5c9 Merge pull request #19 from CarlosGtrz/filter-model-selector-by-api-key
Filter model selector to only show models with configured API keys
2025-11-16 20:43:02 +01:00
Mario Zechner 3932c5e04c Add lifecycle callbacks to SandboxRuntimeProvider for abort signal support
- Added onExecutionStart(sandboxId, signal) - called when sandbox execution begins
- Added onExecutionEnd(sandboxId) - called when sandbox execution ends
- Integrated callbacks in SandboxedIframe.execute()
- Enables providers to track and cancel async operations (e.g., userScript executions)
2025-11-16 00:56:20 +01:00
Mario Zechner 901449b38a Pin pdfjs-dist to exact version 5.4.394 to fix worker version mismatch 2025-11-16 00:03:58 +01:00
Mario Zechner 147a850de2 Remove instructions to run publish:dry 2025-11-14 23:56:58 +01:00
Mario Zechner b9c2f0a492 Release 0.7.10 2025-11-14 23:55:56 +01:00
Mario Zechner 8ae236f956 Add /branch command for conversation branching (fixes #16)
- Add /branch slash command to create conversation branches
- New UserMessageSelectorComponent shows all user messages chronologically
- Selecting a message creates new session with messages before selection
- Selected message is placed in editor for modification/resubmission
- SessionManager.createBranchedSession() creates new session files
- Updated README.md and CHANGELOG.md with /branch documentation
2025-11-14 23:52:46 +01:00
Mario Zechner 85ea9f500c chore: bump version to 0.7.9 2025-11-14 23:22:20 +01:00
Mario Zechner a686f61c1d feat(tui): improve editor Ctrl/Alt word and line deletion shortcuts
- Add Ctrl+W for word deletion (stops at whitespace/punctuation)
- Add Ctrl+U for delete to start of line (merges with previous line at col 0)
- Change Ctrl+K from delete entire line to delete to end of line (merges with next line at EOL)
- Add Option+Backspace support in Ghostty (maps to Ctrl+W via ESC+DEL sequence)
- Cmd+Backspace in Ghostty works as Ctrl+U (terminal sends same control code)
- Update README and CHANGELOG with new keyboard shortcuts

Fixes #2, Fixes #3
2025-11-14 23:19:24 +01:00
Mario Zechner 508d1bb2d6 Clean-up 2025-11-14 21:32:16 +01:00
Mario Zechner ced5fc3394 Bump version to 0.7.8 2025-11-13 23:49:04 +01:00
Mario Zechner 29ca62fb6e Document /changelog slash command in coding-agent README 2025-11-13 23:46:14 +01:00
Mario Zechner 25a8910ca5 Simplify development section in README 2025-11-13 23:43:15 +01:00
Mario Zechner 43767e0b2a Remove sitegeist reference 2025-11-13 23:42:34 +01:00
Mario Zechner bc01ed5eb6 Document npm run dev for watch mode development 2025-11-13 23:42:04 +01:00
Mario Zechner bc670bc63c Fix lockstep versioning and improve documentation
- Sync all packages to version 0.7.7
- Rewrite sync-versions.js to handle ALL inter-package dependencies automatically
- Fix web-ui dependency on pi-ai (was 0.6.0, now 0.7.7)
- Move agent fix changelog entry to coding-agent CHANGELOG
- Remove redundant agent CHANGELOG.md
- Improve README.md with clearer lockstep versioning docs
- Add /changelog command to display full changelog in TUI (newest last)
- Fix changelog description (not a scrollable viewer, just displays in chat)
- Update CHANGELOG for 0.7.7 release
2025-11-13 23:37:43 +01:00
Mario Zechner 7b347291ff Update CHANGELOG for PR #13 - Windows Git Bash detection improvements 2025-11-13 23:23:43 +01:00
Mario Zechner b22dfcd2be Merge pull request #13 from CarlosGtrz/refactor/bash-windows-detection
Cleaner Windows Git Bash detection
2025-11-13 23:22:17 +01:00
Mario Zechner 0ef3370085 Fix: Capture error from turn_end event in agent state
Previously, errors in turn_end events (e.g., from OpenRouter Auto Router)
were not captured in agent.state.error, making failed requests appear as
successful completions.

Fixes #6
2025-11-13 23:20:03 +01:00
Mario Zechner ed9786e5d6 Fix aborted message spacing 2025-11-13 22:28:31 +01:00
Mario Zechner a3f6544c31 Update CHANGELOG for issue #12 fix 2025-11-13 22:12:27 +01:00
Mario Zechner 4ff9c826d8 Fix context percentage showing 0% when last message was aborted
Skip aborted assistant messages when calculating context usage in footer.
Fixes #12
2025-11-13 22:12:04 +01:00
Mario Zechner aecb4cd3bb Update CHANGELOG for Windows Git Bash support 2025-11-13 22:03:34 +01:00
Mario Zechner 7cac45fb0d Merge PR #1: Add Windows Git Bash support
- Add platform detection for Windows
- Git Bash path discovery in common installation locations
- Process tree termination using taskkill on Windows
- Improved error message listing checked paths
- Maintains backward compatibility with Unix/Linux/Mac
2025-11-13 22:03:16 +01:00
Mario Zechner 81052d9b42 Improve Git Bash not found error message
- List the specific paths that are checked
- Make it clear that default installation path should be used
2025-11-13 22:03:00 +01:00
Mario Zechner b49ac57d59 Fix changelog spacing. 2025-11-13 21:59:03 +01:00
Mario Zechner fede1303b1 Fix AGENTS.md support, changelog viewer, and session model storage
- BREAKING: Renamed AGENT.md to AGENTS.md for project context files
- Added automatic changelog viewer on startup for new sessions
- Added settings manager to track last shown changelog version
- BREAKING: Store provider and modelId separately in session files (fixes #4)
- Fixed markdown list rendering when items contain inline code with cyan formatting
- Added dynamic border component for TUI
- Updated changelog with entries for #4 and #5
2025-11-13 21:56:58 +01:00
Mario Zechner c23f1576dc Fix markdown component nested list rendering. 2025-11-13 21:43:18 +01:00
Mario Zechner c82f9f4f8c Add settings manager, show changelog on startup if not shown yet. 2025-11-13 21:19:57 +01:00
Mario Zechner 16740ea077 Merge pull request #4 from enisdenjo/split-1
Parse saved model with multiple slashes
2025-11-13 21:10:53 +01:00
Mario Zechner 074568df9c Merge pull request #5 from enisdenjo/openrouter-and-env
Add OpenRouter Auto Router model
2025-11-13 21:10:02 +01:00
Mario Zechner ad208fd80b Remove .html file. 2025-11-13 20:43:13 +01:00
Mario Zechner c3d8eaff68 chore: bump version to 0.7.5 2025-11-13 01:31:21 +01:00
Mario Zechner c8d762833a chore: bump version to 0.7.4 2025-11-13 01:30:26 +01:00
Mario Zechner adbe47c255 chore: bump version to 0.7.3 2025-11-13 01:29:42 +01:00
Mario Zechner d2e4a34772 fix: make read tool output more concise for images 2025-11-13 01:28:39 +01:00
Mario Zechner 39e22f1294 chore: bump versions to 0.7.2 2025-11-13 01:00:22 +01:00
Mario Zechner 6cf2ac0519 fix: remove debug context window size from footer 2025-11-13 01:00:06 +01:00
Mario Zechner 97ac82312f fix: update footer state when rendering initial messages on resume/continue 2025-11-13 00:58:20 +01:00
Mario Zechner 4019acf1f0 chore: bump versions to 0.7.1 2025-11-13 00:05:09 +01:00
Mario Zechner 383b67b5c0 feat: add tool call and result counts to /session command 2025-11-13 00:02:24 +01:00
Mario Zechner b1410ef903 chore: bump versions to 0.7.0 2025-11-12 23:54:57 +01:00
Mario Zechner 29900ce647 feat: make bash tool timeout optional and configurable
- Add optional timeout parameter (in seconds) to bash tool
- No default timeout - commands run until completion unless specified
- Agent can provide timeout when needed for long-running commands
- Update README to reflect optional timeout
2025-11-12 23:53:27 +01:00
Mario Zechner 60cea11f37 chore: bump versions to 0.6.3 2025-11-12 23:51:08 +01:00
Mario Zechner a2dc1187dc fix: handle Windows paths in session directory generation
- Replace backslashes in addition to forward slashes
- Remove colons from Windows drive letters (C:, D:, etc)
- Fixes ENOENT error on Windows when creating session directories
2025-11-12 23:50:30 +01:00
Mario Zechner 43a1c1ae44 chore: sync all versions to 0.6.2 and fix workspace references 2025-11-12 23:44:05 +01:00
Mario Zechner 88c65a7007 chore: bump versions to 0.6.1/0.6.2 2025-11-12 23:40:42 +01:00
Mario Zechner 0e5778c69b README.md update for coding agent 2025-11-12 23:38:35 +01:00
Mario Zechner 227aedc6db docs: rewrite opening paragraph with clearer value proposition
- Change title from package name to 'pi'
- Emphasize: radically simple, multi-model support, mid-session switching
- Highlight: CLI for headless tasks, creature comforts
- More concise and compelling
2025-11-12 23:34:26 +01:00
Mario Zechner c0f94c2bba docs: note exa-search was built by agent in ~2 minutes 2025-11-12 23:30:39 +01:00
Mario Zechner 42e0cbd4f4 docs: add real-world example linking to exa-search tools
- Reference exa-search repo as concrete example
- Shows web search capability via simple tool pattern
- Demonstrates how easy it is to extend pi with custom tools
2025-11-12 23:28:40 +01:00
Mario Zechner 271810c808 docs: add Background Bash section before Planned Features
- Clear stance: no background bash execution
- Alternative: use tmux or tterminal-cp
- Link to tterminal-cp repo
- Rationale: long-running commands need proper terminal sessions
2025-11-12 23:25:29 +01:00
Mario Zechner c4102c7b81 docs: clarify auto-compaction options and fix flicker claim
- Expanded auto-compaction: switch to bigger model and either continue or summarize
- Fixed planned feature: MORE flicker than Claude Code (not less)
2025-11-12 23:22:40 +01:00
Mario Zechner cf2a0d1c22 docs: clarify planning approach in Planning section 2025-11-12 23:21:27 +01:00