mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-07-10 01:29:41 +00:00
Pi and OMP have no dedicated skill tool: a native skill load is emitted as an ordinary `read` tool call whose path points at the skill's SKILL.md (or a `skill://<name>` URI in newer OMP builds). The parser mapped every read to the Read tool and never populated `skills`, so Pi/OMP sessions over-counted Reads AND always showed an empty "Skills & Agents" breakdown. Detect these reads (basename === 'SKILL.md', or a skill:// URI), extract the skill name (parent directory, or the URI segment), and surface the call as the `Skill` tool with the name recorded in `skills` -- exactly how the Claude parser represents a skill invocation. That both removes the Read over-count and lets the shared classifier tag the turn `general` so the Skills & Agents breakdown picks it up (populating a field the dashboard never received before). The path is read from arguments.path with a defensive arguments.file_path fallback. Tests cover SKILL.md / skill:// / file_path detection, a non-skill read staying a Read, and an end-to-end check that a parsed skill load reaches the classifier subCategory that feeds skillBreakdown.
This commit is contained in:
parent
61eb5fbca5
commit
d869ad86e2
3 changed files with 204 additions and 8 deletions
|
|
@ -27,6 +27,7 @@ Per `<provider>:<path>:<responseId>` when a response ID is present, falling back
|
|||
- Undefined token fields in `message.usage` are coerced to `0` (`pi.ts:156-159`); never `undefined`.
|
||||
- The provider name is taken from `source.provider` (`pi.ts:182`), not hard-coded. This matters because `pi.ts` is the parser for **both** Pi and OMP; see [`omp.md`](omp.md).
|
||||
- Tool-call content type is extracted from the message envelope (`pi.ts:169-176`).
|
||||
- Pi/OMP have no dedicated skill tool: a native skill load is a `read` whose path points at a skill's `SKILL.md` (or a `skill://<name>` URI in newer OMP builds). The parser surfaces these as the `Skill` tool and records the name in `skills` (mirroring the Claude parser) instead of counting a `Read`, so the shared classifier tags the turn `general` and the Skills & Agents breakdown picks it up (`skillLoadName`, issue #588).
|
||||
|
||||
## When fixing a bug here
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue