Files
huskies/frontend/src/types.ts
T

81 lines
1.5 KiB
TypeScript
Raw Normal View History

export type Role = "system" | "user" | "assistant" | "tool";
export interface ToolCall {
id?: string;
type: string;
function: {
name: string;
arguments: string;
};
}
export interface Message {
role: Role;
content: string;
tool_calls?: ToolCall[];
tool_call_id?: string;
}
export interface ProviderConfig {
provider: string;
model: string;
base_url?: string;
enable_tools?: boolean;
session_id?: string;
}
export interface FileEntry {
name: string;
kind: "file" | "dir";
}
export interface SearchResult {
path: string;
matches: number;
}
export interface CommandOutput {
stdout: string;
stderr: string;
exit_code: number;
}
export type WsRequest =
| {
type: "chat";
messages: Message[];
config: ProviderConfig;
}
| {
type: "cancel";
}
| {
type: "permission_response";
request_id: string;
approved: boolean;
always_allow: boolean;
};
export type WsResponse =
| { type: "token"; content: string }
| { type: "update"; messages: Message[] }
| { type: "session_id"; session_id: string }
| { type: "error"; message: string }
| {
type: "permission_request";
request_id: string;
tool_name: string;
tool_input: Record<string, unknown>;
};
// Re-export API client types for convenience
export type {
CommandOutput as ApiCommandOutput,
FileEntry as ApiFileEntry,
Message as ApiMessage,
ProviderConfig as ApiProviderConfig,
SearchResult as ApiSearchResult,
WsRequest as ApiWsRequest,
WsResponse as ApiWsResponse,
};