claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
208 lines • 5.22 kB
TypeScript
import type { HTMLAttributes } from 'svelte/elements';
export type AgentType = 'oracle' | 'scribe' | 'architect' | 'librarian' | 'alchemist' | 'archivist' | 'scholar' | 'researcher' | 'loop-diagnostic' | 'custom';
export type AgentStatus = 'idle' | 'busy' | 'processing' | 'error' | 'offline';
export type MessageType = 'request' | 'response' | 'notification' | 'error' | 'system';
export type WorkflowStatus = 'ready' | 'running' | 'completed' | 'error' | 'cancelled';
export type StageStatus = 'pending' | 'active' | 'completed' | 'error' | 'skipped';
export interface Agent {
id: string;
name: string;
type: AgentType;
status: AgentStatus;
description?: string;
capabilities?: string[];
avatar?: string;
color?: string;
metadata?: {
version?: string;
lastActive?: Date;
messageCount?: number;
avgResponseTime?: number;
successRate?: number;
};
}
export interface WorkflowStage {
id: string;
name: string;
description?: string;
agentId: string;
status: StageStatus;
input?: string;
output?: any;
dependencies?: string[];
config?: Record<string, any>;
startTime?: Date;
endTime?: Date;
error?: string;
}
export interface WorkflowExecution {
id: string;
name: string;
description?: string;
status: WorkflowStatus;
stages: WorkflowStage[];
createdAt: Date;
startedAt?: Date;
completedAt?: Date;
metadata?: {
priority?: number;
tags?: string[];
source?: string;
initiator?: string;
};
}
export interface AgentMessage {
id: string;
type: MessageType;
content: string;
timestamp: Date;
fromAgent: string;
toAgent: string;
metadata?: {
conversationId?: string;
parentMessageId?: string;
priority?: number;
processingTime?: number;
confidence?: number;
stage?: string;
workflowId?: string;
};
}
export interface AgentOrchestratorProps extends HTMLAttributes<HTMLDivElement> {
/**
* List of available agents
*/
agents: Agent[];
/**
* Current workflow execution
*/
workflow?: WorkflowExecution | null;
/**
* Show message flow between agents
* @default true
*/
showMessageFlow?: boolean;
/**
* Show agent performance metrics
* @default true
*/
showAgentMetrics?: boolean;
/**
* Show workflow execution graph
* @default true
*/
showExecutionGraph?: boolean;
/**
* Auto-scroll to latest messages
* @default true
*/
autoScroll?: boolean;
/**
* Maximum messages to display
* @default 100
*/
maxMessages?: number;
/**
* Callback when workflow starts
*/
onWorkflowStart?: (workflowId: string) => void;
/**
* Callback when workflow completes
*/
onWorkflowComplete?: (workflowId: string, result: any) => void;
/**
* Callback when agent sends message
*/
onAgentMessage?: (message: AgentMessage) => void;
/**
* Callback when workflow encounters error
*/
onWorkflowError?: (workflowId: string, error: Error) => void;
}
export interface A2AMessage {
id: string;
from: string;
to: string;
type: 'request' | 'response' | 'notification' | 'delegation';
content: {
action: string;
data: any;
metadata?: Record<string, any>;
};
timestamp: Date;
conversationId?: string;
parentMessageId?: string;
priority?: number;
requiresResponse?: boolean;
}
export interface A2ACapability {
name: string;
description: string;
inputSchema?: any;
outputSchema?: any;
examples?: Array<{
input: any;
output: any;
}>;
}
export interface A2AAgent {
id: string;
name: string;
type: string;
capabilities: A2ACapability[];
endpoint?: string;
status: 'available' | 'busy' | 'offline';
metadata?: Record<string, any>;
}
export interface CrewAIWorkflow {
id: string;
name: string;
crew: string;
tasks: Array<{
id: string;
description: string;
agent: string;
tools?: string[];
context?: any;
}>;
kickoff_inputs?: Record<string, any>;
}
export interface ThinkingAgentCollaboration {
id: string;
initiator: string;
participants: string[];
topic: string;
messages: A2AMessage[];
consensus?: {
reached: boolean;
summary: string;
confidence: number;
};
insights?: Array<{
agent: string;
insight: string;
relevance: number;
}>;
}
export interface WorkflowTemplate {
id: string;
name: string;
description: string;
category: 'research' | 'planning' | 'analysis' | 'creation' | 'diagnostic';
stages: Array<{
name: string;
agentType: AgentType;
config?: Record<string, any>;
}>;
requiredInputs?: Array<{
name: string;
type: string;
description: string;
}>;
expectedOutputs?: Array<{
name: string;
type: string;
description: string;
}>;
}
//# sourceMappingURL=types.d.ts.map