Commit Graph

5 Commits

Author SHA1 Message Date
Ayush Ojha
19c4b9796d fix: remove Ollama from reasoning tag provider check
Ollama's OpenAI-compatible API handles reasoning natively via the
`reasoning` field in streaming chunks, so there is no need for
<think>/<final> tag enforcement. Including "ollama" in
isReasoningTagProvider() caused enforceFinalTag to be set for all
Ollama models, discarding all output since they don't emit <final>
tags.

Fixes #2279

Co-Authored-By: Ayush Ojha <ayushozha@outlook.com>
2026-01-30 01:20:54 -08:00
Peter Steinberger
c379191f80 chore: migrate to oxlint and oxfmt
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-14 15:02:19 +00:00
Peter Steinberger
252841ab13 fix: enforce final tag gating (#754) (thanks @mcinteerj) 2026-01-12 08:45:23 +00:00
Keith the Silly Goose
a7cb270999 fix(agent): buffer streaming output until <final> tag appears
- Enforces strict buffering when enforceFinalTag is enabled.
- Prevents 'thinking out loud' planning steps (e.g. '*Locating Manulife*') from leaking to WhatsApp.
- Hardens <final> tag stripping to remove nested/hallucinated tags.
2026-01-12 08:34:06 +00:00
Keith the Silly Goose
efdf874407 fix(agent): correctly strip <final> tags from reasoning providers
- Added src/utils/provider-utils.ts to track reasoning provider logic
- Updated isReasoningTagProvider to loosely match 'google-antigravity' (fixes sub-models)
- Enabled enforceFinalTag in reply.ts when provider matches
- Verified <final> tag stripping logic in pi-embedded-subscribe.ts
- Updated pi-embedded-runner to use consistent provider check for prompt hints
2026-01-12 08:34:06 +00:00