aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/db/schema.ts
diff options
context:
space:
mode:
authorClawd <ai@clawd.bot>2026-02-28 07:26:43 -0800
committerClawd <ai@clawd.bot>2026-02-28 07:26:43 -0800
commit332e5cec2992fefb302251962a3ceca38437a110 (patch)
tree7802469abb929e741ccbecd989828f1baf37145f /src/main/db/schema.ts
parentd2d6fd48d97b876c9a9a424c9d2cc1de5352b144 (diff)
Phase 2: Claude integration layer
- Add @anthropic-ai/claude-agent-sdk dependency - Implement src/main/claude/phases.ts with phase configs (research/plan/implement) - Implement src/main/claude/index.ts with SDK wrapper - query() integration with session management - Session resume support - Artifact read/write utilities - Phase advancement logic
Diffstat (limited to 'src/main/db/schema.ts')
-rw-r--r--src/main/db/schema.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/main/db/schema.ts b/src/main/db/schema.ts
new file mode 100644
index 0000000..c2093f9
--- /dev/null
+++ b/src/main/db/schema.ts
@@ -0,0 +1,35 @@
1import Database from "better-sqlite3";
2
3export function initSchema(db: Database.Database) {
4 db.exec(`
5 CREATE TABLE IF NOT EXISTS projects (
6 id TEXT PRIMARY KEY,
7 name TEXT NOT NULL,
8 path TEXT NOT NULL,
9 created_at INTEGER NOT NULL DEFAULT (unixepoch()),
10 updated_at INTEGER NOT NULL DEFAULT (unixepoch())
11 );
12
13 CREATE TABLE IF NOT EXISTS sessions (
14 id TEXT PRIMARY KEY,
15 project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
16 name TEXT NOT NULL,
17 phase TEXT NOT NULL DEFAULT 'research',
18 claude_session_id TEXT,
19 permission_mode TEXT NOT NULL DEFAULT 'acceptEdits',
20 created_at INTEGER NOT NULL DEFAULT (unixepoch()),
21 updated_at INTEGER NOT NULL DEFAULT (unixepoch())
22 );
23
24 CREATE TABLE IF NOT EXISTS messages (
25 id TEXT PRIMARY KEY,
26 session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
27 role TEXT NOT NULL,
28 content TEXT NOT NULL,
29 created_at INTEGER NOT NULL DEFAULT (unixepoch())
30 );
31
32 CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
33 CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id);
34 `);
35}