Files
claudecodeui/src/types/app.ts
2026-03-05 22:51:27 +00:00

71 lines
1.6 KiB
TypeScript

export type SessionProvider = 'claude' | 'cursor' | 'codex' | 'gemini';
export type AppTab = 'chat' | 'files' | 'shell' | 'git' | 'tasks' | 'preview' | `plugin:${string}`;
export interface ProjectSession {
id: string;
title?: string;
summary?: string;
name?: string;
createdAt?: string;
created_at?: string;
updated_at?: string;
lastActivity?: string;
messageCount?: number;
__provider?: SessionProvider;
__projectName?: string;
[key: string]: unknown;
}
export interface ProjectSessionMeta {
total?: number;
hasMore?: boolean;
[key: string]: unknown;
}
export interface ProjectTaskmasterInfo {
hasTaskmaster?: boolean;
status?: string;
metadata?: Record<string, unknown>;
[key: string]: unknown;
}
export interface Project {
name: string;
displayName: string;
fullPath: string;
path?: string;
sessions?: ProjectSession[];
cursorSessions?: ProjectSession[];
codexSessions?: ProjectSession[];
geminiSessions?: ProjectSession[];
sessionMeta?: ProjectSessionMeta;
taskmaster?: ProjectTaskmasterInfo;
[key: string]: unknown;
}
export interface LoadingProgress {
type?: 'loading_progress';
phase?: string;
current: number;
total: number;
currentProject?: string;
[key: string]: unknown;
}
export interface ProjectsUpdatedMessage {
type: 'projects_updated';
projects: Project[];
changedFile?: string;
[key: string]: unknown;
}
export interface LoadingProgressMessage extends LoadingProgress {
type: 'loading_progress';
}
export type AppSocketMessage =
| LoadingProgressMessage
| ProjectsUpdatedMessage
| { type?: string;[key: string]: unknown };