Spaces:
Sleeping
Sleeping
| -- ============================================================ | |
| -- Thought Engine Node — D1 Schema | |
| -- Contract: C-THOUGHT-NODE-001 (Phase 1 Sovereign Substrate) | |
| -- Vault: thought-vault (Cloudflare D1) | |
| -- ============================================================ | |
| -- Sessions: The top-level reasoning container | |
| CREATE TABLE IF NOT EXISTS sessions ( | |
| session_id TEXT PRIMARY KEY, | |
| title TEXT, | |
| created_by TEXT NOT NULL DEFAULT 'system', | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| updated_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| status TEXT NOT NULL DEFAULT 'active' | |
| CHECK (status IN ('active','archived','merged')), | |
| root_thought_id TEXT, | |
| active_thought_id TEXT, | |
| metadata TEXT DEFAULT '{}' | |
| ); | |
| -- Thought Units: Individual nodes in the reasoning graph | |
| CREATE TABLE IF NOT EXISTS thought_units ( | |
| thought_id TEXT PRIMARY KEY, | |
| session_id TEXT NOT NULL, | |
| content TEXT NOT NULL, | |
| thought_class TEXT NOT NULL DEFAULT 'observation' | |
| CHECK (thought_class IN ( | |
| 'hypothesis','observation','validation', | |
| 'counter_argument','synthesis','decision', | |
| 'question','proposal' | |
| )), | |
| origin_agent TEXT NOT NULL DEFAULT 'system', | |
| status TEXT NOT NULL DEFAULT 'open' | |
| CHECK (status IN ( | |
| 'open','proposed','under_review', | |
| 'accepted','rejected','merged','superseded' | |
| )), | |
| confidence REAL DEFAULT NULL, | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| metadata TEXT DEFAULT '{}', | |
| FOREIGN KEY (session_id) REFERENCES sessions(session_id) | |
| ); | |
| -- Thought Edges: Relationships between thought units (the graph) | |
| CREATE TABLE IF NOT EXISTS thought_edges ( | |
| edge_id TEXT PRIMARY KEY, | |
| session_id TEXT NOT NULL, | |
| source_id TEXT NOT NULL, | |
| target_id TEXT NOT NULL, | |
| relation TEXT NOT NULL DEFAULT 'derives_from' | |
| CHECK (relation IN ( | |
| 'derives_from','supports','challenges', | |
| 'refines','forks_from','merges_into', | |
| 'bubbles_from','bubbles_into' | |
| )), | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| FOREIGN KEY (session_id) REFERENCES sessions(session_id), | |
| FOREIGN KEY (source_id) REFERENCES thought_units(thought_id), | |
| FOREIGN KEY (target_id) REFERENCES thought_units(thought_id) | |
| ); | |
| -- Thought Reviews: Git-for-Thought PR lifecycle | |
| CREATE TABLE IF NOT EXISTS thought_reviews ( | |
| review_id TEXT PRIMARY KEY, | |
| session_id TEXT NOT NULL, | |
| thought_id TEXT NOT NULL, | |
| action TEXT NOT NULL | |
| CHECK (action IN ( | |
| 'propose','accept','reject','supersede' | |
| )), | |
| actor TEXT NOT NULL DEFAULT 'system', | |
| reason TEXT DEFAULT NULL, | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| FOREIGN KEY (session_id) REFERENCES sessions(session_id), | |
| FOREIGN KEY (thought_id) REFERENCES thought_units(thought_id) | |
| ); | |
| -- Witness Events: Provenance / audit trail | |
| CREATE TABLE IF NOT EXISTS witness_events ( | |
| event_id TEXT PRIMARY KEY, | |
| session_id TEXT NOT NULL, | |
| thought_id TEXT, | |
| event_type TEXT NOT NULL | |
| CHECK (event_type IN ( | |
| 'viewed','annotated','reviewed', | |
| 'merged','promoted','forked','created' | |
| )), | |
| actor TEXT NOT NULL, | |
| detail TEXT DEFAULT NULL, | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| FOREIGN KEY (session_id) REFERENCES sessions(session_id) | |
| ); | |
| -- Version History: Snapshot archive for thought edits (CAP-I.4) | |
| CREATE TABLE IF NOT EXISTS version_history ( | |
| version_id TEXT PRIMARY KEY, | |
| thought_id TEXT NOT NULL, | |
| version_num INTEGER NOT NULL, | |
| content TEXT NOT NULL, | |
| status TEXT NOT NULL, | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| FOREIGN KEY (thought_id) REFERENCES thought_units(thought_id) | |
| ); | |
| -- Pattern Registry: Promoted reusable reasoning structures (Phase 2 prep) | |
| CREATE TABLE IF NOT EXISTS pattern_registry ( | |
| pattern_id TEXT PRIMARY KEY, | |
| name TEXT NOT NULL, | |
| description TEXT, | |
| source_session TEXT, | |
| structure TEXT NOT NULL DEFAULT '{}', | |
| times_reused INTEGER NOT NULL DEFAULT 0, | |
| created_at TEXT NOT NULL DEFAULT (datetime('now')), | |
| FOREIGN KEY (source_session) REFERENCES sessions(session_id) | |
| ); | |