1import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/sql/SqlClient";
3
4export default Effect.gen(function* () {
5 const sql = yield* SqlClient.SqlClient;
6
7 // The latest context each MCP App gave the agent (`ui/update-model-context`),
8 // one row per app, replaced on every update and sent with the thread's next
9 // turn.
10 yield* sql`
11 CREATE TABLE IF NOT EXISTS mcp_app_model_context (
12 thread_id TEXT NOT NULL,
13 item_id TEXT NOT NULL,
14 server TEXT NOT NULL,
15 tool TEXT NOT NULL,
16 text TEXT NOT NULL,
17 updated_at TEXT NOT NULL,
18 PRIMARY KEY (thread_id, item_id)
19 )
20 `;
21});