Files
wehub-resource-sync 426e9eeabd
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
ci / test (push) Has been cancelled
ci / lint-and-format (push) Has been cancelled
ci / build (push) Has been cancelled
ci / dev-startup (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format + Type Safety Ratchet (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
Publish @elizaos/example-code / check_npm (push) Has been cancelled
Publish @elizaos/example-code / publish_npm (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
supply-chain / sbom (push) Has been cancelled
supply-chain / vulnerability-scan (push) Has been cancelled
Build, Push & Deploy to Phala Cloud / build-and-push (push) Has been cancelled
Test Packaging / Validate Packaging Configs (push) Has been cancelled
Test Packaging / Build & Test PyPI Package (push) Has been cancelled
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Has been cancelled
Test Packaging / Pack & Test JS Tarballs (push) Has been cancelled
UI Fixture E2E / ui-fixture-e2e (push) Has been cancelled
UI Fixture E2E / fixture-e2e (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Has been cancelled
Voice Benchmark Smoke / voice bench smoke summary (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

488 lines
29 KiB
SQL

CREATE TABLE "agents" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"enabled" boolean DEFAULT true NOT NULL,
"server_id" uuid,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
"name" text NOT NULL,
"username" text,
"system" text DEFAULT '',
"bio" jsonb DEFAULT '[]'::jsonb,
"message_examples" jsonb DEFAULT '[]'::jsonb NOT NULL,
"post_examples" jsonb DEFAULT '[]'::jsonb NOT NULL,
"topics" jsonb DEFAULT '[]'::jsonb NOT NULL,
"adjectives" jsonb DEFAULT '[]'::jsonb NOT NULL,
"knowledge" jsonb DEFAULT '[]'::jsonb NOT NULL,
"plugins" jsonb DEFAULT '[]'::jsonb NOT NULL,
"settings" jsonb DEFAULT '{}'::jsonb NOT NULL,
"style" jsonb DEFAULT '{}'::jsonb NOT NULL
);
--> statement-breakpoint
CREATE TABLE "approval_requests" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"state" text NOT NULL,
"requested_by" text NOT NULL,
"subject_user_id" text NOT NULL,
"action" text NOT NULL,
"payload" jsonb NOT NULL,
"channel" text NOT NULL,
"reason" text NOT NULL,
"expires_at" timestamp with time zone NOT NULL,
"resolved_at" timestamp with time zone,
"resolved_by" text,
"resolution_reason" text,
"agent_id" uuid NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "auth_audit_events" (
"id" text PRIMARY KEY NOT NULL,
"ts" bigint NOT NULL,
"actor_identity_id" text,
"ip" text,
"user_agent" text,
"action" text NOT NULL,
"outcome" text NOT NULL,
"metadata" jsonb NOT NULL
);
--> statement-breakpoint
CREATE TABLE "auth_bootstrap_jti_seen" (
"jti" text PRIMARY KEY NOT NULL,
"seen_at" bigint NOT NULL
);
--> statement-breakpoint
CREATE TABLE "auth_identities" (
"id" text PRIMARY KEY NOT NULL,
"kind" text NOT NULL,
"display_name" text NOT NULL,
"created_at" bigint NOT NULL,
"password_hash" text,
"cloud_user_id" text
);
--> statement-breakpoint
CREATE TABLE "auth_owner_bindings" (
"id" text PRIMARY KEY NOT NULL,
"identity_id" text NOT NULL,
"connector" text NOT NULL,
"external_id" text NOT NULL,
"display_handle" text NOT NULL,
"instance_id" text NOT NULL,
"verified_at" bigint NOT NULL,
"pending_code_hash" text,
"pending_expires_at" bigint
);
--> statement-breakpoint
CREATE TABLE "auth_sessions" (
"id" text PRIMARY KEY NOT NULL,
"identity_id" text NOT NULL,
"kind" text NOT NULL,
"created_at" bigint NOT NULL,
"last_seen_at" bigint NOT NULL,
"expires_at" bigint NOT NULL,
"remember_device" boolean DEFAULT false NOT NULL,
"csrf_secret" text NOT NULL,
"ip" text,
"user_agent" text,
"scopes" jsonb NOT NULL,
"revoked_at" bigint
);
--> statement-breakpoint
CREATE TABLE "cache" (
"key" text NOT NULL,
"agent_id" uuid NOT NULL,
"value" jsonb NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"expires_at" timestamp with time zone,
CONSTRAINT "cache_key_agent_id_pk" PRIMARY KEY("key","agent_id")
);
--> statement-breakpoint
CREATE TABLE "channel_participants" (
"channel_id" text NOT NULL,
"entity_id" text NOT NULL,
CONSTRAINT "channel_participants_channel_id_entity_id_pk" PRIMARY KEY("channel_id","entity_id")
);
--> statement-breakpoint
CREATE TABLE "channels" (
"id" text PRIMARY KEY NOT NULL,
"message_server_id" uuid NOT NULL,
"name" text NOT NULL,
"type" text NOT NULL,
"source_type" text,
"source_id" text,
"topic" text,
"metadata" jsonb,
"created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
"updated_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
);
--> statement-breakpoint
CREATE TABLE "components" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"entity_id" uuid NOT NULL,
"agent_id" uuid NOT NULL,
"room_id" uuid NOT NULL,
"world_id" uuid,
"source_entity_id" uuid,
"type" text NOT NULL,
"data" jsonb DEFAULT '{}'::jsonb,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "embeddings" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"memory_id" uuid,
"created_at" timestamp DEFAULT now() NOT NULL,
"dim_384" vector(384),
"dim_512" vector(512),
"dim_768" vector(768),
"dim_1024" vector(1024),
"dim_1536" vector(1536),
"dim_3072" vector(3072),
CONSTRAINT "embedding_source_check" CHECK ("memory_id" IS NOT NULL)
);
--> statement-breakpoint
CREATE TABLE "entity_identities" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"entity_id" uuid NOT NULL,
"agent_id" uuid NOT NULL,
"platform" text NOT NULL,
"handle" text NOT NULL,
"verified" boolean DEFAULT false NOT NULL,
"confidence" real DEFAULT 0 NOT NULL,
"source" text,
"first_seen" timestamp with time zone DEFAULT now() NOT NULL,
"last_seen" timestamp with time zone DEFAULT now() NOT NULL,
"evidence_message_ids" jsonb,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
CONSTRAINT "unique_entity_identity" UNIQUE("entity_id","platform","handle","agent_id")
);
--> statement-breakpoint
CREATE TABLE "entity_merge_candidates" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"agent_id" uuid NOT NULL,
"entity_a" uuid NOT NULL,
"entity_b" uuid NOT NULL,
"confidence" real DEFAULT 0 NOT NULL,
"evidence" jsonb,
"status" text DEFAULT 'pending' NOT NULL,
"proposed_at" timestamp with time zone DEFAULT now() NOT NULL,
"resolved_at" timestamp with time zone
);
--> statement-breakpoint
CREATE TABLE "entities" (
"id" uuid PRIMARY KEY NOT NULL,
"agent_id" uuid NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"names" text[] DEFAULT '{}'::text[] NOT NULL,
"metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
CONSTRAINT "id_agent_id_unique" UNIQUE("id","agent_id")
);
--> statement-breakpoint
CREATE TABLE "fact_candidates" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"agent_id" uuid NOT NULL,
"entity_id" uuid NOT NULL,
"kind" text NOT NULL,
"existing_fact_id" uuid,
"proposed_text" text NOT NULL,
"confidence" real DEFAULT 0 NOT NULL,
"evidence" jsonb,
"status" text DEFAULT 'pending' NOT NULL,
"proposed_at" timestamp with time zone DEFAULT now() NOT NULL,
"resolved_at" timestamp with time zone
);
--> statement-breakpoint
CREATE TABLE "logs" (
"id" uuid DEFAULT gen_random_uuid() NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"entity_id" uuid NOT NULL,
"body" jsonb NOT NULL,
"type" text NOT NULL,
"room_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE "long_term_memories" (
"id" uuid PRIMARY KEY NOT NULL,
"agent_id" uuid NOT NULL,
"entity_id" uuid NOT NULL,
"category" text NOT NULL,
"content" text NOT NULL,
"metadata" jsonb,
"embedding" real[],
"confidence" real DEFAULT 1,
"source" text,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
"last_accessed_at" timestamp,
"access_count" integer DEFAULT 0
);
--> statement-breakpoint
CREATE TABLE "memory_access_logs" (
"id" uuid PRIMARY KEY NOT NULL,
"memory_id" uuid NOT NULL,
"memory_type" text NOT NULL,
"agent_id" uuid NOT NULL,
"access_type" text NOT NULL,
"accessed_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "memories" (
"id" uuid PRIMARY KEY NOT NULL,
"type" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"content" jsonb NOT NULL,
"entity_id" uuid,
"agent_id" uuid NOT NULL,
"room_id" uuid,
"world_id" uuid,
"unique" boolean DEFAULT true NOT NULL,
"metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
CONSTRAINT "fragment_metadata_check" CHECK (
CASE
WHEN metadata->>'type' = 'fragment' THEN
metadata ? 'documentId' AND
metadata ? 'position'
ELSE true
END
),
CONSTRAINT "document_metadata_check" CHECK (
CASE
WHEN metadata->>'type' = 'document' THEN
metadata ? 'timestamp'
ELSE true
END
)
);
--> statement-breakpoint
CREATE TABLE "message_server_agents" (
"message_server_id" uuid NOT NULL,
"agent_id" uuid NOT NULL,
CONSTRAINT "message_server_agents_message_server_id_agent_id_pk" PRIMARY KEY("message_server_id","agent_id")
);
--> statement-breakpoint
CREATE TABLE "message_servers" (
"id" uuid PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"source_type" text NOT NULL,
"source_id" text,
"metadata" jsonb,
"created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
"updated_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
);
--> statement-breakpoint
CREATE TABLE "central_messages" (
"id" text PRIMARY KEY NOT NULL,
"channel_id" text NOT NULL,
"author_id" text NOT NULL,
"content" text NOT NULL,
"raw_message" jsonb,
"in_reply_to_root_message_id" text,
"source_type" text,
"source_id" text,
"metadata" jsonb,
"created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
"updated_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
);
--> statement-breakpoint
CREATE TABLE "pairing_allowlist" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"channel" text NOT NULL,
"sender_id" text NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"metadata" jsonb DEFAULT '{}'::jsonb,
"agent_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE "pairing_requests" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"channel" text NOT NULL,
"sender_id" text NOT NULL,
"code" text NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"last_seen_at" timestamp with time zone DEFAULT now() NOT NULL,
"metadata" jsonb DEFAULT '{}'::jsonb,
"agent_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE "participants" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"entity_id" uuid,
"room_id" uuid,
"agent_id" uuid,
"room_state" text
);
--> statement-breakpoint
CREATE TABLE "relationships" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"source_entity_id" uuid NOT NULL,
"target_entity_id" uuid NOT NULL,
"agent_id" uuid NOT NULL,
"tags" text[],
"metadata" jsonb,
CONSTRAINT "unique_relationship" UNIQUE("source_entity_id","target_entity_id","agent_id")
);
--> statement-breakpoint
CREATE TABLE "rooms" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"agent_id" uuid,
"source" text NOT NULL,
"type" text NOT NULL,
"message_server_id" uuid,
"world_id" uuid,
"name" text,
"metadata" jsonb,
"channel_id" text,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "servers" (
"id" uuid PRIMARY KEY NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "session_summaries" (
"id" uuid PRIMARY KEY NOT NULL,
"agent_id" uuid NOT NULL,
"room_id" uuid NOT NULL,
"entity_id" uuid,
"summary" text NOT NULL,
"message_count" integer NOT NULL,
"last_message_offset" integer DEFAULT 0 NOT NULL,
"start_time" timestamp NOT NULL,
"end_time" timestamp NOT NULL,
"topics" jsonb,
"metadata" jsonb,
"embedding" real[],
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "tasks" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"name" text NOT NULL,
"description" text,
"room_id" uuid,
"world_id" uuid,
"entity_id" uuid,
"agent_id" uuid NOT NULL,
"tags" text[] DEFAULT '{}'::text[],
"metadata" jsonb DEFAULT '{}'::jsonb,
"created_at" timestamp with time zone DEFAULT now(),
"updated_at" timestamp with time zone DEFAULT now()
);
--> statement-breakpoint
CREATE TABLE "worlds" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"agent_id" uuid NOT NULL,
"name" text NOT NULL,
"metadata" jsonb,
"message_server_id" uuid,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "approval_requests" ADD CONSTRAINT "approval_requests_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "auth_owner_bindings" ADD CONSTRAINT "auth_owner_bindings_identity_id_auth_identities_id_fk" FOREIGN KEY ("identity_id") REFERENCES "public"."auth_identities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "auth_owner_bindings" ADD CONSTRAINT "fk_auth_owner_bindings_identity" FOREIGN KEY ("identity_id") REFERENCES "public"."auth_identities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "auth_sessions" ADD CONSTRAINT "auth_sessions_identity_id_auth_identities_id_fk" FOREIGN KEY ("identity_id") REFERENCES "public"."auth_identities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "auth_sessions" ADD CONSTRAINT "fk_auth_sessions_identity" FOREIGN KEY ("identity_id") REFERENCES "public"."auth_identities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "cache" ADD CONSTRAINT "cache_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "channel_participants" ADD CONSTRAINT "channel_participants_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "channels" ADD CONSTRAINT "channels_message_server_id_message_servers_id_fk" FOREIGN KEY ("message_server_id") REFERENCES "public"."message_servers"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "components" ADD CONSTRAINT "components_entity_id_entities_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "components" ADD CONSTRAINT "components_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "components" ADD CONSTRAINT "components_room_id_rooms_id_fk" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "components" ADD CONSTRAINT "components_world_id_worlds_id_fk" FOREIGN KEY ("world_id") REFERENCES "public"."worlds"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "components" ADD CONSTRAINT "components_source_entity_id_entities_id_fk" FOREIGN KEY ("source_entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "embeddings" ADD CONSTRAINT "embeddings_memory_id_memories_id_fk" FOREIGN KEY ("memory_id") REFERENCES "public"."memories"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "embeddings" ADD CONSTRAINT "fk_embedding_memory" FOREIGN KEY ("memory_id") REFERENCES "public"."memories"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_identities" ADD CONSTRAINT "entity_identities_entity_id_entities_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_identities" ADD CONSTRAINT "entity_identities_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_identities" ADD CONSTRAINT "fk_entity_identities_entity" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_identities" ADD CONSTRAINT "fk_entity_identities_agent" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_merge_candidates" ADD CONSTRAINT "entity_merge_candidates_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_merge_candidates" ADD CONSTRAINT "entity_merge_candidates_entity_a_entities_id_fk" FOREIGN KEY ("entity_a") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_merge_candidates" ADD CONSTRAINT "entity_merge_candidates_entity_b_entities_id_fk" FOREIGN KEY ("entity_b") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_merge_candidates" ADD CONSTRAINT "fk_entity_merge_candidates_a" FOREIGN KEY ("entity_a") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_merge_candidates" ADD CONSTRAINT "fk_entity_merge_candidates_b" FOREIGN KEY ("entity_b") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entity_merge_candidates" ADD CONSTRAINT "fk_entity_merge_candidates_agent" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "entities" ADD CONSTRAINT "entities_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "fact_candidates" ADD CONSTRAINT "fact_candidates_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "fact_candidates" ADD CONSTRAINT "fact_candidates_entity_id_entities_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "fact_candidates" ADD CONSTRAINT "fk_fact_candidates_entity" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "fact_candidates" ADD CONSTRAINT "fk_fact_candidates_agent" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "logs" ADD CONSTRAINT "logs_entity_id_entities_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "logs" ADD CONSTRAINT "logs_room_id_rooms_id_fk" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "logs" ADD CONSTRAINT "fk_room" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "logs" ADD CONSTRAINT "fk_user" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "memories" ADD CONSTRAINT "memories_entity_id_entities_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "memories" ADD CONSTRAINT "memories_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "memories" ADD CONSTRAINT "memories_room_id_rooms_id_fk" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "memories" ADD CONSTRAINT "fk_room" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "memories" ADD CONSTRAINT "fk_user" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "memories" ADD CONSTRAINT "fk_agent" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "message_server_agents" ADD CONSTRAINT "message_server_agents_message_server_id_message_servers_id_fk" FOREIGN KEY ("message_server_id") REFERENCES "public"."message_servers"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "message_server_agents" ADD CONSTRAINT "message_server_agents_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "central_messages" ADD CONSTRAINT "central_messages_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "central_messages" ADD CONSTRAINT "central_messages_in_reply_to_root_message_id_central_messages_id_fk" FOREIGN KEY ("in_reply_to_root_message_id") REFERENCES "public"."central_messages"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "pairing_allowlist" ADD CONSTRAINT "pairing_allowlist_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "pairing_requests" ADD CONSTRAINT "pairing_requests_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "participants" ADD CONSTRAINT "participants_entity_id_entities_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "participants" ADD CONSTRAINT "participants_room_id_rooms_id_fk" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "participants" ADD CONSTRAINT "participants_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "participants" ADD CONSTRAINT "fk_room" FOREIGN KEY ("room_id") REFERENCES "public"."rooms"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "participants" ADD CONSTRAINT "fk_user" FOREIGN KEY ("entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "relationships" ADD CONSTRAINT "relationships_source_entity_id_entities_id_fk" FOREIGN KEY ("source_entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "relationships" ADD CONSTRAINT "relationships_target_entity_id_entities_id_fk" FOREIGN KEY ("target_entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "relationships" ADD CONSTRAINT "relationships_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "relationships" ADD CONSTRAINT "fk_user_a" FOREIGN KEY ("source_entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "relationships" ADD CONSTRAINT "fk_user_b" FOREIGN KEY ("target_entity_id") REFERENCES "public"."entities"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "rooms" ADD CONSTRAINT "rooms_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "tasks" ADD CONSTRAINT "tasks_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "worlds" ADD CONSTRAINT "worlds_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "approval_requests_subject_state_idx" ON "approval_requests" USING btree ("subject_user_id","state");--> statement-breakpoint
CREATE INDEX "approval_requests_agent_state_idx" ON "approval_requests" USING btree ("agent_id","state");--> statement-breakpoint
CREATE INDEX "approval_requests_state_expires_idx" ON "approval_requests" USING btree ("state","expires_at");--> statement-breakpoint
CREATE INDEX "auth_audit_events_action_idx" ON "auth_audit_events" USING btree ("action");--> statement-breakpoint
CREATE INDEX "auth_audit_events_ts_idx" ON "auth_audit_events" USING btree ("ts");--> statement-breakpoint
CREATE INDEX "auth_audit_events_actor_idx" ON "auth_audit_events" USING btree ("actor_identity_id");--> statement-breakpoint
CREATE INDEX "auth_bootstrap_jti_seen_at_idx" ON "auth_bootstrap_jti_seen" USING btree ("seen_at");--> statement-breakpoint
CREATE INDEX "auth_identities_kind_idx" ON "auth_identities" USING btree ("kind");--> statement-breakpoint
CREATE INDEX "auth_identities_cloud_user_idx" ON "auth_identities" USING btree ("cloud_user_id");--> statement-breakpoint
CREATE INDEX "auth_owner_bindings_identity_idx" ON "auth_owner_bindings" USING btree ("identity_id");--> statement-breakpoint
CREATE INDEX "auth_owner_bindings_connector_idx" ON "auth_owner_bindings" USING btree ("connector");--> statement-breakpoint
CREATE UNIQUE INDEX "auth_owner_bindings_connector_external_instance_uniq" ON "auth_owner_bindings" USING btree ("connector","external_id","instance_id");--> statement-breakpoint
CREATE INDEX "auth_sessions_identity_idx" ON "auth_sessions" USING btree ("identity_id");--> statement-breakpoint
CREATE INDEX "auth_sessions_expires_idx" ON "auth_sessions" USING btree ("expires_at");--> statement-breakpoint
CREATE INDEX "idx_embedding_memory" ON "embeddings" USING btree ("memory_id");--> statement-breakpoint
CREATE INDEX "idx_entity_identities_entity" ON "entity_identities" USING btree ("entity_id");--> statement-breakpoint
CREATE INDEX "idx_entity_identities_platform_handle" ON "entity_identities" USING btree ("platform","handle");--> statement-breakpoint
CREATE INDEX "idx_entity_merge_candidates_status" ON "entity_merge_candidates" USING btree ("status");--> statement-breakpoint
CREATE INDEX "idx_entity_merge_candidates_pair" ON "entity_merge_candidates" USING btree ("entity_a","entity_b");--> statement-breakpoint
CREATE INDEX "idx_fact_candidates_status" ON "fact_candidates" USING btree ("status");--> statement-breakpoint
CREATE INDEX "idx_fact_candidates_entity" ON "fact_candidates" USING btree ("entity_id");--> statement-breakpoint
CREATE INDEX "long_term_memories_agent_entity_idx" ON "long_term_memories" USING btree ("agent_id","entity_id");--> statement-breakpoint
CREATE INDEX "long_term_memories_category_idx" ON "long_term_memories" USING btree ("category");--> statement-breakpoint
CREATE INDEX "long_term_memories_confidence_idx" ON "long_term_memories" USING btree ("confidence");--> statement-breakpoint
CREATE INDEX "long_term_memories_created_at_idx" ON "long_term_memories" USING btree ("created_at");--> statement-breakpoint
CREATE INDEX "memory_access_logs_memory_id_idx" ON "memory_access_logs" USING btree ("memory_id");--> statement-breakpoint
CREATE INDEX "memory_access_logs_agent_id_idx" ON "memory_access_logs" USING btree ("agent_id");--> statement-breakpoint
CREATE INDEX "memory_access_logs_accessed_at_idx" ON "memory_access_logs" USING btree ("accessed_at");--> statement-breakpoint
CREATE INDEX "idx_memories_type_room" ON "memories" USING btree ("type","room_id");--> statement-breakpoint
CREATE INDEX "idx_memories_world_id" ON "memories" USING btree ("world_id");--> statement-breakpoint
CREATE INDEX "idx_memories_metadata_type" ON "memories" USING btree (((metadata->>'type')));--> statement-breakpoint
CREATE INDEX "idx_memories_document_id" ON "memories" USING btree (((metadata->>'documentId')));--> statement-breakpoint
CREATE INDEX "idx_fragments_order" ON "memories" USING btree (((metadata->>'documentId')),((metadata->>'position')));--> statement-breakpoint
CREATE INDEX "pairing_allowlist_channel_agent_idx" ON "pairing_allowlist" USING btree ("channel","agent_id");--> statement-breakpoint
CREATE UNIQUE INDEX "pairing_allowlist_sender_channel_agent_idx" ON "pairing_allowlist" USING btree ("sender_id","channel","agent_id");--> statement-breakpoint
CREATE INDEX "pairing_requests_channel_agent_idx" ON "pairing_requests" USING btree ("channel","agent_id");--> statement-breakpoint
CREATE UNIQUE INDEX "pairing_requests_code_channel_agent_idx" ON "pairing_requests" USING btree ("code","channel","agent_id");--> statement-breakpoint
CREATE UNIQUE INDEX "pairing_requests_sender_channel_agent_idx" ON "pairing_requests" USING btree ("sender_id","channel","agent_id");--> statement-breakpoint
CREATE INDEX "idx_participants_user" ON "participants" USING btree ("entity_id");--> statement-breakpoint
CREATE INDEX "idx_participants_room" ON "participants" USING btree ("room_id");--> statement-breakpoint
CREATE INDEX "idx_relationships_users" ON "relationships" USING btree ("source_entity_id","target_entity_id");--> statement-breakpoint
CREATE INDEX "session_summaries_agent_room_idx" ON "session_summaries" USING btree ("agent_id","room_id");--> statement-breakpoint
CREATE INDEX "session_summaries_entity_idx" ON "session_summaries" USING btree ("entity_id");--> statement-breakpoint
CREATE INDEX "session_summaries_start_time_idx" ON "session_summaries" USING btree ("start_time");