diff --git a/src/types.ts b/src/types.ts index df7fa3a..b5a8c0d 100644 --- a/src/types.ts +++ b/src/types.ts @@ -271,6 +271,8 @@ export interface TeamConfig { readonly agents: readonly AgentConfig[] readonly sharedMemory?: boolean readonly maxConcurrency?: number + readonly store?: MemoryStore + readonly messageStore?: MessageStore } /** Aggregated result for a full team run. */ @@ -433,6 +435,14 @@ export interface MemoryEntry { readonly createdAt: Date } +export interface KVStore { + get(key: string): Promise + set(key: string, value: string): Promise + delete(key: string): Promise + list(): Promise + clear(): Promise +} + /** * Persistent (or in-memory) key-value store shared across agents. * Implementations may be backed by Redis, SQLite, or plain objects. @@ -445,6 +455,31 @@ export interface MemoryStore { clear(): Promise } +// --------------------------------------------------------------------------- +// Message storage +// --------------------------------------------------------------------------- + +export interface MessageFilter { + to?: string + from?: string +} + +export interface StoredMessage { + readonly id: string + readonly from: string + readonly to: string + readonly content: string + readonly timestamp: string +} + +export interface MessageStore { + save(message: StoredMessage): Promise + get(messageId: string): Promise + query(filter: MessageFilter): Promise + markRead(agentName: string, messageIds: string[]): Promise + getUnreadIds(agentName: string): Promise> +} + // --------------------------------------------------------------------------- // LLM adapter // ---------------------------------------------------------------------------