fix(coding-agent): unify source provenance, closes #1734
This commit is contained in:
@@ -5,14 +5,37 @@
|
||||
### Breaking Changes
|
||||
|
||||
- Changed `ToolDefinition.renderCall` and `renderResult` semantics. Fallback rendering now happens only when a renderer is not defined for that slot. If `renderCall` or `renderResult` is defined, it must return a `Component`.
|
||||
- Changed slash command provenance to use `sourceInfo` consistently. RPC `get_commands`, `RpcSlashCommand`, and SDK `SlashCommandInfo` no longer expose `location` or `path`. Use `sourceInfo` instead ([#1734](https://github.com/badlogic/pi-mono/issues/1734))
|
||||
- Removed legacy `source` fields from `Skill` and `PromptTemplate`. Use `sourceInfo.source` for provenance instead ([#1734](https://github.com/badlogic/pi-mono/issues/1734))
|
||||
- Removed `ResourceLoader.getPathMetadata()`. Resource provenance is now attached directly to loaded resources via `sourceInfo` ([#1734](https://github.com/badlogic/pi-mono/issues/1734))
|
||||
- Removed `extensionPath` from `RegisteredCommand` and `RegisteredTool`. Use `sourceInfo.path` for provenance instead ([#1734](https://github.com/badlogic/pi-mono/issues/1734))
|
||||
|
||||
#### Migration Notes
|
||||
|
||||
Resource, command, and tool provenance now use `sourceInfo` consistently.
|
||||
|
||||
Common updates:
|
||||
- RPC `get_commands`: replace `path` and `location` with `sourceInfo.path`, `sourceInfo.scope`, and `sourceInfo.source`
|
||||
- `SlashCommandInfo`: replace `command.path` and `command.location` with `command.sourceInfo`
|
||||
- `Skill` and `PromptTemplate`: replace `.source` with `.sourceInfo.source`
|
||||
- `RegisteredCommand` and `RegisteredTool`: replace `.extensionPath` with `.sourceInfo.path`
|
||||
- Custom `ResourceLoader` implementations: remove `getPathMetadata()` and read provenance from loaded resources directly
|
||||
|
||||
Examples:
|
||||
- `command.path` -> `command.sourceInfo.path`
|
||||
- `command.location === "user"` -> `command.sourceInfo.scope === "user"`
|
||||
- `skill.source` -> `skill.sourceInfo.source`
|
||||
- `tool.extensionPath` -> `tool.sourceInfo.path`
|
||||
|
||||
### Changed
|
||||
|
||||
- Built-in tools now work like custom tools in extensions. To get built-in tool definitions, import `readToolDefinition` / `createReadToolDefinition()` and the equivalent `bash`, `edit`, `write`, `grep`, `find`, and `ls` exports from `@mariozechner/pi-coding-agent`.
|
||||
- Cleaned up `buildSystemPrompt()` so built-in tool snippets and tool-local guidelines come from built-in `ToolDefinition` metadata, while cross-tool and global prompt rules stay in system prompt construction.
|
||||
- Added structured `sourceInfo` to `pi.getAllTools()` results for built-in, SDK, and extension tools ([#1734](https://github.com/badlogic/pi-mono/issues/1734))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed slash command source attribution for extension commands, prompt templates, and skills in autocomplete and command discovery ([#1734](https://github.com/badlogic/pi-mono/issues/1734))
|
||||
- Fixed auto-resized image handling to enforce the inline image size limit on the final base64 payload, return text-only fallbacks when resizing cannot produce a safe image, and avoid falling back to the original image in `read` and `@file` auto-resize paths ([#2055](https://github.com/badlogic/pi-mono/issues/2055))
|
||||
- Fixed `pi update` for git packages to skip destructive reset, clean, and reinstall steps when the fetched target already matches the local checkout ([#2503](https://github.com/badlogic/pi-mono/issues/2503))
|
||||
- Fixed print and JSON mode to take over stdout during non-interactive startup, keeping package-manager and other incidental chatter off protocol/output stdout ([#2482](https://github.com/badlogic/pi-mono/issues/2482))
|
||||
|
||||
Reference in New Issue
Block a user