Conversation stream carries no tool-input deltas: `toolcall_delta` is observable but never reaches SSE clients
Version: @flue/runtime 2.0.4 (source checked). Cloudflare target.
Summary
observe() gained toolcall_delta in #450, but the conversation stream that browsers consume still has no equivalent. ConversationStreamChunk carries message-delta (text / reasoning) and tool-input, and @flue/sdk's appendToolInput creates the part directly with state: 'input-available' — 'input-streaming' does not exist in FlueConversationPart.
Impact
When a model writes a long tool argument — for us, a document-generating script of a few thousand characters — the browser receives nothing for minutes. The last reasoning part stays state: 'streaming', so the UI keeps claiming "thinking" long after thinking stopped. We measured 3–4 minutes of this on ordinary document-creation requests. The only client-side mitigation is to notice that reasoning has not grown for N seconds and reword the label, which is a guess about what is happening.
Proposal
Surface the deltas that observe() already sees on the conversation stream: a tool-input-delta chunk, and an input-streaming state on the projected tool part so @flue/react consumers can render progress. Emitting only a byte/char count would already be enough to keep a UI honest.
Source: withastro/flue