mirror of
https://github.com/instructkr/claw-code.git
synced 2026-06-04 13:37:09 +08:00
Five interrelated fixes from parallel Hephaestus sessions: 1. fix(repl): display assistant text after spinner (#2981, #2982, #2937) - Added final_assistant_text() call after run_turn spinner completes - REPL now shows response text like run_prompt_json does 2. fix(compact): handle Thinking content blocks (#2985) - Added ContentBlock::Thinking variant throughout compact summarizer - Prevents panic when /compact encounters thinking blocks 3. fix(prompt): provider-aware model identity (#2822) - New ModelFamilyIdentity enum (Claude vs Generic) - Non-Anthropic models no longer say 'I am Claude' - model_family_identity_for() detects provider and sets identity 4. fix(openai): preserve DeepSeek reasoning_content (#2821) - Stream parser now captures reasoning_content from OpenAI-compat - Emits ThinkingDelta/SignatureDelta events for reasoning models - Thinking blocks included in conversation history for re-send 5. feat(runtime): Thinking block support across codebase - AssistantEvent::Thinking variant in conversation.rs - ContentBlock::Thinking in session serialization - Thinking-aware compact summarization - Tests for thinking block ordering and content Closes #2981, #2982, #2937, #2985, #2822, #2821
44 lines
1.7 KiB
Rust
44 lines
1.7 KiB
Rust
mod client;
|
|
mod error;
|
|
mod http_client;
|
|
mod prompt_cache;
|
|
mod providers;
|
|
mod sse;
|
|
mod types;
|
|
|
|
pub use client::{
|
|
oauth_token_is_expired, read_base_url, read_xai_base_url, resolve_saved_oauth_token,
|
|
resolve_startup_auth_source, MessageStream, OAuthTokenSet, ProviderClient,
|
|
};
|
|
pub use error::ApiError;
|
|
pub use http_client::{
|
|
build_http_client, build_http_client_or_default, build_http_client_with, ProxyConfig,
|
|
};
|
|
pub use prompt_cache::{
|
|
CacheBreakEvent, PromptCache, PromptCacheConfig, PromptCachePaths, PromptCacheRecord,
|
|
PromptCacheStats,
|
|
};
|
|
pub use providers::anthropic::{AnthropicClient, AnthropicClient as ApiClient, AuthSource};
|
|
pub use providers::openai_compat::{
|
|
build_chat_completion_request, flatten_tool_result_content, is_reasoning_model,
|
|
model_rejects_is_error_field, model_requires_reasoning_content_in_history, translate_message,
|
|
OpenAiCompatClient, OpenAiCompatConfig,
|
|
};
|
|
pub use providers::{
|
|
detect_provider_kind, max_tokens_for_model, max_tokens_for_model_with_override,
|
|
model_family_identity_for, model_family_identity_for_kind, resolve_model_alias, ProviderKind,
|
|
};
|
|
pub use sse::{parse_frame, SseParser};
|
|
pub use types::{
|
|
ContentBlockDelta, ContentBlockDeltaEvent, ContentBlockStartEvent, ContentBlockStopEvent,
|
|
InputContentBlock, InputMessage, MessageDelta, MessageDeltaEvent, MessageRequest,
|
|
MessageResponse, MessageStartEvent, MessageStopEvent, OutputContentBlock, StreamEvent,
|
|
ToolChoice, ToolDefinition, ToolResultContentBlock, Usage,
|
|
};
|
|
|
|
pub use telemetry::{
|
|
AnalyticsEvent, AnthropicRequestProfile, ClientIdentity, JsonlTelemetrySink,
|
|
MemoryTelemetrySink, SessionTraceRecord, SessionTracer, TelemetryEvent, TelemetrySink,
|
|
DEFAULT_ANTHROPIC_VERSION,
|
|
};
|