The existing repairToolJson only handles YAML bullet lists (#2660). Two additional malformation patterns from smaller models now cause tool call failures and stuck retry loops: 1. XML parameter tags mixed into JSON values (#3403): LLMs (especially Haiku-class) sometimes emit hybrid XML/JSON syntax like <parameter name="X">value</parameter> inside JSON string values. Add stripXmlParameterTags() to remove the tags while preserving content. 2. Truncated numeric values (#3464): Smaller models emit incomplete numbers like "exitCode": -, or "durationMs": , when values are cut off mid-generation. Add repairTruncatedNumbers() to replace these with 0. Both repairs run before the existing YAML bullet repair phase. The AJV validation layer (coerceTypes: true) then handles any remaining string-to-number coercion. Adds 13 new tests covering detection and repair for both patterns. Closes #3464, closes #3403, addresses #3369 |
||
|---|---|---|
| .. | ||
| daemon | ||
| mcp-server | ||
| native | ||
| pi-agent-core | ||
| pi-ai | ||
| pi-coding-agent | ||
| pi-tui | ||
| rpc-client | ||