migrate

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// WithGlobalUniqueID sets the universal ids options to the migration.
	// If this option is enabled, ent migration will allocate a 1<<32 range
	// for the ids of each entity (table).
	// Note that this option cannot be applied on tables that already exist.
	WithGlobalUniqueID = schema.WithGlobalUniqueID
	// WithDropColumn sets the drop column option to the migration.
	// If this option is enabled, ent migration will drop old columns
	// that were used for both fields and edges. This defaults to false.
	WithDropColumn = schema.WithDropColumn
	// WithDropIndex sets the drop index option to the migration.
	// If this option is enabled, ent migration will drop old indexes
	// that were defined in the schema. This defaults to false.
	// Note that unique constraints are defined using `UNIQUE INDEX`,
	// and therefore, it's recommended to enable this option to get more
	// flexibility in the schema changes.
	WithDropIndex = schema.WithDropIndex
	// WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true.
	WithForeignKeys = schema.WithForeignKeys
)
View Source
var (
	// ActionLogsColumns holds the columns for the "action_logs" table.
	ActionLogsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "action_name", Type: field.TypeString},
		{Name: "principal", Type: field.TypeString},
		{Name: "params", Type: field.TypeJSON, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"started", "completed", "failed", "compensated"}, Default: "started"},
		{Name: "effects", Type: field.TypeJSON, Nullable: true},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "started_at", Type: field.TypeTime},
		{Name: "completed_at", Type: field.TypeTime, Nullable: true},
	}
	// ActionLogsTable holds the schema information for the "action_logs" table.
	ActionLogsTable = &schema.Table{
		Name:       "action_logs",
		Columns:    ActionLogsColumns,
		PrimaryKey: []*schema.Column{ActionLogsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "actionlog_action_name",
				Unique:  false,
				Columns: []*schema.Column{ActionLogsColumns[1]},
			},
			{
				Name:    "actionlog_principal",
				Unique:  false,
				Columns: []*schema.Column{ActionLogsColumns[2]},
			},
			{
				Name:    "actionlog_status",
				Unique:  false,
				Columns: []*schema.Column{ActionLogsColumns[4]},
			},
			{
				Name:    "actionlog_started_at",
				Unique:  false,
				Columns: []*schema.Column{ActionLogsColumns[7]},
			},
		},
	}
	// AgentMemoriesColumns holds the columns for the "agent_memories" table.
	AgentMemoriesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "agent_name", Type: field.TypeString},
		{Name: "scope", Type: field.TypeEnum, Enums: []string{"instance", "global"}},
		{Name: "kind", Type: field.TypeEnum, Enums: []string{"pattern", "preference", "fact", "skill"}},
		{Name: "key", Type: field.TypeString},
		{Name: "content", Type: field.TypeString, Size: 2147483647},
		{Name: "confidence", Type: field.TypeFloat64, Default: 0.5},
		{Name: "use_count", Type: field.TypeInt, Default: 0},
		{Name: "tags", Type: field.TypeJSON, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// AgentMemoriesTable holds the schema information for the "agent_memories" table.
	AgentMemoriesTable = &schema.Table{
		Name:       "agent_memories",
		Columns:    AgentMemoriesColumns,
		PrimaryKey: []*schema.Column{AgentMemoriesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "agentmemory_agent_name_key",
				Unique:  true,
				Columns: []*schema.Column{AgentMemoriesColumns[1], AgentMemoriesColumns[4]},
			},
			{
				Name:    "agentmemory_agent_name",
				Unique:  false,
				Columns: []*schema.Column{AgentMemoriesColumns[1]},
			},
			{
				Name:    "agentmemory_scope",
				Unique:  false,
				Columns: []*schema.Column{AgentMemoriesColumns[2]},
			},
			{
				Name:    "agentmemory_kind",
				Unique:  false,
				Columns: []*schema.Column{AgentMemoriesColumns[3]},
			},
			{
				Name:    "agentmemory_confidence",
				Unique:  false,
				Columns: []*schema.Column{AgentMemoriesColumns[6]},
			},
		},
	}
	// AuditLogsColumns holds the columns for the "audit_logs" table.
	AuditLogsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString, Nullable: true},
		{Name: "action", Type: field.TypeEnum, Enums: []string{"tool_call", "knowledge_save", "learning_save", "skill_create", "skill_execute", "skill_import", "skill_import_bulk", "knowledge_search", "approval_request", "approval_response", "policy_decision", "alert", "sandbox_decision"}},
		{Name: "actor", Type: field.TypeString},
		{Name: "target", Type: field.TypeString, Nullable: true},
		{Name: "details", Type: field.TypeJSON, Nullable: true},
		{Name: "timestamp", Type: field.TypeTime},
	}
	// AuditLogsTable holds the schema information for the "audit_logs" table.
	AuditLogsTable = &schema.Table{
		Name:       "audit_logs",
		Columns:    AuditLogsColumns,
		PrimaryKey: []*schema.Column{AuditLogsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "auditlog_session_key",
				Unique:  false,
				Columns: []*schema.Column{AuditLogsColumns[1]},
			},
			{
				Name:    "auditlog_action",
				Unique:  false,
				Columns: []*schema.Column{AuditLogsColumns[2]},
			},
			{
				Name:    "auditlog_timestamp",
				Unique:  false,
				Columns: []*schema.Column{AuditLogsColumns[6]},
			},
		},
	}
	// ConfigProfilesColumns holds the columns for the "config_profiles" table.
	ConfigProfilesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "encrypted_data", Type: field.TypeBytes},
		{Name: "active", Type: field.TypeBool, Default: false},
		{Name: "version", Type: field.TypeInt, Default: 1},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// ConfigProfilesTable holds the schema information for the "config_profiles" table.
	ConfigProfilesTable = &schema.Table{
		Name:       "config_profiles",
		Columns:    ConfigProfilesColumns,
		PrimaryKey: []*schema.Column{ConfigProfilesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "configprofile_name",
				Unique:  false,
				Columns: []*schema.Column{ConfigProfilesColumns[1]},
			},
			{
				Name:    "configprofile_active",
				Unique:  false,
				Columns: []*schema.Column{ConfigProfilesColumns[3]},
			},
		},
	}
	// CronJobsColumns holds the columns for the "cron_jobs" table.
	CronJobsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "schedule_type", Type: field.TypeEnum, Enums: []string{"at", "every", "cron"}},
		{Name: "schedule", Type: field.TypeString},
		{Name: "prompt", Type: field.TypeString, Size: 2147483647},
		{Name: "session_mode", Type: field.TypeString, Default: "isolated"},
		{Name: "deliver_to", Type: field.TypeJSON, Nullable: true},
		{Name: "timezone", Type: field.TypeString, Default: "UTC"},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "timeout_ms", Type: field.TypeInt64, Nullable: true},
		{Name: "last_run_at", Type: field.TypeTime, Nullable: true},
		{Name: "next_run_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// CronJobsTable holds the schema information for the "cron_jobs" table.
	CronJobsTable = &schema.Table{
		Name:       "cron_jobs",
		Columns:    CronJobsColumns,
		PrimaryKey: []*schema.Column{CronJobsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "cronjob_enabled",
				Unique:  false,
				Columns: []*schema.Column{CronJobsColumns[8]},
			},
			{
				Name:    "cronjob_next_run_at",
				Unique:  false,
				Columns: []*schema.Column{CronJobsColumns[11]},
			},
		},
	}
	// CronJobHistoriesColumns holds the columns for the "cron_job_histories" table.
	CronJobHistoriesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "job_id", Type: field.TypeUUID},
		{Name: "job_name", Type: field.TypeString},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"running", "completed", "failed"}, Default: "running"},
		{Name: "prompt", Type: field.TypeString, Size: 2147483647},
		{Name: "result", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "tokens_used", Type: field.TypeInt, Default: 0},
		{Name: "started_at", Type: field.TypeTime},
		{Name: "completed_at", Type: field.TypeTime, Nullable: true},
	}
	// CronJobHistoriesTable holds the schema information for the "cron_job_histories" table.
	CronJobHistoriesTable = &schema.Table{
		Name:       "cron_job_histories",
		Columns:    CronJobHistoriesColumns,
		PrimaryKey: []*schema.Column{CronJobHistoriesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "cronjobhistory_job_id",
				Unique:  false,
				Columns: []*schema.Column{CronJobHistoriesColumns[1]},
			},
			{
				Name:    "cronjobhistory_status",
				Unique:  false,
				Columns: []*schema.Column{CronJobHistoriesColumns[3]},
			},
			{
				Name:    "cronjobhistory_started_at",
				Unique:  false,
				Columns: []*schema.Column{CronJobHistoriesColumns[8]},
			},
		},
	}
	// EntityAliasColumns holds the columns for the "entity_alias" table.
	EntityAliasColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "raw_id", Type: field.TypeString, Unique: true},
		{Name: "canonical_id", Type: field.TypeString},
		{Name: "source", Type: field.TypeString, Default: "manual"},
		{Name: "created_at", Type: field.TypeTime},
	}
	// EntityAliasTable holds the schema information for the "entity_alias" table.
	EntityAliasTable = &schema.Table{
		Name:       "entity_alias",
		Columns:    EntityAliasColumns,
		PrimaryKey: []*schema.Column{EntityAliasColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "entityalias_canonical_id",
				Unique:  false,
				Columns: []*schema.Column{EntityAliasColumns[2]},
			},
		},
	}
	// EntityPropertiesColumns holds the columns for the "entity_properties" table.
	EntityPropertiesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "entity_id", Type: field.TypeString},
		{Name: "entity_type", Type: field.TypeString},
		{Name: "property", Type: field.TypeString},
		{Name: "value", Type: field.TypeString, Size: 2147483647},
		{Name: "value_type", Type: field.TypeString, Default: "string"},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// EntityPropertiesTable holds the schema information for the "entity_properties" table.
	EntityPropertiesTable = &schema.Table{
		Name:       "entity_properties",
		Columns:    EntityPropertiesColumns,
		PrimaryKey: []*schema.Column{EntityPropertiesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "entityproperty_entity_id_property",
				Unique:  true,
				Columns: []*schema.Column{EntityPropertiesColumns[1], EntityPropertiesColumns[3]},
			},
			{
				Name:    "entityproperty_entity_type_property_value",
				Unique:  false,
				Columns: []*schema.Column{EntityPropertiesColumns[2], EntityPropertiesColumns[3], EntityPropertiesColumns[4]},
			},
			{
				Name:    "entityproperty_entity_type",
				Unique:  false,
				Columns: []*schema.Column{EntityPropertiesColumns[2]},
			},
		},
	}
	// EscrowDealsColumns holds the columns for the "escrow_deals" table.
	EscrowDealsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "escrow_id", Type: field.TypeString, Unique: true},
		{Name: "buyer_did", Type: field.TypeString},
		{Name: "seller_did", Type: field.TypeString},
		{Name: "total_amount", Type: field.TypeString},
		{Name: "status", Type: field.TypeString, Default: "pending"},
		{Name: "milestones", Type: field.TypeBytes, Nullable: true},
		{Name: "task_id", Type: field.TypeString, Nullable: true},
		{Name: "reason", Type: field.TypeString, Nullable: true},
		{Name: "dispute_note", Type: field.TypeString, Nullable: true},
		{Name: "chain_id", Type: field.TypeInt64, Nullable: true, Default: 0},
		{Name: "hub_address", Type: field.TypeString, Nullable: true},
		{Name: "on_chain_deal_id", Type: field.TypeString, Nullable: true},
		{Name: "deposit_tx_hash", Type: field.TypeString, Nullable: true},
		{Name: "release_tx_hash", Type: field.TypeString, Nullable: true},
		{Name: "refund_tx_hash", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
		{Name: "expires_at", Type: field.TypeTime},
	}
	// EscrowDealsTable holds the schema information for the "escrow_deals" table.
	EscrowDealsTable = &schema.Table{
		Name:       "escrow_deals",
		Columns:    EscrowDealsColumns,
		PrimaryKey: []*schema.Column{EscrowDealsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "escrowdeal_buyer_did",
				Unique:  false,
				Columns: []*schema.Column{EscrowDealsColumns[2]},
			},
			{
				Name:    "escrowdeal_seller_did",
				Unique:  false,
				Columns: []*schema.Column{EscrowDealsColumns[3]},
			},
			{
				Name:    "escrowdeal_status",
				Unique:  false,
				Columns: []*schema.Column{EscrowDealsColumns[5]},
			},
			{
				Name:    "escrowdeal_on_chain_deal_id",
				Unique:  false,
				Columns: []*schema.Column{EscrowDealsColumns[12]},
			},
		},
	}
	// ExternalRefsColumns holds the columns for the "external_refs" table.
	ExternalRefsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "ref_type", Type: field.TypeEnum, Enums: []string{"url", "file", "mcp"}},
		{Name: "location", Type: field.TypeString},
		{Name: "summary", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "metadata", Type: field.TypeJSON, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// ExternalRefsTable holds the schema information for the "external_refs" table.
	ExternalRefsTable = &schema.Table{
		Name:       "external_refs",
		Columns:    ExternalRefsColumns,
		PrimaryKey: []*schema.Column{ExternalRefsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "externalref_ref_type",
				Unique:  false,
				Columns: []*schema.Column{ExternalRefsColumns[2]},
			},
		},
	}
	// InquiriesColumns holds the columns for the "inquiries" table.
	InquiriesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString},
		{Name: "topic", Type: field.TypeString},
		{Name: "question", Type: field.TypeString, Size: 2147483647},
		{Name: "context", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "priority", Type: field.TypeEnum, Enums: []string{"low", "medium", "high"}, Default: "medium"},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "resolved", "dismissed"}, Default: "pending"},
		{Name: "answer", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "knowledge_key", Type: field.TypeString, Nullable: true},
		{Name: "source_observation_id", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "resolved_at", Type: field.TypeTime, Nullable: true},
	}
	// InquiriesTable holds the schema information for the "inquiries" table.
	InquiriesTable = &schema.Table{
		Name:       "inquiries",
		Columns:    InquiriesColumns,
		PrimaryKey: []*schema.Column{InquiriesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "inquiry_session_key_status",
				Unique:  false,
				Columns: []*schema.Column{InquiriesColumns[1], InquiriesColumns[6]},
			},
			{
				Name:    "inquiry_status",
				Unique:  false,
				Columns: []*schema.Column{InquiriesColumns[6]},
			},
		},
	}
	// KeysColumns holds the columns for the "keys" table.
	KeysColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "remote_key_id", Type: field.TypeString},
		{Name: "type", Type: field.TypeEnum, Enums: []string{"encryption", "signing"}, Default: "encryption"},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "last_used_at", Type: field.TypeTime, Nullable: true},
	}
	// KeysTable holds the schema information for the "keys" table.
	KeysTable = &schema.Table{
		Name:       "keys",
		Columns:    KeysColumns,
		PrimaryKey: []*schema.Column{KeysColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "key_name",
				Unique:  false,
				Columns: []*schema.Column{KeysColumns[1]},
			},
			{
				Name:    "key_type",
				Unique:  false,
				Columns: []*schema.Column{KeysColumns[3]},
			},
		},
	}
	// KnowledgesColumns holds the columns for the "knowledges" table.
	KnowledgesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "key", Type: field.TypeString},
		{Name: "category", Type: field.TypeEnum, Enums: []string{"rule", "definition", "preference", "fact", "pattern", "correction"}},
		{Name: "content", Type: field.TypeString, Size: 2147483647},
		{Name: "tags", Type: field.TypeJSON, Nullable: true},
		{Name: "source", Type: field.TypeString, Nullable: true},
		{Name: "version", Type: field.TypeInt, Default: 1},
		{Name: "is_latest", Type: field.TypeBool, Default: true},
		{Name: "use_count", Type: field.TypeInt, Default: 0},
		{Name: "relevance_score", Type: field.TypeFloat64, Default: 1},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// KnowledgesTable holds the schema information for the "knowledges" table.
	KnowledgesTable = &schema.Table{
		Name:       "knowledges",
		Columns:    KnowledgesColumns,
		PrimaryKey: []*schema.Column{KnowledgesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "knowledge_key_version",
				Unique:  true,
				Columns: []*schema.Column{KnowledgesColumns[1], KnowledgesColumns[6]},
			},
			{
				Name:    "knowledge_key_is_latest",
				Unique:  false,
				Columns: []*schema.Column{KnowledgesColumns[1], KnowledgesColumns[7]},
			},
			{
				Name:    "knowledge_category",
				Unique:  false,
				Columns: []*schema.Column{KnowledgesColumns[2]},
			},
		},
	}
	// LearningsColumns holds the columns for the "learnings" table.
	LearningsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "trigger", Type: field.TypeString},
		{Name: "error_pattern", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "diagnosis", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "fix", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "category", Type: field.TypeEnum, Enums: []string{"tool_error", "provider_error", "user_correction", "timeout", "permission", "general"}},
		{Name: "tags", Type: field.TypeJSON, Nullable: true},
		{Name: "occurrence_count", Type: field.TypeInt, Default: 1},
		{Name: "success_count", Type: field.TypeInt, Default: 0},
		{Name: "confidence", Type: field.TypeFloat64, Default: 0.5},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// LearningsTable holds the schema information for the "learnings" table.
	LearningsTable = &schema.Table{
		Name:       "learnings",
		Columns:    LearningsColumns,
		PrimaryKey: []*schema.Column{LearningsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "learning_category",
				Unique:  false,
				Columns: []*schema.Column{LearningsColumns[5]},
			},
			{
				Name:    "learning_confidence",
				Unique:  false,
				Columns: []*schema.Column{LearningsColumns[9]},
			},
		},
	}
	// MessagesColumns holds the columns for the "messages" table.
	MessagesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "role", Type: field.TypeString},
		{Name: "content", Type: field.TypeString, Size: 2147483647},
		{Name: "timestamp", Type: field.TypeTime},
		{Name: "tool_calls", Type: field.TypeJSON, Nullable: true},
		{Name: "author", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "session_messages", Type: field.TypeInt, Nullable: true},
	}
	// MessagesTable holds the schema information for the "messages" table.
	MessagesTable = &schema.Table{
		Name:       "messages",
		Columns:    MessagesColumns,
		PrimaryKey: []*schema.Column{MessagesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "messages_sessions_messages",
				Columns:    []*schema.Column{MessagesColumns[6]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.SetNull,
			},
		},
	}
	// ObservationsColumns holds the columns for the "observations" table.
	ObservationsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString},
		{Name: "content", Type: field.TypeString, Size: 2147483647},
		{Name: "token_count", Type: field.TypeInt, Default: 0},
		{Name: "source_start_index", Type: field.TypeInt, Default: 0},
		{Name: "source_end_index", Type: field.TypeInt, Default: 0},
		{Name: "created_at", Type: field.TypeTime},
	}
	// ObservationsTable holds the schema information for the "observations" table.
	ObservationsTable = &schema.Table{
		Name:       "observations",
		Columns:    ObservationsColumns,
		PrimaryKey: []*schema.Column{ObservationsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "observation_session_key",
				Unique:  false,
				Columns: []*schema.Column{ObservationsColumns[1]},
			},
			{
				Name:    "observation_created_at",
				Unique:  false,
				Columns: []*schema.Column{ObservationsColumns[6]},
			},
		},
	}
	// OntologyConflictsColumns holds the columns for the "ontology_conflicts" table.
	OntologyConflictsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "subject", Type: field.TypeString},
		{Name: "predicate", Type: field.TypeString},
		{Name: "candidates", Type: field.TypeJSON, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"open", "resolved", "auto_resolved"}, Default: "open"},
		{Name: "resolution", Type: field.TypeString, Nullable: true},
		{Name: "resolved_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
	}
	// OntologyConflictsTable holds the schema information for the "ontology_conflicts" table.
	OntologyConflictsTable = &schema.Table{
		Name:       "ontology_conflicts",
		Columns:    OntologyConflictsColumns,
		PrimaryKey: []*schema.Column{OntologyConflictsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "ontologyconflict_subject_predicate",
				Unique:  false,
				Columns: []*schema.Column{OntologyConflictsColumns[1], OntologyConflictsColumns[2]},
			},
			{
				Name:    "ontologyconflict_status",
				Unique:  false,
				Columns: []*schema.Column{OntologyConflictsColumns[4]},
			},
			{
				Name:    "ontologyconflict_created_at",
				Unique:  false,
				Columns: []*schema.Column{OntologyConflictsColumns[7]},
			},
		},
	}
	// OntologyPredicatesColumns holds the columns for the "ontology_predicates" table.
	OntologyPredicatesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "description", Type: field.TypeString, Default: ""},
		{Name: "source_types", Type: field.TypeJSON, Nullable: true},
		{Name: "target_types", Type: field.TypeJSON, Nullable: true},
		{Name: "cardinality", Type: field.TypeEnum, Enums: []string{"one_to_one", "one_to_many", "many_to_one", "many_to_many"}, Default: "many_to_many"},
		{Name: "inverse", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"proposed", "quarantined", "shadow", "active", "deprecated"}, Default: "active"},
		{Name: "version", Type: field.TypeInt, Default: 1},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// OntologyPredicatesTable holds the schema information for the "ontology_predicates" table.
	OntologyPredicatesTable = &schema.Table{
		Name:       "ontology_predicates",
		Columns:    OntologyPredicatesColumns,
		PrimaryKey: []*schema.Column{OntologyPredicatesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "ontologypredicate_status",
				Unique:  false,
				Columns: []*schema.Column{OntologyPredicatesColumns[7]},
			},
		},
	}
	// OntologyTypesColumns holds the columns for the "ontology_types" table.
	OntologyTypesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "description", Type: field.TypeString, Default: ""},
		{Name: "properties", Type: field.TypeJSON, Nullable: true},
		{Name: "extends", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"proposed", "quarantined", "shadow", "active", "deprecated"}, Default: "active"},
		{Name: "version", Type: field.TypeInt, Default: 1},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// OntologyTypesTable holds the schema information for the "ontology_types" table.
	OntologyTypesTable = &schema.Table{
		Name:       "ontology_types",
		Columns:    OntologyTypesColumns,
		PrimaryKey: []*schema.Column{OntologyTypesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "ontologytype_status",
				Unique:  false,
				Columns: []*schema.Column{OntologyTypesColumns[5]},
			},
		},
	}
	// PaymentTxesColumns holds the columns for the "payment_txes" table.
	PaymentTxesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "tx_hash", Type: field.TypeString, Nullable: true},
		{Name: "from_address", Type: field.TypeString},
		{Name: "to_address", Type: field.TypeString},
		{Name: "amount", Type: field.TypeString},
		{Name: "chain_id", Type: field.TypeInt64},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "submitted", "confirmed", "failed"}, Default: "pending"},
		{Name: "session_key", Type: field.TypeString, Nullable: true},
		{Name: "purpose", Type: field.TypeString, Nullable: true},
		{Name: "x402_url", Type: field.TypeString, Nullable: true},
		{Name: "payment_method", Type: field.TypeEnum, Enums: []string{"direct_transfer", "x402_v2", "p2p_settlement"}, Default: "direct_transfer"},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// PaymentTxesTable holds the schema information for the "payment_txes" table.
	PaymentTxesTable = &schema.Table{
		Name:       "payment_txes",
		Columns:    PaymentTxesColumns,
		PrimaryKey: []*schema.Column{PaymentTxesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "paymenttx_tx_hash",
				Unique:  false,
				Columns: []*schema.Column{PaymentTxesColumns[1]},
			},
			{
				Name:    "paymenttx_from_address",
				Unique:  false,
				Columns: []*schema.Column{PaymentTxesColumns[2]},
			},
			{
				Name:    "paymenttx_status",
				Unique:  false,
				Columns: []*schema.Column{PaymentTxesColumns[6]},
			},
			{
				Name:    "paymenttx_created_at",
				Unique:  false,
				Columns: []*schema.Column{PaymentTxesColumns[12]},
			},
			{
				Name:    "paymenttx_session_key",
				Unique:  false,
				Columns: []*schema.Column{PaymentTxesColumns[7]},
			},
		},
	}
	// PeerReputationsColumns holds the columns for the "peer_reputations" table.
	PeerReputationsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "peer_did", Type: field.TypeString, Unique: true},
		{Name: "successful_exchanges", Type: field.TypeInt, Default: 0},
		{Name: "failed_exchanges", Type: field.TypeInt, Default: 0},
		{Name: "timeout_count", Type: field.TypeInt, Default: 0},
		{Name: "trust_score", Type: field.TypeFloat64, Default: 0},
		{Name: "first_seen", Type: field.TypeTime},
		{Name: "last_interaction", Type: field.TypeTime},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// PeerReputationsTable holds the schema information for the "peer_reputations" table.
	PeerReputationsTable = &schema.Table{
		Name:       "peer_reputations",
		Columns:    PeerReputationsColumns,
		PrimaryKey: []*schema.Column{PeerReputationsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "peerreputation_trust_score",
				Unique:  false,
				Columns: []*schema.Column{PeerReputationsColumns[5]},
			},
			{
				Name:    "peerreputation_last_interaction",
				Unique:  false,
				Columns: []*schema.Column{PeerReputationsColumns[7]},
			},
		},
	}
	// ProvenanceAttributionsColumns holds the columns for the "provenance_attributions" table.
	ProvenanceAttributionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString},
		{Name: "run_id", Type: field.TypeString, Nullable: true},
		{Name: "workspace_id", Type: field.TypeString, Nullable: true},
		{Name: "author_type", Type: field.TypeString},
		{Name: "author_id", Type: field.TypeString},
		{Name: "file_path", Type: field.TypeString, Nullable: true},
		{Name: "commit_hash", Type: field.TypeString, Nullable: true},
		{Name: "step_id", Type: field.TypeString, Nullable: true},
		{Name: "source", Type: field.TypeString},
		{Name: "lines_added", Type: field.TypeInt, Default: 0},
		{Name: "lines_removed", Type: field.TypeInt, Default: 0},
		{Name: "created_at", Type: field.TypeTime},
	}
	// ProvenanceAttributionsTable holds the schema information for the "provenance_attributions" table.
	ProvenanceAttributionsTable = &schema.Table{
		Name:       "provenance_attributions",
		Columns:    ProvenanceAttributionsColumns,
		PrimaryKey: []*schema.Column{ProvenanceAttributionsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "provenanceattribution_session_key",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[1]},
			},
			{
				Name:    "provenanceattribution_workspace_id",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[3]},
			},
			{
				Name:    "provenanceattribution_run_id",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[2]},
			},
			{
				Name:    "provenanceattribution_author_id",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[5]},
			},
			{
				Name:    "provenanceattribution_commit_hash",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[7]},
			},
			{
				Name:    "provenanceattribution_file_path",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[6]},
			},
			{
				Name:    "provenanceattribution_created_at",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceAttributionsColumns[12]},
			},
		},
	}
	// ProvenanceCheckpointsColumns holds the columns for the "provenance_checkpoints" table.
	ProvenanceCheckpointsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString, Nullable: true},
		{Name: "run_id", Type: field.TypeString, Nullable: true},
		{Name: "label", Type: field.TypeString},
		{Name: "trigger", Type: field.TypeEnum, Enums: []string{"manual", "step_complete", "policy_applied"}},
		{Name: "journal_seq", Type: field.TypeInt64, Default: 0},
		{Name: "git_ref", Type: field.TypeString, Nullable: true},
		{Name: "metadata", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "created_at", Type: field.TypeTime},
	}
	// ProvenanceCheckpointsTable holds the schema information for the "provenance_checkpoints" table.
	ProvenanceCheckpointsTable = &schema.Table{
		Name:       "provenance_checkpoints",
		Columns:    ProvenanceCheckpointsColumns,
		PrimaryKey: []*schema.Column{ProvenanceCheckpointsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "provenancecheckpoint_session_key",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceCheckpointsColumns[1]},
			},
			{
				Name:    "provenancecheckpoint_run_id",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceCheckpointsColumns[2]},
			},
			{
				Name:    "provenancecheckpoint_trigger",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceCheckpointsColumns[4]},
			},
			{
				Name:    "provenancecheckpoint_created_at",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceCheckpointsColumns[8]},
			},
			{
				Name:    "provenancecheckpoint_run_id_journal_seq",
				Unique:  false,
				Columns: []*schema.Column{ProvenanceCheckpointsColumns[2], ProvenanceCheckpointsColumns[5]},
			},
		},
	}
	// ReflectionsColumns holds the columns for the "reflections" table.
	ReflectionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString},
		{Name: "content", Type: field.TypeString, Size: 2147483647},
		{Name: "token_count", Type: field.TypeInt, Default: 0},
		{Name: "generation", Type: field.TypeInt, Default: 1},
		{Name: "created_at", Type: field.TypeTime},
	}
	// ReflectionsTable holds the schema information for the "reflections" table.
	ReflectionsTable = &schema.Table{
		Name:       "reflections",
		Columns:    ReflectionsColumns,
		PrimaryKey: []*schema.Column{ReflectionsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "reflection_session_key",
				Unique:  false,
				Columns: []*schema.Column{ReflectionsColumns[1]},
			},
			{
				Name:    "reflection_created_at",
				Unique:  false,
				Columns: []*schema.Column{ReflectionsColumns[5]},
			},
		},
	}
	// RunJournalsColumns holds the columns for the "run_journals" table.
	RunJournalsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "run_id", Type: field.TypeString},
		{Name: "seq", Type: field.TypeInt64},
		{Name: "type", Type: field.TypeEnum, Enums: []string{"run_created", "plan_attached", "step_started", "step_result_proposed", "step_validation_passed", "step_validation_failed", "policy_decision_applied", "note_written", "run_paused", "run_resumed", "run_completed", "run_failed", "projection_synced", "criterion_met"}},
		{Name: "timestamp", Type: field.TypeTime},
		{Name: "payload", Type: field.TypeString, Size: 2147483647},
	}
	// RunJournalsTable holds the schema information for the "run_journals" table.
	RunJournalsTable = &schema.Table{
		Name:       "run_journals",
		Columns:    RunJournalsColumns,
		PrimaryKey: []*schema.Column{RunJournalsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "runjournal_run_id_seq",
				Unique:  true,
				Columns: []*schema.Column{RunJournalsColumns[1], RunJournalsColumns[2]},
			},
			{
				Name:    "runjournal_run_id",
				Unique:  false,
				Columns: []*schema.Column{RunJournalsColumns[1]},
			},
			{
				Name:    "runjournal_type",
				Unique:  false,
				Columns: []*schema.Column{RunJournalsColumns[3]},
			},
			{
				Name:    "runjournal_timestamp",
				Unique:  false,
				Columns: []*schema.Column{RunJournalsColumns[4]},
			},
		},
	}
	// RunSnapshotsColumns holds the columns for the "run_snapshots" table.
	RunSnapshotsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "run_id", Type: field.TypeString, Unique: true},
		{Name: "session_key", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"planning", "running", "paused", "completed", "failed"}, Default: "planning"},
		{Name: "goal", Type: field.TypeString, Nullable: true},
		{Name: "snapshot_data", Type: field.TypeString, Size: 2147483647},
		{Name: "last_journal_seq", Type: field.TypeInt64, Default: 0},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// RunSnapshotsTable holds the schema information for the "run_snapshots" table.
	RunSnapshotsTable = &schema.Table{
		Name:       "run_snapshots",
		Columns:    RunSnapshotsColumns,
		PrimaryKey: []*schema.Column{RunSnapshotsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "runsnapshot_status",
				Unique:  false,
				Columns: []*schema.Column{RunSnapshotsColumns[3]},
			},
			{
				Name:    "runsnapshot_session_key",
				Unique:  false,
				Columns: []*schema.Column{RunSnapshotsColumns[2]},
			},
			{
				Name:    "runsnapshot_updated_at",
				Unique:  false,
				Columns: []*schema.Column{RunSnapshotsColumns[8]},
			},
		},
	}
	// RunStepsColumns holds the columns for the "run_steps" table.
	RunStepsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "run_id", Type: field.TypeString},
		{Name: "step_id", Type: field.TypeString},
		{Name: "step_index", Type: field.TypeInt, Default: 0},
		{Name: "goal", Type: field.TypeString, Nullable: true},
		{Name: "owner_agent", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "in_progress", "verify_pending", "completed", "failed", "interrupted"}, Default: "pending"},
		{Name: "result", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "evidence", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "validator_spec", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "retry_count", Type: field.TypeInt, Default: 0},
		{Name: "max_retries", Type: field.TypeInt, Default: 2},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// RunStepsTable holds the schema information for the "run_steps" table.
	RunStepsTable = &schema.Table{
		Name:       "run_steps",
		Columns:    RunStepsColumns,
		PrimaryKey: []*schema.Column{RunStepsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "runstep_run_id",
				Unique:  false,
				Columns: []*schema.Column{RunStepsColumns[1]},
			},
			{
				Name:    "runstep_run_id_step_id",
				Unique:  true,
				Columns: []*schema.Column{RunStepsColumns[1], RunStepsColumns[2]},
			},
			{
				Name:    "runstep_status",
				Unique:  false,
				Columns: []*schema.Column{RunStepsColumns[6]},
			},
		},
	}
	// SecretsColumns holds the columns for the "secrets" table.
	SecretsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "encrypted_value", Type: field.TypeBytes},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
		{Name: "access_count", Type: field.TypeInt, Default: 0},
		{Name: "key_secrets", Type: field.TypeUUID},
	}
	// SecretsTable holds the schema information for the "secrets" table.
	SecretsTable = &schema.Table{
		Name:       "secrets",
		Columns:    SecretsColumns,
		PrimaryKey: []*schema.Column{SecretsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "secrets_keys_secrets",
				Columns:    []*schema.Column{SecretsColumns[6]},
				RefColumns: []*schema.Column{KeysColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "secret_name",
				Unique:  false,
				Columns: []*schema.Column{SecretsColumns[1]},
			},
			{
				Name:    "secret_created_at",
				Unique:  false,
				Columns: []*schema.Column{SecretsColumns[3]},
			},
		},
	}
	// SessionsColumns holds the columns for the "sessions" table.
	SessionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "key", Type: field.TypeString, Unique: true},
		{Name: "agent_id", Type: field.TypeString, Nullable: true},
		{Name: "channel_type", Type: field.TypeString, Nullable: true},
		{Name: "channel_id", Type: field.TypeString, Nullable: true},
		{Name: "model", Type: field.TypeString, Nullable: true},
		{Name: "metadata", Type: field.TypeJSON, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// SessionsTable holds the schema information for the "sessions" table.
	SessionsTable = &schema.Table{
		Name:       "sessions",
		Columns:    SessionsColumns,
		PrimaryKey: []*schema.Column{SessionsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "session_updated_at",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[8]},
			},
		},
	}
	// SessionProvenancesColumns holds the columns for the "session_provenances" table.
	SessionProvenancesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString, Unique: true},
		{Name: "parent_key", Type: field.TypeString, Nullable: true},
		{Name: "agent_name", Type: field.TypeString},
		{Name: "goal", Type: field.TypeString, Nullable: true},
		{Name: "run_id", Type: field.TypeString, Nullable: true},
		{Name: "workspace_id", Type: field.TypeString, Nullable: true},
		{Name: "depth", Type: field.TypeInt, Default: 0},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"active", "merged", "discarded", "completed"}, Default: "active"},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "closed_at", Type: field.TypeTime, Nullable: true},
	}
	// SessionProvenancesTable holds the schema information for the "session_provenances" table.
	SessionProvenancesTable = &schema.Table{
		Name:       "session_provenances",
		Columns:    SessionProvenancesColumns,
		PrimaryKey: []*schema.Column{SessionProvenancesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "sessionprovenance_parent_key",
				Unique:  false,
				Columns: []*schema.Column{SessionProvenancesColumns[2]},
			},
			{
				Name:    "sessionprovenance_agent_name",
				Unique:  false,
				Columns: []*schema.Column{SessionProvenancesColumns[3]},
			},
			{
				Name:    "sessionprovenance_status",
				Unique:  false,
				Columns: []*schema.Column{SessionProvenancesColumns[8]},
			},
			{
				Name:    "sessionprovenance_run_id",
				Unique:  false,
				Columns: []*schema.Column{SessionProvenancesColumns[5]},
			},
			{
				Name:    "sessionprovenance_created_at",
				Unique:  false,
				Columns: []*schema.Column{SessionProvenancesColumns[9]},
			},
		},
	}
	// TokenUsagesColumns holds the columns for the "token_usages" table.
	TokenUsagesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_key", Type: field.TypeString, Nullable: true},
		{Name: "provider", Type: field.TypeString},
		{Name: "model", Type: field.TypeString},
		{Name: "agent_name", Type: field.TypeString, Nullable: true},
		{Name: "input_tokens", Type: field.TypeInt64, Default: 0},
		{Name: "output_tokens", Type: field.TypeInt64, Default: 0},
		{Name: "total_tokens", Type: field.TypeInt64, Default: 0},
		{Name: "cache_tokens", Type: field.TypeInt64, Default: 0},
		{Name: "timestamp", Type: field.TypeTime},
	}
	// TokenUsagesTable holds the schema information for the "token_usages" table.
	TokenUsagesTable = &schema.Table{
		Name:       "token_usages",
		Columns:    TokenUsagesColumns,
		PrimaryKey: []*schema.Column{TokenUsagesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "tokenusage_session_key",
				Unique:  false,
				Columns: []*schema.Column{TokenUsagesColumns[1]},
			},
			{
				Name:    "tokenusage_provider",
				Unique:  false,
				Columns: []*schema.Column{TokenUsagesColumns[2]},
			},
			{
				Name:    "tokenusage_timestamp",
				Unique:  false,
				Columns: []*schema.Column{TokenUsagesColumns[9]},
			},
			{
				Name:    "tokenusage_agent_name_timestamp",
				Unique:  false,
				Columns: []*schema.Column{TokenUsagesColumns[4], TokenUsagesColumns[9]},
			},
		},
	}
	// TurnTracesColumns holds the columns for the "turn_traces" table.
	TurnTracesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "trace_id", Type: field.TypeString, Unique: true},
		{Name: "session_key", Type: field.TypeString},
		{Name: "entrypoint", Type: field.TypeString},
		{Name: "outcome", Type: field.TypeString, Default: "running"},
		{Name: "error_code", Type: field.TypeString, Nullable: true},
		{Name: "cause_class", Type: field.TypeString, Nullable: true},
		{Name: "cause_detail", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "summary", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "started_at", Type: field.TypeTime},
		{Name: "ended_at", Type: field.TypeTime, Nullable: true},
	}
	// TurnTracesTable holds the schema information for the "turn_traces" table.
	TurnTracesTable = &schema.Table{
		Name:       "turn_traces",
		Columns:    TurnTracesColumns,
		PrimaryKey: []*schema.Column{TurnTracesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "turntrace_session_key",
				Unique:  false,
				Columns: []*schema.Column{TurnTracesColumns[2]},
			},
			{
				Name:    "turntrace_entrypoint",
				Unique:  false,
				Columns: []*schema.Column{TurnTracesColumns[3]},
			},
			{
				Name:    "turntrace_outcome",
				Unique:  false,
				Columns: []*schema.Column{TurnTracesColumns[4]},
			},
			{
				Name:    "turntrace_started_at",
				Unique:  false,
				Columns: []*schema.Column{TurnTracesColumns[9]},
			},
		},
	}
	// TurnTraceEventsColumns holds the columns for the "turn_trace_events" table.
	TurnTraceEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "trace_id", Type: field.TypeString},
		{Name: "seq", Type: field.TypeInt64},
		{Name: "event_type", Type: field.TypeString},
		{Name: "agent_name", Type: field.TypeString, Nullable: true},
		{Name: "tool_name", Type: field.TypeString, Nullable: true},
		{Name: "call_signature", Type: field.TypeString, Nullable: true},
		{Name: "payload_json", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "payload_truncated", Type: field.TypeBool, Default: false},
		{Name: "created_at", Type: field.TypeTime},
	}
	// TurnTraceEventsTable holds the schema information for the "turn_trace_events" table.
	TurnTraceEventsTable = &schema.Table{
		Name:       "turn_trace_events",
		Columns:    TurnTraceEventsColumns,
		PrimaryKey: []*schema.Column{TurnTraceEventsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "turntraceevent_trace_id_seq",
				Unique:  true,
				Columns: []*schema.Column{TurnTraceEventsColumns[1], TurnTraceEventsColumns[2]},
			},
			{
				Name:    "turntraceevent_trace_id",
				Unique:  false,
				Columns: []*schema.Column{TurnTraceEventsColumns[1]},
			},
			{
				Name:    "turntraceevent_event_type",
				Unique:  false,
				Columns: []*schema.Column{TurnTraceEventsColumns[3]},
			},
			{
				Name:    "turntraceevent_created_at",
				Unique:  false,
				Columns: []*schema.Column{TurnTraceEventsColumns[9]},
			},
		},
	}
	// WorkflowRunsColumns holds the columns for the "workflow_runs" table.
	WorkflowRunsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "workflow_name", Type: field.TypeString},
		{Name: "description", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "running", "completed", "failed", "cancelled"}, Default: "pending"},
		{Name: "total_steps", Type: field.TypeInt, Default: 0},
		{Name: "completed_steps", Type: field.TypeInt, Default: 0},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "started_at", Type: field.TypeTime},
		{Name: "completed_at", Type: field.TypeTime, Nullable: true},
	}
	// WorkflowRunsTable holds the schema information for the "workflow_runs" table.
	WorkflowRunsTable = &schema.Table{
		Name:       "workflow_runs",
		Columns:    WorkflowRunsColumns,
		PrimaryKey: []*schema.Column{WorkflowRunsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "workflowrun_status",
				Unique:  false,
				Columns: []*schema.Column{WorkflowRunsColumns[3]},
			},
			{
				Name:    "workflowrun_workflow_name",
				Unique:  false,
				Columns: []*schema.Column{WorkflowRunsColumns[1]},
			},
			{
				Name:    "workflowrun_started_at",
				Unique:  false,
				Columns: []*schema.Column{WorkflowRunsColumns[7]},
			},
		},
	}
	// WorkflowStepRunsColumns holds the columns for the "workflow_step_runs" table.
	WorkflowStepRunsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "run_id", Type: field.TypeUUID},
		{Name: "step_id", Type: field.TypeString},
		{Name: "agent", Type: field.TypeString, Nullable: true},
		{Name: "prompt", Type: field.TypeString, Size: 2147483647},
		{Name: "status", Type: field.TypeEnum, Enums: []string{"pending", "running", "completed", "failed", "skipped"}, Default: "pending"},
		{Name: "result", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "started_at", Type: field.TypeTime, Nullable: true},
		{Name: "completed_at", Type: field.TypeTime, Nullable: true},
	}
	// WorkflowStepRunsTable holds the schema information for the "workflow_step_runs" table.
	WorkflowStepRunsTable = &schema.Table{
		Name:       "workflow_step_runs",
		Columns:    WorkflowStepRunsColumns,
		PrimaryKey: []*schema.Column{WorkflowStepRunsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "workflowsteprun_run_id",
				Unique:  false,
				Columns: []*schema.Column{WorkflowStepRunsColumns[1]},
			},
			{
				Name:    "workflowsteprun_status",
				Unique:  false,
				Columns: []*schema.Column{WorkflowStepRunsColumns[5]},
			},
			{
				Name:    "workflowsteprun_run_id_step_id",
				Unique:  false,
				Columns: []*schema.Column{WorkflowStepRunsColumns[1], WorkflowStepRunsColumns[2]},
			},
		},
	}
	// Tables holds all the tables in the schema.
	Tables = []*schema.Table{
		ActionLogsTable,
		AgentMemoriesTable,
		AuditLogsTable,
		ConfigProfilesTable,
		CronJobsTable,
		CronJobHistoriesTable,
		EntityAliasTable,
		EntityPropertiesTable,
		EscrowDealsTable,
		ExternalRefsTable,
		InquiriesTable,
		KeysTable,
		KnowledgesTable,
		LearningsTable,
		MessagesTable,
		ObservationsTable,
		OntologyConflictsTable,
		OntologyPredicatesTable,
		OntologyTypesTable,
		PaymentTxesTable,
		PeerReputationsTable,
		ProvenanceAttributionsTable,
		ProvenanceCheckpointsTable,
		ReflectionsTable,
		RunJournalsTable,
		RunSnapshotsTable,
		RunStepsTable,
		SecretsTable,
		SessionsTable,
		SessionProvenancesTable,
		TokenUsagesTable,
		TurnTracesTable,
		TurnTraceEventsTable,
		WorkflowRunsTable,
		WorkflowStepRunsTable,
	}
)

Functions

func Create

func Create(ctx context.Context, s *Schema, tables []*schema.Table, opts ...schema.MigrateOption) error

Create creates all table resources using the given schema driver.

Types

type Schema

type Schema struct {
	// contains filtered or unexported fields
}

Schema is the API for creating, migrating and dropping a schema.

func NewSchema

func NewSchema(drv dialect.Driver) *Schema

NewSchema creates a new schema client.

func (*Schema) Create

func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error

Create creates all schema resources.

func (*Schema) WriteTo

func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error

WriteTo writes the schema changes to w instead of running them against the database.

if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil {
	log.Fatal(err)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL