API Reference
Core APIs
Plugin Manager
interface PluginManager {
initialize(): Promise<void>;
shutdown(): Promise<void>;
getService<T>(serviceId: string): T;
}
Vector Service
interface VectorService {
generateVector(text: string): Promise<Float32Array>;
calculateRelevance(vector1: Float32Array, vector2: Float32Array): number;
updateLSASpace(vectors: Float32Array[]): void;
}
Database Service
interface DatabaseService {
// Paper Management
addPaper(paper: Paper): Promise<void>;
getPaper(id: string): Promise<Paper>;
updatePaper(paper: Paper): Promise<void>;
deletePaper(id: string): Promise<void>;
// Vector Management
addVector(vector: PaperVector): Promise<void>;
getVectors(paperId: string): Promise<PaperVector[]>;
rebuildVectorIndex(): Promise<void>;
// RSS Management
addRSSItem(item: RSSItem): Promise<void>;
updateRelevance(relevance: RSSRelevance): Promise<void>;
rebuildRelevanceIndex(): Promise<void>;
}
UI Manager
interface UIManager {
renderRelevanceColumn(): void;
updateRelevanceScores(scores: Map<string, number>): void;
showSettings(): void;
}
Data Types
Paper
interface Paper {
id: string;
title: string;
addedDate: number;
lastUpdated: number;
}
PaperVector
interface PaperVector {
paperId: string;
modelId: string;
vector: Float32Array;
createdDate: number;
}
RSSItem
interface RSSItem {
id: string;
title: string;
createdDate: number;
}
Model
interface Model {
id: string;
name: string;
apiConfig: string;
isActive: boolean;
createdDate: number;
}
RSSRelevance
interface RSSRelevance {
itemId: string;
modelId: string;
vector: Float32Array; // dimension(384)
historyVectorsSpaceSvdU: Float32Array; // dimension(384)
recentVectorsSpaceSvdU: Float32Array; // dimension(384)
historyRelevanceScore: number;
recentRelevanceScore: number;
updatedDate: number;
}
Events
System Events
enum SystemEvent {
INITIALIZED = "system:initialized",
SHUTDOWN = "system:shutdown",
ERROR = "system:error",
}
RSS Events
enum RSSEvent {
ITEM_ADDED = "rss:item_added",
RELEVANCE_UPDATED = "rss:relevance_updated",
FEED_UPDATED = "rss:feed_updated",
}
Error Handling
Error Types
enum ErrorType {
DATABASE_ERROR = "database_error",
VECTOR_ERROR = "vector_error",
API_ERROR = "api_error",
UI_ERROR = "ui_error",
}
Error Response
interface ErrorResponse {
type: ErrorType;
message: string;
details?: any;
timestamp: number;
}
Configuration
Plugin Configuration
interface PluginConfig {
modelSettings: ModelSettings;
relevanceThresholds: RelevanceThresholds;
databaseSettings: DatabaseSettings;
}
Model Settings
interface ModelSettings {
activeModelId: string;
apiKey?: string;
batchSize: number;
timeout: number;
}