|
|
|
|
| export interface AnthropicRequest {
|
| model: string;
|
| messages: AnthropicMessage[];
|
| max_tokens: number;
|
| stream?: boolean;
|
| system?: string | AnthropicContentBlock[];
|
| tools?: AnthropicTool[];
|
| tool_choice?: AnthropicToolChoice;
|
| temperature?: number;
|
| top_p?: number;
|
| stop_sequences?: string[];
|
| }
|
|
|
| |
| |
| |
| |
|
|
| export type AnthropicToolChoice =
|
| | { type: 'auto' }
|
| | { type: 'any' }
|
| | { type: 'tool'; name: string };
|
|
|
| export interface AnthropicMessage {
|
| role: 'user' | 'assistant';
|
| content: string | AnthropicContentBlock[];
|
| }
|
|
|
| export interface AnthropicContentBlock {
|
| type: 'text' | 'thinking' | 'tool_use' | 'tool_result' | 'image';
|
| text?: string;
|
|
|
| thinking?: string;
|
| signature?: string;
|
|
|
| source?: { type: string; media_type?: string; data: string };
|
|
|
| id?: string;
|
| name?: string;
|
| input?: Record<string, unknown>;
|
|
|
| tool_use_id?: string;
|
| content?: string | AnthropicContentBlock[];
|
| is_error?: boolean;
|
| }
|
|
|
| export interface AnthropicTool {
|
| name: string;
|
| description?: string;
|
| input_schema: Record<string, unknown>;
|
| }
|
|
|
| export interface AnthropicResponse {
|
| id: string;
|
| type: 'message';
|
| role: 'assistant';
|
| content: AnthropicContentBlock[];
|
| model: string;
|
| stop_reason: string;
|
| stop_sequence: string | null;
|
| usage: {
|
| input_tokens: number;
|
| output_tokens: number;
|
| cache_creation_input_tokens?: number;
|
| cache_read_input_tokens?: number;
|
| };
|
| }
|
|
|
|
|
|
|
| export interface CursorChatRequest {
|
| context?: CursorContext[];
|
| model: string;
|
| id: string;
|
| messages: CursorMessage[];
|
| trigger: string;
|
| maxTokens?: number;
|
| max_tokens?: number;
|
| }
|
|
|
| export interface CursorContext {
|
| type: string;
|
| content: string;
|
| filePath: string;
|
| }
|
|
|
| export interface CursorMessage {
|
| parts: CursorPart[];
|
| id: string;
|
| role: string;
|
| }
|
|
|
| export interface CursorPart {
|
| type: string;
|
| text: string;
|
| }
|
|
|
| export interface CursorSSEEvent {
|
| type: string;
|
| delta?: string;
|
| }
|
|
|
|
|
|
|
| export interface ParsedToolCall {
|
| name: string;
|
| arguments: Record<string, unknown>;
|
| }
|
|
|
| export interface AppConfig {
|
| port: number;
|
| timeout: number;
|
| proxy?: string;
|
| cursorModel: string;
|
| enableThinking?: boolean;
|
| vision?: {
|
| enabled: boolean;
|
| mode: 'ocr' | 'api';
|
|
|
| providers: VisionProvider[];
|
|
|
| fallbackToOcr: boolean;
|
|
|
| baseUrl: string;
|
| apiKey: string;
|
| model: string;
|
| };
|
| fingerprint: {
|
| userAgent: string;
|
| };
|
| }
|
|
|
| export interface VisionProvider {
|
| name?: string;
|
| baseUrl: string;
|
| apiKey: string;
|
| model: string;
|
| }
|
|
|
|
|