CodaMemoryAdapter
Workspace API / services/memory/CodaMemoryAdapter
services/memory/CodaMemoryAdapter
Classes
CodaMemoryAdapter
Defined in: services/memory/CodaMemoryAdapter.ts:64
Coda Memory Adapter
Provides memory management for VoltAgent skill executions:
- Links to existing app_data_conversations
- Enforces organization-level RLS
- Auto-expires working memory after 7 days
Constructors
Constructor
new CodaMemoryAdapter(
config):CodaMemoryAdapter
Defined in: services/memory/CodaMemoryAdapter.ts:68
Parameters
config
Partial<MemoryConfig> = {}
Returns
Methods
getSession()
getSession(
conversationId,organizationId,userId):Promise<MemorySession>
Defined in: services/memory/CodaMemoryAdapter.ts:75
Get or create a memory session for a conversation
Parameters
conversationId
string
organizationId
string
userId
string
Returns
Promise<MemorySession>
addMessage()
addMessage(
conversationId,organizationId,userId,message):Promise<void>
Defined in: services/memory/CodaMemoryAdapter.ts:172
Add a message to a session
Parameters
conversationId
string
organizationId
string
userId
string
message
Omit<MemoryMessage, "timestamp">
Returns
Promise<void>
getMessages()
getMessages(
conversationId,organizationId,userId,limit?):Promise<MemoryMessage[]>
Defined in: services/memory/CodaMemoryAdapter.ts:216
Get messages from a session
Parameters
conversationId
string
organizationId
string
userId
string
limit?
number
Returns
Promise<MemoryMessage[]>
clearSession()
clearSession(
conversationId,organizationId):Promise<void>
Defined in: services/memory/CodaMemoryAdapter.ts:235
Clear a session's messages
Parameters
conversationId
string
organizationId
string
Returns
Promise<void>
cleanupExpiredSessions()
cleanupExpiredSessions():
Promise<number>
Defined in: services/memory/CodaMemoryAdapter.ts:267
Delete expired sessions (cleanup job)
Returns
Promise<number>
getStats()
getStats():
Promise<{totalSessions:number;activeSessions:number;totalMessages:number;cacheSize:number; }>
Defined in: services/memory/CodaMemoryAdapter.ts:306
Get session statistics
Returns
Promise<{ totalSessions: number; activeSessions: number; totalMessages: number; cacheSize: number; }>
formatForContext()
formatForContext(
messages):string
Defined in: services/memory/CodaMemoryAdapter.ts:348
Format messages for LLM context
Parameters
messages
Returns
string
Interfaces
MemoryMessage
Defined in: services/memory/CodaMemoryAdapter.ts:17
Memory message type
Properties
role
role:
"user"|"assistant"|"system"|"tool"
Defined in: services/memory/CodaMemoryAdapter.ts:18
content
content:
string
Defined in: services/memory/CodaMemoryAdapter.ts:19
timestamp
timestamp:
Date
Defined in: services/memory/CodaMemoryAdapter.ts:20
metadata?
optionalmetadata:Record<string,unknown>
Defined in: services/memory/CodaMemoryAdapter.ts:21
MemorySession
Defined in: services/memory/CodaMemoryAdapter.ts:27
Memory session record
Properties
id
id:
string
Defined in: services/memory/CodaMemoryAdapter.ts:28
conversationId
conversationId:
string
Defined in: services/memory/CodaMemoryAdapter.ts:29
organizationId
organizationId:
string
Defined in: services/memory/CodaMemoryAdapter.ts:30
userId
userId:
string
Defined in: services/memory/CodaMemoryAdapter.ts:31
messages
messages:
MemoryMessage[]
Defined in: services/memory/CodaMemoryAdapter.ts:32
createdAt
createdAt:
Date
Defined in: services/memory/CodaMemoryAdapter.ts:33
updatedAt
updatedAt:
Date
Defined in: services/memory/CodaMemoryAdapter.ts:34
expiresAt
expiresAt:
Date
Defined in: services/memory/CodaMemoryAdapter.ts:35
MemoryConfig
Defined in: services/memory/CodaMemoryAdapter.ts:41
Memory configuration
Properties
maxMessages
maxMessages:
number
Defined in: services/memory/CodaMemoryAdapter.ts:43
Maximum messages to retain per session
expiryDays
expiryDays:
number
Defined in: services/memory/CodaMemoryAdapter.ts:45
Session expiry in days
persist
persist:
boolean
Defined in: services/memory/CodaMemoryAdapter.ts:47
Whether to persist to database
Variables
MEMORY_SESSION_DDL
constMEMORY_SESSION_DDL: "\nCREATE TABLE IF NOT EXISTS skills_memory_sessions (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n conversation_id UUID NOT NULL,\n organization_id UUID NOT NULL REFERENCES app_data_organizations(organization_id),\n user_id UUID NOT NULL REFERENCES app_data_users(user_id),\n messages JSONB NOT NULL DEFAULT '[]',\n created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),\n updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),\n expires_at TIMESTAMPTZ NOT NULL,\n \n CONSTRAINT fk_conversation FOREIGN KEY (conversation_id) \n REFERENCES app_data_conversations(conversation_id) ON DELETE CASCADE\n);\n\nCREATE INDEX IF NOT EXISTS idx_memory_sessions_conversation ON skills_memory_sessions(conversation_id);\nCREATE INDEX IF NOT EXISTS idx_memory_sessions_org ON skills_memory_sessions(organization_id);\nCREATE INDEX IF NOT EXISTS idx_memory_sessions_expires ON skills_memory_sessions(expires_at);\n\nALTER TABLE skills_memory_sessions ENABLE ROW LEVEL SECURITY;\n\nCREATE POLICY skills_memory_sessions_rls ON skills_memory_sessions\n USING (organization_id::text = current_setting('app.current_org_id', true));\n"
Defined in: services/memory/CodaMemoryAdapter.ts:376
Memory session table DDL (for reference - actual migration in infrastructure/database/migrations)
Functions
getMemoryAdapter()
getMemoryAdapter(
config?):CodaMemoryAdapter
Defined in: services/memory/CodaMemoryAdapter.ts:366
Get the memory adapter instance
Parameters
config?
Partial<MemoryConfig>