Files
Apple 16630acf0e feat: add memory-service and postgres for Helion agent
- Add PostgreSQL database in docker-compose.yml
- Add memory-service with health checks
- Create database schema (init.sql) with user_facts, dialog_summaries, agent_memory_events
- Add deployment documentation (DEPLOY-NOW.md)
- Add status reports and troubleshooting guides
2025-11-16 12:52:23 -08:00

69 lines
2.2 KiB
PL/PgSQL

-- Memory Service Database Schema
-- Created: 2025-01-16
-- User facts table
CREATE TABLE IF NOT EXISTS user_facts (
id SERIAL PRIMARY KEY,
user_id VARCHAR(255) NOT NULL,
team_id VARCHAR(255),
fact_key VARCHAR(255) NOT NULL,
fact_value TEXT,
fact_value_json JSONB,
token_gated BOOLEAN DEFAULT FALSE,
token_requirements JSONB,
metadata JSONB DEFAULT '{}',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE(user_id, team_id, fact_key)
);
-- Dialog summaries table
CREATE TABLE IF NOT EXISTS dialog_summaries (
id SERIAL PRIMARY KEY,
team_id VARCHAR(255) NOT NULL,
channel_id VARCHAR(255),
agent_id VARCHAR(255),
user_id VARCHAR(255),
period_start TIMESTAMP NOT NULL,
period_end TIMESTAMP NOT NULL,
summary_text TEXT,
summary_json JSONB,
message_count INTEGER DEFAULT 0,
participant_count INTEGER DEFAULT 0,
topics TEXT[],
meta JSONB DEFAULT '{}',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Agent memory events table
CREATE TABLE IF NOT EXISTS agent_memory_events (
id SERIAL PRIMARY KEY,
agent_id VARCHAR(255) NOT NULL,
team_id VARCHAR(255) NOT NULL,
channel_id VARCHAR(255),
user_id VARCHAR(255),
scope VARCHAR(50) DEFAULT 'short_term',
kind VARCHAR(50) NOT NULL,
body_text TEXT,
body_json JSONB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Indexes for performance
CREATE INDEX IF NOT EXISTS idx_user_facts_user_team ON user_facts(user_id, team_id);
CREATE INDEX IF NOT EXISTS idx_dialog_summaries_team_channel ON dialog_summaries(team_id, channel_id);
CREATE INDEX IF NOT EXISTS idx_agent_memory_events_agent_team ON agent_memory_events(agent_id, team_id);
CREATE INDEX IF NOT EXISTS idx_agent_memory_events_created ON agent_memory_events(created_at DESC);
-- Update trigger for user_facts
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ language 'plpgsql';
CREATE TRIGGER update_user_facts_updated_at BEFORE UPDATE ON user_facts
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();