mirror of
https://github.com/7836246/cursor2api.git
synced 2026-05-19 17:04:37 +08:00
107 lines
2.3 KiB
TypeScript
107 lines
2.3 KiB
TypeScript
// ==================== Anthropic API Types ====================
|
|
|
|
export interface AnthropicRequest {
|
|
model: string;
|
|
messages: AnthropicMessage[];
|
|
max_tokens: number;
|
|
stream?: boolean;
|
|
system?: string | AnthropicContentBlock[];
|
|
tools?: AnthropicTool[];
|
|
temperature?: number;
|
|
top_p?: number;
|
|
stop_sequences?: string[];
|
|
}
|
|
|
|
export interface AnthropicMessage {
|
|
role: 'user' | 'assistant';
|
|
content: string | AnthropicContentBlock[];
|
|
}
|
|
|
|
export interface AnthropicContentBlock {
|
|
type: 'text' | 'tool_use' | 'tool_result' | 'image';
|
|
text?: string;
|
|
// image fields
|
|
source?: { type: string; media_type?: string; data: string };
|
|
// tool_use fields
|
|
id?: string;
|
|
name?: string;
|
|
input?: Record<string, unknown>;
|
|
// tool_result fields
|
|
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 };
|
|
}
|
|
|
|
// ==================== Cursor API Types ====================
|
|
|
|
export interface CursorChatRequest {
|
|
context?: CursorContext[];
|
|
model: string;
|
|
id: string;
|
|
messages: CursorMessage[];
|
|
trigger: string;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
// ==================== Internal Types ====================
|
|
|
|
export interface ParsedToolCall {
|
|
name: string;
|
|
arguments: Record<string, unknown>;
|
|
}
|
|
|
|
export interface AppConfig {
|
|
port: number;
|
|
timeout: number;
|
|
proxy?: string;
|
|
cursorModel: string;
|
|
vision?: {
|
|
enabled: boolean;
|
|
mode: 'ocr' | 'api';
|
|
baseUrl: string;
|
|
apiKey: string;
|
|
model: string;
|
|
};
|
|
fingerprint: {
|
|
userAgent: string;
|
|
};
|
|
}
|