Skip to main content

CodaMemoryAdapter

Workspace API


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

CodaMemoryAdapter

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

MemoryMessage[]

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?

optional metadata: 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

const MEMORY_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>

Returns

CodaMemoryAdapter