from __future__ import annotations import sqlalchemy as sa runtime_metadata = sa.MetaData() runtime_registrations = sa.Table( "runtime_registrations", runtime_metadata, sa.Column("hub_slug", sa.String(120), primary_key=True), sa.Column("package", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False), ) runtime_messages = sa.Table( "runtime_messages", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("schema_version", sa.String(40), nullable=False), sa.Column("correlation_id", sa.String(36), nullable=False, index=True), sa.Column("conversation_id", sa.String(36), nullable=True, index=True), sa.Column("from_address", sa.String(240), nullable=False), sa.Column("to_addresses", sa.JSON(), nullable=False), sa.Column("body", sa.Text(), nullable=False), sa.Column("subject_refs", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False, index=True), ) def _event_table(name: str) -> sa.Table: return sa.Table( name, runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("schema_version", sa.String(40), nullable=False), sa.Column("correlation_id", sa.String(36), nullable=False, index=True), sa.Column("event_type", sa.String(160), nullable=False, index=True), sa.Column("occurred_at", sa.DateTime(timezone=True), nullable=False), sa.Column("subject_refs", sa.JSON(), nullable=False), sa.Column("payload", sa.JSON(), nullable=False), sa.Column("recorded_at", sa.DateTime(timezone=True), nullable=False, index=True), ) runtime_progress_events = _event_table("runtime_progress_events") runtime_interaction_events = _event_table("runtime_interaction_events") runtime_audit_ledger = sa.Table( "runtime_audit_ledger", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("action", sa.String(120), nullable=False, index=True), sa.Column("subject_type", sa.String(80), nullable=False), sa.Column("subject_id", sa.String(240), nullable=False, index=True), sa.Column("correlation_id", sa.String(36), nullable=True, index=True), sa.Column("payload_hash", sa.String(64), nullable=False), sa.Column("detail", sa.JSON(), nullable=False), sa.Column("recorded_at", sa.DateTime(timezone=True), nullable=False, index=True), ) compat_hubs = sa.Table( "compat_hubs", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("slug", sa.String(120), nullable=False, unique=True, index=True), sa.Column("name", sa.String(240), nullable=False), sa.Column("domain", sa.String(240), nullable=True), sa.Column("hub_kind", sa.String(80), nullable=True), sa.Column("hub_family", sa.String(80), nullable=True), sa.Column("vsm_function", sa.String(80), nullable=True), sa.Column("vsm_system", sa.String(80), nullable=True), sa.Column("status", sa.String(40), nullable=False), sa.Column("description", sa.Text(), nullable=True), sa.Column("body", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False), ) compat_manifests = sa.Table( "compat_manifests", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("hub_id", sa.String(36), sa.ForeignKey("compat_hubs.id"), nullable=True, index=True), sa.Column("hub_slug", sa.String(120), nullable=True, index=True), sa.Column("manifest_version", sa.String(40), nullable=False), sa.Column("status", sa.String(40), nullable=False), sa.Column("body", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False), ) compat_api_consumers = sa.Table( "compat_api_consumers", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("slug", sa.String(120), nullable=True, unique=True, index=True), sa.Column("name", sa.String(240), nullable=False, index=True), sa.Column("description", sa.Text(), nullable=True), sa.Column("hub_capability_manifest_id", sa.String(36), nullable=True, index=True), sa.Column("rate_limit_per_minute", sa.Integer(), nullable=True), sa.Column("quota_per_day", sa.Integer(), nullable=True), sa.Column("key_prefix", sa.String(32), nullable=True), sa.Column("status", sa.String(40), nullable=False), sa.Column("body", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), ) compat_api_keys = sa.Table( "compat_api_keys", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column( "api_consumer_id", sa.String(36), sa.ForeignKey("compat_api_consumers.id"), nullable=False, index=True, ), sa.Column("key_prefix", sa.String(32), nullable=False, index=True), sa.Column("key_hash", sa.String(64), nullable=False, unique=True), sa.Column("scopes", sa.Text(), nullable=True), sa.Column("status", sa.String(40), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), ) compat_widgets = sa.Table( "compat_widgets", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("hub_id", sa.String(36), sa.ForeignKey("compat_hubs.id"), nullable=False, index=True), sa.Column("name", sa.String(240), nullable=False), sa.Column("widget_type", sa.String(120), nullable=True, index=True), sa.Column("capability_ref", sa.String(240), nullable=True, index=True), sa.Column("view_context", sa.String(500), nullable=True), sa.Column("policy_scope", sa.String(120), nullable=True), sa.Column("status", sa.String(40), nullable=False), sa.Column("body", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), ) compat_migration_runs = sa.Table( "compat_migration_runs", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("source", sa.String(120), nullable=False, index=True), sa.Column("schema_version", sa.String(80), nullable=False), sa.Column("bundle_sha256", sa.String(64), nullable=False, index=True), sa.Column("dry_run", sa.Boolean(), nullable=False), sa.Column("status", sa.String(40), nullable=False), sa.Column("counts", sa.JSON(), nullable=False), sa.Column("diagnostics", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), ) runtime_import_runs = sa.Table( "runtime_import_runs", runtime_metadata, sa.Column("id", sa.String(36), primary_key=True), sa.Column("source", sa.String(120), nullable=False, index=True), sa.Column("schema_version", sa.String(80), nullable=False), sa.Column("bundle_sha256", sa.String(64), nullable=False, unique=True, index=True), sa.Column("high_water_mark", sa.String(200), nullable=True), sa.Column("counts", sa.JSON(), nullable=False), sa.Column("content_hashes", sa.JSON(), nullable=False), sa.Column("status", sa.String(40), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), )