all tools

This commit is contained in:
leookun
2026-08-16 17:29:29 +08:00
parent eafede22e3
commit 4db2061611
95 changed files with 19023 additions and 5637 deletions
+93
View File
@@ -0,0 +1,93 @@
PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS conversations (
conversation_id TEXT PRIMARY KEY,
revision INTEGER NOT NULL DEFAULT 0,
head_blob_id BLOB,
updated_at_ms INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS messages (
conversation_id TEXT NOT NULL,
message_seq INTEGER NOT NULL,
message_id TEXT NOT NULL,
role TEXT NOT NULL,
origin TEXT NOT NULL,
payload_json TEXT NOT NULL,
runtime_event_id TEXT,
created_at_ms INTEGER NOT NULL,
PRIMARY KEY (conversation_id, message_seq),
UNIQUE (conversation_id, message_id),
UNIQUE (conversation_id, runtime_event_id),
FOREIGN KEY (conversation_id) REFERENCES conversations(conversation_id)
);
CREATE INDEX IF NOT EXISTS messages_conversation_seq
ON messages(conversation_id, message_seq);
CREATE TABLE IF NOT EXISTS blobs (
blob_id BLOB PRIMARY KEY CHECK(length(blob_id) = 32),
data BLOB NOT NULL,
created_at_ms INTEGER NOT NULL,
CHECK(length(data) >= 0)
);
CREATE TABLE IF NOT EXISTS blob_edges (
parent_blob_id BLOB NOT NULL,
child_blob_id BLOB NOT NULL,
field_name TEXT NOT NULL,
PRIMARY KEY (parent_blob_id, child_blob_id, field_name),
FOREIGN KEY (parent_blob_id) REFERENCES blobs(blob_id),
FOREIGN KEY (child_blob_id) REFERENCES blobs(blob_id)
);
CREATE INDEX IF NOT EXISTS blob_edges_child ON blob_edges(child_blob_id);
CREATE TABLE IF NOT EXISTS runs (
request_id TEXT PRIMARY KEY,
run_id TEXT,
conversation_id TEXT,
revision INTEGER,
append_seqno INTEGER NOT NULL DEFAULT -1,
status TEXT NOT NULL,
provider_call_index INTEGER NOT NULL DEFAULT 0,
turn_usage_json TEXT NOT NULL DEFAULT '{}',
created_at_ms INTEGER NOT NULL,
updated_at_ms INTEGER NOT NULL,
FOREIGN KEY (conversation_id) REFERENCES conversations(conversation_id)
);
CREATE INDEX IF NOT EXISTS runs_conversation_status
ON runs(conversation_id, status);
CREATE TABLE IF NOT EXISTS run_tool_results (
request_id TEXT NOT NULL,
batch_index INTEGER NOT NULL,
call_index INTEGER NOT NULL,
completion_seq INTEGER NOT NULL,
call_id TEXT NOT NULL,
output_json TEXT NOT NULL,
is_error INTEGER NOT NULL,
completed_at_ms INTEGER NOT NULL,
PRIMARY KEY (request_id, batch_index, call_index),
UNIQUE (request_id, call_id),
FOREIGN KEY (request_id) REFERENCES runs(request_id)
);
CREATE TABLE IF NOT EXISTS outbox (
outbox_id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id TEXT NOT NULL,
operation_key TEXT NOT NULL,
operation_kind TEXT NOT NULL,
payload BLOB NOT NULL,
dependency_blob_ids_json TEXT NOT NULL DEFAULT '[]',
attempts INTEGER NOT NULL DEFAULT 0,
acked_at_ms INTEGER,
created_at_ms INTEGER NOT NULL,
updated_at_ms INTEGER NOT NULL,
UNIQUE(request_id, operation_key),
FOREIGN KEY (request_id) REFERENCES runs(request_id)
);
CREATE INDEX IF NOT EXISTS outbox_pending
ON outbox(request_id, acked_at_ms, outbox_id);