Download mycelium_schema_empty.sql from alm108/mycelium: direct link, hf CLI and curl.
- Browser
- Download file 65.8 kB
-
https://huggingface.co/spaces/alm108/mycelium/resolve/main/mycelium_schema_empty.sql
- Command line
-
hf download hf://spaces/alm108/mycelium/mycelium_schema_empty.sql
-
curl -L -o mycelium_schema_empty.sql https://huggingface.co/spaces/alm108/mycelium/resolve/main/mycelium_schema_empty.sql
65.8 kB
| -- Portable Mycelium structural bootstrap. | |
| -- Generated mechanically from the verified source dump; contains no graph records. | |
| -- Structural schema is not a declaration of canonical semantic ontology. | |
| -- | |
| -- PostgreSQL database dump | |
| -- | |
| -- Dumped from database version 17.10 (Debian 17.10-1.pgdg13+1) | |
| -- Dumped by pg_dump version 17.10 (Debian 17.10-1.pgdg13+1) | |
| SET statement_timeout = 0; | |
| SET lock_timeout = 0; | |
| SET idle_in_transaction_session_timeout = 0; | |
| SET transaction_timeout = 0; | |
| SET client_encoding = 'UTF8'; | |
| SET standard_conforming_strings = on; | |
| SELECT pg_catalog.set_config('search_path', '', false); | |
| SET check_function_bodies = false; | |
| SET xmloption = content; | |
| SET client_min_messages = warning; | |
| SET row_security = off; | |
| -- | |
| -- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: - | |
| -- | |
| CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public; | |
| -- | |
| -- Name: EXTENSION pg_trgm; Type: COMMENT; Schema: -; Owner: | |
| -- | |
| COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams'; | |
| -- | |
| -- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: - | |
| -- | |
| CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; | |
| -- | |
| -- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: | |
| -- | |
| COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; | |
| -- | |
| -- Name: ref_type; Type: TYPE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TYPE public.ref_type AS ENUM ( | |
| 'node', | |
| 'edge', | |
| 'evidence' | |
| ); | |
| -- | |
| -- Name: authorization_admissions_immutable(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.authorization_admissions_immutable() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| IF TG_OP = 'DELETE' THEN | |
| RAISE EXCEPTION 'authorization_admissions is append-only'; | |
| END IF; | |
| IF OLD.consumed_at IS NOT NULL THEN | |
| RAISE EXCEPTION 'authorization % is already spent', OLD.authorization_id; | |
| END IF; | |
| IF NEW.consumed_at IS NULL THEN | |
| RAISE EXCEPTION 'the only permitted update is a single-use consume'; | |
| END IF; | |
| IF NEW.authorization_id IS DISTINCT FROM OLD.authorization_id | |
| OR NEW.envelope_sha256 IS DISTINCT FROM OLD.envelope_sha256 | |
| OR NEW.nonce IS DISTINCT FROM OLD.nonce | |
| OR NEW.task_id IS DISTINCT FROM OLD.task_id | |
| OR NEW.spec_sha256 IS DISTINCT FROM OLD.spec_sha256 | |
| OR NEW.gate_decision_id IS DISTINCT FROM OLD.gate_decision_id | |
| OR NEW.gate_decision_sha256 IS DISTINCT FROM OLD.gate_decision_sha256 | |
| OR NEW.addressed_agent IS DISTINCT FROM OLD.addressed_agent | |
| OR NEW.lane IS DISTINCT FROM OLD.lane | |
| OR NEW.branch IS DISTINCT FROM OLD.branch | |
| OR NEW.base_sha IS DISTINCT FROM OLD.base_sha | |
| OR NEW.issued_at IS DISTINCT FROM OLD.issued_at | |
| OR NEW.expires_at IS DISTINCT FROM OLD.expires_at | |
| OR NEW.envelope IS DISTINCT FROM OLD.envelope | |
| OR NEW.admitted_by IS DISTINCT FROM OLD.admitted_by | |
| OR NEW.admitted_at IS DISTINCT FROM OLD.admitted_at THEN | |
| RAISE EXCEPTION 'an admitted envelope cannot be rewritten'; | |
| END IF; | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: authorization_admissions_no_delete(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.authorization_admissions_no_delete() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'authorization_admissions is append-only'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: authorization_attempts_append_only(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.authorization_attempts_append_only() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'authorization_attempts is append-only'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: authorization_gate_decisions_append_only(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.authorization_gate_decisions_append_only() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'authorization_gate_decisions is append-only; a decision ' | |
| 'is superseded by a new row, never edited'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: fn_guard_state_vector(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.fn_guard_state_vector() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| -- Check if a justifying event exists within the last 5 seconds | |
| IF NOT EXISTS ( | |
| SELECT 1 FROM events | |
| WHERE node_id = NEW.id | |
| AND timestamp >= (CURRENT_TIMESTAMP - INTERVAL '5 seconds') | |
| ) THEN | |
| RAISE EXCEPTION 'Forbidden: state_vector update requires a preceding event log entry.'; | |
| END IF; | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: fn_log_new_edge(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.fn_log_new_edge() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| INSERT INTO events (edge_id, event_type, delta, origin_agent, scope) | |
| VALUES (NEW.id, 'PROPOSED', | |
| jsonb_build_object('source', NEW.source_id, 'target', NEW.target_id, 'relation', NEW.relation_type), | |
| 'MYCELIUM_GROWTH', NEW.scope); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: fn_log_node_change(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.fn_log_node_change() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| -- Only log if it's NOT a state_vector update (to avoid double logs) | |
| IF (OLD.state_vector = NEW.state_vector) THEN | |
| INSERT INTO events (node_id, event_type, delta, origin_agent, scope) | |
| VALUES (NEW.id, 'OVERRIDE', | |
| jsonb_build_object('old_status', OLD.status, 'new_status', NEW.status), | |
| 'RAILWAY_SYNC', NEW.scope); | |
| END IF; | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: forbid_update_delete(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.forbid_update_delete() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'Immutable table: updates/deletes forbidden on %', TG_TABLE_NAME; | |
| END; | |
| $$; | |
| -- | |
| -- Name: reconcile_node(text); Type: PROCEDURE; Schema: public; Owner: postgres | |
| -- | |
| CREATE PROCEDURE public.reconcile_node(IN target_id text) | |
| LANGUAGE plpgsql | |
| AS $$ | |
| DECLARE | |
| latest_vector JSONB; | |
| BEGIN | |
| -- 1. Grab vector from latest event | |
| SELECT (delta->>'new_vector')::jsonb INTO latest_vector | |
| FROM events | |
| WHERE node_id = target_id | |
| ORDER BY timestamp DESC LIMIT 1; | |
| -- 2. Apply to node (this will pass the guard because the event exists) | |
| IF latest_vector IS NOT NULL THEN | |
| UPDATE nodes SET state_vector = latest_vector WHERE id = target_id; | |
| ELSE | |
| RAISE NOTICE 'No valid vector found in event history for node %', target_id; | |
| END IF; | |
| END; | |
| $$; | |
| -- | |
| -- Name: reject_nursemaid_attempt_event_mutation(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.reject_nursemaid_attempt_event_mutation() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'nursemaid_attempt_events is append-only'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: reject_nursemaid_control_event_mutation(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.reject_nursemaid_control_event_mutation() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'nursemaid_control_events is append-only'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: reject_read_access_event_mutation(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.reject_read_access_event_mutation() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'read_access_events is append-only'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: reject_search_access_event_mutation(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.reject_search_access_event_mutation() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| RAISE EXCEPTION 'search_access_events is append-only'; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_breadcrumbs_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_breadcrumbs_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.id, '') || ' ' || | |
| COALESCE(NEW.trail_id, '') || ' ' || | |
| COALESCE(NEW.note, '') || ' ' || | |
| COALESCE(NEW.label, '') || ' ' || | |
| COALESCE(NEW.facet_ref, '') || ' ' || | |
| COALESCE(NEW.agent_id, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_edges_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_edges_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.source_id, '') || ' ' || | |
| COALESCE(NEW.target_id, '') || ' ' || | |
| COALESCE(NEW.source_facet, '') || ' ' || | |
| COALESCE(NEW.target_facet, '') || ' ' || | |
| COALESCE(NEW.relation_type, '') || ' ' || | |
| COALESCE(NEW.cause, '') || ' ' || | |
| COALESCE(NEW.label, '') || ' ' || | |
| COALESCE(NEW.facets::text, '') || ' ' || | |
| COALESCE(NEW.origin_agent, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_evidence_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_evidence_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.id, '') || ' ' || | |
| COALESCE(NEW.label, '') || ' ' || | |
| COALESCE(NEW.type, '') || ' ' || | |
| COALESCE(NEW.content, '') || ' ' || | |
| COALESCE(NEW.facets::text, '') || ' ' || | |
| COALESCE(NEW.origin_agent, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_nodes_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_nodes_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.id, '') || ' ' || | |
| COALESCE(NEW.label, '') || ' ' || | |
| COALESCE(NEW.type, '') || ' ' || | |
| COALESCE(NEW.content::text, '') || ' ' || | |
| COALESCE(NEW.facets::text, '') || ' ' || | |
| COALESCE(NEW.origin_agent, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_registry_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_registry_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.id, '') || ' ' || | |
| COALESCE(NEW.category, '') || ' ' || | |
| COALESCE(NEW.key, '') || ' ' || | |
| COALESCE(NEW.value::text, '') || ' ' || | |
| COALESCE(NEW.origin_agent, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_trail_steps_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_trail_steps_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.trail_id, '') || ' ' || | |
| COALESCE(NEW.ref_id, '') || ' ' || | |
| COALESCE(NEW.note, '') || ' ' || | |
| COALESCE(NEW.step_type, '') || ' ' || | |
| COALESCE(NEW.facets::text, '') || ' ' || | |
| COALESCE(NEW.origin_agent, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| -- | |
| -- Name: update_trails_search(); Type: FUNCTION; Schema: public; Owner: postgres | |
| -- | |
| CREATE FUNCTION public.update_trails_search() RETURNS trigger | |
| LANGUAGE plpgsql | |
| AS $$ | |
| BEGIN | |
| NEW.search_vector := to_tsvector('english', | |
| COALESCE(NEW.id, '') || ' ' || | |
| COALESCE(NEW.label, '') || ' ' || | |
| COALESCE(NEW.agent_id, '') || ' ' || | |
| COALESCE(NEW.facets::text, '') | |
| ); | |
| RETURN NEW; | |
| END; | |
| $$; | |
| SET default_tablespace = ''; | |
| SET default_table_access_method = heap; | |
| -- | |
| -- Name: agent_availability; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.agent_availability ( | |
| agent_id text NOT NULL, | |
| state text NOT NULL, | |
| lanes jsonb DEFAULT '[]'::jsonb NOT NULL, | |
| current_job_id text, | |
| heartbeat_at timestamp with time zone NOT NULL, | |
| updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| CONSTRAINT agent_availability_state_check CHECK ((state = ANY (ARRAY['online'::text, 'busy'::text, 'offline'::text]))) | |
| ); | |
| -- | |
| -- Name: authorization_admissions; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.authorization_admissions ( | |
| authorization_id text NOT NULL, | |
| envelope_sha256 text NOT NULL, | |
| nonce text NOT NULL, | |
| task_id text NOT NULL, | |
| spec_sha256 text NOT NULL, | |
| gate_decision_id text NOT NULL, | |
| gate_decision_sha256 text NOT NULL, | |
| addressed_agent text NOT NULL, | |
| lane text NOT NULL, | |
| branch text NOT NULL, | |
| base_sha text NOT NULL, | |
| issued_at double precision NOT NULL, | |
| expires_at double precision NOT NULL, | |
| envelope jsonb NOT NULL, | |
| admitted_by text NOT NULL, | |
| admitted_at double precision NOT NULL, | |
| consumed_at double precision, | |
| consumed_by text, | |
| consumed_expectation jsonb, | |
| CONSTRAINT authorization_consumption_is_whole CHECK ((((consumed_at IS NULL) AND (consumed_by IS NULL) AND (consumed_expectation IS NULL)) OR ((consumed_at IS NOT NULL) AND (consumed_by IS NOT NULL) AND (consumed_expectation IS NOT NULL)))) | |
| ); | |
| -- | |
| -- Name: authorization_attempts; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.authorization_attempts ( | |
| id bigint NOT NULL, | |
| attempt_kind text NOT NULL, | |
| authorization_id text, | |
| principal text NOT NULL, | |
| outcome text NOT NULL, | |
| refusal_code text, | |
| detail text, | |
| at double precision | |
| ); | |
| -- | |
| -- Name: authorization_attempts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres | |
| -- | |
| CREATE SEQUENCE public.authorization_attempts_id_seq | |
| START WITH 1 | |
| INCREMENT BY 1 | |
| NO MINVALUE | |
| NO MAXVALUE | |
| CACHE 1; | |
| -- | |
| -- Name: authorization_attempts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres | |
| -- | |
| ALTER SEQUENCE public.authorization_attempts_id_seq OWNED BY public.authorization_attempts.id; | |
| -- | |
| -- Name: authorization_gate_decisions; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.authorization_gate_decisions ( | |
| decision_id text NOT NULL, | |
| decision_sha256 text NOT NULL, | |
| decided_by text NOT NULL, | |
| status text NOT NULL, | |
| decided_at double precision NOT NULL, | |
| task_id text NOT NULL, | |
| spec_sha256 text NOT NULL, | |
| requested_action text NOT NULL, | |
| addressed_agent text NOT NULL, | |
| lane text NOT NULL, | |
| branch text NOT NULL, | |
| base_sha text NOT NULL, | |
| allowed_paths jsonb NOT NULL, | |
| risk_tier text NOT NULL, | |
| max_tokens integer NOT NULL, | |
| max_seconds integer NOT NULL, | |
| tests jsonb NOT NULL, | |
| stop_conditions jsonb NOT NULL, | |
| depends_on jsonb NOT NULL, | |
| expires_at double precision NOT NULL | |
| ); | |
| -- | |
| -- Name: auto_approve_rules; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.auto_approve_rules ( | |
| id integer NOT NULL, | |
| agent_id text NOT NULL, | |
| entity_type text NOT NULL, | |
| scope text DEFAULT 'default'::text, | |
| enabled boolean DEFAULT true, | |
| created_at timestamp with time zone DEFAULT now() | |
| ); | |
| -- | |
| -- Name: auto_approve_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres | |
| -- | |
| CREATE SEQUENCE public.auto_approve_rules_id_seq | |
| AS integer | |
| START WITH 1 | |
| INCREMENT BY 1 | |
| NO MINVALUE | |
| NO MAXVALUE | |
| CACHE 1; | |
| -- | |
| -- Name: auto_approve_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres | |
| -- | |
| ALTER SEQUENCE public.auto_approve_rules_id_seq OWNED BY public.auto_approve_rules.id; | |
| -- | |
| -- Name: breadcrumbs; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.breadcrumbs ( | |
| id text DEFAULT ('bc_'::text || substr(md5((random())::text), 1, 12)) NOT NULL, | |
| trail_id text, | |
| step_idx integer, | |
| agent_id text, | |
| note text, | |
| created_at timestamp with time zone DEFAULT now(), | |
| source text, | |
| facet_ref text, | |
| search_vector tsvector, | |
| label text, | |
| status text DEFAULT 'proposed'::text, | |
| scope text DEFAULT 'project'::text, | |
| access_type text, | |
| intent text, | |
| entity_type text, | |
| entity_id text, | |
| read_event_id text, | |
| search_event_id text | |
| ); | |
| -- | |
| -- Name: edges; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.edges ( | |
| id text DEFAULT public.uuid_generate_v4() NOT NULL, | |
| source_id text NOT NULL, | |
| target_id text NOT NULL, | |
| relation_type text NOT NULL, | |
| natural_type text NOT NULL, | |
| evidence jsonb, | |
| status text DEFAULT 'proposed'::text, | |
| scope text NOT NULL, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP, | |
| source_facet text, | |
| target_facet text, | |
| discovery_time timestamp with time zone DEFAULT CURRENT_TIMESTAMP, | |
| origin_agent text, | |
| cause text, | |
| trail_id text, | |
| evidence_id text, | |
| created_by text, | |
| facets jsonb DEFAULT '{}'::jsonb, | |
| source_type text DEFAULT 'node'::text, | |
| target_type text DEFAULT 'node'::text, | |
| search_vector tsvector, | |
| label text, | |
| superseded_by text | |
| ); | |
| -- | |
| -- Name: entity_read_heat; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.entity_read_heat ( | |
| entity_type text NOT NULL, | |
| entity_id text NOT NULL, | |
| read_count bigint DEFAULT 0 NOT NULL, | |
| last_read_at timestamp with time zone, | |
| CONSTRAINT entity_read_heat_read_count_check CHECK ((read_count >= 0)) | |
| ); | |
| -- | |
| -- Name: events; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.events ( | |
| id integer NOT NULL, | |
| parent_event_id integer, | |
| node_id text, | |
| edge_id text, | |
| event_type text, | |
| delta jsonb NOT NULL, | |
| origin_agent text, | |
| scope text NOT NULL, | |
| "timestamp" timestamp with time zone DEFAULT CURRENT_TIMESTAMP, | |
| action text, | |
| facet_key text, | |
| subject_time timestamp with time zone, | |
| CONSTRAINT events_event_type_check CHECK (((event_type = 'FACET_WRITE'::text) OR (event_type = ANY (ARRAY['OBSERVED'::text, 'PROPOSED'::text, 'PROMOTED'::text, 'RETRACTED'::text, 'OVERRIDE'::text, 'REQUEST'::text, 'APPROVED'::text, 'REJECTED'::text, 'SUPERSEDED'::text, 'EDITED'::text, 'ACCESSED'::text])))) | |
| ); | |
| -- | |
| -- Name: events_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres | |
| -- | |
| CREATE SEQUENCE public.events_id_seq | |
| AS integer | |
| START WITH 1 | |
| INCREMENT BY 1 | |
| NO MINVALUE | |
| NO MAXVALUE | |
| CACHE 1; | |
| -- | |
| -- Name: events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres | |
| -- | |
| ALTER SEQUENCE public.events_id_seq OWNED BY public.events.id; | |
| -- | |
| -- Name: evidence; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.evidence ( | |
| id text NOT NULL, | |
| type text NOT NULL, | |
| content text, | |
| opacity text DEFAULT 'visible'::text, | |
| source_chat_id text, | |
| seq_idx integer, | |
| created_at timestamp with time zone DEFAULT now(), | |
| facets jsonb DEFAULT '{}'::jsonb, | |
| search_vector tsvector, | |
| label text, | |
| origin_agent text, | |
| signature text, | |
| status text DEFAULT 'proposed'::text, | |
| scope text DEFAULT 'project'::text, | |
| instance_time timestamp with time zone, | |
| discovery_time timestamp with time zone, | |
| instance_time_null_reason text, | |
| discovery_time_null_reason text, | |
| trail_id text | |
| ); | |
| -- | |
| -- Name: nodes; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.nodes ( | |
| id text NOT NULL, | |
| type text NOT NULL, | |
| content text, | |
| state_vector jsonb NOT NULL, | |
| observations jsonb, | |
| derived jsonb, | |
| status text DEFAULT 'proposed'::text, | |
| scope text NOT NULL, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP, | |
| facets jsonb DEFAULT '{}'::jsonb, | |
| heat integer DEFAULT 0, | |
| search_vector tsvector, | |
| label text, | |
| origin_agent text, | |
| CONSTRAINT nodes_scope_check CHECK ((scope = ANY (ARRAY['user'::text, 'project'::text, 'thread'::text, 'default'::text]))) | |
| ); | |
| -- | |
| -- Name: nursemaid_attempt_events; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.nursemaid_attempt_events ( | |
| id text NOT NULL, | |
| job_id text NOT NULL, | |
| attempt_no integer NOT NULL, | |
| sequence integer NOT NULL, | |
| event_type text NOT NULL, | |
| occurred_at timestamp with time zone, | |
| recorded_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| payload jsonb DEFAULT '{}'::jsonb NOT NULL, | |
| CONSTRAINT nursemaid_attempt_events_attempt_no_check CHECK (((attempt_no >= 0) AND (attempt_no <= 3))), | |
| CONSTRAINT nursemaid_attempt_events_event_type_check CHECK ((event_type = ANY (ARRAY['claimed'::text, 'started'::text, 'lease_renewed'::text, 'checkpointed'::text, 'attempt_failed'::text, 'finalized'::text]))), | |
| CONSTRAINT nursemaid_attempt_events_sequence_check CHECK ((sequence >= 0)) | |
| ); | |
| -- | |
| -- Name: nursemaid_control; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.nursemaid_control ( | |
| singleton boolean DEFAULT true NOT NULL, | |
| mode text DEFAULT 'killed'::text NOT NULL, | |
| enabled_until timestamp with time zone, | |
| kill_generation bigint DEFAULT 0 NOT NULL, | |
| max_global_concurrency integer DEFAULT 1 NOT NULL, | |
| updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| updated_by text DEFAULT 'migration'::text NOT NULL, | |
| reason text DEFAULT 'fail-closed bootstrap'::text NOT NULL, | |
| CONSTRAINT nursemaid_control_kill_generation_check CHECK ((kill_generation >= 0)), | |
| CONSTRAINT nursemaid_control_max_global_concurrency_check CHECK (((max_global_concurrency >= 1) AND (max_global_concurrency <= 16))), | |
| CONSTRAINT nursemaid_control_mode_check CHECK ((mode = ANY (ARRAY['enabled'::text, 'paused'::text, 'killed'::text]))), | |
| CONSTRAINT nursemaid_control_singleton_check CHECK (singleton) | |
| ); | |
| -- | |
| -- Name: nursemaid_control_events; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.nursemaid_control_events ( | |
| id text NOT NULL, | |
| action text NOT NULL, | |
| kill_generation bigint NOT NULL, | |
| occurred_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| actor text NOT NULL, | |
| reason text NOT NULL, | |
| enabled_until timestamp with time zone, | |
| payload jsonb DEFAULT '{}'::jsonb NOT NULL, | |
| CONSTRAINT nursemaid_control_events_action_check CHECK ((action = ANY (ARRAY['enable'::text, 'pause'::text, 'kill'::text, 'dead_man_expired'::text]))), | |
| CONSTRAINT nursemaid_control_events_kill_generation_check CHECK ((kill_generation >= 0)) | |
| ); | |
| -- | |
| -- Name: nursemaid_jobs; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.nursemaid_jobs ( | |
| id text NOT NULL, | |
| schema_version text DEFAULT 'nursemaid-job/v1'::text NOT NULL, | |
| task_type text NOT NULL, | |
| task_schema_version text DEFAULT '1'::text NOT NULL, | |
| requested_by text NOT NULL, | |
| idempotency_key text NOT NULL, | |
| request_sha256 text NOT NULL, | |
| instruction text NOT NULL, | |
| source_refs jsonb NOT NULL, | |
| source_snapshot jsonb, | |
| source_snapshot_sha256 text, | |
| execution_status text DEFAULT 'queued'::text NOT NULL, | |
| governance_status text DEFAULT 'none'::text NOT NULL, | |
| execution_attempts integer DEFAULT 0 NOT NULL, | |
| claimed_by text, | |
| lease_expires_at timestamp with time zone, | |
| provider text, | |
| model text, | |
| model_revision text, | |
| result_payload jsonb, | |
| result_sha256 text, | |
| evidence_id text, | |
| failure_code text, | |
| failure_detail text, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| claimed_at timestamp with time zone, | |
| started_at timestamp with time zone, | |
| completed_at timestamp with time zone, | |
| updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| first_started_at timestamp with time zone, | |
| latest_attempt_started_at timestamp with time zone, | |
| execution_receipt_id text, | |
| loop_id text, | |
| loop_sequence integer, | |
| control_generation bigint, | |
| provider_call_budget integer DEFAULT 2 NOT NULL, | |
| output_token_budget integer DEFAULT 8000 NOT NULL, | |
| input_chars bigint, | |
| trail_id text, | |
| CONSTRAINT nursemaid_jobs_execution_attempts_check CHECK (((execution_attempts >= 0) AND (execution_attempts <= 3))), | |
| CONSTRAINT nursemaid_jobs_execution_status_check CHECK ((execution_status = ANY (ARRAY['queued'::text, 'claimed'::text, 'running'::text, 'result_ready'::text, 'completed'::text, 'failed'::text]))), | |
| CONSTRAINT nursemaid_jobs_governance_status_check CHECK ((governance_status = ANY (ARRAY['none'::text, 'proposed'::text, 'accepted'::text, 'rejected'::text]))), | |
| CONSTRAINT nursemaid_jobs_schema_version_check CHECK ((schema_version = 'nursemaid-job/v1'::text)), | |
| CONSTRAINT nursemaid_jobs_task_schema_version_check CHECK ((task_schema_version = '1'::text)), | |
| CONSTRAINT nursemaid_jobs_task_type_check CHECK ((task_type = 'inkling.reflect/v1'::text)) | |
| ); | |
| -- | |
| -- Name: nursemaid_loops; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.nursemaid_loops ( | |
| id text NOT NULL, | |
| requested_by text NOT NULL, | |
| idempotency_key text NOT NULL, | |
| status text DEFAULT 'active'::text NOT NULL, | |
| max_jobs integer NOT NULL, | |
| max_concurrency integer NOT NULL, | |
| max_wall_seconds integer NOT NULL, | |
| max_provider_calls integer NOT NULL, | |
| max_input_chars bigint NOT NULL, | |
| max_output_tokens bigint NOT NULL, | |
| no_progress_limit integer NOT NULL, | |
| jobs_created integer DEFAULT 0 NOT NULL, | |
| jobs_completed integer DEFAULT 0 NOT NULL, | |
| provider_calls_reserved integer DEFAULT 0 NOT NULL, | |
| input_chars_used bigint DEFAULT 0 NOT NULL, | |
| output_tokens_reserved bigint DEFAULT 0 NOT NULL, | |
| last_result_sha256 text, | |
| repeated_result_count integer DEFAULT 0 NOT NULL, | |
| termination_reason text, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| started_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| deadline_at timestamp with time zone NOT NULL, | |
| completed_at timestamp with time zone, | |
| updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| CONSTRAINT nursemaid_loops_input_chars_used_check CHECK ((input_chars_used >= 0)), | |
| CONSTRAINT nursemaid_loops_jobs_completed_check CHECK ((jobs_completed >= 0)), | |
| CONSTRAINT nursemaid_loops_jobs_created_check CHECK ((jobs_created >= 0)), | |
| CONSTRAINT nursemaid_loops_max_concurrency_check CHECK (((max_concurrency >= 1) AND (max_concurrency <= 8))), | |
| CONSTRAINT nursemaid_loops_max_input_chars_check CHECK (((max_input_chars >= 1) AND (max_input_chars <= 10000000))), | |
| CONSTRAINT nursemaid_loops_max_jobs_check CHECK (((max_jobs >= 1) AND (max_jobs <= 100))), | |
| CONSTRAINT nursemaid_loops_max_output_tokens_check CHECK (((max_output_tokens >= 128) AND (max_output_tokens <= 800000))), | |
| CONSTRAINT nursemaid_loops_max_provider_calls_check CHECK (((max_provider_calls >= 1) AND (max_provider_calls <= 300))), | |
| CONSTRAINT nursemaid_loops_max_wall_seconds_check CHECK (((max_wall_seconds >= 60) AND (max_wall_seconds <= 86400))), | |
| CONSTRAINT nursemaid_loops_no_progress_limit_check CHECK (((no_progress_limit >= 1) AND (no_progress_limit <= 10))), | |
| CONSTRAINT nursemaid_loops_output_tokens_reserved_check CHECK ((output_tokens_reserved >= 0)), | |
| CONSTRAINT nursemaid_loops_provider_calls_reserved_check CHECK ((provider_calls_reserved >= 0)), | |
| CONSTRAINT nursemaid_loops_repeated_result_count_check CHECK ((repeated_result_count >= 0)), | |
| CONSTRAINT nursemaid_loops_status_check CHECK ((status = ANY (ARRAY['active'::text, 'paused'::text, 'killed'::text, 'completed'::text, 'budget_exhausted'::text, 'runaway'::text, 'failed'::text]))) | |
| ); | |
| -- | |
| -- Name: oauth_authorization_codes; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.oauth_authorization_codes ( | |
| code_hash text NOT NULL, | |
| client_id text NOT NULL, | |
| redirect_uri text NOT NULL, | |
| scopes text[] DEFAULT '{}'::text[] NOT NULL, | |
| code_challenge text NOT NULL, | |
| code_challenge_method text DEFAULT 'S256'::text NOT NULL, | |
| state text, | |
| created_at timestamp with time zone DEFAULT now(), | |
| expires_at timestamp with time zone NOT NULL, | |
| used boolean DEFAULT false | |
| ); | |
| -- | |
| -- Name: oauth_clients; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.oauth_clients ( | |
| client_id text NOT NULL, | |
| client_secret_hash text, | |
| client_name text, | |
| redirect_uris text[] DEFAULT '{}'::text[] NOT NULL, | |
| grant_types text[] DEFAULT '{authorization_code}'::text[] NOT NULL, | |
| response_types text[] DEFAULT '{code}'::text[] NOT NULL, | |
| token_endpoint_auth_method text DEFAULT 'none'::text, | |
| created_at timestamp with time zone DEFAULT now() | |
| ); | |
| -- | |
| -- Name: oauth_tokens; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.oauth_tokens ( | |
| token_hash text NOT NULL, | |
| token_type text NOT NULL, | |
| client_id text NOT NULL, | |
| scopes text[] DEFAULT '{}'::text[] NOT NULL, | |
| principal_agent_id text DEFAULT 'oauth_user'::text NOT NULL, | |
| created_at timestamp with time zone DEFAULT now(), | |
| expires_at timestamp with time zone NOT NULL, | |
| revoked boolean DEFAULT false | |
| ); | |
| -- | |
| -- Name: open_threads; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.open_threads ( | |
| id text NOT NULL, | |
| content text NOT NULL, | |
| related_node_id text, | |
| tension_type text, | |
| resolved boolean DEFAULT false, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP | |
| ); | |
| -- | |
| -- Name: parameter_requests; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.parameter_requests ( | |
| id text DEFAULT public.uuid_generate_v4() NOT NULL, | |
| parameter text NOT NULL, | |
| scope text NOT NULL, | |
| requested_by text NOT NULL, | |
| current_value numeric, | |
| requested_value numeric, | |
| reason text, | |
| status text DEFAULT 'pending'::text, | |
| resolved_at timestamp with time zone, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP, | |
| CONSTRAINT parameter_requests_status_check CHECK ((status = ANY (ARRAY['pending'::text, 'approved'::text, 'denied'::text]))) | |
| ); | |
| -- | |
| -- Name: proposals; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.proposals ( | |
| id text NOT NULL, | |
| type text NOT NULL, | |
| payload jsonb NOT NULL, | |
| supports jsonb DEFAULT '{}'::jsonb, | |
| note text, | |
| status text DEFAULT 'proposed'::text NOT NULL, | |
| decided_reason text, | |
| created_by text NOT NULL, | |
| decided_by text, | |
| idempotency_key text, | |
| created_at timestamp with time zone DEFAULT now() NOT NULL, | |
| decided_at timestamp with time zone, | |
| trail_id text | |
| ); | |
| -- | |
| -- Name: quick_note_intakes; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.quick_note_intakes ( | |
| id text NOT NULL, | |
| authored_by text NOT NULL, | |
| source_text text NOT NULL, | |
| source_sha256 text NOT NULL, | |
| status text DEFAULT 'captured'::text NOT NULL, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| CONSTRAINT quick_note_intakes_status_check CHECK ((status = ANY (ARRAY['captured'::text, 'partially_routed'::text, 'routed'::text]))) | |
| ); | |
| -- | |
| -- Name: quick_note_route_policies; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.quick_note_route_policies ( | |
| id text NOT NULL, | |
| created_by text NOT NULL, | |
| addressed_to text NOT NULL, | |
| requested_action text NOT NULL, | |
| concerns_prefix text NOT NULL, | |
| risk_tier text NOT NULL, | |
| max_source_chars integer NOT NULL, | |
| heartbeat_ttl_seconds integer NOT NULL, | |
| expires_at timestamp with time zone NOT NULL, | |
| status text DEFAULT 'active'::text NOT NULL, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| CONSTRAINT quick_note_route_policies_risk_tier_check CHECK ((risk_tier = 'read_only'::text)), | |
| CONSTRAINT quick_note_route_policies_status_check CHECK ((status = ANY (ARRAY['active'::text, 'paused'::text, 'expired'::text]))) | |
| ); | |
| -- | |
| -- Name: quick_note_segments; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.quick_note_segments ( | |
| id text NOT NULL, | |
| note_id text NOT NULL, | |
| segment_index integer NOT NULL, | |
| start_offset integer NOT NULL, | |
| end_offset integer NOT NULL, | |
| segment_sha256 text NOT NULL, | |
| route_status text DEFAULT 'unassigned'::text NOT NULL, | |
| routed_thread_id text, | |
| assigned_agent text, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| CONSTRAINT quick_note_segments_route_status_check CHECK ((route_status = ANY (ARRAY['unassigned'::text, 'routed'::text]))) | |
| ); | |
| -- | |
| -- Name: read_access_events; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.read_access_events ( | |
| id text NOT NULL, | |
| agent_id text NOT NULL, | |
| access_type text NOT NULL, | |
| query text NOT NULL, | |
| intent text NOT NULL, | |
| entity_type text NOT NULL, | |
| entity_id text NOT NULL, | |
| occurred_at timestamp with time zone NOT NULL, | |
| outcome text NOT NULL, | |
| CONSTRAINT read_access_events_access_type_check CHECK ((access_type = 'entity_read'::text)), | |
| CONSTRAINT read_access_events_entity_type_check CHECK ((entity_type = ANY (ARRAY['node'::text, 'evidence'::text, 'trail'::text, 'edge'::text, 'breadcrumb'::text]))), | |
| CONSTRAINT read_access_events_outcome_check CHECK ((outcome = 'success'::text)) | |
| ); | |
| -- | |
| -- Name: registry; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.registry ( | |
| id text NOT NULL, | |
| category text, | |
| key text, | |
| value jsonb, | |
| version integer DEFAULT 1, | |
| created_at timestamp with time zone DEFAULT now(), | |
| source text, | |
| active boolean DEFAULT true, | |
| search_vector tsvector, | |
| origin_agent text | |
| ); | |
| -- | |
| -- Name: search_access_events; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.search_access_events ( | |
| id text NOT NULL, | |
| agent_id text NOT NULL, | |
| query text NOT NULL, | |
| intent text NOT NULL, | |
| instrument text NOT NULL, | |
| mode text NOT NULL, | |
| filters jsonb DEFAULT '{}'::jsonb NOT NULL, | |
| result_refs jsonb DEFAULT '[]'::jsonb NOT NULL, | |
| returned_ref_count bigint DEFAULT 0 NOT NULL, | |
| total_hits bigint DEFAULT 0 NOT NULL, | |
| occurred_at timestamp with time zone NOT NULL, | |
| outcome text NOT NULL, | |
| CONSTRAINT search_access_events_outcome_check CHECK ((outcome = 'success'::text)), | |
| CONSTRAINT search_access_events_returned_ref_count_check CHECK ((returned_ref_count >= 0)), | |
| CONSTRAINT search_access_events_total_hits_check CHECK ((total_hits >= 0)) | |
| ); | |
| -- | |
| -- Name: threads; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.threads ( | |
| id text NOT NULL, | |
| authored_by text NOT NULL, | |
| addressed_to text, | |
| replies_to text, | |
| concerns text, | |
| subject text, | |
| body text, | |
| evidence_id text, | |
| proposal_id text, | |
| trail_id text, | |
| requested_action text, | |
| claimed_by text, | |
| status text DEFAULT 'open'::text, | |
| resolution text, | |
| created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP, | |
| claimed_at timestamp with time zone, | |
| resolved_at timestamp with time zone, | |
| scope text DEFAULT 'project'::text, | |
| resolved_by text, | |
| resolution_receipt_id text, | |
| message_kind text DEFAULT 'coordination'::text NOT NULL, | |
| CONSTRAINT threads_message_kind_check CHECK ((message_kind = ANY (ARRAY['task'::text, 'coordination'::text, 'ack'::text, 'progress'::text, 'ready'::text, 'blocked'::text, 'continuation'::text]))), | |
| CONSTRAINT threads_scope_check CHECK ((scope = ANY (ARRAY['user'::text, 'project'::text, 'thread'::text, 'default'::text]))), | |
| CONSTRAINT threads_status_check CHECK ((status = ANY (ARRAY['open'::text, 'claimed'::text, 'resolved'::text, 'expired'::text]))) | |
| ); | |
| -- | |
| -- Name: trail_steps; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.trail_steps ( | |
| trail_id text NOT NULL, | |
| step_idx integer NOT NULL, | |
| ref_type public.ref_type NOT NULL, | |
| ref_id text NOT NULL, | |
| note text, | |
| step_type text DEFAULT 'produce'::text, | |
| facets jsonb DEFAULT '{}'::jsonb, | |
| search_vector tsvector, | |
| origin_agent text, | |
| status text DEFAULT 'proposed'::text, | |
| scope text DEFAULT 'project'::text | |
| ); | |
| -- | |
| -- Name: trails; Type: TABLE; Schema: public; Owner: postgres | |
| -- | |
| CREATE TABLE public.trails ( | |
| id text NOT NULL, | |
| label text NOT NULL, | |
| created_at timestamp with time zone DEFAULT now() NOT NULL, | |
| agent_id text, | |
| session_id text, | |
| source_chat_id text, | |
| facets jsonb DEFAULT '{}'::jsonb, | |
| search_vector tsvector, | |
| status text DEFAULT 'proposed'::text, | |
| scope text DEFAULT 'project'::text | |
| ); | |
| -- | |
| -- Name: authorization_attempts id; Type: DEFAULT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.authorization_attempts ALTER COLUMN id SET DEFAULT nextval('public.authorization_attempts_id_seq'::regclass); | |
| -- | |
| -- Name: auto_approve_rules id; Type: DEFAULT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.auto_approve_rules ALTER COLUMN id SET DEFAULT nextval('public.auto_approve_rules_id_seq'::regclass); | |
| -- | |
| -- Name: events id; Type: DEFAULT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.events ALTER COLUMN id SET DEFAULT nextval('public.events_id_seq'::regclass); | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- | |
| -- Name: agent_availability agent_availability_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.agent_availability | |
| ADD CONSTRAINT agent_availability_pkey PRIMARY KEY (agent_id); | |
| -- | |
| -- Name: authorization_admissions authorization_admissions_nonce_key; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.authorization_admissions | |
| ADD CONSTRAINT authorization_admissions_nonce_key UNIQUE (nonce); | |
| -- | |
| -- Name: authorization_admissions authorization_admissions_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.authorization_admissions | |
| ADD CONSTRAINT authorization_admissions_pkey PRIMARY KEY (authorization_id); | |
| -- | |
| -- Name: authorization_attempts authorization_attempts_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.authorization_attempts | |
| ADD CONSTRAINT authorization_attempts_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: authorization_gate_decisions authorization_gate_decisions_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.authorization_gate_decisions | |
| ADD CONSTRAINT authorization_gate_decisions_pkey PRIMARY KEY (decision_id); | |
| -- | |
| -- Name: auto_approve_rules auto_approve_rules_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.auto_approve_rules | |
| ADD CONSTRAINT auto_approve_rules_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: breadcrumbs breadcrumbs_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.breadcrumbs | |
| ADD CONSTRAINT breadcrumbs_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: edges edges_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.edges | |
| ADD CONSTRAINT edges_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: entity_read_heat entity_read_heat_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.entity_read_heat | |
| ADD CONSTRAINT entity_read_heat_pkey PRIMARY KEY (entity_type, entity_id); | |
| -- | |
| -- Name: events events_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.events | |
| ADD CONSTRAINT events_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: evidence evidence_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.evidence | |
| ADD CONSTRAINT evidence_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: nodes nodes_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nodes | |
| ADD CONSTRAINT nodes_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: nursemaid_attempt_events nursemaid_attempt_events_job_id_attempt_no_sequence_key; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_attempt_events | |
| ADD CONSTRAINT nursemaid_attempt_events_job_id_attempt_no_sequence_key UNIQUE (job_id, attempt_no, sequence); | |
| -- | |
| -- Name: nursemaid_attempt_events nursemaid_attempt_events_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_attempt_events | |
| ADD CONSTRAINT nursemaid_attempt_events_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: nursemaid_control_events nursemaid_control_events_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_control_events | |
| ADD CONSTRAINT nursemaid_control_events_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: nursemaid_control nursemaid_control_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_control | |
| ADD CONSTRAINT nursemaid_control_pkey PRIMARY KEY (singleton); | |
| -- | |
| -- Name: nursemaid_jobs nursemaid_jobs_evidence_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_jobs | |
| ADD CONSTRAINT nursemaid_jobs_evidence_id_key UNIQUE (evidence_id); | |
| -- | |
| -- Name: nursemaid_jobs nursemaid_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_jobs | |
| ADD CONSTRAINT nursemaid_jobs_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: nursemaid_jobs nursemaid_jobs_requested_by_idempotency_key_key; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_jobs | |
| ADD CONSTRAINT nursemaid_jobs_requested_by_idempotency_key_key UNIQUE (requested_by, idempotency_key); | |
| -- | |
| -- Name: nursemaid_loops nursemaid_loops_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_loops | |
| ADD CONSTRAINT nursemaid_loops_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: nursemaid_loops nursemaid_loops_requested_by_idempotency_key_key; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_loops | |
| ADD CONSTRAINT nursemaid_loops_requested_by_idempotency_key_key UNIQUE (requested_by, idempotency_key); | |
| -- | |
| -- Name: oauth_authorization_codes oauth_authorization_codes_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.oauth_authorization_codes | |
| ADD CONSTRAINT oauth_authorization_codes_pkey PRIMARY KEY (code_hash); | |
| -- | |
| -- Name: oauth_clients oauth_clients_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.oauth_clients | |
| ADD CONSTRAINT oauth_clients_pkey PRIMARY KEY (client_id); | |
| -- | |
| -- Name: oauth_tokens oauth_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.oauth_tokens | |
| ADD CONSTRAINT oauth_tokens_pkey PRIMARY KEY (token_hash); | |
| -- | |
| -- Name: open_threads open_threads_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.open_threads | |
| ADD CONSTRAINT open_threads_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: parameter_requests parameter_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.parameter_requests | |
| ADD CONSTRAINT parameter_requests_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: proposals proposals_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.proposals | |
| ADD CONSTRAINT proposals_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: quick_note_intakes quick_note_intakes_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.quick_note_intakes | |
| ADD CONSTRAINT quick_note_intakes_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: quick_note_route_policies quick_note_route_policies_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.quick_note_route_policies | |
| ADD CONSTRAINT quick_note_route_policies_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: quick_note_segments quick_note_segments_note_id_segment_index_key; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.quick_note_segments | |
| ADD CONSTRAINT quick_note_segments_note_id_segment_index_key UNIQUE (note_id, segment_index); | |
| -- | |
| -- Name: quick_note_segments quick_note_segments_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.quick_note_segments | |
| ADD CONSTRAINT quick_note_segments_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: read_access_events read_access_events_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.read_access_events | |
| ADD CONSTRAINT read_access_events_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: registry registry_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.registry | |
| ADD CONSTRAINT registry_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: search_access_events search_access_events_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.search_access_events | |
| ADD CONSTRAINT search_access_events_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: threads threads_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.threads | |
| ADD CONSTRAINT threads_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: trail_steps trail_steps_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.trail_steps | |
| ADD CONSTRAINT trail_steps_pkey PRIMARY KEY (trail_id, step_idx); | |
| -- | |
| -- Name: trails trails_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.trails | |
| ADD CONSTRAINT trails_pkey PRIMARY KEY (id); | |
| -- | |
| -- Name: authorization_admissions_agent_idx; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX authorization_admissions_agent_idx ON public.authorization_admissions USING btree (addressed_agent, lane); | |
| -- | |
| -- Name: authorization_attempts_authorization_idx; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX authorization_attempts_authorization_idx ON public.authorization_attempts USING btree (authorization_id, id); | |
| -- | |
| -- Name: edges_canonical_identity_unique; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE UNIQUE INDEX edges_canonical_identity_unique ON public.edges USING btree (source_id, target_id, relation_type, COALESCE(source_facet, ''::text), COALESCE(target_facet, ''::text)) WHERE (superseded_by IS NULL); | |
| -- | |
| -- Name: idx_agent_availability_state; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_agent_availability_state ON public.agent_availability USING btree (state, heartbeat_at DESC); | |
| -- | |
| -- Name: idx_breadcrumbs_read_event; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE UNIQUE INDEX idx_breadcrumbs_read_event ON public.breadcrumbs USING btree (read_event_id) WHERE (read_event_id IS NOT NULL); | |
| -- | |
| -- Name: idx_breadcrumbs_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_breadcrumbs_search ON public.breadcrumbs USING gin (search_vector); | |
| -- | |
| -- Name: idx_breadcrumbs_search_event; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE UNIQUE INDEX idx_breadcrumbs_search_event ON public.breadcrumbs USING btree (search_event_id) WHERE (search_event_id IS NOT NULL); | |
| -- | |
| -- Name: idx_edges_facets; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_edges_facets ON public.edges USING gin (facets); | |
| -- | |
| -- Name: idx_edges_lookup; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_edges_lookup ON public.edges USING btree (source_id, target_id); | |
| -- | |
| -- Name: idx_edges_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_edges_search ON public.edges USING gin (search_vector); | |
| -- | |
| -- Name: idx_edges_source_facet; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_edges_source_facet ON public.edges USING btree (source_id, source_facet); | |
| -- | |
| -- Name: idx_edges_superseded_by; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_edges_superseded_by ON public.edges USING btree (superseded_by) WHERE (superseded_by IS NOT NULL); | |
| -- | |
| -- Name: idx_edges_target_facet; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_edges_target_facet ON public.edges USING btree (target_id, target_facet); | |
| -- | |
| -- Name: idx_events_facet; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_events_facet ON public.events USING btree (node_id, facet_key); | |
| -- | |
| -- Name: idx_events_node_timestamp; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_events_node_timestamp ON public.events USING btree (node_id, "timestamp" DESC); | |
| -- | |
| -- Name: idx_evidence_chat_seq; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_chat_seq ON public.evidence USING btree (source_chat_id, seq_idx); | |
| -- | |
| -- Name: idx_evidence_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_created ON public.evidence USING btree (created_at DESC); | |
| -- | |
| -- Name: idx_evidence_discovery_time; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_discovery_time ON public.evidence USING btree (discovery_time); | |
| -- | |
| -- Name: idx_evidence_facets; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_facets ON public.evidence USING gin (facets); | |
| -- | |
| -- Name: idx_evidence_instance_time; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_instance_time ON public.evidence USING btree (instance_time); | |
| -- | |
| -- Name: idx_evidence_opacity_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_opacity_created ON public.evidence USING btree (opacity, created_at DESC); | |
| -- | |
| -- Name: idx_evidence_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_search ON public.evidence USING gin (search_vector); | |
| -- | |
| -- Name: idx_evidence_trail_id; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_trail_id ON public.evidence USING btree (trail_id); | |
| -- | |
| -- Name: idx_evidence_type; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_type ON public.evidence USING btree (type); | |
| -- | |
| -- Name: idx_evidence_type_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_evidence_type_created ON public.evidence USING btree (type, created_at DESC); | |
| -- | |
| -- Name: idx_nodes_facets; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nodes_facets ON public.nodes USING gin (facets); | |
| -- | |
| -- Name: idx_nodes_heat; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nodes_heat ON public.nodes USING btree (heat DESC); | |
| -- | |
| -- Name: idx_nodes_scope; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nodes_scope ON public.nodes USING btree (scope); | |
| -- | |
| -- Name: idx_nodes_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nodes_search ON public.nodes USING gin (search_vector); | |
| -- | |
| -- Name: idx_nodes_type_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nodes_type_created ON public.nodes USING btree (type, created_at DESC); | |
| -- | |
| -- Name: idx_nursemaid_attempt_events_job; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nursemaid_attempt_events_job ON public.nursemaid_attempt_events USING btree (job_id, attempt_no, sequence); | |
| -- | |
| -- Name: idx_nursemaid_jobs_eligible; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nursemaid_jobs_eligible ON public.nursemaid_jobs USING btree (execution_status, lease_expires_at, created_at); | |
| -- | |
| -- Name: idx_nursemaid_jobs_execution_receipt; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE UNIQUE INDEX idx_nursemaid_jobs_execution_receipt ON public.nursemaid_jobs USING btree (execution_receipt_id) WHERE (execution_receipt_id IS NOT NULL); | |
| -- | |
| -- Name: idx_nursemaid_jobs_loop; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nursemaid_jobs_loop ON public.nursemaid_jobs USING btree (loop_id, execution_status, lease_expires_at); | |
| -- | |
| -- Name: idx_nursemaid_jobs_requested; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nursemaid_jobs_requested ON public.nursemaid_jobs USING btree (requested_by, created_at DESC); | |
| -- | |
| -- Name: idx_nursemaid_jobs_trail_id; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_nursemaid_jobs_trail_id ON public.nursemaid_jobs USING btree (trail_id); | |
| -- | |
| -- Name: idx_proposals_status_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_proposals_status_created ON public.proposals USING btree (status, created_at DESC); | |
| -- | |
| -- Name: idx_proposals_type_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_proposals_type_created ON public.proposals USING btree (type, created_at DESC); | |
| -- | |
| -- Name: idx_quick_note_segments_unassigned; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_quick_note_segments_unassigned ON public.quick_note_segments USING btree (note_id, segment_index) WHERE (route_status = 'unassigned'::text); | |
| -- | |
| -- Name: idx_read_access_events_agent; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_read_access_events_agent ON public.read_access_events USING btree (agent_id, occurred_at DESC); | |
| -- | |
| -- Name: idx_read_access_events_entity; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_read_access_events_entity ON public.read_access_events USING btree (entity_type, entity_id, occurred_at DESC); | |
| -- | |
| -- Name: idx_registry_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_registry_search ON public.registry USING gin (search_vector); | |
| -- | |
| -- Name: idx_search_access_events_agent; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_search_access_events_agent ON public.search_access_events USING btree (agent_id, occurred_at DESC); | |
| -- | |
| -- Name: idx_search_access_events_instrument; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_search_access_events_instrument ON public.search_access_events USING btree (instrument, occurred_at DESC); | |
| -- | |
| -- Name: idx_threads_actionable; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_threads_actionable ON public.threads USING btree (addressed_to, status, created_at DESC) WHERE (message_kind <> ALL (ARRAY['ack'::text, 'progress'::text])); | |
| -- | |
| -- Name: idx_threads_addressed; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_threads_addressed ON public.threads USING btree (addressed_to, status); | |
| -- | |
| -- Name: idx_threads_concerns; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_threads_concerns ON public.threads USING btree (concerns); | |
| -- | |
| -- Name: idx_threads_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_threads_created ON public.threads USING btree (created_at DESC); | |
| -- | |
| -- Name: idx_threads_resolved; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_threads_resolved ON public.threads USING btree (resolved_at DESC) WHERE (status = 'resolved'::text); | |
| -- | |
| -- Name: idx_trail_steps_facets; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trail_steps_facets ON public.trail_steps USING gin (facets); | |
| -- | |
| -- Name: idx_trail_steps_ref; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trail_steps_ref ON public.trail_steps USING btree (ref_type, ref_id); | |
| -- | |
| -- Name: idx_trail_steps_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trail_steps_search ON public.trail_steps USING gin (search_vector); | |
| -- | |
| -- Name: idx_trails_agent_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trails_agent_created ON public.trails USING btree (agent_id, created_at DESC); | |
| -- | |
| -- Name: idx_trails_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trails_created ON public.trails USING btree (created_at DESC); | |
| -- | |
| -- Name: idx_trails_facets; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trails_facets ON public.trails USING gin (facets); | |
| -- | |
| -- Name: idx_trails_search; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trails_search ON public.trails USING gin (search_vector); | |
| -- | |
| -- Name: idx_trails_source_chat_created; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE INDEX idx_trails_source_chat_created ON public.trails USING btree (source_chat_id, created_at DESC); | |
| -- | |
| -- Name: uq_proposals_idempotency; Type: INDEX; Schema: public; Owner: postgres | |
| -- | |
| CREATE UNIQUE INDEX uq_proposals_idempotency ON public.proposals USING btree (created_by, idempotency_key) WHERE (idempotency_key IS NOT NULL); | |
| -- | |
| -- Name: authorization_admissions authorization_admissions_immutable_statement_trigger; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER authorization_admissions_immutable_statement_trigger BEFORE DELETE ON public.authorization_admissions FOR EACH STATEMENT EXECUTE FUNCTION public.authorization_admissions_no_delete(); | |
| -- | |
| -- Name: authorization_admissions authorization_admissions_immutable_trigger; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER authorization_admissions_immutable_trigger BEFORE DELETE OR UPDATE ON public.authorization_admissions FOR EACH ROW EXECUTE FUNCTION public.authorization_admissions_immutable(); | |
| -- | |
| -- Name: authorization_attempts authorization_attempts_append_only_statement_trigger; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER authorization_attempts_append_only_statement_trigger BEFORE DELETE OR UPDATE ON public.authorization_attempts FOR EACH STATEMENT EXECUTE FUNCTION public.authorization_attempts_append_only(); | |
| -- | |
| -- Name: authorization_attempts authorization_attempts_append_only_trigger; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER authorization_attempts_append_only_trigger BEFORE DELETE OR UPDATE ON public.authorization_attempts FOR EACH ROW EXECUTE FUNCTION public.authorization_attempts_append_only(); | |
| -- | |
| -- Name: authorization_gate_decisions authorization_gate_decisions_append_only_statement_trigger; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER authorization_gate_decisions_append_only_statement_trigger BEFORE DELETE OR UPDATE ON public.authorization_gate_decisions FOR EACH STATEMENT EXECUTE FUNCTION public.authorization_gate_decisions_append_only(); | |
| -- | |
| -- Name: authorization_gate_decisions authorization_gate_decisions_append_only_trigger; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER authorization_gate_decisions_append_only_trigger BEFORE DELETE OR UPDATE ON public.authorization_gate_decisions FOR EACH ROW EXECUTE FUNCTION public.authorization_gate_decisions_append_only(); | |
| -- | |
| -- Name: nursemaid_attempt_events nursemaid_attempt_events_append_only; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER nursemaid_attempt_events_append_only BEFORE DELETE OR UPDATE ON public.nursemaid_attempt_events FOR EACH ROW EXECUTE FUNCTION public.reject_nursemaid_attempt_event_mutation(); | |
| -- | |
| -- Name: nursemaid_control_events nursemaid_control_events_append_only; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER nursemaid_control_events_append_only BEFORE DELETE OR UPDATE ON public.nursemaid_control_events FOR EACH ROW EXECUTE FUNCTION public.reject_nursemaid_control_event_mutation(); | |
| -- | |
| -- Name: read_access_events read_access_events_append_only; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER read_access_events_append_only BEFORE DELETE OR UPDATE ON public.read_access_events FOR EACH ROW EXECUTE FUNCTION public.reject_read_access_event_mutation(); | |
| -- | |
| -- Name: search_access_events search_access_events_append_only; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER search_access_events_append_only BEFORE DELETE OR UPDATE ON public.search_access_events FOR EACH ROW EXECUTE FUNCTION public.reject_search_access_event_mutation(); | |
| -- | |
| -- Name: edges tr_audit_edges; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER tr_audit_edges AFTER INSERT ON public.edges FOR EACH ROW EXECUTE FUNCTION public.fn_log_new_edge(); | |
| -- | |
| -- Name: nodes tr_audit_nodes; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER tr_audit_nodes AFTER UPDATE ON public.nodes FOR EACH ROW EXECUTE FUNCTION public.fn_log_node_change(); | |
| -- | |
| -- Name: nodes tr_guard_nodes_vector; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER tr_guard_nodes_vector BEFORE UPDATE OF state_vector ON public.nodes FOR EACH ROW EXECUTE FUNCTION public.fn_guard_state_vector(); | |
| -- | |
| -- Name: breadcrumbs trg_breadcrumbs_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_breadcrumbs_search BEFORE INSERT OR UPDATE ON public.breadcrumbs FOR EACH ROW EXECUTE FUNCTION public.update_breadcrumbs_search(); | |
| -- | |
| -- Name: edges trg_edges_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_edges_search BEFORE INSERT OR UPDATE ON public.edges FOR EACH ROW EXECUTE FUNCTION public.update_edges_search(); | |
| -- | |
| -- Name: evidence trg_evidence_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_evidence_search BEFORE INSERT OR UPDATE ON public.evidence FOR EACH ROW EXECUTE FUNCTION public.update_evidence_search(); | |
| -- | |
| -- Name: nodes trg_nodes_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_nodes_search BEFORE INSERT OR UPDATE ON public.nodes FOR EACH ROW EXECUTE FUNCTION public.update_nodes_search(); | |
| -- | |
| -- Name: registry trg_registry_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_registry_search BEFORE INSERT OR UPDATE ON public.registry FOR EACH ROW EXECUTE FUNCTION public.update_registry_search(); | |
| -- | |
| -- Name: trail_steps trg_trail_steps_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_trail_steps_search BEFORE INSERT OR UPDATE ON public.trail_steps FOR EACH ROW EXECUTE FUNCTION public.update_trail_steps_search(); | |
| -- | |
| -- Name: trails trg_trails_search; Type: TRIGGER; Schema: public; Owner: postgres | |
| -- | |
| CREATE TRIGGER trg_trails_search BEFORE INSERT OR UPDATE ON public.trails FOR EACH ROW EXECUTE FUNCTION public.update_trails_search(); | |
| -- | |
| -- Name: authorization_admissions authorization_admissions_gate_decision_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.authorization_admissions | |
| ADD CONSTRAINT authorization_admissions_gate_decision_id_fkey FOREIGN KEY (gate_decision_id) REFERENCES public.authorization_gate_decisions(decision_id); | |
| -- | |
| -- Name: breadcrumbs breadcrumbs_trail_id_step_idx_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.breadcrumbs | |
| ADD CONSTRAINT breadcrumbs_trail_id_step_idx_fkey FOREIGN KEY (trail_id, step_idx) REFERENCES public.trail_steps(trail_id, step_idx); | |
| -- | |
| -- Name: edges edges_superseded_by_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.edges | |
| ADD CONSTRAINT edges_superseded_by_fkey FOREIGN KEY (superseded_by) REFERENCES public.edges(id); | |
| -- | |
| -- Name: events events_edge_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.events | |
| ADD CONSTRAINT events_edge_id_fkey FOREIGN KEY (edge_id) REFERENCES public.edges(id); | |
| -- | |
| -- Name: events events_node_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.events | |
| ADD CONSTRAINT events_node_id_fkey FOREIGN KEY (node_id) REFERENCES public.nodes(id); | |
| -- | |
| -- Name: events events_parent_event_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.events | |
| ADD CONSTRAINT events_parent_event_id_fkey FOREIGN KEY (parent_event_id) REFERENCES public.events(id); | |
| -- | |
| -- Name: evidence evidence_trail_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.evidence | |
| ADD CONSTRAINT evidence_trail_id_fkey FOREIGN KEY (trail_id) REFERENCES public.trails(id) NOT VALID; | |
| -- | |
| -- Name: nursemaid_attempt_events nursemaid_attempt_events_job_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_attempt_events | |
| ADD CONSTRAINT nursemaid_attempt_events_job_id_fkey FOREIGN KEY (job_id) REFERENCES public.nursemaid_jobs(id); | |
| -- | |
| -- Name: nursemaid_jobs nursemaid_jobs_loop_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_jobs | |
| ADD CONSTRAINT nursemaid_jobs_loop_id_fkey FOREIGN KEY (loop_id) REFERENCES public.nursemaid_loops(id); | |
| -- | |
| -- Name: nursemaid_jobs nursemaid_jobs_trail_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.nursemaid_jobs | |
| ADD CONSTRAINT nursemaid_jobs_trail_id_fkey FOREIGN KEY (trail_id) REFERENCES public.trails(id) NOT VALID; | |
| -- | |
| -- Name: oauth_authorization_codes oauth_authorization_codes_client_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.oauth_authorization_codes | |
| ADD CONSTRAINT oauth_authorization_codes_client_id_fkey FOREIGN KEY (client_id) REFERENCES public.oauth_clients(client_id); | |
| -- | |
| -- Name: oauth_tokens oauth_tokens_client_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.oauth_tokens | |
| ADD CONSTRAINT oauth_tokens_client_id_fkey FOREIGN KEY (client_id) REFERENCES public.oauth_clients(client_id); | |
| -- | |
| -- Name: open_threads open_threads_related_node_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.open_threads | |
| ADD CONSTRAINT open_threads_related_node_id_fkey FOREIGN KEY (related_node_id) REFERENCES public.nodes(id); | |
| -- | |
| -- Name: quick_note_segments quick_note_segments_note_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.quick_note_segments | |
| ADD CONSTRAINT quick_note_segments_note_id_fkey FOREIGN KEY (note_id) REFERENCES public.quick_note_intakes(id); | |
| -- | |
| -- Name: trail_steps trail_steps_trail_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres | |
| -- | |
| ALTER TABLE ONLY public.trail_steps | |
| ADD CONSTRAINT trail_steps_trail_id_fkey FOREIGN KEY (trail_id) REFERENCES public.trails(id) ON DELETE CASCADE; | |
| -- | |
| -- PostgreSQL database dump complete | |
| -- | |