mirror of
https://github.com/instructkr/claw-code.git
synced 2026-05-18 21:41:26 +08:00
Restore provider compatibility diagnostics as API types
Keep the G008 capability and diagnostic helpers compile-ready by restoring the public report/support/severity types that team integrations referenced after merge reconciliation. Constraint: Final G008 verification failed on missing provider capability and diagnostic type definitions. Confidence: high Scope-risk: narrow Directive: Keep provider diagnostics exported as typed API surfaces; do not replace them with ad-hoc JSON-only status fields. Tested: cargo fmt --manifest-path rust/Cargo.toml --all -- --check; git diff --check; cargo test --manifest-path rust/Cargo.toml -p api providers:: -- --nocapture --test-threads=1; cargo test --manifest-path rust/Cargo.toml -p api --test openai_compat_integration -- --nocapture --test-threads=1 Not-tested: full workspace clippy; known unrelated runtime policy_engine struct_excessive_bools remains outside G008. Co-authored-by: OmX <omx@oh-my-codex.dev>
This commit is contained in:
@@ -49,6 +49,55 @@ pub struct ModelTokenLimit {
|
|||||||
pub context_window_tokens: u32,
|
pub context_window_tokens: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
|
pub enum ProviderWireProtocol {
|
||||||
|
AnthropicMessages,
|
||||||
|
OpenAiChatCompletions,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
|
pub enum ProviderFeatureSupport {
|
||||||
|
Supported,
|
||||||
|
Unsupported,
|
||||||
|
PassthroughAsTool,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||||
|
pub struct ProviderCapabilityReport {
|
||||||
|
pub provider: ProviderKind,
|
||||||
|
pub wire_protocol: ProviderWireProtocol,
|
||||||
|
pub auth_env: &'static str,
|
||||||
|
pub base_url_env: &'static str,
|
||||||
|
pub default_base_url: &'static str,
|
||||||
|
pub tool_calls: ProviderFeatureSupport,
|
||||||
|
pub streaming: ProviderFeatureSupport,
|
||||||
|
pub streaming_usage: ProviderFeatureSupport,
|
||||||
|
pub prompt_cache: ProviderFeatureSupport,
|
||||||
|
pub custom_parameters: ProviderFeatureSupport,
|
||||||
|
pub reasoning_effort: ProviderFeatureSupport,
|
||||||
|
pub reasoning_content_history: ProviderFeatureSupport,
|
||||||
|
pub fixed_sampling_reasoning_models: ProviderFeatureSupport,
|
||||||
|
pub web_search: ProviderFeatureSupport,
|
||||||
|
pub web_fetch: ProviderFeatureSupport,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
|
pub enum ProviderDiagnosticSeverity {
|
||||||
|
Info,
|
||||||
|
Warning,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||||
|
pub struct ProviderDiagnostic {
|
||||||
|
pub code: &'static str,
|
||||||
|
pub severity: ProviderDiagnosticSeverity,
|
||||||
|
pub message: String,
|
||||||
|
pub action: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[allow(clippy::struct_excessive_bools)]
|
#[allow(clippy::struct_excessive_bools)]
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||||
pub struct ProviderDiagnostics {
|
pub struct ProviderDiagnostics {
|
||||||
|
|||||||
Reference in New Issue
Block a user