| 22 | } |
| 23 | |
| 24 | function writeOpenCodeDb(path: string): void { |
| 25 | const db = new Database(path); |
| 26 | db.exec(` |
| 27 | CREATE TABLE project ( |
| 28 | id TEXT PRIMARY KEY, |
| 29 | worktree TEXT NOT NULL |
| 30 | ); |
| 31 | CREATE TABLE workspace ( |
| 32 | id TEXT PRIMARY KEY, |
| 33 | branch TEXT, |
| 34 | project_id TEXT NOT NULL |
| 35 | ); |
| 36 | CREATE TABLE session ( |
| 37 | id TEXT PRIMARY KEY, |
| 38 | project_id TEXT NOT NULL, |
| 39 | parent_id TEXT, |
| 40 | slug TEXT NOT NULL, |
| 41 | directory TEXT NOT NULL, |
| 42 | title TEXT NOT NULL, |
| 43 | version TEXT NOT NULL, |
| 44 | time_created INTEGER NOT NULL, |
| 45 | time_updated INTEGER NOT NULL, |
| 46 | workspace_id TEXT |
| 47 | ); |
| 48 | CREATE TABLE message ( |
| 49 | id TEXT PRIMARY KEY, |
| 50 | session_id TEXT NOT NULL, |
| 51 | time_created INTEGER NOT NULL, |
| 52 | time_updated INTEGER NOT NULL, |
| 53 | data TEXT NOT NULL |
| 54 | ); |
| 55 | CREATE TABLE part ( |
| 56 | id TEXT PRIMARY KEY, |
| 57 | message_id TEXT NOT NULL, |
| 58 | session_id TEXT NOT NULL, |
| 59 | time_created INTEGER NOT NULL, |
| 60 | time_updated INTEGER NOT NULL, |
| 61 | data TEXT NOT NULL |
| 62 | ); |
| 63 | `); |
| 64 | db.prepare('INSERT INTO project (id, worktree) VALUES (?, ?)').run('project-1', '/project-root'); |
| 65 | db.prepare('INSERT INTO workspace (id, branch, project_id) VALUES (?, ?, ?)').run( |
| 66 | 'workspace-1', |
| 67 | 'feature/opencode', |
| 68 | 'project-1', |
| 69 | ); |
| 70 | db.prepare( |
| 71 | ` |
| 72 | INSERT INTO session ( |
| 73 | id, project_id, parent_id, slug, directory, title, version, |
| 74 | time_created, time_updated, workspace_id |
| 75 | ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) |
| 76 | `, |
| 77 | ).run( |
| 78 | 'ses_1', |
| 79 | 'project-1', |
| 80 | null, |
| 81 | 'slug', |