Files
lobehub__lobehub/docs/development/database-schema.dbml

4535 lines
145 KiB
Plaintext

table acceptance_comments {
id text [pk, not null]
acceptance_id uuid [not null]
author_user_id text
author_agent_id text
workspace_id text
parent_comment_id text
kind text [not null, default: 'comment']
anchor_type text [not null, default: 'acceptance']
context_run_id uuid
check_item_id text
evidence_id uuid
anchor_rect jsonb
content text [not null]
editor_data jsonb
attachments jsonb
client_id text [not null]
resolved_at "timestamp with time zone"
resolved_by_user_id text
deleted_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(acceptance_id, author_user_id, client_id) [name: 'acceptance_comments_acceptance_id_author_user_id_client_id_unique', unique]
(acceptance_id, created_at, id) [name: 'acceptance_comments_acceptance_id_created_at_id_idx']
parent_comment_id [name: 'acceptance_comments_parent_comment_id_idx']
evidence_id [name: 'acceptance_comments_evidence_id_idx']
author_user_id [name: 'acceptance_comments_author_user_id_idx']
author_agent_id [name: 'acceptance_comments_author_agent_id_idx']
workspace_id [name: 'acceptance_comments_workspace_id_idx']
}
}
table acceptance_flow_edges {
id uuid [pk, not null, default: `gen_random_uuid()`]
flow_id uuid [not null]
source_node_id uuid [not null]
target_node_id uuid [not null]
trigger text [not null]
condition text
required boolean [not null, default: true]
indexes {
(flow_id, source_node_id) [name: 'acceptance_flow_edges_source_idx']
(flow_id, target_node_id) [name: 'acceptance_flow_edges_target_idx']
}
}
table acceptance_flow_nodes {
id uuid [pk, not null, default: `gen_random_uuid()`]
flow_id uuid [not null]
criterion_id uuid
sub_flow_id uuid
is_entry boolean [not null, default: false]
overrides jsonb
indexes {
sub_flow_id [name: 'acceptance_flow_nodes_sub_flow_idx']
(flow_id, id) [name: 'acceptance_flow_nodes_flow_id_unique', unique]
flow_id [name: 'acceptance_flow_nodes_entry_unique', unique]
criterion_id [name: 'acceptance_flow_nodes_criterion_idx']
}
}
table acceptance_flows {
id uuid [pk, not null, default: `gen_random_uuid()`]
acceptance_id uuid [not null]
title text [not null]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
acceptance_id [name: 'acceptance_flows_acceptance_idx']
}
}
table agents {
id text [pk, not null]
slug varchar(100)
title varchar(255)
name varchar(255)
description varchar(1000)
tags jsonb [default: `[]`]
editor_data jsonb
avatar text
background_color text
market_identifier text
metadata jsonb
profile jsonb
society_id text
plugins jsonb
client_id text
user_id text [not null]
workspace_id text
agency_config jsonb
chat_config jsonb
few_shots jsonb
model text
params jsonb [default: `{}`]
provider text
system_role text
tts jsonb
virtual boolean [default: false]
pinned boolean
opening_message text
opening_questions text[] [default: `[]`]
session_group_id text
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'client_id_user_id_unique', unique]
(slug, user_id) [name: 'agents_slug_user_id_unique', unique]
created_at [name: 'agents_created_at_idx']
user_id [name: 'agents_user_id_idx']
title [name: 'agents_title_idx']
description [name: 'agents_description_idx']
session_group_id [name: 'agents_session_group_id_idx']
workspace_id [name: 'agents_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'agents_workspace_visibility_idx']
(workspace_id, slug) [name: 'agents_slug_workspace_id_unique', unique]
}
}
table agents_files {
file_id text [not null]
agent_id text [not null]
enabled boolean [default: true]
user_id text [not null]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(file_id, agent_id, user_id) [pk]
agent_id [name: 'agents_files_agent_id_idx']
file_id [name: 'agents_files_file_id_idx']
user_id [name: 'agents_files_user_id_idx']
workspace_id [name: 'agents_files_workspace_id_idx']
}
}
table agents_knowledge_bases {
agent_id text [not null]
knowledge_base_id text [not null]
user_id text [not null]
workspace_id text
enabled boolean [default: true]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(agent_id, knowledge_base_id) [pk]
agent_id [name: 'agents_knowledge_bases_agent_id_idx']
knowledge_base_id [name: 'agents_knowledge_bases_knowledge_base_id_idx']
user_id [name: 'agents_knowledge_bases_user_id_idx']
workspace_id [name: 'agents_knowledge_bases_workspace_id_idx']
}
}
table agent_bot_providers {
id uuid [pk, not null, default: `gen_random_uuid()`]
agent_id text [not null]
user_id text [not null]
workspace_id text
platform varchar(50) [not null]
application_id varchar(255) [not null]
credentials text
settings jsonb [default: `{}`]
enabled boolean [not null, default: true]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(platform, application_id) [name: 'agent_bot_providers_platform_app_id_unique', unique]
platform [name: 'agent_bot_providers_platform_idx']
agent_id [name: 'agent_bot_providers_agent_id_idx']
user_id [name: 'agent_bot_providers_user_id_idx']
workspace_id [name: 'agent_bot_providers_workspace_id_idx']
}
}
table agent_cron_jobs {
id text [pk, not null]
agent_id text [not null]
group_id text
user_id text [not null]
workspace_id text
name text
description text
enabled boolean [default: true]
cron_pattern text [not null]
timezone text [default: 'UTC']
content text [not null]
edit_data jsonb
max_executions integer
remaining_executions integer
execution_conditions jsonb
last_executed_at timestamp
total_executions integer [default: 0]
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
agent_id [name: 'agent_cron_jobs_agent_id_idx']
group_id [name: 'agent_cron_jobs_group_id_idx']
user_id [name: 'agent_cron_jobs_user_id_idx']
workspace_id [name: 'agent_cron_jobs_workspace_id_idx']
enabled [name: 'agent_cron_jobs_enabled_idx']
remaining_executions [name: 'agent_cron_jobs_remaining_executions_idx']
last_executed_at [name: 'agent_cron_jobs_last_executed_at_idx']
}
}
table agent_documents {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
agent_id text [not null]
document_id varchar(255) [not null]
template_id varchar(100)
access_self integer [not null, default: 31]
access_shared integer [not null, default: 0]
access_public integer [not null, default: 0]
policy_load varchar(30) [not null, default: 'always']
policy jsonb
policy_load_position varchar(50) [not null, default: 'before-first-user']
policy_load_format varchar(20) [not null, default: 'raw']
policy_load_rule varchar(50) [not null, default: 'always']
deleted_at "timestamp with time zone"
deleted_by_user_id text
deleted_by_agent_id text
delete_reason text
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
workspace_id [name: 'agent_documents_workspace_id_idx']
user_id [name: 'agent_documents_user_id_idx']
agent_id [name: 'agent_documents_agent_id_idx']
access_self [name: 'agent_documents_access_self_idx']
access_shared [name: 'agent_documents_access_shared_idx']
access_public [name: 'agent_documents_access_public_idx']
policy_load [name: 'agent_documents_policy_load_idx']
template_id [name: 'agent_documents_template_id_idx']
policy_load_position [name: 'agent_documents_policy_load_position_idx']
policy_load_format [name: 'agent_documents_policy_load_format_idx']
policy_load_rule [name: 'agent_documents_policy_load_rule_idx']
(agent_id, policy_load_position) [name: 'agent_documents_agent_load_position_idx']
deleted_at [name: 'agent_documents_deleted_at_idx']
(agent_id, deleted_at, policy_load) [name: 'agent_documents_agent_autoload_deleted_idx']
document_id [name: 'agent_documents_document_id_idx']
(agent_id, document_id, user_id) [name: 'agent_documents_agent_document_user_unique', unique]
}
}
table agent_eval_benchmarks {
id text [pk, not null]
identifier text [not null]
name text [not null]
description text
rubrics jsonb [not null]
reference_url text
metadata jsonb
user_id text
workspace_id text
is_system boolean [not null, default: true]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(identifier, user_id) [name: 'agent_eval_benchmarks_identifier_user_id_unique', unique]
is_system [name: 'agent_eval_benchmarks_is_system_idx']
user_id [name: 'agent_eval_benchmarks_user_id_idx']
workspace_id [name: 'agent_eval_benchmarks_workspace_id_idx']
(workspace_id, identifier) [name: 'agent_eval_benchmarks_identifier_workspace_id_unique', unique]
}
}
table agent_eval_datasets {
id text [pk, not null]
benchmark_id text
source_experiment_id text
identifier text [not null]
user_id text
workspace_id text
name text [not null]
description text
eval_mode text
eval_config jsonb
metadata jsonb
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(identifier, user_id) [name: 'agent_eval_datasets_identifier_user_id_unique', unique]
benchmark_id [name: 'agent_eval_datasets_benchmark_id_idx']
source_experiment_id [name: 'agent_eval_datasets_source_experiment_id_idx']
user_id [name: 'agent_eval_datasets_user_id_idx']
workspace_id [name: 'agent_eval_datasets_workspace_id_idx']
(workspace_id, identifier) [name: 'agent_eval_datasets_identifier_workspace_id_unique', unique]
}
}
table agent_eval_experiment_benchmarks {
experiment_id text [not null]
benchmark_id text [not null]
user_id text [not null]
workspace_id text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(experiment_id, benchmark_id) [pk]
benchmark_id [name: 'agent_eval_experiment_benchmarks_benchmark_id_idx']
user_id [name: 'agent_eval_experiment_benchmarks_user_id_idx']
workspace_id [name: 'agent_eval_experiment_benchmarks_workspace_id_idx']
}
}
table agent_eval_experiments {
id text [pk, not null]
user_id text [not null]
workspace_id text
name text [not null]
description text
metadata jsonb
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'agent_eval_experiments_user_id_idx']
workspace_id [name: 'agent_eval_experiments_workspace_id_idx']
}
}
table agent_eval_run_topics {
user_id text [not null]
workspace_id text
run_id text [not null]
topic_id text [not null]
test_case_id text [not null]
status text
score real
passed boolean
eval_result jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(run_id, topic_id) [pk]
user_id [name: 'agent_eval_run_topics_user_id_idx']
run_id [name: 'agent_eval_run_topics_run_id_idx']
test_case_id [name: 'agent_eval_run_topics_test_case_id_idx']
workspace_id [name: 'agent_eval_run_topics_workspace_id_idx']
}
}
table agent_eval_runs {
id text [pk, not null]
dataset_id text [not null]
experiment_id text
parent_run_id text
target_agent_id text
user_id text [not null]
workspace_id text
name text
status text [not null, default: 'idle']
config jsonb
metrics jsonb
started_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
dataset_id [name: 'agent_eval_runs_dataset_id_idx']
experiment_id [name: 'agent_eval_runs_experiment_id_idx']
parent_run_id [name: 'agent_eval_runs_parent_run_id_idx']
user_id [name: 'agent_eval_runs_user_id_idx']
status [name: 'agent_eval_runs_status_idx']
target_agent_id [name: 'agent_eval_runs_target_agent_id_idx']
workspace_id [name: 'agent_eval_runs_workspace_id_idx']
}
}
table agent_eval_test_cases {
id text [pk, not null]
user_id text [not null]
workspace_id text
dataset_id text [not null]
content jsonb [not null]
eval_mode text
eval_config jsonb
metadata jsonb
sort_order integer
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'agent_eval_test_cases_user_id_idx']
dataset_id [name: 'agent_eval_test_cases_dataset_id_idx']
sort_order [name: 'agent_eval_test_cases_sort_order_idx']
workspace_id [name: 'agent_eval_test_cases_workspace_id_idx']
}
}
table agent_history_job_agents {
id uuid [pk, not null, default: `gen_random_uuid()`]
job_id text [not null]
agent_id text [not null]
indexes {
(job_id, agent_id) [name: 'agent_history_job_agents_job_id_agent_id_unique', unique]
agent_id [name: 'agent_history_job_agents_agent_id_idx']
}
}
table agent_history_job_groups {
id uuid [pk, not null, default: `gen_random_uuid()`]
job_id text [not null]
group_id text [not null]
indexes {
(job_id, group_id) [name: 'agent_history_job_groups_job_id_group_id_unique', unique]
group_id [name: 'agent_history_job_groups_group_id_idx']
}
}
table agent_history_job_topics {
id uuid [pk, not null, default: `gen_random_uuid()`]
job_id text [not null]
topic_id text [not null]
priority boolean [not null, default: false]
activity_at "timestamp with time zone" [not null]
payload jsonb
indexes {
(job_id, topic_id) [name: 'agent_history_job_topics_job_id_topic_id_unique', unique]
topic_id [name: 'agent_history_job_topics_topic_id_idx']
(job_id, priority, activity_at) [name: 'agent_history_job_topics_pick_idx']
}
}
table agent_history_jobs {
id text [pk, not null]
status text [not null, default: 'pending']
type text [not null, default: 'transfer']
payload jsonb
agent_ids jsonb [not null]
session_ids jsonb [not null]
group_ids jsonb [not null, default: `[]`]
source_user_id text [not null]
source_workspace_id text
target_user_id text [not null]
target_workspace_id text
total_topics integer [not null]
completed_topics integer [not null, default: 0]
completed_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
status [name: 'agent_history_jobs_status_idx']
source_user_id [name: 'agent_history_jobs_source_user_id_idx']
target_user_id [name: 'agent_history_jobs_target_user_id_idx']
source_workspace_id [name: 'agent_history_jobs_source_workspace_id_idx']
target_workspace_id [name: 'agent_history_jobs_target_workspace_id_idx']
}
}
table agent_intervention_resolutions {
id uuid [pk, not null, default: `gen_random_uuid()`]
resolution_request_id uuid [not null]
operation_id text [not null]
batch_id text [not null]
source text [not null]
user_id text [not null]
workspace_id text
actor_id text [not null]
scope text [not null]
selected_intervention_ids jsonb [not null]
expected_versions jsonb [not null]
expected_request_revision_hashes jsonb [not null]
expected_item_count integer [not null]
action jsonb [not null]
custom_execution_input_hash varchar(64)
custom_execution_state text
custom_execution_attempt integer
custom_execution_lease_token uuid
custom_execution_lease_expires_at "timestamp with time zone"
custom_execution_result jsonb
remember_tool_key text
remember_effect_status text
original_arguments text
edited_arguments text
original_request_revision_hash text
edited_request_revision_hash text
argument_effect_status text
status text [not null, default: 'resolving']
resolving_at "timestamp with time zone" [not null, default: `now()`]
published_at "timestamp with time zone"
continuation_started_at "timestamp with time zone"
producer_ack_at "timestamp with time zone"
terminal_at "timestamp with time zone"
rolled_back_at "timestamp with time zone"
version integer [not null, default: 1]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
resolution_request_id [name: 'agent_intervention_resolutions_request_unique', unique]
(user_id, workspace_id, batch_id) [name: 'agent_intervention_resolutions_owner_batch_idx']
(status, created_at) [name: 'agent_intervention_resolutions_status_created_idx']
}
}
table agent_interventions {
id uuid [pk, not null, default: `gen_random_uuid()`]
operation_id text [not null]
tool_call_id text [not null]
tool_message_id text
user_id text [not null]
workspace_id text
source text [not null]
provider text
interaction_kind text [not null]
surface text [not null]
system_action_eligibility text [not null]
approval_mode text
batch_id text [not null]
activity_key text [not null]
step_index integer [not null]
item_index integer [not null]
item_count integer [not null]
sealed boolean [not null, default: false]
canonical_tool_key text
request_revision_hash text [not null]
allowed_actions jsonb [not null]
risk jsonb
review_token_hash text [not null]
review_context jsonb [not null]
sanitized_request jsonb [not null]
deadline "timestamp with time zone" [not null]
status text [not null, default: 'pending']
resolution_id uuid
resolving_at "timestamp with time zone"
published_at "timestamp with time zone"
resolved_at "timestamp with time zone"
producer_ack_at "timestamp with time zone"
version integer [not null, default: 1]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(operation_id, tool_call_id) [name: 'agent_interventions_operation_tool_call_unique', unique]
review_token_hash [name: 'agent_interventions_review_token_hash_unique', unique]
(operation_id, batch_id, item_index) [name: 'agent_interventions_operation_batch_item_unique', unique]
(user_id, activity_key, item_index) [name: 'agent_interventions_owner_activity_item_unique', unique]
(user_id, workspace_id, status, deadline) [name: 'agent_interventions_owner_status_deadline_idx']
(user_id, workspace_id, batch_id, item_index) [name: 'agent_interventions_owner_batch_idx']
(user_id, activity_key) [name: 'agent_interventions_activity_key_idx']
(status, deadline) [name: 'agent_interventions_status_deadline_idx']
}
}
table agent_label_assignments {
id uuid [pk, not null, default: `gen_random_uuid()`]
label_id uuid [not null]
agent_id text [not null]
user_id text [not null]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(label_id, agent_id) [name: 'agent_label_assignments_label_id_agent_id_unique', unique]
agent_id [name: 'agent_label_assignments_agent_id_idx']
workspace_id [name: 'agent_label_assignments_workspace_id_idx']
}
}
table agent_labels {
id uuid [pk, not null, default: `gen_random_uuid()`]
name text [not null]
description text
color text
archived boolean [not null, default: false]
user_id text [not null]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'agent_labels_user_id_idx']
workspace_id [name: 'agent_labels_workspace_id_idx']
(user_id, name) [name: 'agent_labels_user_id_name_unique', unique]
(workspace_id, name) [name: 'agent_labels_workspace_id_name_unique', unique]
}
}
table agent_operations {
id text [pk, not null]
user_id text [not null]
workspace_id text
agent_id text
topic_id text
thread_id text
task_id text
chat_group_id text
parent_operation_id text
status text [not null]
completion_reason text
verify_status text
verify_plan jsonb
verify_plan_confirmed_at "timestamp with time zone"
started_at "timestamp with time zone"
completed_at "timestamp with time zone"
step_count integer
max_steps integer
force_finish boolean
interruption jsonb
error jsonb
total_cost "numeric(20, 6)"
currency text [not null, default: 'USD']
total_input_tokens integer
total_output_tokens integer
total_tokens integer
llm_calls integer
tool_calls integer
human_interventions integer
processing_time_ms integer
human_waiting_time_ms integer
cost jsonb
usage jsonb
cost_limit jsonb
model text
provider text
model_runtime_config jsonb
trigger text
app_context jsonb
trace_s3_key text
metadata jsonb [default: `{}`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'agent_operations_user_id_idx']
workspace_id [name: 'agent_operations_workspace_id_idx']
agent_id [name: 'agent_operations_agent_id_idx']
topic_id [name: 'agent_operations_topic_id_idx']
thread_id [name: 'agent_operations_thread_id_idx']
task_id [name: 'agent_operations_task_id_idx']
chat_group_id [name: 'agent_operations_chat_group_id_idx']
parent_operation_id [name: 'agent_operations_parent_operation_id_idx']
status [name: 'agent_operations_status_idx']
(user_id, created_at) [name: 'agent_operations_user_id_created_at_idx']
metadata [name: 'agent_operations_metadata_idx']
}
}
table agent_account_bindings {
id uuid [pk, not null, default: `gen_random_uuid()`]
agent_id text [not null]
account_id uuid [not null]
user_id text [not null]
workspace_id text
role text [not null, default: 'pool']
priority integer [not null, default: 0]
weight integer [not null, default: 1]
enabled boolean [not null, default: true]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(agent_id, account_id) [name: 'agent_account_bindings_agent_account_unique', unique]
agent_id [name: 'agent_account_bindings_agent_pinned_unique', unique]
agent_id [name: 'agent_account_bindings_agent_id_idx']
account_id [name: 'agent_account_bindings_account_id_idx']
user_id [name: 'agent_account_bindings_user_id_idx']
workspace_id [name: 'agent_account_bindings_workspace_id_idx']
}
}
table agent_provider_accounts {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
provider text [not null]
external_account_id text
email text
display_name text
organization_id text
plan_tier text
rate_limit_tier text
label varchar(255)
credential_mode text [not null, default: 'referenced']
credentials text
credential_ref jsonb
token_expires_at "timestamp with time zone"
status text [not null, default: 'active']
enabled boolean [not null, default: true]
last_validated_at "timestamp with time zone"
metadata jsonb
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'agent_provider_accounts_user_id_idx']
workspace_id [name: 'agent_provider_accounts_workspace_id_idx']
token_expires_at [name: 'agent_provider_accounts_token_expires_at_idx']
(user_id, provider, external_account_id) [name: 'agent_provider_accounts_identity_unique', unique]
(provider, external_account_id, workspace_id) [name: 'agent_provider_accounts_identity_workspace_unique', unique]
}
}
table agent_quota_calibrations {
id uuid [pk, not null, default: `gen_random_uuid()`]
account_id uuid [not null]
user_id text [not null]
workspace_id text
limit_type text [not null]
scope_key text [not null, default: '']
capacity_usd "numeric(20, 6)" [not null]
capacity_tokens_equivalent bigint
model_mix jsonb
sample_count integer [not null]
confidence "numeric(20, 6)"
method text
window_seconds integer
calibrated_at "timestamp with time zone" [not null, default: `now()`]
metadata jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(account_id, limit_type, scope_key, calibrated_at) [name: 'agent_quota_calibrations_account_type_scope_idx']
workspace_id [name: 'agent_quota_calibrations_workspace_id_idx']
}
}
table agent_quota_snapshots {
id uuid [pk, not null, default: `gen_random_uuid()`]
account_id uuid [not null]
user_id text [not null]
workspace_id text
device_id uuid
limit_type text [not null]
scope_key text [not null, default: '']
resets_at "timestamp with time zone"
utilization integer [not null]
severity text
is_active boolean
captured_at "timestamp with time zone" [not null, default: `now()`]
raw jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(account_id, limit_type, scope_key, captured_at) [name: 'agent_quota_snapshots_account_type_scope_idx']
(account_id, captured_at) [name: 'agent_quota_snapshots_account_captured_idx']
resets_at [name: 'agent_quota_snapshots_resets_at_idx']
workspace_id [name: 'agent_quota_snapshots_workspace_id_idx']
}
}
table agent_quota_usage_ledger {
id uuid [pk, not null, default: `gen_random_uuid()`]
account_id uuid
user_id text [not null]
workspace_id text
provider text [not null]
model text
occurred_at "timestamp with time zone" [not null]
input_tokens integer
output_tokens integer
cache_read_tokens integer
cache_write_tokens integer
reasoning_tokens integer
cost_usd "numeric(20, 6)"
cost_source text
message_id text
operation_id text
topic_id text
agent_id text
external_event_id text
metadata jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(account_id, occurred_at) [name: 'agent_quota_usage_ledger_account_occurred_idx']
(account_id, model, occurred_at) [name: 'agent_quota_usage_ledger_account_model_occurred_idx']
message_id [name: 'agent_quota_usage_ledger_message_id_idx']
operation_id [name: 'agent_quota_usage_ledger_operation_id_idx']
workspace_id [name: 'agent_quota_usage_ledger_workspace_id_idx']
external_event_id [name: 'agent_quota_usage_ledger_external_event_unique', unique]
}
}
table agent_quota_windows {
id uuid [pk, not null, default: `gen_random_uuid()`]
account_id uuid [not null]
user_id text [not null]
workspace_id text
limit_type text [not null]
scope_key text [not null, default: '']
resets_at "timestamp with time zone" [not null]
window_start_at "timestamp with time zone" [not null]
window_seconds integer [not null]
peak_utilization integer [not null, default: 0]
last_utilization integer
rate_limited_at "timestamp with time zone"
observed_cost_usd "numeric(20, 6)"
observed_tokens bigint
estimated_capacity_usd "numeric(20, 6)"
contaminated boolean [not null, default: false]
first_seen_at "timestamp with time zone"
last_seen_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(account_id, limit_type, scope_key, resets_at) [name: 'agent_quota_windows_natural_key_unique', unique]
(account_id, resets_at) [name: 'agent_quota_windows_account_resets_idx']
user_id [name: 'agent_quota_windows_user_id_idx']
workspace_id [name: 'agent_quota_windows_workspace_id_idx']
}
}
table agent_shares {
id uuid [pk, not null, default: `gen_random_uuid()`]
agent_id text [not null]
visibility text [not null, default: 'private']
share_config jsonb
user_view_count integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
agent_id [name: 'agent_shares_agent_id_unique', unique]
visibility [name: 'agent_shares_visibility_idx']
}
}
table agent_skills {
id text [pk, not null]
name text [not null]
description text [not null]
identifier text [not null]
source text [not null]
manifest jsonb [not null, default: `{}`]
content text
editor_data jsonb
resources jsonb [default: `{}`]
zip_file_hash varchar(64)
user_id text [not null]
workspace_id text
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, name) [name: 'agent_skills_user_name_idx', unique]
identifier [name: 'agent_skills_identifier_idx']
user_id [name: 'agent_skills_user_id_idx']
source [name: 'agent_skills_source_idx']
zip_file_hash [name: 'agent_skills_zip_hash_idx']
workspace_id [name: 'agent_skills_workspace_id_idx']
(workspace_id, name) [name: 'agent_skills_name_workspace_id_unique', unique]
}
}
table ai_models {
id varchar(150) [not null]
"_id" uuid [pk, not null, default: `gen_random_uuid()`]
display_name varchar(200)
description text
organization varchar(100)
enabled boolean
provider_id varchar(64) [not null]
type varchar(20) [not null, default: 'chat']
sort integer
user_id text [not null]
pricing jsonb
parameters jsonb [default: `{}`]
config jsonb
abilities jsonb [default: `{}`]
context_window_tokens integer
source varchar(20)
released_at varchar(10)
settings jsonb [default: `{}`]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(id, provider_id, user_id) [name: 'ai_models_id_provider_id_user_id_unique', unique]
(id, provider_id, user_id, workspace_id) [name: 'ai_models_id_provider_id_user_id_workspace_id_unique', unique]
user_id [name: 'ai_models_user_id_idx']
workspace_id [name: 'ai_models_workspace_id_idx']
}
}
table ai_providers {
id varchar(64) [not null]
name text
"_id" uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
sort integer
enabled boolean
fetch_on_client boolean
check_model text
logo text
description text
key_vaults text
source varchar(20)
settings jsonb
config jsonb
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(id, user_id) [name: 'ai_providers_id_user_id_unique', unique]
(id, user_id, workspace_id) [name: 'ai_providers_id_user_id_workspace_id_unique', unique]
user_id [name: 'ai_providers_user_id_idx']
workspace_id [name: 'ai_providers_workspace_id_idx']
}
}
table api_keys {
id text [pk, not null]
name varchar(256) [not null]
key varchar(256) [not null, unique]
key_hash varchar(128) [unique]
enabled boolean [default: true]
scopes jsonb
expires_at "timestamp with time zone"
last_used_at "timestamp with time zone"
user_id text [not null]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'api_keys_user_id_idx']
workspace_id [name: 'api_keys_workspace_id_idx']
}
}
table async_tasks {
id uuid [pk, not null, default: `gen_random_uuid()`]
type text
status text
error jsonb
inference_id text
user_id text [not null]
workspace_id text
duration integer
parent_id uuid
metadata jsonb [not null, default: '{}']
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'async_tasks_user_id_idx']
parent_id [name: 'async_tasks_parent_id_idx']
(type, status) [name: 'async_tasks_type_status_idx']
inference_id [name: 'async_tasks_inference_id_idx']
metadata [name: 'async_tasks_metadata_idx']
workspace_id [name: 'async_tasks_workspace_id_idx']
}
}
table accounts {
access_token text
access_token_expires_at timestamp
account_id text [not null]
created_at timestamp [not null, default: `now()`]
id text [pk, not null]
id_token text
password text
provider_id text [not null]
refresh_token text
refresh_token_expires_at timestamp
scope text
updated_at timestamp [not null]
user_id text [not null]
indexes {
user_id [name: 'account_userId_idx']
}
}
table passkey {
aaguid text
backedUp boolean
counter integer
createdAt timestamp [default: `now()`]
credentialID text [not null]
deviceType text
id text [pk, not null]
name text
publicKey text [not null]
transports text
userId text [not null]
indexes {
credentialID [name: 'passkey_credential_id_unique', unique]
userId [name: 'passkey_user_id_idx']
}
}
table auth_sessions {
created_at timestamp [not null, default: `now()`]
expires_at timestamp [not null]
id text [pk, not null]
impersonated_by text
ip_address text
token text [not null, unique]
updated_at timestamp [not null]
user_agent text
user_id text [not null]
indexes {
user_id [name: 'auth_session_userId_idx']
}
}
table two_factor {
backup_codes text [not null]
id text [pk, not null]
secret text [not null]
user_id text [not null]
indexes {
secret [name: 'two_factor_secret_idx']
user_id [name: 'two_factor_user_id_idx']
}
}
table verifications {
created_at timestamp [not null, default: `now()`]
expires_at timestamp [not null]
id text [pk, not null]
identifier text [not null]
updated_at timestamp [not null, default: `now()`]
value text [not null]
indexes {
identifier [name: 'verification_identifier_idx']
}
}
table chat_groups {
id text [pk, not null]
title text
description text
avatar text
background_color text
market_identifier text
content text
editor_data jsonb
config jsonb
client_id text
user_id text [not null]
workspace_id text
group_id text
pinned boolean [default: false]
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'chat_groups_client_id_user_id_unique', unique]
user_id [name: 'chat_groups_user_id_idx']
group_id [name: 'chat_groups_group_id_idx']
workspace_id [name: 'chat_groups_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'chat_groups_workspace_visibility_idx']
}
}
table chat_groups_agents {
chat_group_id text [not null]
agent_id text [not null]
user_id text [not null]
workspace_id text
enabled boolean [default: true]
order integer [default: 0]
role text [default: 'participant']
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(chat_group_id, agent_id) [pk]
user_id [name: 'chat_groups_agents_user_id_idx']
workspace_id [name: 'chat_groups_agents_workspace_id_idx']
}
}
table user_connector_tools {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_connector_id uuid [not null]
user_id text [not null]
workspace_id text
tool_name varchar(255) [not null]
display_name varchar(255)
description text
input_schema jsonb
output_schema jsonb
crud_type text [not null]
render_config jsonb
permission text [not null]
is_work_artifact boolean [not null, default: false]
work_artifact_config jsonb
limit_config jsonb
metadata jsonb
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_connector_id, tool_name) [name: 'user_connector_tools_connector_tool_unique', unique]
user_id [name: 'user_connector_tools_user_id_idx']
user_connector_id [name: 'user_connector_tools_connector_id_idx']
workspace_id [name: 'user_connector_tools_workspace_id_idx']
}
}
table user_connectors {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
agent_id text
identifier varchar(255) [not null]
name varchar(255) [not null]
source_type text [not null]
mcp_server_url text
mcp_connection_type text
mcp_stdio_config jsonb
status text [not null]
is_enabled boolean [not null, default: true]
oidc_config jsonb
credentials text
token_expires_at "timestamp with time zone"
metadata jsonb
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, identifier) [name: 'user_connectors_personal_identifier_idx']
(user_id, workspace_id, identifier) [name: 'user_connectors_workspace_identifier_idx']
(agent_id, identifier) [name: 'user_connectors_agent_identifier_idx']
user_id [name: 'user_connectors_user_id_idx']
token_expires_at [name: 'user_connectors_token_expires_at_idx']
workspace_id [name: 'user_connectors_workspace_id_idx']
agent_id [name: 'user_connectors_agent_id_idx']
}
}
table user_installed_plugins {
user_id text [not null]
workspace_id text
identifier text [not null]
type text [not null]
manifest jsonb
settings jsonb
custom_params jsonb
source varchar(255)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, identifier) [pk]
workspace_id [name: 'user_installed_plugins_workspace_id_idx']
}
}
table devices {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
visibility text [not null, default: 'private']
shared_from_device_id varchar(64)
device_id varchar(64) [not null]
identity_source varchar(20) [not null]
hostname text
platform varchar(20)
architecture varchar(20)
metadata jsonb
friendly_name text
default_cwd text
recent_cwds text[] [not null, default: `[]`]
working_dirs jsonb [default: `[]`]
first_seen_at "timestamp with time zone" [not null, default: `now()`]
last_seen_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, device_id) [name: 'devices_user_id_device_id_unique', unique]
(workspace_id, device_id) [name: 'devices_workspace_id_device_id_unique', unique]
user_id [name: 'devices_user_id_idx']
workspace_id [name: 'devices_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'devices_workspace_visibility_idx']
}
}
table document_comment_mentions {
id uuid [pk, not null, default: `gen_random_uuid()`]
comment_id uuid [not null]
mentioned_user_id text [not null]
workspace_id text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(comment_id, mentioned_user_id) [name: 'document_comment_mentions_comment_id_mentioned_user_id_unique', unique]
(mentioned_user_id, created_at) [name: 'document_comment_mentions_mentioned_user_id_created_at_idx']
workspace_id [name: 'document_comment_mentions_workspace_id_idx']
}
}
table document_comments {
id uuid [pk, not null, default: `gen_random_uuid()`]
document_id text [not null]
parent_comment_id uuid
reply_to_comment_id uuid
author_user_id text
workspace_id text [not null]
content text [not null]
editor_data jsonb
selection_anchor jsonb
client_id text [not null]
deleted_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(document_id, author_user_id, client_id) [name: 'document_comments_document_id_author_user_id_client_id_unique', unique]
(parent_comment_id, created_at, id) [name: 'document_comments_parent_comment_id_created_at_id_idx']
reply_to_comment_id [name: 'document_comments_reply_to_comment_id_idx']
(document_id, created_at, id) [name: 'document_comments_document_id_created_at_id_idx']
author_user_id [name: 'document_comments_author_user_id_idx']
workspace_id [name: 'document_comments_workspace_id_idx']
}
}
table document_histories {
id varchar(255) [pk, not null]
document_id varchar(255) [not null]
user_id text [not null]
workspace_id text
editor_data jsonb [not null]
save_source text [not null]
saved_at "timestamp with time zone" [not null]
indexes {
document_id [name: 'document_histories_document_id_idx']
user_id [name: 'document_histories_user_id_idx']
workspace_id [name: 'document_histories_workspace_id_idx']
saved_at [name: 'document_histories_saved_at_idx']
}
}
table document_likes {
id uuid [pk, not null, default: `gen_random_uuid()`]
document_id text [not null]
user_id text [not null]
workspace_id text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(document_id, user_id) [name: 'document_likes_document_id_user_id_unique', unique]
(document_id, created_at) [name: 'document_likes_document_id_created_at_idx']
user_id [name: 'document_likes_user_id_idx']
workspace_id [name: 'document_likes_workspace_id_idx']
}
}
table document_shares {
id uuid [pk, not null, default: `gen_random_uuid()`]
document_id varchar(255) [not null]
user_id text [not null]
workspace_id text
visibility text [not null, default: 'private']
permission text [not null, default: 'read']
page_view_count integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
document_id [name: 'document_shares_document_id_unique', unique]
user_id [name: 'document_shares_user_id_idx']
workspace_id [name: 'document_shares_workspace_id_idx']
}
}
table environments {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
name varchar(255) [not null]
description text
enabled boolean [not null, default: true]
configuration jsonb [not null]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'environments_user_id_idx']
workspace_id [name: 'environments_workspace_id_idx']
}
}
table environment_instances {
id uuid [pk, not null, default: `gen_random_uuid()`]
environment_id uuid [not null]
name varchar(255) [not null]
kind text [not null]
device_id uuid
provider text
provider_scope text
provider_resource_id text
working_directory text [not null]
configuration_snapshot jsonb [not null]
configuration jsonb
enabled boolean [not null, default: true]
status text [not null, default: 'pending']
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(environment_id, id) [name: 'environment_instances_environment_id_id_unique', unique]
(device_id, working_directory) [name: 'environment_instances_device_path_unique', unique]
(kind, provider, provider_scope, provider_resource_id, working_directory) [name: 'environment_instances_provider_path_unique', unique]
environment_id [name: 'environment_instances_environment_id_idx']
}
}
table expertise_bindings {
id uuid [pk, not null, default: `gen_random_uuid()`]
domain_id varchar(255) [not null]
agent_id text
project_id text
bound_workspace_id text
bound_user_id text
contribution_mode text [not null, default: 'derive']
added_by_user_id text
workspace_id text
enabled boolean [not null, default: true]
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(agent_id, domain_id) [name: 'expertise_bindings_agent_domain_unique', unique]
(project_id, domain_id) [name: 'expertise_bindings_project_domain_unique', unique]
(bound_workspace_id, domain_id) [name: 'expertise_bindings_workspace_domain_unique', unique]
(bound_user_id, domain_id) [name: 'expertise_bindings_user_domain_unique', unique]
domain_id [name: 'expertise_bindings_domain_idx']
workspace_id [name: 'expertise_bindings_workspace_id_idx']
}
}
table expertise_domain_snapshots {
id uuid [pk, not null, default: `gen_random_uuid()`]
domain_id varchar(255) [not null]
run_id uuid
run_index integer [not null]
learned_total integer [not null]
retired_total integer [not null, default: 0]
active_count integer [not null]
compiled_count integer [not null, default: 0]
layer_counts jsonb [not null, default: `{}`]
p_inf numeric
tau numeric
maturity numeric
fit_sample_size integer
fit_r2 numeric
fit_confidence text
fit_computed_at "timestamp with time zone"
tau_pinned boolean [not null, default: false]
observed_span numeric
plateau_kind text
layer_coverage numeric
canon_coverage numeric
active_rate numeric
captured_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(domain_id, run_index) [name: 'expertise_domain_snapshots_domain_run_index_unique', unique]
(domain_id, captured_at) [name: 'expertise_domain_snapshots_domain_captured_idx']
domain_id [name: 'expertise_domain_snapshots_pending_fit_idx']
}
}
table expertise_domains {
id varchar(255) [pk, not null]
slug varchar(255) [not null]
title text [not null]
description text
user_id text [not null]
workspace_id text
visibility text [not null, default: 'private']
source text [not null, default: 'user']
parent_domain_id varchar(255)
domain_filter text [not null]
out_of_scope text
layers jsonb [not null, default: `[]`]
layer_source text [not null, default: 'invented']
canon_entries jsonb [not null, default: `[]`]
canon_document_id varchar(255)
flow jsonb [not null, default: `[]`]
evidence_spec jsonb [not null, default: `[]`]
lesson_base_document_id varchar(255)
anchor_candidates jsonb
anchor_chosen_at "timestamp with time zone"
anchor_chosen_by_user_id text
seed_state text [not null, default: 'seeding']
seed_run_id uuid
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(slug, user_id) [name: 'expertise_domains_slug_user_unique', unique]
(workspace_id, slug) [name: 'expertise_domains_slug_workspace_unique', unique]
user_id [name: 'expertise_domains_user_id_idx']
(workspace_id, visibility) [name: 'expertise_domains_workspace_visibility_idx']
parent_domain_id [name: 'expertise_domains_parent_idx']
}
}
table expertise_hits {
id uuid [pk, not null, default: `gen_random_uuid()`]
run_id uuid [not null]
lesson_id uuid [not null]
domain_id varchar(255) [not null]
outcome text [not null]
where text
note text
example text
severity text
evidence_id uuid
operation_id text
source_check_result_id uuid
user_decision text
user_decision_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(lesson_id, created_at) [name: 'expertise_hits_lesson_created_idx']
run_id [name: 'expertise_hits_run_idx']
(domain_id, outcome) [name: 'expertise_hits_domain_outcome_idx']
operation_id [name: 'expertise_hits_operation_idx']
}
}
table expertise_insights {
id uuid [pk, not null, default: `gen_random_uuid()`]
domain_id varchar(255)
user_id text
workspace_id text
kind varchar(255) [not null]
headline text [not null]
body text [not null]
action_label text
action_target jsonb
evidence jsonb [not null, default: `[]`]
confidence real
status text [not null, default: 'active']
dismiss_reason text
stale_after_run_index integer
generated_by_operation_id text
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(domain_id, status) [name: 'expertise_insights_domain_status_idx']
(user_id, status) [name: 'expertise_insights_user_status_idx']
workspace_id [name: 'expertise_insights_workspace_idx']
}
}
table expertise_lesson_revisions {
id uuid [pk, not null, default: `gen_random_uuid()`]
lesson_id uuid [not null]
revision integer [not null]
sections jsonb [not null]
feedback text
changed_by text [not null]
kind text [not null, default: 'user-feedback']
prev_title text
evidence jsonb
changed_by_user_id text
source_run_id uuid
operation_id text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(lesson_id, revision) [name: 'expertise_lesson_revisions_lesson_revision_unique', unique]
lesson_id [name: 'expertise_lesson_revisions_lesson_idx']
}
}
table expertise_lessons {
id uuid [pk, not null, default: `gen_random_uuid()`]
domain_id varchar(255) [not null]
created_by_user_id text
code varchar(20) [not null]
polarity text [not null]
title text [not null]
sections jsonb [not null]
layer varchar(255)
tags text[]
reason_kind text
reason_source text
canon_anchor text
origin_run_id uuid
origin_hit_id uuid
status text [not null, default: 'active']
rejected_reason text
salvaged_from_id uuid
retired_at "timestamp with time zone"
compilability text [not null, default: 'compilable']
backtest jsonb
compiled_criterion_id uuid
hit_count integer [not null, default: 0]
hit_run_count integer [not null, default: 0]
false_positive_count integer [not null, default: 0]
last_hit_at "timestamp with time zone"
last_hit_run_id uuid
generalized_from_ids jsonb
specificity text
example_count integer [not null, default: 0]
current_revision integer [not null, default: 1]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(domain_id, code) [name: 'expertise_lessons_domain_code_unique', unique]
(id, domain_id) [name: 'expertise_lessons_id_domain_unique', unique]
(domain_id, status, hit_count) [name: 'expertise_lessons_domain_status_hits_idx']
(domain_id, layer) [name: 'expertise_lessons_domain_layer_idx']
compiled_criterion_id [name: 'expertise_lessons_compiled_criterion_idx']
}
}
table expertise_runs {
id uuid [pk, not null, default: `gen_random_uuid()`]
domain_id varchar(255) [not null]
run_index integer [not null]
is_seed_run boolean [not null, default: false]
actor_type text [not null]
actor_id text [not null]
subject_type text [not null]
subject_id text [not null]
window_start "timestamp with time zone"
window_end "timestamp with time zone"
reflection_key varchar(255)
had_human_in_loop boolean [not null, default: false]
user_id text
workspace_id text
instance_count integer [not null, default: 0]
refine_count integer [not null, default: 0]
new_count integer [not null, default: 0]
started_at "timestamp with time zone" [not null, default: `now()`]
completed_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(domain_id, run_index) [name: 'expertise_runs_domain_run_index_unique', unique]
(id, domain_id) [name: 'expertise_runs_id_domain_unique', unique]
(domain_id, reflection_key) [name: 'expertise_runs_domain_reflection_key_unique', unique]
(domain_id, started_at) [name: 'expertise_runs_domain_started_idx']
(actor_type, actor_id) [name: 'expertise_runs_actor_idx']
(subject_type, subject_id) [name: 'expertise_runs_subject_idx']
}
}
table documents {
id varchar(255) [pk, not null]
title text
description text
content text
file_type varchar(255) [not null]
filename text
total_char_count integer [not null]
total_line_count integer [not null]
metadata jsonb
pages jsonb
source_type text [not null]
source text [not null]
file_id text
knowledge_base_id text
parent_id varchar(255)
user_id text [not null]
client_id text
editor_data jsonb
slug varchar(255)
workspace_id text
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
source [name: 'documents_source_idx']
file_type [name: 'documents_file_type_idx']
source_type [name: 'documents_source_type_idx']
user_id [name: 'documents_user_id_idx']
file_id [name: 'documents_file_id_idx']
parent_id [name: 'documents_parent_id_idx']
knowledge_base_id [name: 'documents_knowledge_base_id_idx']
(client_id, user_id) [name: 'documents_client_id_user_id_unique', unique]
(slug, user_id) [name: 'documents_slug_user_id_unique', unique]
workspace_id [name: 'documents_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'documents_workspace_visibility_idx']
(workspace_id, slug) [name: 'documents_slug_workspace_id_unique', unique]
}
}
table file_uploads {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
pathname text [not null]
size integer [not null]
status text [not null, default: 'active']
multipart_upload_id text
multipart_part_size integer
completed_at "timestamp with time zone"
file_id text
expires_at "timestamp with time zone" [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, workspace_id, status) [name: 'file_uploads_user_scope_status_idx']
(workspace_id, status) [name: 'file_uploads_workspace_status_idx']
(status, expires_at) [name: 'file_uploads_status_expires_at_idx']
(status, updated_at, id) [name: 'file_uploads_status_updated_at_id_idx']
pathname [name: 'file_uploads_live_pathname_unique', unique]
}
}
table files {
id text [pk, not null]
user_id text [not null]
file_type varchar(255) [not null]
file_hash varchar(64)
name text [not null]
size integer [not null]
url text [not null]
source text
parent_id varchar(255)
client_id text
metadata jsonb
chunk_task_id uuid
embedding_task_id uuid
workspace_id text
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
file_hash [name: 'file_hash_idx']
user_id [name: 'files_user_id_idx']
parent_id [name: 'files_parent_id_idx']
chunk_task_id [name: 'files_chunk_task_id_idx']
embedding_task_id [name: 'files_embedding_task_id_idx']
(client_id, user_id) [name: 'files_client_id_user_id_unique', unique]
workspace_id [name: 'files_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'files_workspace_visibility_idx']
}
}
table global_files {
hash_id varchar(64) [pk, not null]
file_type varchar(255) [not null]
size integer [not null]
url text [not null]
metadata jsonb
creator text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
indexes {
creator [name: 'global_files_creator_idx']
}
}
table knowledge_base_files {
knowledge_base_id text [not null]
file_id text [not null]
user_id text [not null]
workspace_id text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(knowledge_base_id, file_id) [pk]
knowledge_base_id [name: 'knowledge_base_files_kb_id_idx']
user_id [name: 'knowledge_base_files_user_id_idx']
file_id [name: 'knowledge_base_files_file_id_idx']
workspace_id [name: 'knowledge_base_files_workspace_id_idx']
}
}
table knowledge_bases {
id text [pk, not null]
name text [not null]
description text
avatar text
type text
user_id text [not null]
client_id text
is_public boolean [default: false]
settings jsonb
workspace_id text
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'knowledge_bases_client_id_user_id_unique', unique]
user_id [name: 'knowledge_bases_user_id_idx']
workspace_id [name: 'knowledge_bases_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'knowledge_bases_workspace_visibility_idx']
}
}
table fts_search_sync_capture_version {
id text [pk, not null]
version integer [not null]
}
table fts_search_sync_outbox {
attempts integer [not null, default: 0]
available_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
dead_at "timestamp with time zone"
document_id text [not null]
entity text [not null]
id uuid [pk, not null, default: `gen_random_uuid()`]
last_error text
locked_until "timestamp with time zone"
priority smallint [not null, default: 10]
revision bigint [not null, default: `nextval('fts_search_sync_revision_seq')`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(entity, document_id) [name: 'fts_search_sync_outbox_entity_document_id_unique', unique]
(priority, available_at, revision) [name: 'fts_search_sync_outbox_claim_idx']
dead_at [name: 'fts_search_sync_outbox_dead_idx']
locked_until [name: 'fts_search_sync_outbox_lease_idx']
}
}
table generation_batches {
id text [pk, not null]
user_id text [not null]
workspace_id text
generation_topic_id text [not null]
provider text [not null]
model text [not null]
prompt text [not null]
width integer
height integer
ratio varchar(64)
config jsonb
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'generation_batches_user_id_idx']
generation_topic_id [name: 'generation_batches_topic_id_idx']
workspace_id [name: 'generation_batches_workspace_id_idx']
}
}
table generation_topics {
id text [pk, not null]
user_id text [not null]
workspace_id text
title text
cover_url text
type varchar(32) [not null, default: 'image']
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'generation_topics_user_id_idx']
workspace_id [name: 'generation_topics_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'generation_topics_workspace_visibility_idx']
}
}
table generations {
id text [pk, not null]
user_id text [not null]
workspace_id text
generation_batch_id varchar(64) [not null]
async_task_id uuid
file_id text
seed integer
asset jsonb
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'generations_user_id_idx']
generation_batch_id [name: 'generations_batch_id_idx']
file_id [name: 'generations_file_id_idx']
workspace_id [name: 'generations_workspace_id_idx']
}
}
table goals {
id text [pk, not null]
user_id text [not null]
workspace_id text
agent_id text
project_id text
title text [not null]
requirement text
config jsonb
max_rounds integer
max_total_cost "numeric(20, 6)"
status text [not null, default: 'planning']
subject_type text
subject_id text
started_at "timestamp with time zone"
completed_at "timestamp with time zone"
deleted_at "timestamp with time zone"
is_deleted boolean
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'goals_user_id_idx']
workspace_id [name: 'goals_workspace_id_idx']
agent_id [name: 'goals_agent_id_idx']
project_id [name: 'goals_project_id_idx']
status [name: 'goals_status_idx']
(subject_type, subject_id) [name: 'goals_subject_idx']
}
}
table goal_edges {
id uuid [pk, not null, default: `gen_random_uuid()`]
goal_id text [not null]
source_node_id uuid [not null]
target_node_id uuid [not null]
kind text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(source_node_id, target_node_id, kind) [name: 'goal_edges_source_target_kind_unique', unique]
goal_id [name: 'goal_edges_goal_id_idx']
target_node_id [name: 'goal_edges_target_node_id_idx']
}
}
table goal_events {
id uuid [pk, not null, default: `gen_random_uuid()`]
goal_id text [not null]
event_type text [not null]
entity_type text [not null]
entity_id text [not null]
actor_type text [not null]
actor_id text
task_id text
operation_id text
reason text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(goal_id, created_at) [name: 'goal_events_goal_id_created_at_idx']
(entity_type, entity_id) [name: 'goal_events_entity_idx']
task_id [name: 'goal_events_task_id_idx']
operation_id [name: 'goal_events_operation_id_idx']
}
}
table goal_node_decisions {
id uuid [pk, not null, default: `gen_random_uuid()`]
node_id uuid [not null]
authority text [not null]
status text [not null, default: 'pending']
question text [not null]
options jsonb
recommended_option_id text
requested_user_id text
requested_project_role text
resolved_option_id text
resolution text
resolved_by_user_id text
resolved_by_agent_id text
resolved_at "timestamp with time zone"
canceled_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
node_id [name: 'goal_node_decisions_node_id_unique', unique]
status [name: 'goal_node_decisions_status_idx']
(requested_user_id, status) [name: 'goal_node_decisions_requested_user_id_status_idx']
}
}
table goal_node_work_versions {
id uuid [pk, not null, default: `gen_random_uuid()`]
node_id uuid [not null]
work_version_id uuid [not null]
relation text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(node_id, work_version_id, relation) [name: 'goal_node_work_versions_node_version_relation_unique', unique]
work_version_id [name: 'goal_node_work_versions_work_version_id_idx']
}
}
table goal_nodes {
id uuid [pk, not null, default: `gen_random_uuid()`]
goal_id text [not null]
kind text [not null]
status text [not null, default: 'proposed']
title text [not null]
description text
task_id text
priority integer [not null, default: 0]
confidence "numeric(4, 3)"
created_by_user_id text
created_by_agent_id text
resolved_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(goal_id, status) [name: 'goal_nodes_goal_id_status_idx']
(goal_id, kind) [name: 'goal_nodes_goal_id_kind_idx']
(goal_id, id) [name: 'goal_nodes_goal_id_id_unique', unique]
task_id [name: 'goal_nodes_task_id_unique', unique]
}
}
table goal_traces {
goal_id text [pk, not null]
trace_s3_key text
started_at "timestamp with time zone"
completed_at "timestamp with time zone"
final_status text
advances_total integer
ticks_total integer
advances_by_trigger jsonb
advances_by_outcome jsonb
ticks_by_branch jsonb
total_cost "numeric(20, 6)"
work_operations integer
nodes_total integer
work_resolved integer
work_retired integer
findings_total integer
gates_opened integer
gates_resolved integer
human_waiting_ms integer
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
started_at [name: 'goal_traces_started_at_idx']
final_status [name: 'goal_traces_final_status_idx']
}
}
table llm_generation_tracing {
id uuid [pk, not null, default: `gen_random_uuid()`]
scenario text [not null]
prompt_version text [not null]
prompt_hash text [not null]
schema_name text
user_id text [not null]
agent_id text
topic_id text
workspace_id text
trigger text
parent_tracing_id uuid
provider text
model text
success boolean [not null]
error_code text
error_detail text
validation_failed boolean [not null, default: false]
input_hash text
input_hint text
latency_ms integer
input_tokens integer
output_tokens integer
cost_usd "numeric(12, 8)"
storage_key text
feedback_signal text
feedback_score "numeric(3, 2)"
feedback_source text
feedback_data jsonb
feedback_updated_at "timestamp with time zone"
trace_id text
span_id text
metadata jsonb [default: `{}`]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
scenario [name: 'llm_generation_tracing_scenario_idx']
prompt_version [name: 'llm_generation_tracing_prompt_version_idx']
user_id [name: 'llm_generation_tracing_user_id_idx']
agent_id [name: 'llm_generation_tracing_agent_id_idx']
topic_id [name: 'llm_generation_tracing_topic_id_idx']
workspace_id [name: 'llm_generation_tracing_workspace_id_idx']
provider [name: 'llm_generation_tracing_provider_idx']
model [name: 'llm_generation_tracing_model_idx']
success [name: 'llm_generation_tracing_success_idx']
error_code [name: 'llm_generation_tracing_error_code_idx']
validation_failed [name: 'llm_generation_tracing_validation_failed_idx']
feedback_signal [name: 'llm_generation_tracing_feedback_signal_idx']
created_at [name: 'llm_generation_tracing_created_at_idx']
}
}
table message_chunks {
message_id text
chunk_id uuid
user_id text [not null]
workspace_id text
indexes {
(chunk_id, message_id) [pk]
user_id [name: 'message_chunks_user_id_idx']
message_id [name: 'message_chunks_message_id_idx']
workspace_id [name: 'message_chunks_workspace_id_idx']
}
}
table message_groups {
id varchar(255) [pk, not null]
topic_id text
user_id text [not null]
workspace_id text
parent_group_id varchar(255)
parent_message_id text
title varchar(255)
description text
type text
content text
editor_data jsonb
metadata jsonb
client_id varchar(255)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'message_groups_client_id_user_id_unique', unique]
user_id [name: 'message_groups_user_id_idx']
topic_id [name: 'message_groups_topic_id_idx']
type [name: 'message_groups_type_idx']
parent_group_id [name: 'message_groups_parent_group_id_idx']
parent_message_id [name: 'message_groups_parent_message_id_idx']
workspace_id [name: 'message_groups_workspace_id_idx']
}
}
table message_plugins {
id text [pk, not null]
tool_call_id text
type text [default: 'default']
intervention jsonb
api_name text
arguments text
identifier text
state jsonb
error jsonb
client_id text
user_id text [not null]
workspace_id text
indexes {
(client_id, user_id) [name: 'message_plugins_client_id_user_id_unique', unique]
user_id [name: 'message_plugins_user_id_idx']
tool_call_id [name: 'message_plugins_tool_call_id_idx']
workspace_id [name: 'message_plugins_workspace_id_idx']
}
}
table message_queries {
id uuid [pk, not null, default: `gen_random_uuid()`]
message_id text [not null]
rewrite_query text
user_query text
client_id text
user_id text [not null]
workspace_id text
embeddings_id uuid
indexes {
(client_id, user_id) [name: 'message_queries_client_id_user_id_unique', unique]
user_id [name: 'message_queries_user_id_idx']
message_id [name: 'message_queries_message_id_idx']
embeddings_id [name: 'message_queries_embeddings_id_idx']
workspace_id [name: 'message_queries_workspace_id_idx']
}
}
table message_query_chunks {
id text
query_id uuid
chunk_id uuid
similarity "numeric(6, 5)"
user_id text [not null]
workspace_id text
indexes {
(chunk_id, id, query_id) [pk]
user_id [name: 'message_query_chunks_user_id_idx']
id [name: 'message_query_chunks_message_id_idx']
query_id [name: 'message_query_chunks_query_id_idx']
workspace_id [name: 'message_query_chunks_workspace_id_idx']
}
}
table message_tts {
id text [pk, not null]
content_md5 text
file_id text
voice text
client_id text
user_id text [not null]
workspace_id text
indexes {
(client_id, user_id) [name: 'message_tts_client_id_user_id_unique', unique]
user_id [name: 'message_tts_user_id_idx']
workspace_id [name: 'message_tts_workspace_id_idx']
}
}
table message_translates {
id text [pk, not null]
content text
from text
to text
client_id text
user_id text [not null]
workspace_id text
indexes {
(client_id, user_id) [name: 'message_translates_client_id_user_id_unique', unique]
user_id [name: 'message_translates_user_id_idx']
workspace_id [name: 'message_translates_workspace_id_idx']
}
}
table messages {
id text [pk, not null]
role varchar(255) [not null]
content text
editor_data jsonb
summary text
reasoning jsonb
search jsonb
metadata jsonb
usage jsonb
model text
provider text
favorite boolean [default: false]
error jsonb
tools jsonb
trace_id text
observation_id text
client_id text
user_id text [not null]
session_id text
topic_id text
thread_id text
parent_id text
quota_id text
agent_id text
group_id text
target_id text
message_group_id varchar(255)
workspace_id text
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
created_at [name: 'messages_created_at_idx']
(client_id, user_id) [name: 'message_client_id_user_unique', unique]
topic_id [name: 'messages_topic_id_idx']
(topic_id, updated_at) [name: 'messages_topic_id_updated_at_idx']
parent_id [name: 'messages_parent_id_idx']
quota_id [name: 'messages_quota_id_idx']
user_id [name: 'messages_user_id_idx']
session_id [name: 'messages_session_id_idx']
thread_id [name: 'messages_thread_id_idx']
agent_id [name: 'messages_agent_id_idx']
group_id [name: 'messages_group_id_idx']
message_group_id [name: 'messages_message_group_id_idx']
() [name: 'messages_usage_cost_idx']
() [name: 'messages_usage_total_tokens_idx']
workspace_id [name: 'messages_workspace_id_idx']
}
}
table messages_files {
file_id text [not null]
message_id text [not null]
user_id text [not null]
workspace_id text
indexes {
(file_id, message_id) [pk]
user_id [name: 'messages_files_user_id_idx']
message_id [name: 'messages_files_message_id_idx']
workspace_id [name: 'messages_files_workspace_id_idx']
}
}
table messenger_account_links {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
platform varchar(50) [not null]
tenant_id varchar(255) [not null, default: '']
platform_user_id varchar(255) [not null]
platform_username text
application_id varchar(255)
credentials text
active_agent_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(platform, tenant_id, platform_user_id) [name: 'messenger_account_links_platform_tenant_user_unique', unique]
(user_id, platform, tenant_id) [name: 'messenger_account_links_user_platform_tenant_unique', unique]
(platform, tenant_id, application_id) [name: 'messenger_account_links_platform_tenant_application_unique', unique]
active_agent_id [name: 'messenger_account_links_active_agent_idx']
workspace_id [name: 'messenger_account_links_workspace_id_idx']
}
}
table messenger_installations {
id uuid [pk, not null, default: `gen_random_uuid()`]
platform varchar(50) [not null]
tenant_id varchar(255) [not null]
application_id varchar(255) [not null]
account_id varchar(255)
credentials text [not null]
metadata jsonb [not null, default: `{}`]
token_expires_at "timestamp with time zone"
installed_by_user_id text
installed_by_platform_user_id varchar(255)
revoked_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(platform, application_id, tenant_id) [name: 'messenger_installations_platform_app_tenant_unique', unique]
(platform, tenant_id) [name: 'messenger_installations_platform_tenant_idx']
token_expires_at [name: 'messenger_installations_token_expires_at_idx']
}
}
table metric_points {
id uuid [pk, not null, default: `gen_random_uuid()`]
metric_id text [not null]
user_id text [not null]
workspace_id text
value "numeric(20, 6)" [not null]
observed_at "timestamp with time zone" [not null]
actor_type text [not null]
actor_id text
operation_id text
source_type text [not null]
metadata jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(metric_id, observed_at) [name: 'metric_points_series_time_idx']
user_id [name: 'metric_points_user_id_idx']
workspace_id [name: 'metric_points_workspace_id_idx']
}
}
table metrics {
id text [pk, not null]
user_id text [not null]
workspace_id text
subject_type text [not null]
subject_id text [not null]
key text [not null]
title text
kind text [not null, default: 'gauge']
unit text
config jsonb
metadata jsonb
deleted_at "timestamp with time zone"
is_deleted boolean
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(subject_type, subject_id, key) [name: 'metrics_subject_key_unique', unique]
user_id [name: 'metrics_user_id_idx']
workspace_id [name: 'metrics_workspace_id_idx']
}
}
table nextauth_accounts {
access_token text
expires_at integer
id_token text
provider text [not null]
providerAccountId text [not null]
refresh_token text
scope text
session_state text
token_type text
type text [not null]
user_id text [not null]
indexes {
(provider, providerAccountId) [pk]
user_id [name: 'nextauth_accounts_user_id_idx']
}
}
table nextauth_authenticators {
counter integer [not null]
credentialBackedUp boolean [not null]
credentialDeviceType text [not null]
credentialID text [not null, unique]
credentialPublicKey text [not null]
providerAccountId text [not null]
transports text
user_id text [not null]
indexes {
(user_id, credentialID) [pk]
}
}
table nextauth_sessions {
expires timestamp [not null]
sessionToken text [pk, not null]
user_id text [not null]
indexes {
user_id [name: 'nextauth_sessions_user_id_idx']
}
}
table nextauth_verificationtokens {
expires timestamp [not null]
identifier text [not null]
token text [not null]
indexes {
(identifier, token) [pk]
}
}
table notification_deliveries {
id uuid [pk, not null, default: `gen_random_uuid()`]
notification_id uuid [not null]
channel text [not null]
status text [not null]
provider_message_id text
failed_reason text
sent_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
notification_id [name: 'idx_deliveries_notification']
channel [name: 'idx_deliveries_channel']
status [name: 'idx_deliveries_status']
}
}
table notifications {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
category text [not null]
type text [not null]
title text [not null]
content text [not null]
context text
metadata jsonb
dedupe_key text
action_url text
is_read boolean [not null, default: false]
is_archived boolean [not null, default: false]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'idx_notifications_user']
(user_id, created_at) [name: 'idx_notifications_user_active']
user_id [name: 'idx_notifications_user_unread']
(user_id, dedupe_key) [name: 'idx_notifications_dedupe', unique]
(user_id, workspace_id) [name: 'idx_notifications_user_workspace']
workspace_id [name: 'idx_notifications_workspace_id']
(updated_at, created_at, id) [name: 'idx_notifications_archived_cleanup']
}
}
table oauth_handoffs {
id text [pk, not null]
client varchar(50) [not null]
payload jsonb [not null]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
}
table oidc_access_tokens {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
consumed_at "timestamp with time zone"
user_id text [not null]
client_id varchar(255) [not null]
grant_id varchar(255)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_access_tokens_user_id_idx']
}
}
table oidc_authorization_codes {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
consumed_at "timestamp with time zone"
user_id text [not null]
client_id varchar(255) [not null]
grant_id varchar(255)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_authorization_codes_user_id_idx']
}
}
table oidc_clients {
id varchar(255) [pk, not null]
name text [not null]
description text
client_secret varchar(255)
redirect_uris text[] [not null]
grants text[] [not null]
response_types text[] [not null]
scopes text[] [not null]
token_endpoint_auth_method varchar(20)
application_type varchar(20)
client_uri text
logo_uri text
policy_uri text
tos_uri text
is_first_party boolean [default: false]
user_id text
workspace_id text
enabled boolean
last_used_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_clients_user_id_idx']
workspace_id [name: 'oidc_clients_workspace_id_idx']
}
}
table oidc_consents {
user_id text [not null]
client_id varchar(255) [not null]
scopes text[] [not null]
expires_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, client_id) [pk]
}
}
table oidc_device_codes {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
consumed_at "timestamp with time zone"
user_id text
client_id varchar(255) [not null]
grant_id varchar(255)
user_code varchar(255)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_device_codes_user_id_idx']
}
}
table oidc_grants {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
consumed_at "timestamp with time zone"
user_id text [not null]
client_id varchar(255) [not null]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_grants_user_id_idx']
}
}
table oidc_interactions {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
}
table oidc_refresh_tokens {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
consumed_at "timestamp with time zone"
user_id text [not null]
client_id varchar(255) [not null]
grant_id varchar(255)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_refresh_tokens_user_id_idx']
}
}
table oidc_sessions {
id varchar(255) [pk, not null]
data jsonb [not null]
expires_at "timestamp with time zone" [not null]
user_id text [not null]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'oidc_sessions_user_id_idx']
}
}
table project_agents {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
agent_id text [not null]
added_by_user_id text
workspace_id text
role text
responsibility text
enabled boolean [not null, default: true]
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(project_id, agent_id) [name: 'project_agents_project_id_agent_id_unique', unique]
(project_id, sort_order) [name: 'project_agents_project_id_sort_order_idx']
agent_id [name: 'project_agents_agent_id_idx']
workspace_id [name: 'project_agents_workspace_id_idx']
}
}
table project_chat_groups {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
chat_group_id text [not null]
added_by_user_id text
workspace_id text
role text
responsibility text
enabled boolean [not null, default: true]
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(project_id, chat_group_id) [name: 'project_chat_groups_project_id_chat_group_id_unique', unique]
(project_id, sort_order) [name: 'project_chat_groups_project_id_sort_order_idx']
chat_group_id [name: 'project_chat_groups_chat_group_id_idx']
workspace_id [name: 'project_chat_groups_workspace_id_idx']
}
}
table project_completion_reviews {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
reviewer_user_id text
workspace_id text
round integer [not null]
decision text [not null]
comment text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(project_id, round) [name: 'project_completion_reviews_project_id_round_unique', unique]
(project_id, created_at) [name: 'project_completion_reviews_project_id_created_at_idx']
reviewer_user_id [name: 'project_completion_reviews_reviewer_user_id_idx']
workspace_id [name: 'project_completion_reviews_workspace_id_idx']
}
}
table project_knowledge_bases {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
knowledge_base_id text [not null]
added_by_user_id text
workspace_id text
enabled boolean [not null, default: true]
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(project_id, knowledge_base_id) [name: 'project_knowledge_bases_project_id_knowledge_base_id_unique', unique]
(project_id, sort_order) [name: 'project_knowledge_bases_project_id_sort_order_idx']
knowledge_base_id [name: 'project_knowledge_bases_knowledge_base_id_idx']
workspace_id [name: 'project_knowledge_bases_workspace_id_idx']
}
}
table project_working_directories {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
device_id uuid
workspace_id text
added_by_user_id text
path text [not null]
name varchar(255) [not null]
permission text [not null, default: 'readWrite']
is_primary boolean [not null, default: false]
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(project_id, device_id, path) [name: 'project_working_directories_project_device_path_unique', unique]
project_id [name: 'project_working_directories_project_primary_unique', unique]
(project_id, sort_order) [name: 'project_working_directories_project_sort_order_idx']
device_id [name: 'project_working_directories_device_id_idx']
workspace_id [name: 'project_working_directories_workspace_id_idx']
}
}
table projects {
id text [pk, not null]
slug varchar(100)
identifier varchar(6) [not null]
name varchar(255) [not null]
description text
avatar text
coordinator_agent_id text [not null]
status text [not null, default: 'backlog']
user_id text [not null]
workspace_id text
visibility text [not null, default: 'public']
completed_review_id uuid
started_at "timestamp with time zone"
completed_at "timestamp with time zone"
archived_at "timestamp with time zone"
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(slug, user_id) [name: 'projects_slug_user_id_unique', unique]
(workspace_id, slug) [name: 'projects_slug_workspace_id_unique', unique]
(identifier, user_id) [name: 'projects_identifier_user_id_unique', unique]
(workspace_id, identifier) [name: 'projects_identifier_workspace_id_unique', unique]
user_id [name: 'projects_user_id_idx']
workspace_id [name: 'projects_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'projects_workspace_visibility_idx']
(status, updated_at) [name: 'projects_status_updated_at_idx']
coordinator_agent_id [name: 'projects_coordinator_agent_id_unique', unique]
}
}
table project_environments {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
environment_id uuid [not null]
workspace_id text
added_by_user_id text
default_instance_id uuid
enabled boolean [not null, default: true]
is_default boolean [not null, default: false]
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
default_instance_id [name: 'project_environments_default_instance_id_idx']
(project_id, environment_id) [name: 'project_environments_project_environment_unique', unique]
project_id [name: 'project_environments_project_default_unique', unique]
(project_id, sort_order) [name: 'project_environments_project_sort_order_idx']
environment_id [name: 'project_environments_environment_id_idx']
workspace_id [name: 'project_environments_workspace_id_idx']
added_by_user_id [name: 'project_environments_added_by_user_id_idx']
}
}
table project_works {
id uuid [pk, not null, default: `gen_random_uuid()`]
project_id text [not null]
work_id text [not null]
added_by_user_id text
workspace_id text
sort_order integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(project_id, work_id) [name: 'project_works_project_id_work_id_unique', unique]
(project_id, sort_order) [name: 'project_works_project_id_sort_order_idx']
work_id [name: 'project_works_work_id_idx']
workspace_id [name: 'project_works_workspace_id_idx']
}
}
table push_live_activities {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
device_id text [not null]
activity_key text [not null]
operation_id text [not null]
activity_id text [not null]
push_token text [not null]
apns_environment text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
last_seen_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, device_id, activity_key) [name: 'idx_push_live_activities_user_device_activity', unique]
(user_id, activity_key) [name: 'idx_push_live_activities_user_activity']
(user_id, operation_id) [name: 'idx_push_live_activities_user_operation']
last_seen_at [name: 'idx_push_live_activities_last_seen']
}
}
table push_tokens {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
expo_token text [not null]
device_id text [not null]
platform text [not null]
apns_environment text
app_version text
locale text
live_activity_push_to_start_token text
created_at "timestamp with time zone" [not null, default: `now()`]
last_seen_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, device_id) [name: 'idx_push_tokens_user_device', unique]
user_id [name: 'idx_push_tokens_user']
last_seen_at [name: 'idx_push_tokens_last_seen']
}
}
table chunks {
id uuid [pk, not null, default: `gen_random_uuid()`]
text text
abstract text
metadata jsonb
index integer
type varchar
client_id text
user_id text
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'chunks_client_id_user_id_unique', unique]
user_id [name: 'chunks_user_id_idx']
workspace_id [name: 'chunks_workspace_id_idx']
}
}
table document_chunks {
document_id varchar(30) [not null]
chunk_id uuid [not null]
page_index integer
user_id text [not null]
workspace_id text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(document_id, chunk_id) [pk]
document_id [name: 'document_chunks_document_id_idx']
chunk_id [name: 'document_chunks_chunk_id_idx']
user_id [name: 'document_chunks_user_id_idx']
workspace_id [name: 'document_chunks_workspace_id_idx']
}
}
table embeddings {
id uuid [pk, not null, default: `gen_random_uuid()`]
chunk_id uuid [unique]
embeddings vector(1024)
model text
client_id text
user_id text
workspace_id text
indexes {
(client_id, user_id) [name: 'embeddings_client_id_user_id_unique', unique]
chunk_id [name: 'embeddings_chunk_id_idx']
user_id [name: 'embeddings_user_id_idx']
workspace_id [name: 'embeddings_workspace_id_idx']
}
}
table unstructured_chunks {
id uuid [pk, not null, default: `gen_random_uuid()`]
text text
metadata jsonb
index integer
type varchar
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
parent_id varchar
composite_id uuid
client_id text
user_id text
workspace_id text
file_id varchar
indexes {
(client_id, user_id) [name: 'unstructured_chunks_client_id_user_id_unique', unique]
user_id [name: 'unstructured_chunks_user_id_idx']
composite_id [name: 'unstructured_chunks_composite_id_idx']
file_id [name: 'unstructured_chunks_file_id_idx']
workspace_id [name: 'unstructured_chunks_workspace_id_idx']
}
}
table rag_eval_dataset_records {
id text [pk, not null]
dataset_id text [not null]
ideal text
question text
reference_files text[]
metadata jsonb
user_id text
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'rag_eval_dataset_records_user_id_idx']
workspace_id [name: 'rag_eval_dataset_records_workspace_id_idx']
}
}
table rag_eval_datasets {
id text [pk, not null]
description text
name text [not null]
knowledge_base_id text
user_id text
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'rag_eval_datasets_user_id_idx']
workspace_id [name: 'rag_eval_datasets_workspace_id_idx']
}
}
table rag_eval_evaluations {
id text [pk, not null]
name text [not null]
description text
eval_records_url text
status text
error jsonb
dataset_id text [not null]
knowledge_base_id text
language_model text
embedding_model text
user_id text
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'rag_eval_evaluations_user_id_idx']
workspace_id [name: 'rag_eval_evaluations_workspace_id_idx']
}
}
table rag_eval_evaluation_records {
id text [pk, not null]
question text [not null]
answer text
context text[]
ideal text
status text
error jsonb
language_model text
embedding_model text
question_embedding_id uuid
duration integer
dataset_record_id text [not null]
evaluation_id text [not null]
user_id text
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'rag_eval_evaluation_records_user_id_idx']
workspace_id [name: 'rag_eval_evaluation_records_workspace_id_idx']
}
}
table rbac_permissions {
id text [pk, not null]
code text [not null, unique]
name text [not null]
description text
category text [not null]
is_active boolean [not null, default: true]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
}
table rbac_role_permissions {
role_id text [not null]
permission_id text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(role_id, permission_id) [pk]
role_id [name: 'rbac_role_permissions_role_id_idx']
permission_id [name: 'rbac_role_permissions_permission_id_idx']
}
}
table rbac_roles {
id text [pk, not null]
name text [not null]
display_name text [not null]
description text
is_system boolean [not null, default: false]
is_active boolean [not null, default: true]
metadata jsonb [default: `{}`]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
workspace_id [name: 'rbac_roles_workspace_id_idx']
(name, workspace_id) [name: 'rbac_roles_name_workspace_unique', unique]
}
}
table rbac_user_roles {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
role_id text [not null]
workspace_id text
created_at "timestamp with time zone" [not null, default: `now()`]
expires_at "timestamp with time zone"
indexes {
(user_id, role_id, workspace_id) [name: 'rbac_user_roles_user_role_scope_unique', unique]
user_id [name: 'rbac_user_roles_user_id_idx']
role_id [name: 'rbac_user_roles_role_id_idx']
workspace_id [name: 'rbac_user_roles_workspace_id_idx']
}
}
table agents_to_sessions {
agent_id text [not null]
session_id text [not null]
user_id text [not null]
workspace_id text
indexes {
(agent_id, session_id) [pk]
session_id [name: 'agents_to_sessions_session_id_idx']
agent_id [name: 'agents_to_sessions_agent_id_idx']
user_id [name: 'agents_to_sessions_user_id_idx']
workspace_id [name: 'agents_to_sessions_workspace_id_idx']
}
}
table file_chunks {
file_id varchar
chunk_id uuid
created_at "timestamp with time zone" [not null, default: `now()`]
user_id text [not null]
workspace_id text
indexes {
(file_id, chunk_id) [pk]
user_id [name: 'file_chunks_user_id_idx']
workspace_id [name: 'file_chunks_workspace_id_idx']
file_id [name: 'file_chunks_file_id_idx']
chunk_id [name: 'file_chunks_chunk_id_idx']
}
}
table files_to_sessions {
file_id text [not null]
session_id text [not null]
user_id text [not null]
workspace_id text
indexes {
(file_id, session_id) [pk]
user_id [name: 'files_to_sessions_user_id_idx']
workspace_id [name: 'files_to_sessions_workspace_id_idx']
file_id [name: 'files_to_sessions_file_id_idx']
session_id [name: 'files_to_sessions_session_id_idx']
}
}
table resource_permissions {
id uuid [pk, not null, default: `gen_random_uuid()`]
resource_type text [not null]
resource_id text [not null]
workspace_id text [not null]
user_id text
access_level text [not null]
created_by text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(workspace_id, resource_type, resource_id) [name: 'resource_permissions_workspace_resource_unique', unique]
(workspace_id, resource_type, resource_id, user_id) [name: 'resource_permissions_workspace_resource_user_id_unique', unique]
(resource_type, resource_id) [name: 'resource_permissions_resource_idx']
workspace_id [name: 'resource_permissions_workspace_idx']
(workspace_id, user_id) [name: 'resource_permissions_workspace_user_idx']
}
}
table resource_transfer_requests {
id uuid [pk, not null, default: `gen_random_uuid()`]
resource_type text [not null]
resource_id text [not null]
workspace_id text [not null]
initiator_id text
recipient_id text
previous_owner_id text
status text [not null, default: 'pending']
options jsonb
expires_at "timestamp with time zone" [not null]
resolved_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(resource_type, resource_id) [name: 'resource_transfer_requests_pending_resource_unique', unique]
(recipient_id, status) [name: 'resource_transfer_requests_recipient_idx']
workspace_id [name: 'resource_transfer_requests_workspace_idx']
}
}
table session_groups {
id text [pk, not null]
name text [not null]
sort integer
user_id text [not null]
client_id text
workspace_id text
visibility text [not null, default: 'public']
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'session_groups_client_id_user_id_unique', unique]
user_id [name: 'session_groups_user_id_idx']
workspace_id [name: 'session_groups_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'session_groups_workspace_visibility_idx']
}
}
table sessions {
id text [pk, not null]
slug varchar(100) [not null]
title text
description text
avatar text
background_color text
type text [default: 'agent']
user_id text [not null]
group_id text
client_id text
pinned boolean [default: false]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(slug, user_id) [name: 'slug_user_id_unique', unique]
(client_id, user_id) [name: 'sessions_client_id_user_id_unique', unique]
user_id [name: 'sessions_user_id_idx']
(id, user_id) [name: 'sessions_id_user_id_idx']
(user_id, updated_at) [name: 'sessions_user_id_updated_at_idx']
group_id [name: 'sessions_group_id_idx']
workspace_id [name: 'sessions_workspace_id_idx']
(workspace_id, slug) [name: 'sessions_slug_workspace_id_unique', unique]
}
}
table system_bot_providers {
id uuid [pk, not null, default: `gen_random_uuid()`]
platform varchar(50) [not null]
enabled boolean [not null, default: true]
credentials text [not null]
application_id varchar(255)
settings jsonb [not null, default: `{}`]
connection_mode varchar(20)
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
platform [name: 'system_bot_providers_platform_unique', unique]
}
}
table briefs {
id text [pk, not null]
user_id text [not null]
workspace_id text
task_id text
cron_job_id text
topic_id text
agent_id text
type text [not null]
priority text [default: 'info']
title text [not null]
summary text [not null]
artifacts jsonb
actions jsonb
resolved_action text
resolved_comment text
read_at "timestamp with time zone"
resolved_at "timestamp with time zone"
trigger varchar(255)
metadata jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'briefs_user_id_idx']
task_id [name: 'briefs_task_id_idx']
cron_job_id [name: 'briefs_cron_job_id_idx']
agent_id [name: 'briefs_agent_id_idx']
type [name: 'briefs_type_idx']
priority [name: 'briefs_priority_idx']
(user_id, resolved_at) [name: 'briefs_unresolved_idx']
trigger [name: 'briefs_trigger_idx']
workspace_id [name: 'briefs_workspace_id_idx']
}
}
table task_activities {
id uuid [pk, not null, default: `gen_random_uuid()`]
task_id text [not null]
user_id text [not null]
workspace_id text
actor_user_id text
actor_agent_id text
type text [not null]
payload jsonb
visibility text [not null, default: 'public']
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
task_id [name: 'task_activities_task_id_idx']
user_id [name: 'task_activities_user_id_idx']
workspace_id [name: 'task_activities_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'task_activities_workspace_visibility_idx']
}
}
table task_comments {
id text [pk, not null]
task_id text [not null]
user_id text [not null]
workspace_id text
author_user_id text
author_agent_id text
content text [not null]
editor_data jsonb
brief_id text
topic_id text
visibility text [not null, default: 'public']
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
task_id [name: 'task_comments_task_id_idx']
user_id [name: 'task_comments_user_id_idx']
author_user_id [name: 'task_comments_author_user_id_idx']
author_agent_id [name: 'task_comments_agent_id_idx']
brief_id [name: 'task_comments_brief_id_idx']
topic_id [name: 'task_comments_topic_id_idx']
workspace_id [name: 'task_comments_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'task_comments_workspace_visibility_idx']
}
}
table task_dependencies {
id uuid [pk, not null, default: `gen_random_uuid()`]
task_id text [not null]
depends_on_id text [not null]
user_id text [not null]
workspace_id text
type text [not null, default: 'blocks']
visibility text [not null, default: 'public']
condition jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(task_id, depends_on_id) [name: 'task_deps_unique_idx', unique]
task_id [name: 'task_deps_task_id_idx']
depends_on_id [name: 'task_deps_depends_on_id_idx']
user_id [name: 'task_deps_user_id_idx']
workspace_id [name: 'task_dependencies_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'task_deps_workspace_visibility_idx']
}
}
table task_documents {
id uuid [pk, not null, default: `gen_random_uuid()`]
task_id text [not null]
document_id text [not null]
user_id text [not null]
workspace_id text
pinned_by text [not null, default: 'agent']
visibility text [not null, default: 'public']
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(task_id, document_id) [name: 'task_docs_unique_idx', unique]
task_id [name: 'task_docs_task_id_idx']
document_id [name: 'task_docs_document_id_idx']
user_id [name: 'task_docs_user_id_idx']
workspace_id [name: 'task_documents_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'task_docs_workspace_visibility_idx']
}
}
table task_topics {
id uuid [pk, not null, default: `gen_random_uuid()`]
task_id text [not null]
topic_id text
user_id text [not null]
workspace_id text
seq integer [not null]
operation_id text
status text [not null, default: 'running']
trigger text
handoff jsonb
review_passed integer
review_score integer
review_scores jsonb
review_iteration integer
reviewed_at "timestamp with time zone"
visibility text [not null, default: 'public']
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(task_id, topic_id) [name: 'task_topics_unique_idx', unique]
task_id [name: 'task_topics_task_id_idx']
topic_id [name: 'task_topics_topic_id_idx']
user_id [name: 'task_topics_user_id_idx']
(task_id, status) [name: 'task_topics_status_idx']
workspace_id [name: 'task_topics_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'task_topics_workspace_visibility_idx']
}
}
table tasks {
id text [pk, not null]
identifier text [not null]
seq integer [not null]
created_by_user_id text [not null]
workspace_id text
project_id text
created_by_agent_id text
assignee_user_id text
assignee_agent_id text
parent_task_id text
name text
description varchar(255)
instruction text [not null]
editor_data jsonb
status text [not null, default: 'backlog']
priority integer [default: 0]
sort_order integer [default: 0]
automation_mode text
heartbeat_interval integer
heartbeat_timeout integer
last_heartbeat_at "timestamp with time zone"
schedule_pattern text
schedule_timezone text [default: 'UTC']
total_topics integer [default: 0]
max_topics integer
current_topic_id text
context jsonb [default: `{}`]
config jsonb [default: `{}`]
error text
visibility text [not null, default: 'public']
started_at "timestamp with time zone"
completed_at "timestamp with time zone"
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(identifier, created_by_user_id) [name: 'tasks_identifier_idx', unique]
created_by_user_id [name: 'tasks_created_by_user_id_idx']
created_by_agent_id [name: 'tasks_created_by_agent_id_idx']
assignee_user_id [name: 'tasks_assignee_user_id_idx']
assignee_agent_id [name: 'tasks_assignee_agent_id_idx']
parent_task_id [name: 'tasks_parent_task_id_idx']
status [name: 'tasks_status_idx']
priority [name: 'tasks_priority_idx']
automation_mode [name: 'tasks_automation_mode_idx']
(status, last_heartbeat_at) [name: 'tasks_heartbeat_idx']
workspace_id [name: 'tasks_workspace_id_idx']
(project_id, status) [name: 'tasks_project_id_status_idx']
(workspace_id, visibility, created_by_user_id) [name: 'tasks_workspace_visibility_idx']
(workspace_id, identifier) [name: 'tasks_identifier_workspace_id_unique', unique]
}
}
table threads {
id text [pk, not null]
title text
content text
editor_data jsonb
type text [not null]
status text
topic_id text [not null]
source_message_id text
parent_thread_id text
client_id text
agent_id text
group_id text
metadata jsonb
user_id text [not null]
last_active_at "timestamp with time zone" [default: `now()`]
workspace_id text
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'threads_client_id_user_id_unique', unique]
user_id [name: 'threads_user_id_idx']
topic_id [name: 'threads_topic_id_idx']
type [name: 'threads_type_idx']
agent_id [name: 'threads_agent_id_idx']
group_id [name: 'threads_group_id_idx']
parent_thread_id [name: 'threads_parent_thread_id_idx']
workspace_id [name: 'threads_workspace_id_idx']
}
}
table topic_documents {
document_id text [not null]
topic_id text [not null]
user_id text [not null]
workspace_id text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(document_id, topic_id) [pk]
user_id [name: 'topic_documents_user_id_idx']
topic_id [name: 'topic_documents_topic_id_idx']
document_id [name: 'topic_documents_document_id_idx']
workspace_id [name: 'topic_documents_workspace_id_idx']
}
}
table topic_shares {
id text [pk, not null]
topic_id text [not null]
user_id text [not null]
workspace_id text
visibility text [not null, default: 'private']
page_view_count integer [not null, default: 0]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
topic_id [name: 'topic_shares_topic_id_unique', unique]
user_id [name: 'topic_shares_user_id_idx']
workspace_id [name: 'topic_shares_workspace_id_idx']
}
}
table topics {
id text [pk, not null]
title text
favorite boolean [default: false]
session_id text
content text
editor_data jsonb
agent_id text
group_id text
project_id text
project_working_directory_id uuid
user_id text [not null]
client_id text
description text
history_summary text
metadata jsonb
trigger text
mode text
status text
completed_at "timestamp with time zone"
total_cost "numeric(20, 6)"
total_input_tokens integer
total_output_tokens integer
total_tokens integer
cost jsonb
usage jsonb
model text
provider text
sender_id text
workspace_id text
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(client_id, user_id) [name: 'topics_client_id_user_id_unique', unique]
created_at [name: 'topics_created_at_idx']
user_id [name: 'topics_user_id_idx']
(id, user_id) [name: 'topics_id_user_id_idx']
session_id [name: 'topics_session_id_idx']
group_id [name: 'topics_group_id_idx']
agent_id [name: 'topics_agent_id_idx']
project_id [name: 'topics_project_id_idx']
project_working_directory_id [name: 'topics_project_working_directory_id_idx']
trigger [name: 'topics_trigger_idx']
status [name: 'topics_status_idx']
model [name: 'topics_model_idx']
provider [name: 'topics_provider_idx']
(user_id, completed_at) [name: 'topics_user_id_completed_at_idx']
sender_id [name: 'topics_sender_id_idx']
workspace_id [name: 'topics_workspace_id_idx']
() [name: 'topics_extract_status_gin_idx']
}
}
table topic_comment_mentions {
id uuid [pk, not null, default: `gen_random_uuid()`]
comment_id text [not null]
mentioned_user_id text [not null]
workspace_id text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(comment_id, mentioned_user_id) [name: 'topic_comment_mentions_comment_id_mentioned_user_id_unique', unique]
(mentioned_user_id, created_at) [name: 'topic_comment_mentions_mentioned_user_id_created_at_idx']
workspace_id [name: 'topic_comment_mentions_workspace_id_idx']
}
}
table topic_comments {
id text [pk, not null]
topic_id text [not null]
message_id text
parent_comment_id text
author_user_id text
workspace_id text [not null]
content text [not null]
editor_data jsonb
client_id text [not null]
anchor_preview jsonb
deleted_at "timestamp with time zone"
moderated_at "timestamp with time zone"
moderated_by_user_id text
moderation_expires_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(topic_id, author_user_id, client_id) [name: 'topic_comments_topic_id_author_user_id_client_id_unique', unique]
(parent_comment_id, created_at, id) [name: 'topic_comments_parent_comment_id_created_at_id_idx']
(topic_id, created_at, id) [name: 'topic_comments_topic_id_created_at_id_idx']
(topic_id, message_id) [name: 'topic_comments_topic_id_message_id_idx']
message_id [name: 'topic_comments_message_id_idx']
author_user_id [name: 'topic_comments_author_user_id_idx']
moderation_expires_at [name: 'topic_comments_moderation_expires_at_idx']
moderated_by_user_id [name: 'topic_comments_moderated_by_user_id_idx']
workspace_id [name: 'topic_comments_workspace_id_idx']
}
}
table trash_items {
id uuid [pk, not null, default: `gen_random_uuid()`]
resource_type text [not null]
resource_id text [not null]
title text
meta jsonb
root_id uuid
user_id text [not null]
workspace_id text
deleted_by_user_id text
deleted_at "timestamp with time zone" [not null, default: `now()`]
expires_at "timestamp with time zone" [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(resource_type, resource_id) [name: 'trash_items_resource_unique', unique]
(user_id, deleted_at) [name: 'trash_items_personal_listing_idx']
(workspace_id, deleted_at) [name: 'trash_items_workspace_listing_idx']
expires_at [name: 'trash_items_expires_at_idx']
root_id [name: 'trash_items_root_id_idx']
}
}
table user_settings {
id text [pk, not null]
tts jsonb
hotkey jsonb
key_vaults text
general jsonb
language_model jsonb
system_agent jsonb
default_agent jsonb
market jsonb
memory jsonb
tool jsonb
image jsonb
notification jsonb
}
table users {
id text [pk, not null]
username text [unique]
email text [unique]
normalized_email text [unique]
avatar text
phone text [unique]
first_name text
last_name text
full_name text
interests "varchar(64)[]"
is_onboarded boolean [default: false]
agent_onboarding jsonb
onboarding jsonb
clerk_created_at "timestamp with time zone"
email_verified boolean [not null, default: false]
email_verified_at "timestamp with time zone"
preference jsonb
role text
banned boolean [default: false]
ban_reason text
ban_expires "timestamp with time zone"
two_factor_enabled boolean [default: false]
phone_number_verified boolean
last_active_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
email [name: 'users_email_idx']
username [name: 'users_username_idx']
created_at [name: 'users_created_at_idx']
created_at [name: 'users_banned_true_created_at_idx']
}
}
table user_memories {
id varchar(255) [pk, not null]
user_id text
memory_category varchar(255)
memory_layer varchar(255)
memory_type varchar(255)
metadata jsonb
tags text[]
title varchar(255)
summary text
summary_vector_1024 vector(1024)
details text
details_vector_1024 vector(1024)
status varchar(255)
accessed_count bigint [default: 0]
last_accessed_at "timestamp with time zone" [not null]
captured_at "timestamp with time zone" [not null, default: `now()`]
deleted_at "timestamp with time zone"
is_deleted boolean
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
summary_vector_1024 [name: 'user_memories_summary_vector_1024_index']
details_vector_1024 [name: 'user_memories_details_vector_1024_index']
user_id [name: 'user_memories_user_id_index']
}
}
table user_memories_activities {
id varchar(255) [pk, not null]
user_id text
user_memory_id varchar(255)
metadata jsonb
tags text[]
type varchar(255) [not null]
status varchar(255) [not null, default: 'pending']
timezone varchar(255)
starts_at "timestamp with time zone"
ends_at "timestamp with time zone"
associated_objects jsonb
associated_subjects jsonb
associated_locations jsonb
notes text
narrative text
narrative_vector vector(1024)
feedback text
feedback_vector vector(1024)
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
narrative_vector [name: 'user_memories_activities_narrative_vector_index']
feedback_vector [name: 'user_memories_activities_feedback_vector_index']
type [name: 'user_memories_activities_type_index']
user_id [name: 'user_memories_activities_user_id_index']
user_memory_id [name: 'user_memories_activities_user_memory_id_index']
status [name: 'user_memories_activities_status_index']
}
}
table user_memories_contexts {
id varchar(255) [pk, not null]
user_id text
user_memory_ids jsonb
metadata jsonb
tags text[]
associated_objects jsonb
associated_subjects jsonb
title text
description text
description_vector vector(1024)
type varchar(255)
current_status text
score_impact numeric [default: 0]
score_urgency numeric [default: 0]
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
description_vector [name: 'user_memories_contexts_description_vector_index']
type [name: 'user_memories_contexts_type_index']
user_id [name: 'user_memories_contexts_user_id_index']
user_memory_ids [name: 'user_memories_contexts_user_memory_ids_gin_idx']
}
}
table user_memories_experiences {
id varchar(255) [pk, not null]
user_id text
user_memory_id varchar(255)
metadata jsonb
tags text[]
type varchar(255)
situation text
situation_vector vector(1024)
reasoning text
possible_outcome text
action text
action_vector vector(1024)
key_learning text
key_learning_vector vector(1024)
score_confidence real [default: 0]
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
situation_vector [name: 'user_memories_experiences_situation_vector_index']
action_vector [name: 'user_memories_experiences_action_vector_index']
key_learning_vector [name: 'user_memories_experiences_key_learning_vector_index']
type [name: 'user_memories_experiences_type_index']
user_id [name: 'user_memories_experiences_user_id_index']
user_memory_id [name: 'user_memories_experiences_user_memory_id_index']
}
}
table user_memories_identities {
id varchar(255) [pk, not null]
user_id text
user_memory_id varchar(255)
metadata jsonb
tags text[]
type varchar(255)
description text
description_vector vector(1024)
episodic_date "timestamp with time zone"
relationship varchar(255)
role text
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
description_vector [name: 'user_memories_identities_description_vector_index']
type [name: 'user_memories_identities_type_index']
user_id [name: 'user_memories_identities_user_id_index']
user_memory_id [name: 'user_memories_identities_user_memory_id_index']
}
}
table user_memories_preferences {
id varchar(255) [pk, not null]
user_id text
user_memory_id varchar(255)
metadata jsonb
tags text[]
conclusion_directives text
conclusion_directives_vector vector(1024)
type varchar(255)
suggestions text
score_priority numeric [default: 0]
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
conclusion_directives_vector [name: 'user_memories_preferences_conclusion_directives_vector_index']
user_id [name: 'user_memories_preferences_user_id_index']
user_memory_id [name: 'user_memories_preferences_user_memory_id_index']
}
}
table user_memory_persona_document_histories {
id varchar(255) [pk, not null]
user_id text
persona_id varchar(255)
profile varchar(255) [not null, default: 'default']
snapshot_persona text
snapshot_tagline text
reasoning text
diff_persona text
diff_tagline text
snapshot text
summary text
edited_by varchar(255) [default: 'agent']
memory_ids jsonb
source_ids jsonb
metadata jsonb
previous_version integer
next_version integer
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
persona_id [name: 'user_persona_document_histories_persona_id_index']
user_id [name: 'user_persona_document_histories_user_id_index']
profile [name: 'user_persona_document_histories_profile_index']
}
}
table user_memory_persona_documents {
id varchar(255) [pk, not null]
user_id text
profile varchar(255) [not null, default: 'default']
tagline text
persona text
memory_ids jsonb
source_ids jsonb
metadata jsonb
version integer [not null, default: 1]
captured_at "timestamp with time zone" [not null, default: `now()`]
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(user_id, profile) [name: 'user_persona_documents_user_id_profile_unique', unique]
user_id [name: 'user_persona_documents_user_id_index']
}
}
table acceptances {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
project_id text
subject_type text [not null]
subject_id text [not null]
status text [not null, default: 'pending']
visibility text [not null, default: 'public']
requirement text
config jsonb [default: `{}`]
visual_render jsonb
metadata jsonb
completed_at "timestamp with time zone"
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'acceptances_user_id_idx']
workspace_id [name: 'acceptances_workspace_id_idx']
project_id [name: 'acceptances_project_id_idx']
(subject_type, subject_id) [name: 'acceptances_subject_idx']
status [name: 'acceptances_status_idx']
(workspace_id, visibility, user_id) [name: 'acceptances_workspace_visibility_idx']
(user_id, subject_type, subject_id) [name: 'acceptances_personal_subject_unique', unique]
(workspace_id, subject_type, subject_id) [name: 'acceptances_workspace_subject_unique', unique]
}
}
table verify_check_results {
id uuid [pk, not null, default: `gen_random_uuid()`]
verify_run_id uuid
operation_id text
user_id text [not null]
workspace_id text
check_item_id text [not null]
source_criterion_id uuid
check_item_title text
required boolean [not null, default: true]
check_item_index integer
verifier_type text [not null]
verifier_config_hash text
verifier_operation_id text
verifier_tracing_id uuid
status text [not null, default: 'pending']
verdict text
confidence "numeric(3, 2)"
toulmin jsonb
metadata jsonb
suggestion text
user_decision text
user_decision_detail jsonb
is_false_positive boolean
is_false_negative boolean
repair_operation_id text
started_at "timestamp with time zone"
completed_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(source_criterion_id, created_at) [name: 'verify_check_results_criterion_created_idx']
verify_run_id [name: 'verify_check_results_verify_run_id_idx']
operation_id [name: 'verify_check_results_operation_id_idx']
user_id [name: 'verify_check_results_user_id_idx']
(verify_run_id, check_item_id) [name: 'verify_check_results_verify_run_id_check_item_id_unique', unique]
verifier_type [name: 'verify_check_results_verifier_type_idx']
verifier_operation_id [name: 'verify_check_results_verifier_operation_id_idx']
verifier_tracing_id [name: 'verify_check_results_verifier_tracing_id_idx']
status [name: 'verify_check_results_status_idx']
verdict [name: 'verify_check_results_verdict_idx']
repair_operation_id [name: 'verify_check_results_repair_operation_id_idx']
workspace_id [name: 'verify_check_results_workspace_id_idx']
}
}
table verify_criteria {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
title text [not null]
description text
definition jsonb
tags text[] [not null, default: `[]`]
archived_at "timestamp with time zone"
required boolean [not null, default: true]
verifier_type text [not null]
verifier_config jsonb [default: `{}`]
on_fail text [not null, default: 'manual']
document_id varchar(255)
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'verify_criteria_user_id_idx']
verifier_type [name: 'verify_criteria_verifier_type_idx']
document_id [name: 'verify_criteria_document_id_idx']
workspace_id [name: 'verify_criteria_workspace_id_idx']
}
}
table verify_evidence {
id uuid [pk, not null, default: `gen_random_uuid()`]
description text
check_result_id uuid [not null]
type text [not null]
content text
document_id text
file_id text
metadata jsonb
captured_by text
captured_at "timestamp with time zone"
user_id text [not null]
workspace_id text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
check_result_id [name: 'verify_evidence_check_result_id_idx']
document_id [name: 'verify_evidence_document_id_idx']
file_id [name: 'verify_evidence_file_id_idx']
user_id [name: 'verify_evidence_user_id_idx']
workspace_id [name: 'verify_evidence_workspace_id_idx']
}
}
table verify_reports {
id uuid [pk, not null, default: `gen_random_uuid()`]
verify_run_id uuid
operation_id text
user_id text [not null]
workspace_id text
verdict text
overall_confidence "numeric(3, 2)"
total_checks integer
passed_checks integer
failed_checks integer
uncertain_checks integer
summary text
content text
reviewed_by_user boolean [default: false]
generated_by text [default: 'system']
generated_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
verify_run_id [name: 'verify_reports_verify_run_id_unique', unique]
operation_id [name: 'verify_reports_operation_id_idx']
user_id [name: 'verify_reports_user_id_idx']
workspace_id [name: 'verify_reports_workspace_id_idx']
}
}
table verify_review_predictions {
id uuid [pk, not null, default: `gen_random_uuid()`]
check_result_id uuid [not null]
user_id text [not null]
workspace_id text
provider text [not null]
model text [not null]
prompt_version text [not null]
status text [not null]
action text
status_reason text
confidence "numeric(3, 2)"
comment text
rationale text
annotations jsonb
adjudication text
adjudication_edit text
adjudicated_at "timestamp with time zone"
latency_ms integer
prompt_tokens integer
completion_tokens integer
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
check_result_id [name: 'verify_review_predictions_check_result_id_idx']
user_id [name: 'verify_review_predictions_user_id_idx']
workspace_id [name: 'verify_review_predictions_workspace_id_idx']
(provider, model) [name: 'verify_review_predictions_model_idx']
(check_result_id, provider, model, prompt_version) [name: 'verify_review_predictions_result_model_prompt_unique', unique]
}
}
table verify_rubric_criteria {
rubric_id uuid [not null]
criterion_id uuid [not null]
user_id text [not null]
workspace_id text
sort_order integer
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(rubric_id, criterion_id) [pk]
criterion_id [name: 'verify_rubric_criteria_criterion_id_idx']
user_id [name: 'verify_rubric_criteria_user_id_idx']
workspace_id [name: 'verify_rubric_criteria_workspace_id_idx']
}
}
table verify_rubrics {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
title text [not null]
description text
config jsonb [default: `{}`]
workspace_id text
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'verify_rubrics_user_id_idx']
workspace_id [name: 'verify_rubrics_workspace_id_idx']
}
}
table verify_runs {
id uuid [pk, not null, default: `gen_random_uuid()`]
user_id text [not null]
workspace_id text
acceptance_id uuid
round_index integer
operation_id text
source text [not null, default: 'agent']
visibility text [not null, default: 'public']
scenario text
title text
goal text
context jsonb
metadata jsonb
plan jsonb
flow_snapshots jsonb
plan_confirmed_at "timestamp with time zone"
status text
user_decision text
decision_detail jsonb
accessed_at "timestamp with time zone" [not null, default: `now()`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
user_id [name: 'verify_runs_user_id_idx']
workspace_id [name: 'verify_runs_workspace_id_idx']
acceptance_id [name: 'verify_runs_acceptance_id_idx']
(acceptance_id, round_index) [name: 'verify_runs_acceptance_round_unique', unique]
operation_id [name: 'verify_runs_operation_id_unique', unique]
source [name: 'verify_runs_source_idx']
user_decision [name: 'verify_runs_user_decision_idx']
}
}
table work_versions {
id uuid [pk, not null, default: `gen_random_uuid()`]
work_id text [not null]
version integer [not null]
title text
description text
content text
identifier text
status text
url text
change_type text [not null]
tool_name text [not null]
tool_identifier text [not null]
topic_id text
thread_id text
message_id text
root_operation_id text
tool_call_id text
agent_id text
metadata jsonb
cumulative_cost "numeric(20, 6)"
cumulative_usage jsonb
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(work_id, version) [name: 'work_versions_work_id_version_unique', unique]
(work_id, tool_call_id) [name: 'work_versions_work_id_tool_call_id_unique', unique]
thread_id [name: 'work_versions_thread_id_idx']
message_id [name: 'work_versions_message_id_idx']
agent_id [name: 'work_versions_agent_id_idx']
(root_operation_id, created_at) [name: 'work_versions_root_operation_created_at_idx']
(topic_id, created_at) [name: 'work_versions_topic_created_at_idx']
(topic_id, thread_id, created_at) [name: 'work_versions_topic_thread_created_at_idx']
}
}
table works {
id text [pk, not null]
type text [not null]
current_version_id uuid
resource_type text [not null]
resource_id text
title text
description text
identifier text
status text
url text
tool_name text [not null]
tool_identifier text [not null]
origin_topic_id text
origin_thread_id text
origin_agent_id text
user_id text [not null]
workspace_id text
visibility text [not null]
deleted_at "timestamp with time zone"
is_deleted boolean
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(resource_type, resource_id, user_id) [name: 'works_resource_user_unique', unique]
(workspace_id, resource_type, resource_id) [name: 'works_resource_workspace_unique', unique]
user_id [name: 'works_user_id_idx']
workspace_id [name: 'works_workspace_id_idx']
(workspace_id, visibility, user_id) [name: 'works_workspace_visibility_idx']
(user_id, updated_at, id) [name: 'works_user_updated_at_id_idx']
(workspace_id, updated_at, id) [name: 'works_workspace_updated_at_id_idx']
origin_topic_id [name: 'works_origin_topic_id_idx']
origin_thread_id [name: 'works_origin_thread_id_idx']
origin_agent_id [name: 'works_origin_agent_id_idx']
}
}
table workspace_audit_logs {
id text [pk, not null]
workspace_id text [not null]
user_id text
action text [not null]
resource_type text
resource_id text
metadata jsonb [default: `{}`]
ip_address text
created_at "timestamp with time zone" [not null, default: `now()`]
indexes {
workspace_id [name: 'workspace_audit_logs_workspace_id_idx']
action [name: 'workspace_audit_logs_action_idx']
created_at [name: 'workspace_audit_logs_created_at_idx']
}
}
table workspace_invitations {
id text [pk, not null]
workspace_id text [not null]
inviter_id text [not null]
email text
role text [not null, default: 'member']
token text [not null, unique]
status text [not null, default: 'pending']
expires_at "timestamp with time zone" [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
workspace_id [name: 'workspace_invitations_workspace_id_idx']
email [name: 'workspace_invitations_email_idx']
token [name: 'workspace_invitations_token_idx']
}
}
table workspace_members {
workspace_id text [not null]
user_id text [not null]
role text [not null, default: 'member']
joined_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
deleted_at "timestamp with time zone"
indexes {
(workspace_id, user_id) [pk]
user_id [name: 'workspace_members_user_id_idx']
workspace_id [name: 'workspace_members_unique_active_owner_idx', unique]
}
}
table workspace_user_settings {
id uuid [pk, not null, default: `gen_random_uuid()`]
workspace_id text [not null]
user_id text [not null]
preference jsonb [not null, default: `{}`]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
(workspace_id, user_id) [name: 'workspace_user_settings_workspace_id_user_id_unique', unique]
user_id [name: 'workspace_user_settings_user_id_idx']
}
}
table workspaces {
id text [pk, not null]
slug varchar(100) [not null]
name varchar(255) [not null]
description varchar(1000)
avatar text
primary_owner_id text [not null]
settings jsonb [default: `{}`]
frozen boolean [default: false]
frozen_reason text
frozen_at "timestamp with time zone"
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]
indexes {
slug [name: 'workspaces_slug_idx', unique]
primary_owner_id [name: 'workspaces_primary_owner_id_idx']
}
}
ref: agent_skills.user_id - users.id
ref: agent_skills.zip_file_hash - global_files.hash_id
ref: accounts.user_id > users.id
ref: passkey.userId > users.id
ref: auth_sessions.user_id > users.id
ref: two_factor.user_id > users.id
ref: agent_eval_datasets.benchmark_id > agent_eval_benchmarks.id
ref: agent_eval_datasets.user_id - users.id
ref: agent_eval_run_topics.run_id > agent_eval_runs.id
ref: agent_eval_run_topics.topic_id - topics.id
ref: agent_eval_run_topics.test_case_id > agent_eval_test_cases.id
ref: agent_eval_runs.dataset_id > agent_eval_datasets.id
ref: agent_eval_runs.target_agent_id - agents.id
ref: agent_eval_runs.user_id - users.id
ref: agent_eval_test_cases.dataset_id > agent_eval_datasets.id
ref: agents_files.file_id > files.id
ref: agents_files.agent_id > agents.id
ref: agents_knowledge_bases.knowledge_base_id - knowledge_bases.id
ref: agents_knowledge_bases.agent_id > agents.id
ref: agents.id - agent_shares.agent_id
ref: agents_to_sessions.session_id > sessions.id
ref: agents_to_sessions.agent_id > agents.id
ref: chat_groups_agents.chat_group_id > chat_groups.id
ref: chat_groups_agents.agent_id > agents.id
ref: chat_groups_agents.user_id - users.id
ref: chat_groups.user_id - users.id
ref: unstructured_chunks.file_id - files.id
ref: document_chunks.document_id > documents.id
ref: document_comment_mentions.comment_id > document_comments.id
ref: document_comment_mentions.mentioned_user_id - users.id
ref: document_comment_mentions.workspace_id - workspaces.id
ref: document_comments.author_user_id - users.id
ref: document_comments.document_id > documents.id
ref: document_comments.workspace_id - workspaces.id
ref: document_histories.document_id > documents.id
ref: document_histories.user_id - users.id
ref: document_likes.document_id > documents.id
ref: document_likes.user_id - users.id
ref: document_likes.workspace_id - workspaces.id
ref: documents.file_id > files.id
ref: file_chunks.file_id - files.id
ref: file_chunks.chunk_id - chunks.id
ref: generations.file_id - files.id
ref: files.embedding_task_id - async_tasks.id
ref: files_to_sessions.file_id > files.id
ref: files_to_sessions.session_id > sessions.id
ref: generation_batches.user_id - users.id
ref: generation_batches.generation_topic_id > generation_topics.id
ref: generation_topics.user_id - users.id
ref: generations.user_id - users.id
ref: generations.generation_batch_id > generation_batches.id
ref: generations.async_task_id - async_tasks.id
ref: message_groups.user_id - users.id
ref: message_groups.topic_id - topics.id
ref: message_groups.parent_group_id > message_groups.id
ref: messages_files.file_id > files.id
ref: messages_files.message_id > messages.id
ref: messages.id - message_translates.id
ref: messages.session_id - sessions.id
ref: messages.parent_id - messages.id
ref: messages.topic_id - topics.id
ref: threads.source_message_id - messages.id
ref: messages.message_group_id > message_groups.id
ref: sessions.group_id - session_groups.id
ref: topic_comment_mentions.comment_id > topic_comments.id
ref: topic_comment_mentions.mentioned_user_id - users.id
ref: topic_comments.topic_id > topics.id
ref: topic_comments.message_id - messages.id
ref: topic_comments.author_user_id - users.id
ref: topic_comments.workspace_id - workspaces.id
ref: topic_documents.document_id > documents.id
ref: topic_documents.topic_id > topics.id
ref: topics.session_id - sessions.id