Commit graph

921 commits

Author SHA1 Message Date
Markus Ylisiurunen
085c378d34 add Azure deployment name map and refresh generated models 2026-01-24 12:04:34 +01:00
Markus Ylisiurunen
391c93800c switch azure responses to base url config and v1 api 2026-01-24 12:04:34 +01:00
Markus Ylisiurunen
856012296b add Azure OpenAI Responses provider with deployment-aware model mapping 2026-01-24 12:04:34 +01:00
Mario Zechner
951fb953ed feat(coding-agent): support disable-model-invocation frontmatter for skills
When set to true, the skill is hidden from the system prompt, preventing
agentic invocation. Users can still invoke explicitly via /skill:name.

Also fixes pre-existing test bug where source expectation was wrong.

Fixes #927
2026-01-24 03:34:40 +01:00
Mario Zechner
3235926eed fix(coding-agent): off-by-one error in bash output 'earlier lines' count
fixes #921
2026-01-24 03:25:55 +01:00
Mario Zechner
48fc57f321 feat(coding-agent): expose copyToClipboard for extensions
fixes #926
2026-01-24 03:17:04 +01:00
Mario Zechner
3a57f1259b feat(coding-agent): surface extension shortcut conflicts 2026-01-24 03:17:04 +01:00
Mario Zechner
25bdfb0b8e
Merge pull request #925 from dannote/feat/update-changelog-link
feat(coding-agent): add changelog link to update notification
2026-01-24 02:58:06 +01:00
Mario Zechner
cdb0400347
Merge pull request #928 from ferologics/feat/reload-full-scrollback
feat(coding-agent): /reload now re-renders entire scrollback
2026-01-24 02:53:57 +01:00
Mario Zechner
ab8d44d696 feat(coding-agent): tune resource list colors 2026-01-24 02:51:27 +01:00
Mario Zechner
725d6bbf35 feat(coding-agent): refine resource metadata and display 2026-01-24 02:46:08 +01:00
Mario Zechner
f9eb190ef9 refactor(coding-agent): simplify AgentSession 2026-01-24 01:38:58 +01:00
Mario Zechner
254c00b788 refactor(coding-agent): centralize git url detection 2026-01-24 01:02:16 +01:00
Mario Zechner
4719929f6a refactor(coding-agent): unify SkillWarning and ResourceDiagnostic
- Create shared diagnostics.ts with ResourceCollision and ResourceDiagnostic types
- Update loadSkills() to return diagnostics instead of warnings
- Remove SkillWarning type and skillWarningsToDiagnostics() conversion
- Update skills.test.ts to use diagnostics
2026-01-24 00:45:01 +01:00
Mario Zechner
50c8323590 feat(coding-agent): package deduplication and collision detection
- Package deduplication: same package in global+project, project wins
- Collision detection for skills, prompts, and themes with ResourceCollision type
- PathMetadata tracking with parent directory lookup for file paths
- Display improvements: section headers, sorted groups, accent colors for packages
- pi list shows full paths below package names
- Extension loader discovers files in directories without index.ts
- In-memory SettingsManager properly tracks project settings

fixes #645
2026-01-24 00:35:19 +01:00
ferologics
ddb3413dcc feat(coding-agent): /reload now re-renders entire scrollback
For extension development, reloading now rebuilds the full chat history
so updated component rendering is visible immediately, not just in new
messages.

Also removes broken test for deleted chalk-logger.ts extension (npm
dependency resolution is already covered by with-deps test).
2026-01-24 00:14:18 +01:00
Mario Zechner
375d0bc4d6 fix(coding-agent): user filters now layer on top of manifest filters
Previously, user filters completely replaced manifest filtering. Now:
1. Manifest patterns are applied first (defines what package provides)
2. User patterns are applied on top (narrows down further)

This means if a manifest excludes 10 extensions and user adds one more
exclusion, all 11 are excluded (not just the user's one).
2026-01-23 20:58:17 +01:00
Mario Zechner
ed75a8320b feat(coding-agent): support glob patterns in pi manifest arrays
- Manifest extensions/skills/prompts/themes arrays now support glob patterns
- Use !pattern for exclusions (e.g., '!**/deprecated/*')
- Enables packages to bundle dependencies and selectively include resources
2026-01-23 20:33:16 +01:00
Mario Zechner
ac4dab4085 feat(coding-agent): add minimatch pattern support for resource filtering
- Support glob patterns and ! exclusions in package filter arrays
- Support glob patterns and ! exclusions in top-level settings arrays
- Add helper functions: isPattern, hasPatterns, collectFiles, collectSkillEntries, applyPatterns
- Add resolveLocalEntries for pattern-aware resolution of top-level arrays
- Add applyPackageFilter and collectAllPackageFiles for package filter patterns
- Add comprehensive tests for both top-level and package filter patterns
2026-01-23 20:26:11 +01:00
Mario Zechner
75eb841bb2 fix(coding-agent): register themes from resource loader
Themes loaded from packages were not appearing in theme selector because
setRegisteredThemes was never called. Now register themes:
- On startup before initTheme
- After /reload completes
2026-01-23 20:00:32 +01:00
Mario Zechner
ef1fc3103e feat(coding-agent): add packages array with filtering support
- Add PackageSource type for npm/git sources with optional filtering
- Migrate npm:/git: sources from extensions to packages array
- Add getPackages(), setPackages(), setProjectPackages() methods
- Update package-manager to resolve from packages array
- Support selective loading: extensions, skills, prompts, themes per package
- Update pi list to show packages
- Add migration tests for settings

closes #645
2026-01-23 19:51:23 +01:00
Mario Zechner
5ffe51b38b
Merge pull request #923 from aliou/fix-alt-up-compaction-queue
fix(coding-agent): restore compaction-queued messages on Alt-Up
2026-01-23 18:19:50 +01:00
Aliou Diallo
80e6c4cf57 fix(coding-agent): restore compaction-queued messages on Alt-Up 2026-01-23 17:47:30 +01:00
Danila Poyarkov
1e8b1386a5 feat(coding-agent): add changelog link to update notification 2026-01-23 19:34:34 +03:00
Denis Badurina
09d1b099b7
cheers 2026-01-23 15:05:08 +01:00
Mario Zechner
73734a23a1 fix(coding-agent): only list built-in tools in system prompt
Extension tools are already described via API tool definitions.
Removes redundant 'Custom tool' fallback.
2026-01-23 00:54:30 +01:00
Mario Zechner
b0d4d1717e
Merge pull request #906 from Perlence/feat/verbose-cli-flag
feat(coding-agent): add --verbose CLI flag to override quietStartup setting (round 2)
2026-01-22 23:19:44 +01:00
Mario Zechner
0f0c54b812 fix(coding-agent): expand paste markers in follow-up queue
fixes #912
2026-01-22 22:35:46 +01:00
Mario Zechner
7868b25a2b feat(coding-agent): make skill invocation messages collapsible
- Add ParsedSkillBlock interface and parseSkillBlock() function
- Change skill expansion to use XML-style <skill> tags
- Add SkillInvocationMessageComponent for collapsible display
- Collapsed: single line with skill name and expand hint
- User message rendered separately after skill block

Fixes #894
2026-01-22 22:29:24 +01:00
Mario Zechner
f54e71999f fix(coding-agent): simplify extension error listener to single instance
There's only ever one bindings instance per session, so the Set/Array
approach was unnecessary. Changed from Set<ExtensionErrorListener> to
optional single listener.
2026-01-22 22:03:17 +01:00
Mario Zechner
e0742d8217 feat(coding-agent): support env vars and shell commands in headers
Header values in models.json now resolve using the same logic as apiKey:
- Environment variable names are resolved to their values
- Shell commands prefixed with ! are executed
- Literal values are used directly

This is a minor breaking change: if a header value accidentally matches
an env var name, it will now resolve to that env var's value.

Fixes #909
2026-01-22 21:50:22 +01:00
Mario Zechner
9b84857b83 fix(coding-agent): add 'terminated' to retryable error patterns
Codex API can send 'terminated' error mid-stream, which should be
retried like other transient server errors.
2026-01-22 21:32:56 +01:00
Mario Zechner
5e079e2ea8 fix(coding-agent): use specific terminology in reload messages instead of 'resources' 2026-01-22 19:32:14 +01:00
Mario Zechner
7d2255ddc2 fix(coding-agent): reset terminal title and working message in resetExtensionUI 2026-01-22 19:18:51 +01:00
Mario Zechner
b35950c5bd chore(coding-agent): minor cleanup in rpc-mode and shell utils 2026-01-22 14:37:17 +01:00
Sviatoslav Abakumov
07e2444b9b
feat(coding-agent): add --verbose CLI flag to override quietStartup setting 2026-01-22 17:32:47 +04:00
Mario Zechner
79268f92d0 fix(coding-agent): add missing required colors to theme-schema.json 2026-01-22 14:28:00 +01:00
Mario Zechner
d89f6e08ce fix(coding-agent): normalize raw git URLs in extension source matching
- Handle https://github.com/... URLs as git sources (not local)
- Strip .git suffix for consistent matching
2026-01-22 14:19:04 +01:00
Mario Zechner
2b656c266b feat(coding-agent): add .gitignore to package manager install roots 2026-01-22 13:49:38 +01:00
Mario Zechner
ca7be6929d feat(coding-agent): run npm install after cloning git repos with package.json 2026-01-22 13:49:38 +01:00
Mario Zechner
5c047c351d fix(coding-agent): filter out conflicting extensions from loaded list 2026-01-22 13:49:38 +01:00
Mario Zechner
1faaccc5c7 fix(coding-agent): format display paths with ~ and shorten temp paths 2026-01-22 13:49:38 +01:00
Mario Zechner
8ec7d6867a fix(coding-agent): git temp path resolution, add pi list command (#645)
- Fix getGitInstallPath to check scope === 'temporary' directly
- Remove redundant temporary parameter from git methods
- Add 'pi list' command to show installed extensions from settings
2026-01-22 13:49:38 +01:00
Mario Zechner
4058680d22 feat(coding-agent): progress callbacks, conflict detection, URL parsing, tests (#645)
- Add progress callbacks to PackageManager for TUI status during install/remove/update
- Add extension conflict detection (tools, commands, flags with same names)
- Accept raw GitHub/GitLab URLs without git: prefix
- Add tests for package-manager.ts and resource-loader.ts
- Add empty fixture directories for skills tests
2026-01-22 13:49:38 +01:00
Mario Zechner
b846a4bfcf feat(coding-agent): ResourceLoader, package management, and /reload command (#645)
- Add ResourceLoader interface and DefaultResourceLoader implementation
- Add PackageManager for npm/git extension sources with install/remove/update
- Add session.reload() and session.bindExtensions() APIs
- Add /reload command in interactive mode
- Add CLI flags: --skill, --theme, --prompt-template, --no-themes, --no-prompt-templates
- Add pi install/remove/update commands for extension management
- Refactor settings.json to use arrays for skills, prompts, themes
- Remove legacy SkillsSettings source flags and filters
- Update SDK examples and documentation for ResourceLoader pattern
- Add theme registration and loadThemeFromPath for dynamic themes
- Add getShellEnv to include bin dir in PATH for bash commands
2026-01-22 13:49:38 +01:00
Aliou Diallo
69d02b8a5f
fix(coding-agent): use dynamic paths in error messages (#887)
Error messages for missing credentials and shell config now use
getAuthPath() and getSettingsPath() instead of hardcoded ~/.pi/agent/
paths, so they correctly reflect PI_CODING_AGENT_DIR when set.
2026-01-21 23:21:10 +01:00
Andres Araujo
0363a10c69
feat(coding-agent): add PI_SHARE_VIEWER_URL env var for custom share viewer (#889) 2026-01-21 23:19:12 +01:00
scutifer
2354bc571e
feat(coding-agent): show session name in terminal title and footer (#876)
* ⏺ feat(tui): show session name in terminal title and footer

- Add updateTerminalTitle() method that sets terminal title to
"π - session-name - dirname" (or "π - dirname" if no name)
- Update title when session name changes via /name or extension API
- Display session name in footer after git branch with bullet separator

* chore: update CHANGELOG
2026-01-20 23:05:32 +01:00
scutifer
a9fbfc7955
fix(export): use active theme instead of default for HTML export (#870)
getResolvedThemeColors and getThemeExportColors now fall back to
currentThemeName before getDefaultTheme(), so exports respect the
user's selected theme.
2026-01-20 14:50:40 +01:00
Sviatoslav Abakumov
236285b390
fix(coding-agent): fall back to 256color in Terminal.app (#869) 2026-01-20 14:49:57 +01:00