@boundless-oss/atlas
Version:
Atlas - MCP Server for comprehensive startup project management
110 lines • 2.99 kB
TypeScript
/**
* Graph-based memory system for code intelligence
* Explores different database approaches for agent memory
*/
export interface GraphNode {
id: string;
type: 'file' | 'function' | 'class' | 'variable' | 'import' | 'test' | 'commit';
name: string;
properties: Record<string, any>;
timestamp: Date;
}
export interface GraphEdge {
from: string;
to: string;
type: 'calls' | 'imports' | 'extends' | 'implements' | 'tests' | 'modifies' | 'depends_on';
properties?: Record<string, any>;
timestamp: Date;
}
export interface MemoryQuery {
type: 'graph' | 'temporal' | 'semantic';
query: string;
timeRange?: {
start: Date;
end: Date;
};
depth?: number;
}
/**
* In-memory graph database for code relationships
* Lightweight alternative to Neo4j for local use
*/
export declare class CodeGraphMemory {
private nodes;
private edges;
private temporalIndex;
/**
* Add a node to the graph
*/
addNode(node: GraphNode): void;
/**
* Add an edge between nodes
*/
addEdge(edge: GraphEdge): void;
/**
* Find all nodes connected to a given node
*/
getConnectedNodes(nodeId: string, edgeType?: string, depth?: number): GraphNode[];
/**
* Find nodes modified within a time range
*/
getNodesInTimeRange(start: Date, end: Date): GraphNode[];
/**
* Find dependency chains
*/
findDependencyChain(fromId: string, toId: string): GraphNode[][];
/**
* Detect circular dependencies
*/
detectCycles(): string[][];
}
/**
* Document-based memory using embeddings and metadata
*/
export declare class DocumentMemory {
private documents;
addDocument(id: string, content: string, metadata: Record<string, any>): void;
searchByMetadata(query: Record<string, any>): Array<[string, any]>;
}
/**
* Time-series memory for tracking code evolution
*/
export declare class TimeSeriesMemory {
private events;
addEvent(type: string, data: any, tags?: string[]): void;
queryByTimeRange(start: Date, end: Date, type?: string): any[];
getEventPatterns(windowSize?: number): Record<string, number>;
}
/**
* Unified memory interface combining all approaches
*/
export declare class HybridCodeMemory {
private graph;
private documents;
private timeSeries;
constructor();
/**
* Record a code change with full context
*/
recordCodeChange(change: {
file: string;
type: 'create' | 'modify' | 'delete';
functions?: string[];
imports?: string[];
tests?: string[];
}): void;
/**
* Query memory with context awareness
*/
query(query: MemoryQuery): any;
/**
* Get coding patterns and insights
*/
getInsights(): {
recentPatterns: Record<string, number>;
dependencies: string[][];
hotspots: string[];
};
private findHotspots;
}
//# sourceMappingURL=graph-memory.d.ts.map