import type { ProjectAgentResponsibility, ProjectType } from './project-config'; import type { ConversationModelState } from './coding-conversation-contracts'; export interface CodingProjectSummary { id: string; name: string; createdAt: string; updatedAt: string; lastOpenedAt: string; } export type ProjectIdentityChoice = | { kind: 'create' } | { kind: 'bind'; projectId: string }; export interface CodingProjectAgent extends ConversationModelState { id: string; avatarId: string; avatarDataUrl?: string; roleName: string; name: string; builtIn: boolean; enabled: boolean; skillIds: string[]; responsibility: ProjectAgentResponsibility; prompt: string; archivedAt: string | null; pinned: boolean; createdAt: string; updatedAt: string; } export interface CodingProjectConfig { schemaVersion: 2; projectType: ProjectType; projectId?: string; initialized: boolean; agents: CodingProjectAgent[]; knowledgeDirectory: 'knowledge'; createdAt: string; updatedAt: string; } export interface CodingConversationMetadata extends ConversationModelState { id: string; agentId: string; title: string; archivedAt: string | null; unread: boolean; createdAt: string; updatedAt: string; } export interface CodingProjectConfigSnapshot { project: CodingProjectSummary; config: CodingProjectConfig; knowledgeFiles: string[]; }