Add thinking/reasoning capability detection #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements auto-detection of thinking/reasoning capabilities for chat templates, as requested in #19.
Changes
New Capability Flags
Added 5 new capability flags to `chat_template_caps`:
Detection Logic
The detection tests templates by rendering messages with `reasoning_content` field and checking if the content appears in the output.
Tests
Both templates correctly detect `supports_thinking = true`.
Model IDs
Added model IDs from llama.cpp tests:
Note on GLM-4.7
GLM-4.7 introduces a new `clear_thinking` variable for "Preserved Thinking" - thinking content stays in context but can be shown as empty ``` tags. This differs from `enable_thinking` which controls whether ``` tags are emitted at all.
Closes #19