SilverSight/scripts/auto/ene_schema.sql
allaun 85141a4b94 feat(nuvmap,braid): NUVMAP port + Rossby/Kelvin braid correspondence
- Port NUVMAP projection engine from Research Stack to SilverSight
  with Q16_16 fixed-point (zero Float) and CBOR serialization
- Add Rotational Wave — Braid Correspondence formalization at boundary
  (ChiralLabel, RossbyDrift, rossby_convergence_bound stubbed,
   kelvin_wave_eigensolid proven)
- Add auto-pipeline CI workflow, webhook receiver, Forgejo MCP server
- Add SOPS/Age encryption config
- Add stack compose for portable deployment
- Add rotational wave design doc
2026-06-30 16:38:11 -05:00

114 lines
3.9 KiB
SQL

-- ENE Schema — Research Stack Entropy Database
-- Auto-created by auto_pipeline.py --db-only
CREATE SCHEMA IF NOT EXISTS ene;
CREATE TABLE IF NOT EXISTS ene.packages (
pkg TEXT PRIMARY KEY, package_type TEXT, title TEXT, content TEXT,
tags TEXT[], source TEXT, domain TEXT, provenance TEXT
);
CREATE TABLE IF NOT EXISTS ene.receipts (
id UUID PRIMARY KEY, package_id TEXT REFERENCES ene.packages(pkg),
receipt_type TEXT, status TEXT, toolchain TEXT, theorem_id TEXT
);
CREATE TABLE IF NOT EXISTS ene.sidon_labels (
id UUID PRIMARY KEY, label_set_name TEXT, strand_index INT,
label_value INT, sidon_slack INT
);
CREATE TABLE IF NOT EXISTS ene.braid_strands (
id UUID PRIMARY KEY, snapshot_id TEXT, strand_index INT,
phase_x INT, phase_y INT
);
CREATE TABLE IF NOT EXISTS ene.eigensolid_snapshots (
id UUID PRIMARY KEY, root_hash TEXT, crossing_matrix INT[],
sidon_slack INT, step_count INT, residual_series INT[],
write_timing INT, scar_absence BOOLEAN
);
CREATE TABLE IF NOT EXISTS ene.gossip_surface_nodes (
id UUID PRIMARY KEY, node_id TEXT, label TEXT,
surface_type TEXT, coordinate INT[]
);
CREATE TABLE IF NOT EXISTS ene.gossip_surface_edges (
id UUID PRIMARY KEY, source_id TEXT REFERENCES ene.gossip_surface_nodes(node_id),
target_id TEXT REFERENCES ene.gossip_surface_nodes(node_id),
edge_type TEXT, weight INT
);
CREATE TABLE IF NOT EXISTS ene.relations (
id UUID PRIMARY KEY, source_id TEXT, target_id TEXT,
relation_type TEXT, weight FLOAT, provenance TEXT
);
CREATE TABLE IF NOT EXISTS ene.sessions (
id UUID PRIMARY KEY, title TEXT, actor TEXT, toolchain TEXT, summary TEXT
);
CREATE TABLE IF NOT EXISTS ene.ingest_events (
id UUID PRIMARY KEY, session_id UUID, event_type TEXT,
payload TEXT, created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS ene.prover_state (
id UUID PRIMARY KEY, theorem_id TEXT, status TEXT,
proof_count INT, last_proved_at TIMESTAMPTZ
);
CREATE TABLE IF NOT EXISTS ene.prover_instances (
id UUID PRIMARY KEY, instance_type TEXT, config TEXT,
active BOOLEAN, last_seen TIMESTAMPTZ
);
CREATE TABLE IF NOT EXISTS ene.rrc_classifications (
id UUID PRIMARY KEY, equation_id TEXT, shape TEXT,
pist_label TEXT, spectral_radius FLOAT, weak_axes INT,
score FLOAT, classified_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS ene.rrc_predictions (
id UUID PRIMARY KEY, equation_id TEXT, proxy_pred TEXT,
exact_pred TEXT, matrix_hash TEXT, confidence FLOAT,
predicted_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS ene.rrc_learn_history (
id UUID PRIMARY KEY, equation_id TEXT, previous_shape TEXT,
new_shape TEXT, change_reason TEXT,
learned_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS ene.wiki_pages (
slug TEXT PRIMARY KEY, title TEXT, latest_revision INT
);
CREATE TABLE IF NOT EXISTS ene.wiki_revisions (
slug TEXT REFERENCES ene.wiki_pages(slug), revision INT,
title TEXT, text TEXT, author TEXT, content_hash TEXT,
PRIMARY KEY (slug, revision)
);
CREATE TABLE IF NOT EXISTS ene.wiki_categories (slug TEXT, category TEXT, PRIMARY KEY (slug, category));
CREATE TABLE IF NOT EXISTS ene.wiki_links (slug TEXT, target_slug TEXT, target_title TEXT, PRIMARY KEY (slug, target_slug));
-- RRC composite shape tracking
CREATE TABLE IF NOT EXISTS ene.shape_predictions (
id UUID PRIMARY KEY, equation_id TEXT, shape TEXT,
model_version TEXT, confidence FLOAT,
evidence TEXT[], predicted_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS ene.shape_ground_truth (
id UUID PRIMARY KEY, equation_id TEXT, shape TEXT,
verified_by TEXT, verified_at TIMESTAMPTZ DEFAULT NOW()
);
-- Index for fast lookups
CREATE INDEX IF NOT EXISTS idx_package_type ON ene.packages(package_type);
CREATE INDEX IF NOT EXISTS idx_receipt_theorem ON ene.receipts(theorem_id);
CREATE INDEX IF NOT EXISTS idx_rrc_equation ON ene.rrc_classifications(equation_id);
CREATE INDEX IF NOT EXISTS idx_shape_equation ON ene.shape_predictions(equation_id);