Agents completed three of seven ADR-017 integration points: 1. subcarrier_selection.rs — ruvector-mincut: mincut_subcarrier_partition partitions subcarriers into (sensitive, insensitive) groups using DynamicMinCut. O(n^1.5 log n) amortized vs O(n log n) static sort. Includes test: mincut_partition_separates_high_low. 2. spectrogram.rs — ruvector-attn-mincut: gate_spectrogram applies self-attention (Q=K=V) over STFT time frames to suppress noise and multipath interference frames. Configurable lambda gating strength. Includes tests: preserves shape, finite values. 3. bvp.rs — ruvector-attention stub added (in progress by agent). 4. Cargo.toml — added ruvector-mincut, ruvector-attn-mincut, ruvector-temporal-tensor, ruvector-solver, ruvector-attention as workspace deps in wifi-densepose-signal crate. Cargo.lock updated for new dependencies. Remaining ADR-017 integrations (fresnel.rs, MAT crate) still in progress via background agents. https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4
306 lines
9.0 KiB
SQL
306 lines
9.0 KiB
SQL
|
|
-- Claude Flow V3 Memory Database
|
|
-- Version: 3.0.0
|
|
-- Features: Pattern learning, vector embeddings, temporal decay, migration tracking
|
|
|
|
PRAGMA journal_mode = WAL;
|
|
PRAGMA synchronous = NORMAL;
|
|
PRAGMA foreign_keys = ON;
|
|
|
|
-- ============================================
|
|
-- CORE MEMORY TABLES
|
|
-- ============================================
|
|
|
|
-- Memory entries (main storage)
|
|
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
id TEXT PRIMARY KEY,
|
|
key TEXT NOT NULL,
|
|
namespace TEXT DEFAULT 'default',
|
|
content TEXT NOT NULL,
|
|
type TEXT DEFAULT 'semantic' CHECK(type IN ('semantic', 'episodic', 'procedural', 'working', 'pattern')),
|
|
|
|
-- Vector embedding for semantic search (stored as JSON array)
|
|
embedding TEXT,
|
|
embedding_model TEXT DEFAULT 'local',
|
|
embedding_dimensions INTEGER,
|
|
|
|
-- Metadata
|
|
tags TEXT, -- JSON array
|
|
metadata TEXT, -- JSON object
|
|
owner_id TEXT,
|
|
|
|
-- Timestamps
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
expires_at INTEGER,
|
|
last_accessed_at INTEGER,
|
|
|
|
-- Access tracking for hot/cold detection
|
|
access_count INTEGER DEFAULT 0,
|
|
|
|
-- Status
|
|
status TEXT DEFAULT 'active' CHECK(status IN ('active', 'archived', 'deleted')),
|
|
|
|
UNIQUE(namespace, key)
|
|
);
|
|
|
|
-- Indexes for memory entries
|
|
CREATE INDEX IF NOT EXISTS idx_memory_namespace ON memory_entries(namespace);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_key ON memory_entries(key);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_type ON memory_entries(type);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_status ON memory_entries(status);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_created ON memory_entries(created_at);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_accessed ON memory_entries(last_accessed_at);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_owner ON memory_entries(owner_id);
|
|
|
|
-- ============================================
|
|
-- PATTERN LEARNING TABLES
|
|
-- ============================================
|
|
|
|
-- Learned patterns with confidence scoring and versioning
|
|
CREATE TABLE IF NOT EXISTS patterns (
|
|
id TEXT PRIMARY KEY,
|
|
|
|
-- Pattern identification
|
|
name TEXT NOT NULL,
|
|
pattern_type TEXT NOT NULL CHECK(pattern_type IN (
|
|
'task-routing', 'error-recovery', 'optimization', 'learning',
|
|
'coordination', 'prediction', 'code-pattern', 'workflow'
|
|
)),
|
|
|
|
-- Pattern definition
|
|
condition TEXT NOT NULL, -- Regex or semantic match
|
|
action TEXT NOT NULL, -- What to do when pattern matches
|
|
description TEXT,
|
|
|
|
-- Confidence scoring (0.0 - 1.0)
|
|
confidence REAL DEFAULT 0.5,
|
|
success_count INTEGER DEFAULT 0,
|
|
failure_count INTEGER DEFAULT 0,
|
|
|
|
-- Temporal decay
|
|
decay_rate REAL DEFAULT 0.01, -- How fast confidence decays
|
|
half_life_days INTEGER DEFAULT 30, -- Days until confidence halves without use
|
|
|
|
-- Vector embedding for semantic pattern matching
|
|
embedding TEXT,
|
|
embedding_dimensions INTEGER,
|
|
|
|
-- Versioning
|
|
version INTEGER DEFAULT 1,
|
|
parent_id TEXT REFERENCES patterns(id),
|
|
|
|
-- Metadata
|
|
tags TEXT, -- JSON array
|
|
metadata TEXT, -- JSON object
|
|
source TEXT, -- Where the pattern was learned from
|
|
|
|
-- Timestamps
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
last_matched_at INTEGER,
|
|
last_success_at INTEGER,
|
|
last_failure_at INTEGER,
|
|
|
|
-- Status
|
|
status TEXT DEFAULT 'active' CHECK(status IN ('active', 'archived', 'deprecated', 'experimental'))
|
|
);
|
|
|
|
-- Indexes for patterns
|
|
CREATE INDEX IF NOT EXISTS idx_patterns_type ON patterns(pattern_type);
|
|
CREATE INDEX IF NOT EXISTS idx_patterns_confidence ON patterns(confidence DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_patterns_status ON patterns(status);
|
|
CREATE INDEX IF NOT EXISTS idx_patterns_last_matched ON patterns(last_matched_at);
|
|
|
|
-- Pattern evolution history (for versioning)
|
|
CREATE TABLE IF NOT EXISTS pattern_history (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
pattern_id TEXT NOT NULL REFERENCES patterns(id),
|
|
version INTEGER NOT NULL,
|
|
|
|
-- Snapshot of pattern state
|
|
confidence REAL,
|
|
success_count INTEGER,
|
|
failure_count INTEGER,
|
|
condition TEXT,
|
|
action TEXT,
|
|
|
|
-- What changed
|
|
change_type TEXT CHECK(change_type IN ('created', 'updated', 'success', 'failure', 'decay', 'merged', 'split')),
|
|
change_reason TEXT,
|
|
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_pattern_history_pattern ON pattern_history(pattern_id);
|
|
|
|
-- ============================================
|
|
-- LEARNING & TRAJECTORY TABLES
|
|
-- ============================================
|
|
|
|
-- Learning trajectories (SONA integration)
|
|
CREATE TABLE IF NOT EXISTS trajectories (
|
|
id TEXT PRIMARY KEY,
|
|
session_id TEXT,
|
|
|
|
-- Trajectory state
|
|
status TEXT DEFAULT 'active' CHECK(status IN ('active', 'completed', 'failed', 'abandoned')),
|
|
verdict TEXT CHECK(verdict IN ('success', 'failure', 'partial', NULL)),
|
|
|
|
-- Context
|
|
task TEXT,
|
|
context TEXT, -- JSON object
|
|
|
|
-- Metrics
|
|
total_steps INTEGER DEFAULT 0,
|
|
total_reward REAL DEFAULT 0,
|
|
|
|
-- Timestamps
|
|
started_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
ended_at INTEGER,
|
|
|
|
-- Reference to extracted pattern (if any)
|
|
extracted_pattern_id TEXT REFERENCES patterns(id)
|
|
);
|
|
|
|
-- Trajectory steps
|
|
CREATE TABLE IF NOT EXISTS trajectory_steps (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
trajectory_id TEXT NOT NULL REFERENCES trajectories(id),
|
|
step_number INTEGER NOT NULL,
|
|
|
|
-- Step data
|
|
action TEXT NOT NULL,
|
|
observation TEXT,
|
|
reward REAL DEFAULT 0,
|
|
|
|
-- Metadata
|
|
metadata TEXT, -- JSON object
|
|
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_steps_trajectory ON trajectory_steps(trajectory_id);
|
|
|
|
-- ============================================
|
|
-- MIGRATION STATE TRACKING
|
|
-- ============================================
|
|
|
|
-- Migration state (for resume capability)
|
|
CREATE TABLE IF NOT EXISTS migration_state (
|
|
id TEXT PRIMARY KEY,
|
|
migration_type TEXT NOT NULL, -- 'v2-to-v3', 'pattern', 'memory', etc.
|
|
|
|
-- Progress tracking
|
|
status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'in_progress', 'completed', 'failed', 'rolled_back')),
|
|
total_items INTEGER DEFAULT 0,
|
|
processed_items INTEGER DEFAULT 0,
|
|
failed_items INTEGER DEFAULT 0,
|
|
skipped_items INTEGER DEFAULT 0,
|
|
|
|
-- Current position (for resume)
|
|
current_batch INTEGER DEFAULT 0,
|
|
last_processed_id TEXT,
|
|
|
|
-- Source/destination info
|
|
source_path TEXT,
|
|
source_type TEXT,
|
|
destination_path TEXT,
|
|
|
|
-- Backup info
|
|
backup_path TEXT,
|
|
backup_created_at INTEGER,
|
|
|
|
-- Error tracking
|
|
last_error TEXT,
|
|
errors TEXT, -- JSON array of errors
|
|
|
|
-- Timestamps
|
|
started_at INTEGER,
|
|
completed_at INTEGER,
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
);
|
|
|
|
-- ============================================
|
|
-- SESSION MANAGEMENT
|
|
-- ============================================
|
|
|
|
-- Sessions for context persistence
|
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
id TEXT PRIMARY KEY,
|
|
|
|
-- Session state
|
|
state TEXT NOT NULL, -- JSON object with full session state
|
|
status TEXT DEFAULT 'active' CHECK(status IN ('active', 'paused', 'completed', 'expired')),
|
|
|
|
-- Context
|
|
project_path TEXT,
|
|
branch TEXT,
|
|
|
|
-- Metrics
|
|
tasks_completed INTEGER DEFAULT 0,
|
|
patterns_learned INTEGER DEFAULT 0,
|
|
|
|
-- Timestamps
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
expires_at INTEGER
|
|
);
|
|
|
|
-- ============================================
|
|
-- VECTOR INDEX METADATA (for HNSW)
|
|
-- ============================================
|
|
|
|
-- Track HNSW index state
|
|
CREATE TABLE IF NOT EXISTS vector_indexes (
|
|
id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE,
|
|
|
|
-- Index configuration
|
|
dimensions INTEGER NOT NULL,
|
|
metric TEXT DEFAULT 'cosine' CHECK(metric IN ('cosine', 'euclidean', 'dot')),
|
|
|
|
-- HNSW parameters
|
|
hnsw_m INTEGER DEFAULT 16,
|
|
hnsw_ef_construction INTEGER DEFAULT 200,
|
|
hnsw_ef_search INTEGER DEFAULT 100,
|
|
|
|
-- Quantization
|
|
quantization_type TEXT CHECK(quantization_type IN ('none', 'scalar', 'product')),
|
|
quantization_bits INTEGER DEFAULT 8,
|
|
|
|
-- Statistics
|
|
total_vectors INTEGER DEFAULT 0,
|
|
last_rebuild_at INTEGER,
|
|
|
|
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
|
|
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000)
|
|
);
|
|
|
|
-- ============================================
|
|
-- SYSTEM METADATA
|
|
-- ============================================
|
|
|
|
CREATE TABLE IF NOT EXISTS metadata (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT NOT NULL,
|
|
updated_at INTEGER DEFAULT (strftime('%s', 'now') * 1000)
|
|
);
|
|
|
|
|
|
INSERT OR REPLACE INTO metadata (key, value) VALUES
|
|
('schema_version', '3.0.0'),
|
|
('backend', 'hybrid'),
|
|
('created_at', '2026-02-28T16:04:25.842Z'),
|
|
('sql_js', 'true'),
|
|
('vector_embeddings', 'enabled'),
|
|
('pattern_learning', 'enabled'),
|
|
('temporal_decay', 'enabled'),
|
|
('hnsw_indexing', 'enabled');
|
|
|
|
-- Create default vector index configuration
|
|
INSERT OR IGNORE INTO vector_indexes (id, name, dimensions) VALUES
|
|
('default', 'default', 768),
|
|
('patterns', 'patterns', 768);
|