Research-Stack/4-Infrastructure/shim/ene_substrate_schema.sql
allaun 475f6319ea chore(repo): push local 768-commit branch state onto clean remote baseline
This squashes all local history (768 commits) onto the scrubbed PR #90
baseline. Individual commits were lost during filter-repo corruption;
the working tree content is preserved intact.

Build: N/A (working tree state only)
2026-06-15 22:46:50 -05:00

391 lines
16 KiB
SQL

-- ============================================================================
-- ENE Memory Substrate Schema — the project's receipted substrate-memory
--
-- Elemental ENV schema:
-- GROUND — stable, receipt-bearing, reusable
-- WATER — fluid, exploratory, not yet fixed
-- FLAME — high-energy transformation, Warden-watched
-- SEISMIC — deep structural stress, FAMM audit required
-- SAND — granular fragments, compressible
-- CRYSTAL — settled, hardened, compression-ready invariant
-- AIR — abstract hypothesis, not grounded
-- VOID — missing, rejected, negative evidence
-- METAL — hardened invariant, tool, gate, kernel
--
-- Artifact lifecycle (MEMORY.md):
-- SEED → FORMING → STABLE → CRYSTALLIZED → COMPRESSED
-- ============================================================================
-- Design: every ingested object becomes an addressed package with semantic
-- coordinates, graph relations, source provenance, hashes, scars, receipts,
-- and route history.
--
-- Split:
-- packages = memory content
-- relations = graph edges
-- receipts = verification layer
-- scars = FAMM failure memory
-- vectors = embeddings
-- ingest_events = provenance
-- sessions = workflow lineage
-- routes = traversal history
-- nspace_kv = key-value retention scoring
-- gossip_surface = folded KV-cache compression
CREATE SCHEMA IF NOT EXISTS ene;
-- 1. packages — central memory packet
CREATE TABLE IF NOT EXISTS ene.packages (
pkg TEXT PRIMARY KEY,
package_type TEXT,
title TEXT,
content TEXT,
content_hash TEXT,
element TEXT DEFAULT 'GROUND',
concept_vector JSONB DEFAULT '[]',
concept_anchor JSONB DEFAULT '{}',
idea_weights JSONB DEFAULT '{}',
analog_map JSONB DEFAULT '{}',
extension_points JSONB DEFAULT '{}',
tags JSONB DEFAULT '[]',
source TEXT,
created_at TEXT,
updated_at TEXT,
session_id TEXT,
provenance JSONB DEFAULT '{}',
merkle_root TEXT,
attachment_meta JSONB DEFAULT '{}',
ingest_profile JSONB DEFAULT '{}',
verification_status TEXT DEFAULT 'raw',
promotion_state TEXT DEFAULT 'held',
scar_class TEXT,
domain TEXT,
archetype TEXT,
notes TEXT,
ingested_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_pkg_type_idx ON ene.packages (package_type);
CREATE INDEX IF NOT EXISTS ene_pkg_source_idx ON ene.packages (source);
CREATE INDEX IF NOT EXISTS ene_pkg_promotion_idx ON ene.packages (promotion_state);
CREATE UNIQUE INDEX IF NOT EXISTS ene_pkg_hash_idx ON ene.packages (content_hash) WHERE (content_hash IS NOT NULL);
-- 2. relations — graph layer
CREATE TABLE IF NOT EXISTS ene.relations (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
source_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
target_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
relation_type TEXT NOT NULL,
weight REAL DEFAULT 1.0,
evidence_hash TEXT,
provenance JSONB DEFAULT '{}',
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_rel_source_idx ON ene.relations (source_id);
CREATE INDEX IF NOT EXISTS ene_rel_target_idx ON ene.relations (target_id);
CREATE INDEX IF NOT EXISTS ene_rel_type_idx ON ene.relations (relation_type);
CREATE UNIQUE INDEX IF NOT EXISTS ene_rel_unique_idx ON ene.relations (source_id, target_id, relation_type);
-- 3. receipts — verification layer
CREATE TABLE IF NOT EXISTS ene.receipts (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
receipt_type TEXT NOT NULL,
receipt_hash TEXT,
input_hash TEXT,
output_hash TEXT,
toolchain TEXT,
verifier TEXT,
status TEXT NOT NULL DEFAULT 'pending',
residual JSONB DEFAULT '{}',
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_rec_pkg_idx ON ene.receipts (package_id);
CREATE INDEX IF NOT EXISTS ene_rec_type_idx ON ene.receipts (receipt_type);
-- 4. scars — FAMM failure memory
CREATE TABLE IF NOT EXISTS ene.scars (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
scar_type TEXT NOT NULL,
scar_pressure REAL DEFAULT 0,
failure_mode TEXT,
residual JSONB DEFAULT '{}',
coarsening_agent JSONB DEFAULT '{}',
opened_at TIMESTAMPTZ NOT NULL DEFAULT now(),
closed_at TIMESTAMPTZ,
status TEXT NOT NULL DEFAULT 'open'
);
CREATE INDEX IF NOT EXISTS ene_scar_pkg_idx ON ene.scars (package_id);
CREATE INDEX IF NOT EXISTS ene_scar_pressure_idx ON ene.scars (scar_pressure DESC);
-- 5. vectors — embedding storage
CREATE TABLE IF NOT EXISTS ene.vectors (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
vector_type TEXT NOT NULL,
embedding FLOAT8[],
model TEXT,
dimensions INTEGER,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_vec_pkg_idx ON ene.vectors (package_id);
CREATE INDEX IF NOT EXISTS ene_vec_type_idx ON ene.vectors (vector_type);
-- 6. ingest_events — provenance
CREATE TABLE IF NOT EXISTS ene.ingest_events (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
source_uri TEXT,
source_type TEXT,
source_hash TEXT,
ingest_profile TEXT,
parser_version TEXT,
extracted_entities JSONB DEFAULT '{}',
extracted_equations JSONB DEFAULT '[]',
extracted_links JSONB DEFAULT '[]',
extracted_bibtex JSONB DEFAULT '[]',
warnings JSONB DEFAULT '[]',
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_ie_pkg_idx ON ene.ingest_events (package_id);
-- 7. sessions — workflow lineage
CREATE TABLE IF NOT EXISTS ene.sessions (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
project_id TEXT,
title TEXT,
started_at TIMESTAMPTZ,
ended_at TIMESTAMPTZ,
actor TEXT,
toolchain TEXT,
summary TEXT,
memory_hash TEXT,
promotion_state TEXT DEFAULT 'held'
);
CREATE INDEX IF NOT EXISTS ene_sess_project_idx ON ene.sessions (project_id);
-- 8. routes — traversal through ENE
CREATE TABLE IF NOT EXISTS ene.routes (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
start_package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
end_package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
route_type TEXT NOT NULL,
cost REAL DEFAULT 0,
residual REAL DEFAULT 0,
scar_pressure REAL DEFAULT 0,
receipt_hash TEXT,
path JSONB DEFAULT '[]',
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_route_start_idx ON ene.routes (start_package_id);
CREATE INDEX IF NOT EXISTS ene_route_type_idx ON ene.routes (route_type);
-- 9. nspace_kv — key-value retention scoring
CREATE TABLE IF NOT EXISTS ene.nspace_kv (
key_id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
rounded_coordinate JSONB DEFAULT '{}',
coordinate_hash TEXT,
value_package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
reduction_reward REAL DEFAULT 0,
sparsity_score REAL DEFAULT 0,
scar_pressure REAL DEFAULT 0,
retention_score REAL DEFAULT 0,
last_used_at TIMESTAMPTZ,
receipt_hash TEXT
);
CREATE INDEX IF NOT EXISTS ene_nskv_retention_idx ON ene.nspace_kv (retention_score DESC);
CREATE INDEX IF NOT EXISTS ene_nskv_pkg_idx ON ene.nspace_kv (value_package_id);
-- 10. gossip_surface — folded KV-cache compression
CREATE TABLE IF NOT EXISTS ene.gossip_surface_nodes (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
fold_coordinate JSONB DEFAULT '{}',
neighborhood_hash TEXT,
local_summary TEXT,
witness_mass REAL DEFAULT 0,
gossip_round INTEGER DEFAULT 0,
receipt_hash TEXT
);
CREATE INDEX IF NOT EXISTS ene_gsn_pkg_idx ON ene.gossip_surface_nodes (package_id);
CREATE INDEX IF NOT EXISTS ene_gsn_fold_idx ON ene.gossip_surface_nodes (gossip_round);
CREATE TABLE IF NOT EXISTS ene.gossip_surface_edges (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
source_node_id TEXT NOT NULL REFERENCES ene.gossip_surface_nodes(id) ON DELETE CASCADE,
target_node_id TEXT NOT NULL REFERENCES ene.gossip_surface_nodes(id) ON DELETE CASCADE,
edge_type TEXT,
weight REAL DEFAULT 1.0,
last_gossip_at TIMESTAMPTZ,
receipt_hash TEXT
);
CREATE INDEX IF NOT EXISTS ene_gse_source_idx ON ene.gossip_surface_edges (source_node_id);
-- 11. dsp_nodes — PipeWire/FLAC DSP compute node capabilities
CREATE TABLE IF NOT EXISTS ene.dsp_nodes (
node_id TEXT PRIMARY KEY,
dsp_available BOOLEAN NOT NULL DEFAULT true,
pipewire_available BOOLEAN NOT NULL DEFAULT false,
virtual_soundcard_supported BOOLEAN NOT NULL DEFAULT false,
physical_soundcard BOOLEAN NOT NULL DEFAULT false,
max_sample_rate INTEGER DEFAULT 48000,
spectral_bands INTEGER DEFAULT 1024,
latency_target_us INTEGER DEFAULT 5120,
fft_size INTEGER DEFAULT 2048,
overlap_factor REAL DEFAULT 0.5,
last_seen_at TIMESTAMPTZ NOT NULL DEFAULT now(),
receipt_hash TEXT
);
CREATE INDEX IF NOT EXISTS ene_dsp_available_idx ON ene.dsp_nodes (dsp_available) WHERE dsp_available = true;
-- 12. legacy compatibility tables
CREATE TABLE IF NOT EXISTS ene.wiki_pages (
slug TEXT PRIMARY KEY,
title TEXT,
latest_revision INTEGER,
updated_at TIMESTAMPTZ,
receipt TEXT
);
CREATE TABLE IF NOT EXISTS ene.wiki_revisions (
slug TEXT,
revision INTEGER,
title TEXT,
text TEXT,
author TEXT,
summary TEXT,
created_at TIMESTAMPTZ,
receipt TEXT,
archive_id TEXT,
content_hash TEXT,
archive_record JSONB,
jsonl_event JSONB,
PRIMARY KEY (slug, revision)
);
CREATE TABLE IF NOT EXISTS ene.wiki_links (
slug TEXT,
target_slug TEXT,
target_title TEXT,
PRIMARY KEY (slug, target_slug)
);
CREATE TABLE IF NOT EXISTS ene.wiki_categories (
slug TEXT,
category TEXT,
PRIMARY KEY (slug, category)
);
CREATE TABLE IF NOT EXISTS ene.fractal_manifolds (
root_hash TEXT PRIMARY KEY,
name TEXT,
byte_len INTEGER,
leaves_count INTEGER,
depth INTEGER,
chunk_size INTEGER,
branching_factor INTEGER,
created_at TIMESTAMPTZ,
receipt TEXT,
archive_record JSONB DEFAULT '{}',
jsonl_event JSONB DEFAULT '{}'
);
CREATE TABLE IF NOT EXISTS ene.fractal_nodes (
root_hash TEXT,
node_hash TEXT,
kind TEXT,
level INTEGER,
ordinal INTEGER,
fold_address INTEGER,
start_leaf INTEGER,
end_leaf INTEGER,
size_bytes INTEGER,
children TEXT,
payload_b64 TEXT,
PRIMARY KEY (root_hash, node_hash)
);
CREATE TABLE IF NOT EXISTS ene.fractal_graph_entities (
root_hash TEXT,
graph_node_id TEXT,
leaf_index INTEGER,
name TEXT,
family TEXT,
domain TEXT,
neighbors TEXT,
PRIMARY KEY (root_hash, graph_node_id)
);
-- ============================================================================
-- Braid Eigensolid Compressor Substrate Tables
-- ============================================================================
-- 13. prover_state — Registry of Lean theorems, status, and DAG relationships
CREATE TABLE IF NOT EXISTS ene.prover_state (
theorem_id TEXT PRIMARY KEY,
name TEXT UNIQUE NOT NULL,
statement TEXT NOT NULL,
formalization_status TEXT NOT NULL DEFAULT 'raw' CHECK (formalization_status IN ('raw', 'forming', 'proven', 'verified')),
signature_hash TEXT,
dependencies JSONB DEFAULT '[]',
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- 14. prover_instances — Verifiable concrete theorem evaluations
CREATE TABLE IF NOT EXISTS ene.prover_instances (
instance_id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
theorem_id TEXT NOT NULL REFERENCES ene.prover_state(theorem_id) ON DELETE CASCADE,
input_fixture JSONB NOT NULL DEFAULT '{}',
evaluation_witness JSONB NOT NULL DEFAULT '{}',
verifier_identity TEXT,
verified_at TIMESTAMPTZ NOT NULL DEFAULT now(),
receipt_hash TEXT
);
CREATE INDEX IF NOT EXISTS ene_prover_inst_thm_idx ON ene.prover_instances (theorem_id);
-- 15. sidon_labels — Power-of-2 strand address maps
CREATE TABLE IF NOT EXISTS ene.sidon_labels (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
label_set_name TEXT NOT NULL,
strand_index INTEGER NOT NULL CHECK (strand_index >= 0 AND strand_index < 8),
label_value INTEGER NOT NULL CHECK (label_value > 0),
sidon_slack INTEGER NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (label_set_name, strand_index),
UNIQUE (label_set_name, label_value)
);
-- 16. crossing_weights — Braid crossing weights (fixed-point integer Q16_16)
CREATE TABLE IF NOT EXISTS ene.crossing_weights (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
recipe_id TEXT NOT NULL REFERENCES ene.receipts(id) ON DELETE CASCADE,
row_index INTEGER NOT NULL CHECK (row_index >= 0 AND row_index < 8),
col_index INTEGER NOT NULL CHECK (col_index >= 0 AND col_index < 8),
weight_raw INTEGER NOT NULL CHECK (weight_raw >= -2147483648 AND weight_raw <= 2147483647), -- Q16_16
contractive_factor INTEGER NOT NULL CHECK (contractive_factor >= 0 AND contractive_factor <= 65536), -- Q16_16 ratio [0, 1]
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (recipe_id, row_index, col_index)
);
CREATE INDEX IF NOT EXISTS ene_cross_wt_rec_idx ON ene.crossing_weights (recipe_id);
-- 17. eigensolid_snapshots — Stabilized convergence phase records
CREATE TABLE IF NOT EXISTS ene.eigensolid_snapshots (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
package_id TEXT NOT NULL REFERENCES ene.packages(pkg) ON DELETE CASCADE,
receipt_id TEXT REFERENCES ene.receipts(id) ON DELETE SET NULL,
step_count INTEGER NOT NULL CHECK (step_count >= 0),
convergence_metric INTEGER NOT NULL CHECK (convergence_metric >= 0 AND convergence_metric <= 65536), -- Q16_16 [0, 1]
entropy INTEGER NOT NULL CHECK (entropy >= 0), -- Q16_16
is_stable BOOLEAN NOT NULL DEFAULT false,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS ene_eigen_snap_pkg_idx ON ene.eigensolid_snapshots (package_id);
-- 18. braid_strands — Strand coordinates (x/y phase vectors in Q16_16 format)
CREATE TABLE IF NOT EXISTS ene.braid_strands (
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
snapshot_id TEXT NOT NULL REFERENCES ene.eigensolid_snapshots(id) ON DELETE CASCADE,
strand_index INTEGER NOT NULL CHECK (strand_index >= 0 AND strand_index < 8),
phase_x INTEGER NOT NULL CHECK (phase_x >= -2147483648 AND phase_x <= 2147483647), -- Q16_16
phase_y INTEGER NOT NULL CHECK (phase_y >= -2147483648 AND phase_y <= 2147483647), -- Q16_16
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (snapshot_id, strand_index)
);
-- Alteration of ene.receipts to add theorem_id and dispatch_path
ALTER TABLE ene.receipts ADD COLUMN IF NOT EXISTS theorem_id TEXT REFERENCES ene.prover_state(theorem_id) ON DELETE SET NULL;
ALTER TABLE ene.receipts ADD COLUMN IF NOT EXISTS dispatch_path TEXT;