arela
Version:
AI-powered CTO with multi-agent orchestration, code summarization, visual testing (web + mobile) for blazing fast development.
224 lines • 5.38 kB
TypeScript
/**
* Types shared by the Tri-Memory system.
*/
export interface SemanticResult {
file: string;
snippet: string;
score: number;
}
export interface VectorStats {
ready: boolean;
filesIndexed: number;
embeddings: number;
model?: string;
lastIndexedAt?: string;
indexPath: string;
/**
* Optional: size of the on-disk index in bytes.
* Used by Hexi-004 Vector Memory wrapper statistics.
*/
indexSizeBytes?: number;
}
export interface DependencyEdge {
file: string;
reason: string;
weight: number;
}
export interface ImpactAnalysis {
file: string;
exists: boolean;
upstream: DependencyEdge[];
downstream: DependencyEdge[];
fanIn: number;
fanOut: number;
}
export interface GraphStats {
ready: boolean;
files: number;
imports: number;
functions: number;
functionCalls: number;
apiEndpoints: number;
apiCalls: number;
dbPath: string;
/**
* Optional: last modification time of the graph database (epoch ms).
* Used by Hexi-005 Graph Memory wrapper statistics.
*/
lastUpdatedAt?: number;
}
export type AuditResult = "success" | "failure" | "pending";
export interface AuditEntry {
timestamp?: string;
agent: string;
action: string;
inputHash?: string;
outputHash?: string;
result: AuditResult;
metadata?: Record<string, unknown>;
commitHash?: string;
ticketId?: string;
policyViolations?: unknown[];
}
export interface AuditLogEntry extends AuditEntry {
id: number;
timestamp: string;
}
export interface AuditStats {
ready: boolean;
entries: number;
success: number;
failure: number;
pending: number;
agents: Record<string, number>;
dbPath: string;
}
export interface AuditTrail {
scope: "commit" | "ticket" | "all";
filter?: string;
entries: AuditLogEntry[];
}
export interface TriMemoryStats {
vector: VectorStats;
graph: GraphStats;
audit: AuditStats;
}
export interface MemoryQueryResult {
question: string;
semantic: SemanticResult[];
relatedFiles: string[];
timestamp: string;
}
export interface TriMemoryInitOptions {
refreshGraph?: boolean;
refreshVector?: boolean;
verbose?: boolean;
}
/**
* Session Memory types (Layer 4 - Hexi-Memory)
*/
export interface Message {
role: "user" | "assistant" | "system";
content: string;
timestamp?: number;
}
export interface SessionMemoryData {
sessionId: string;
startTime: number;
currentTask?: string;
filesOpen: string[];
conversationHistory: Message[];
activeTicket?: string;
context: Record<string, any>;
}
export interface SessionStats {
sessionId: string;
startTime: number;
messagesCount: number;
filesOpenCount: number;
contextKeysCount: number;
dbPath: string;
}
/**
* Project Memory types (Layer 5 - Hexi-Memory)
*/
export interface Decision {
id: string;
title: string;
description: string;
rationale: string;
date: number;
tags: string[];
}
export interface Pattern {
id: string;
name: string;
description: string;
examples: string[];
frequency: number;
}
export interface Todo {
id: string;
task: string;
priority: "high" | "medium" | "low";
completed: boolean;
createdAt: number;
completedAt?: number;
}
export interface ProjectMemoryData {
projectId: string;
projectPath: string;
architecture?: string;
techStack: string[];
decisions: Decision[];
patterns: Pattern[];
todos: Todo[];
conventions: Record<string, string>;
metadata: Record<string, any>;
}
export interface ProjectStats {
projectId: string;
projectPath: string;
architecture?: string;
techStackCount: number;
decisionsCount: number;
patternsCount: number;
todosCount: number;
todosCompletedCount: number;
conventionsCount: number;
metadataCount: number;
dbPath: string;
}
/**
* User Memory types (Layer 6 - Hexi-Memory)
*/
export interface UserPreferences {
language?: string;
framework?: string;
testing?: string;
style?: string;
editor?: string;
packageManager?: string;
[key: string]: string | undefined;
}
export interface Expertise {
frontend?: 'beginner' | 'intermediate' | 'expert';
backend?: 'beginner' | 'intermediate' | 'expert';
devops?: 'beginner' | 'intermediate' | 'expert';
mobile?: 'beginner' | 'intermediate' | 'expert';
[key: string]: string | undefined;
}
export interface UserPattern {
id: string;
name: string;
description: string;
frequency: number;
examples: string[];
learnedFrom: string[];
}
export interface ProjectRef {
projectId: string;
projectPath: string;
lastAccessed: number;
totalSessions: number;
}
export interface UserMemoryData {
userId: string;
preferences: UserPreferences;
expertise: Expertise;
patterns: UserPattern[];
globalConventions: Record<string, string>;
projectHistory: ProjectRef[];
metadata: Record<string, any>;
}
export interface UserStats {
userId: string;
preferencesCount: number;
expertiseCount: number;
patternsCount: number;
globalConventionsCount: number;
projectHistoryCount: number;
metadataCount: number;
dbPath: string;
}
//# sourceMappingURL=types.d.ts.map