desk_agent_2.0 / types.ts
Leon4gr45's picture
Upload folder using huggingface_hub
46a3e41 verified
export interface Note {
id: string;
title: string;
content: string;
summary?: string;
variables?: string[];
variableMetadata?: Record<string, string>;
lastModified: number;
}
// --- Jules API Types ---
export interface JulesSource {
name: string;
id: string;
githubRepo: {
owner: string;
repo: string;
};
}
export interface JulesSession {
name: string; // "sessions/..."
id: string;
title?: string;
prompt: string;
sourceContext?: {
source: string;
githubRepoContext?: {
startingBranch: string;
};
};
createTime?: string;
}
export interface JulesActivity {
name: string;
id: string;
createTime: string;
originator: 'user' | 'agent';
text?: string; // Added for local user messages or if API supports it in future
// Possible payloads
planGenerated?: {
plan: {
id: string;
steps: Array<{
id: string;
title: string;
index?: number;
}>;
};
};
planApproved?: {
planId: string;
};
progressUpdated?: {
title: string;
description?: string;
};
artifacts?: Array<{
bashOutput?: {
command?: string;
output: string;
exitCode?: number;
};
changeSet?: any;
media?: {
data: string;
mimeType: string;
};
}>;
sessionCompleted?: {};
}
// --- Internal App Types ---
export interface SecretsStatus {
JULES_API_TOKEN_1: boolean;
JULES_API_TOKEN_2?: boolean;
JULES_API_TOKEN_3?: boolean;
JULES_API_TOKEN_4?: boolean;
GITHUB_API_TOKEN: boolean;
GITHUB_2_TOKEN: boolean;
ASSEMBLY_API_KEY: boolean;
GEMINI_API_KEY: boolean;
PASSKEY: boolean;
AUXteam?: boolean;
}
export interface AppSettings {
agentKeys: Record<string, string>; // Map agent ID (e.g., 'jules-1') to API Key
assemblyApiKey: string;
githubTokens: Record<string, string>; // Map agent ID to GitHub PAT
githubProfiles: Record<string, string>; // Map agent ID to GitHub Profile Name
}
export interface ChatMessage {
id: string;
sender: 'user' | 'jules' | 'system';
text?: string;
activityType?: 'plan' | 'progress' | 'error' | 'artifact';
timestamp: Date;
details?: any; // To store raw activity data for "details" view
}
export interface WorkflowStep {
templateId: string;
delayMinutes: number;
}
export interface Workflow {
id: string;
name: string;
description: string;
steps: WorkflowStep[];
}
export interface QueuedMessage {
id: string;
text: string;
fireAt: number;
sessionId: string;
}