Pi agent CLI.
- Source:
src/providers/pi.ts - Loading: eager (
src/providers/index.ts:9) - Test:
tests/providers/pi.test.ts(336 lines)
~/.pi/agent/sessions/ (pi.ts:55-57).
JSONL (pi.ts:98).
None.
Per <provider>:<path>:<responseId> when a response ID is present, falling back to the entry timestamp, and finally to a line index (pi.ts:164).
- Undefined token fields in
message.usageare coerced to0(pi.ts:156-159); neverundefined. - The provider name is taken from
source.provider(pi.ts:182), not hard-coded. This matters becausepi.tsis the parser for both Pi and OMP; seeomp.md. - Tool-call content type is extracted from the message envelope (
pi.ts:169-176).
- If you change parsing logic, also run
tests/providers/omp.test.tsbecause OMP shares this code. - If the bug is "tokens are NaN", look at the coercion at
pi.ts:156-159. A regression on this is silent and easy to miss. - If the bug is specific to the dedup behavior, decide which of the three fallback keys was used by adding a temporary log; the keys collide differently for old vs. new Pi versions.