feat(storage): add KVStore, MessageStore, and StoredMessage interfaces
This commit is contained in:
parent
9f5afb10f5
commit
2a20961a14
35
src/types.ts
35
src/types.ts
|
|
@ -271,6 +271,8 @@ export interface TeamConfig {
|
||||||
readonly agents: readonly AgentConfig[]
|
readonly agents: readonly AgentConfig[]
|
||||||
readonly sharedMemory?: boolean
|
readonly sharedMemory?: boolean
|
||||||
readonly maxConcurrency?: number
|
readonly maxConcurrency?: number
|
||||||
|
readonly store?: MemoryStore
|
||||||
|
readonly messageStore?: MessageStore
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Aggregated result for a full team run. */
|
/** Aggregated result for a full team run. */
|
||||||
|
|
@ -433,6 +435,14 @@ export interface MemoryEntry {
|
||||||
readonly createdAt: Date
|
readonly createdAt: Date
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface KVStore {
|
||||||
|
get(key: string): Promise<string | null>
|
||||||
|
set(key: string, value: string): Promise<void>
|
||||||
|
delete(key: string): Promise<void>
|
||||||
|
list(): Promise<string[]>
|
||||||
|
clear(): Promise<void>
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Persistent (or in-memory) key-value store shared across agents.
|
* Persistent (or in-memory) key-value store shared across agents.
|
||||||
* Implementations may be backed by Redis, SQLite, or plain objects.
|
* Implementations may be backed by Redis, SQLite, or plain objects.
|
||||||
|
|
@ -445,6 +455,31 @@ export interface MemoryStore {
|
||||||
clear(): Promise<void>
|
clear(): Promise<void>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// 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<void>
|
||||||
|
get(messageId: string): Promise<StoredMessage | null>
|
||||||
|
query(filter: MessageFilter): Promise<StoredMessage[]>
|
||||||
|
markRead(agentName: string, messageIds: string[]): Promise<void>
|
||||||
|
getUnreadIds(agentName: string): Promise<Set<string>>
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// LLM adapter
|
// LLM adapter
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue