First minor release on the v1.x line. Adds dedicated per-CLI adapters that parse each vendor's structured output into semantic Squire events.
New adapters
claude-code— parsesclaude --output-format stream-json --verbose --printintotext_delta,thinking_delta,tool_call,tool_result, andusageevents.gemini-cli— parsesgemini --output-format stream-jsonintotext_delta,tool_call,tool_result, andusageevents.
Both adapters fall back to raw stdout events on unparseable lines, so vendor format tweaks degrade gracefully instead of crashing.
New event variants (all additive)
tool_call— tool invocation with vendor-suppliedid,name, andinput.tool_result— matching result for atool_call.id, with optionalisError.thinking_delta— reasoning/thinking text, separate from assistant-visibletext_delta.usage— token-usage summary (input, output, cache read, cache write).
The v1.0 event union shapes are unchanged. v1.0 consumers continue to work.
Codex deferred
A dedicated codex adapter was scoped for this release but is deferred. The OpenAI Codex CLI was not installed on the build machine at fixture-capture time, and shipping an invented parser without a real fixture would recreate the v1.0 fake-standalone failure mode. Codex users continue to use the default text-stream adapter; a follow-up release will add the dedicated parser once a real capture is available.
Infrastructure
- Sanity gate now scans
.jsonlfiles so committed test fixtures pass the same checks as TypeScript and Markdown. - Internal
NdjsonLineBufferhelper for line-delimited JSON parsing (not exported; reserved for future refactors). - 66 tests total (up from 52); 97.3% line coverage on
src/.
Install
```bash
npm install @pythonluvr/squire@1.1.0
```
See the CHANGELOG for the full diff against v1.0.0.