Commit graph

235 commits

Author SHA1 Message Date
Mario Zechner
909989066a Fix TUI performance regression: add caching to Box, use Text directly for built-in tools 2025-12-17 16:39:23 +01:00
Mario Zechner
48b481eb85 Add [Unreleased] section to changelog 2025-12-17 16:14:36 +01:00
Mario Zechner
295f51b53f Release v0.22.5 2025-12-17 01:22:13 +01:00
Mario Zechner
c352857a43 Add [Unreleased] section to changelog 2025-12-17 00:40:15 +01:00
Mario Zechner
a7e3b8625b Release v0.22.1 2025-12-15 21:53:27 +01:00
Mario Zechner
c5543f7586 GitHub Copilot: auto-enable models, fix gpt-5 API, normalize tool call IDs
- Auto-enable all models after /login via POST /models/{model}/policy
- Use openai-responses API for gpt-5/o3/o4 models (not accessible via completions)
- Normalize tool call IDs when switching between github-copilot models with different APIs
  (fixes #198: openai-responses generates 450+ char IDs with special chars that break other models)
- Update README with streamlined GitHub Copilot docs
2025-12-15 20:06:11 +01:00
Mario Zechner
b66157c649 Add GitHub Copilot support (#191)
- OAuth login for GitHub Copilot via /login command
- Support for github.com and GitHub Enterprise
- Models sourced from models.dev (Claude, GPT, Gemini, Grok, etc.)
- Dynamic base URL from token's proxy-ep field
- Use vscode-chat integration ID for API compatibility
- Documentation for model enablement at github.com/settings/copilot/features

Co-authored-by: cau1k <cau1k@users.noreply.github.com>
2025-12-15 19:05:17 +01:00
cau1k
1871962e2e
fix: model context windows 2025-12-15 00:17:59 -05:00
cau1k
7d4cdd09c3
feat: added filter for generate-models and regenerated
- blacklisted gpt-4o-2024-08-06, gpt-4o-2024-11-20, gpt-3.5-turbo-0613,
gpt-4, gpt-4-0613
2025-12-14 22:26:43 -05:00
cau1k
5f590b7c53
feat: generate models base on copilot /models endpoint, requires GH token 2025-12-14 18:42:57 -05:00
cau1k
17ebb9a19d
feat: models.dev in generate models - too many deprecated models
could have opted for a whitelist but we'll just fetch from the copilot
/models endpoint
2025-12-14 17:47:42 -05:00
cau1k
ccae7a4e0e
feat: initial impl
- add GitHub Copilot model discovery (env token fallback, headers,
compat) plus fallback list and quoted provider keys in generated map
- surface Copilot provider end-to-end (KnownProvider/default, env+OAuth
token refresh/save, enterprise base URL swap, available only when
creds/env exist)
- tweak interactive OAuth UI to render instruction text and prompt
placeholders

gpt-5.2-high took about 35 minutes. It had a lot of trouble with `npm
check`  and went off on a "let's adjust every tsconfig" side quest.
Device code flow works, but the ai/scripts/generate-models.ts impl is
wrong as models from months ago are missing and only those deprecated
are accessible in the /models picker.
2025-12-14 17:18:13 -05:00
Mario Zechner
aa9dc29bce Add [Unreleased] sections to CHANGELOGs 2025-12-13 00:58:16 +01:00
Mario Zechner
3b2b9abffc coding-agent: change Pi skills to use SKILL.md convention
Breaking change: Pi skills must now be named SKILL.md inside a directory,
matching Codex CLI format. Previously any *.md file was treated as a skill.

Migrate by renaming ~/.pi/agent/skills/foo.md to ~/.pi/agent/skills/foo/SKILL.md
2025-12-12 23:23:17 +01:00
Mario Zechner
d05a895b7e Add [Unreleased] section 2025-12-12 17:56:26 +00:00
Mario Zechner
948b4115c1 Release v0.19.1 2025-12-12 17:53:45 +00:00
Mario Zechner
e3dadeb4e7 Release v0.19.0 2025-12-12 17:33:16 +00:00
Nico Bailon
09bca9672f
Add skills system with Claude Code compatibility (#171)
* Add skills system with Claude Code compatibility

* consolidate skills into single module, merge loaders, add <available_skills> XML tags

* add Codex CLI skills compatibility, skip hidden/symlinks
2025-12-12 18:24:52 +01:00
Mario Zechner
e26058a21c mom: add [Unreleased] section to CHANGELOG 2025-12-12 10:02:03 +01:00
Mario Zechner
e3576fe016 mom: fix attachment downloads - pass store to SlackBot, process files, use absolute paths 2025-12-11 23:55:49 +01:00
Mario Zechner
e513127b3b mom: fix duplicate bot response logging, remove debug logs
- Remove bot response logging from agent.ts (already done in ctx.respond)
- Remove all debug console.log statements
- Clean up unused store parameter
2025-12-11 13:39:32 +01:00
Mario Zechner
b0628786a7 Add [Unreleased] section 2025-12-10 23:40:27 +01:00
Mario Zechner
751e10e78b Add [Unreleased] section to changelogs 2025-12-10 21:41:50 +01:00
Mario Zechner
99b4b1aca0 Add Mistral as AI provider
- Add Mistral to KnownProvider type and model generation
- Implement Mistral-specific compat handling in openai-completions:
  - requiresToolResultName: tool results need name field
  - requiresAssistantAfterToolResult: synthetic assistant message between tool/user
  - requiresThinkingAsText: thinking blocks as <thinking> text
  - requiresMistralToolIds: tool IDs must be exactly 9 alphanumeric chars
- Add MISTRAL_API_KEY environment variable support
- Add Mistral tests across all test files
- Update documentation (README, CHANGELOG) for both ai and coding-agent packages
- Remove client IDs from gemini.md, reference upstream source instead

Closes #165
2025-12-10 20:36:19 +01:00
Mario Zechner
04d59f31ea feat(coding-agent): implement hooks system
- Add hooks infrastructure in core/hooks/ (loader, runner, types)
- HookUIContext interface with mode-specific implementations
- Interactive mode: TUI-based selector/input/confirm dialogs
- RPC mode: JSON protocol for hook UI requests/responses
- Print mode: no-op UI context (hooks run but can't prompt)
- AgentSession.branch() now async, returns { selectedText, skipped }
- Settings: hooks[] and hookTimeout configuration
- Export hook types from package for hook authors

Based on PR #147 proposal, adapted for new architecture.
2025-12-09 22:17:12 +01:00
Mario Zechner
55032f1697 Add [Unreleased] section to changelogs 2025-12-09 21:51:01 +01:00
Mario Zechner
5a9d844f9a Simplify compaction: remove proactive abort, use Agent.continue() for retry
- Add agentLoopContinue() to pi-ai for resuming from existing context
- Add Agent.continue() method and transport.continue() interface
- Simplify AgentSession compaction to two cases: overflow (auto-retry) and threshold (no retry)
- Remove proactive mid-turn compaction abort
- Merge turn prefix summary into main summary
- Add isCompacting property to AgentSession and RPC state
- Block input during compaction in interactive mode
- Show compaction count on session resume
- Rename RPC.md to rpc.md for consistency

Related to #128
2025-12-09 21:43:49 +01:00
Mario Zechner
de3fd172a9 Update generated models 2025-12-09 15:44:45 +01:00
Mario Zechner
dbd6e5c500 Fix theme path for binary and npm builds after refactor 2025-12-09 13:43:59 +01:00
Mario Zechner
ad42ebf5f5 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
238c5d34e4 Fix tsgo type issues: update tsgo, fix ReasoningEffort import, remove broken enum-test 2025-12-08 22:59:13 +01:00
Mario Zechner
2641424bfa Add [Unreleased] section to CHANGELOG 2025-12-06 22:49:45 +01:00
Mario Zechner
ecdbd88f5d Release v0.13.0 2025-12-06 22:48:39 +01:00
Mario Zechner
86e5a70ec4 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
badlogic
52f1a8cb31 Fix Windows binary detection for Bun compiled executables
- Updated isBunBinary detection to check for %7EBUN (URL-encoded ~BUN)
- Simplified build:binary script to remove Unix-specific shell syntax
- Binary now correctly locates supporting files next to executable on Windows
2025-12-06 22:42:47 +01:00
Mario Zechner
ee83284dcf Fix wrap-ansi test to use node:test instead of vitest 2025-12-06 00:48:46 +01:00
Mario Zechner
c423734e36 Add [Unreleased] section 2025-12-05 23:01:46 +01:00
Mario Zechner
6a29b2df3f Add [Unreleased] section 2025-12-05 12:20:35 +01:00
Mario Zechner
c7585e37c9 Release v0.12.10 2025-12-04 20:51:57 +01:00
Mario Zechner
5663bf16ce Add [Unreleased] section 2025-12-04 03:12:00 +01:00
Mario Zechner
05644ebcd5 Use ordered root build instead of parallel workspace build in CI 2025-12-03 15:05:04 +01:00
Mario Zechner
e0c057ecc6 Add web-ui/example to workspaces, remove CI workaround 2025-12-03 14:27:02 +01:00
Mario Zechner
24fcca5b7b Try fixing root level compiles 2025-12-03 14:16:00 +01:00
Mario Zechner
15428f10ed Clean-up out.html 2025-12-02 13:01:13 +01:00
badlogic
ccae220032 Fix Windows binary path resolution for Bun compiled executable 2025-12-02 12:58:00 +01:00
Mario Zechner
b348c2549e docs: update AGENTS.md style guide - no emojis, no fluff 2025-12-02 12:20:32 +01:00
Mario Zechner
1f55424d2d chore: update models.generated.ts 2025-12-02 09:38:49 +01:00
Mario Zechner
5a65ce5349 fix: use TruncatedText in oauth-selector to prevent line overflow 2025-12-02 09:28:27 +01:00
Mario Zechner
d2b60f11eb fix: RPC mode session management not saving sessions
Since version 0.9.0, RPC mode (--mode rpc) was not saving messages to
session files. The agent.subscribe() call with session management logic
was only present in the TUI renderer after it was refactored.

RPC mode now properly saves sessions just like interactive mode.

Added test for RPC mode session management to prevent regression.

Fixes #83

Thanks @kiliman for reporting this issue!
2025-12-01 01:19:17 +01:00
Mario Zechner
dd71f877e5 docs(coding-agent): add changelog entry for git branch watcher (#79) 2025-11-29 21:54:02 +01:00