17 lines
620 B
TypeScript
17 lines
620 B
TypeScript
export interface MemoryPort {
|
|
store(input: { text: string; scope: string; metadata?: Record<string, string> }): Promise<unknown>;
|
|
recall(input: { query: string; scope: string; limit?: number }): Promise<unknown>;
|
|
}
|
|
|
|
export class ScopeMemory {
|
|
constructor(private readonly memory: MemoryPort) {}
|
|
|
|
async put(scopeId: string, text: string, metadata?: Record<string, string>): Promise<unknown> {
|
|
return this.memory.store({ text, scope: scopeId, metadata });
|
|
}
|
|
|
|
async search(scopeId: string, query: string, limit = 5): Promise<unknown> {
|
|
return this.memory.recall({ query, scope: scopeId, limit });
|
|
}
|
|
}
|