mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-04 00:17:45 +08:00
OpenRouter reports reasoning under `reasoning` and `reasoning_details` rather than the DeepSeek-style `reasoning_content` this crate recognized. Its streaming reasoning phase sends chunks whose `delta.content` is an empty string, so those chunks were dropped and Responses clients saw nothing after `response.in_progress` until they timed the stream out. The sync aggregator kept only content and tool calls, so a stream downgraded to a sync response lost the reasoning entirely. Read all three spellings through one helper. `reasoning_details` wins because only it carries the block index, and OpenRouter repeats the same text in both fields, so exactly one source is read per object. Entries typed `reasoning.encrypted` carry opaque provider state rather than readable text and are skipped. A change of block index closes the open part so downstream summaries keep the provider's segmentation. Co-Authored-By: Claude Opus 5 <[email protected]>
1 line
11 B
Plaintext
Executable File
1 line
11 B
Plaintext
Executable File
test binary |