1import * as SqlClient from "effect/sql/SqlClient";
2import * as Effect from "effect/Effect";
3
4export default Effect.gen(function* () {
5 const sql = yield* SqlClient.SqlClient;
6
7 yield* sql`
8 CREATE TABLE IF NOT EXISTS provider_session_runtime (
9 thread_id TEXT PRIMARY KEY,
10 provider_name TEXT NOT NULL,
11 adapter_key TEXT NOT NULL,
12 runtime_mode TEXT NOT NULL DEFAULT 'full-access',
13 status TEXT NOT NULL,
14 last_seen_at TEXT NOT NULL,
15 resume_cursor_json TEXT,
16 runtime_payload_json TEXT
17 )
18 `;
19
20 yield* sql`
21 CREATE INDEX IF NOT EXISTS idx_provider_session_runtime_status
22 ON provider_session_runtime(status)
23 `;
24
25 yield* sql`
26 CREATE INDEX IF NOT EXISTS idx_provider_session_runtime_provider
27 ON provider_session_runtime(provider_name)
28 `;
29});