| 144 | } |
| 145 | |
| 146 | function makeCortexkitDb() { |
| 147 | const ck = new Database(":memory:"); |
| 148 | databases.push(ck); |
| 149 | ck.exec(` |
| 150 | CREATE TABLE compartments ( |
| 151 | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| 152 | session_id TEXT NOT NULL, |
| 153 | sequence INTEGER NOT NULL, |
| 154 | start_message INTEGER NOT NULL, |
| 155 | end_message INTEGER NOT NULL, |
| 156 | start_message_id TEXT DEFAULT '', |
| 157 | end_message_id TEXT DEFAULT '', |
| 158 | title TEXT NOT NULL, |
| 159 | content TEXT NOT NULL, |
| 160 | p1 TEXT, |
| 161 | p2 TEXT, |
| 162 | p3 TEXT, |
| 163 | p4 TEXT, |
| 164 | importance INTEGER NOT NULL DEFAULT 50, |
| 165 | episode_type TEXT, |
| 166 | legacy INTEGER NOT NULL DEFAULT 0, |
| 167 | created_at INTEGER NOT NULL, |
| 168 | harness TEXT NOT NULL DEFAULT 'opencode', |
| 169 | UNIQUE(session_id, sequence) |
| 170 | ); |
| 171 | CREATE TABLE session_facts ( |
| 172 | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| 173 | session_id TEXT NOT NULL, |
| 174 | category TEXT NOT NULL, |
| 175 | content TEXT NOT NULL, |
| 176 | created_at INTEGER NOT NULL, |
| 177 | updated_at INTEGER NOT NULL, |
| 178 | harness TEXT NOT NULL DEFAULT 'opencode' |
| 179 | ); |
| 180 | `); |
| 181 | return ck; |
| 182 | } |
| 183 | |
| 184 | afterEach(() => { |
| 185 | for (const db of databases.splice(0)) db.close(); |