@jait/gateway 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db/connection.d.ts +9 -11
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +10 -10
- package/dist/db/connection.js.map +1 -1
- package/dist/db/migrations.d.ts +2 -2
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +45 -45
- package/dist/db/migrations.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/db/connection.d.ts
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SQLite connection via
|
|
2
|
+
* SQLite connection via better-sqlite3 + Drizzle ORM.
|
|
3
3
|
*
|
|
4
4
|
* Database lives at ~/.jait/data/jait.db (created automatically).
|
|
5
5
|
* For tests, pass ":memory:" as dbPath.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
8
|
-
import { type
|
|
7
|
+
import Database from "better-sqlite3";
|
|
8
|
+
import { type BetterSQLite3Database } from "drizzle-orm/better-sqlite3";
|
|
9
9
|
import * as schema from "./schema.js";
|
|
10
|
-
export type JaitDB =
|
|
10
|
+
export type JaitDB = BetterSQLite3Database<typeof schema>;
|
|
11
11
|
/** Resolve the default DB path: ~/.jait/data/jait.db */
|
|
12
12
|
export declare function defaultDbPath(): string;
|
|
13
13
|
/**
|
|
14
14
|
* Open (or create) the SQLite database and run table creation.
|
|
15
15
|
*
|
|
16
16
|
* @param dbPath File path for the SQLite DB, or ":memory:" for tests.
|
|
17
|
-
* @returns { db, sqlite } — drizzle instance + raw
|
|
17
|
+
* @returns { db, sqlite } — drizzle instance + raw better-sqlite3 handle
|
|
18
18
|
*/
|
|
19
19
|
export declare function openDatabase(dbPath?: string): {
|
|
20
|
-
db:
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
sqlite: Database;
|
|
20
|
+
db: JaitDB;
|
|
21
|
+
sqlite: Database.Database;
|
|
24
22
|
};
|
|
25
23
|
/**
|
|
26
24
|
* Run DDL to create all tables if they don't already exist.
|
|
@@ -29,9 +27,9 @@ export declare function openDatabase(dbPath?: string): {
|
|
|
29
27
|
* Migrations are numbered and tracked in a `_migrations` table.
|
|
30
28
|
* Only new (un-applied) migrations run on each startup — safe for updates.
|
|
31
29
|
*/
|
|
32
|
-
export declare function migrateDatabase(sqlite: Database): void;
|
|
30
|
+
export declare function migrateDatabase(sqlite: Database.Database): void;
|
|
33
31
|
/**
|
|
34
32
|
* Get the current schema version (highest applied migration ID).
|
|
35
33
|
*/
|
|
36
|
-
export declare function getSchemaVersion(sqlite: Database): number;
|
|
34
|
+
export declare function getSchemaVersion(sqlite: Database.Database): number;
|
|
37
35
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAW,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAMtC,MAAM,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;AAE1D,wDAAwD;AACxD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAA;CAAE,CAoBvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,QAiCxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAOlE"}
|
package/dist/db/connection.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SQLite connection via
|
|
2
|
+
* SQLite connection via better-sqlite3 + Drizzle ORM.
|
|
3
3
|
*
|
|
4
4
|
* Database lives at ~/.jait/data/jait.db (created automatically).
|
|
5
5
|
* For tests, pass ":memory:" as dbPath.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
8
|
-
import { drizzle } from "drizzle-orm/
|
|
7
|
+
import Database from "better-sqlite3";
|
|
8
|
+
import { drizzle } from "drizzle-orm/better-sqlite3";
|
|
9
9
|
import * as schema from "./schema.js";
|
|
10
10
|
import { migrations } from "./migrations.js";
|
|
11
11
|
import { mkdirSync, existsSync } from "node:fs";
|
|
@@ -19,7 +19,7 @@ export function defaultDbPath() {
|
|
|
19
19
|
* Open (or create) the SQLite database and run table creation.
|
|
20
20
|
*
|
|
21
21
|
* @param dbPath File path for the SQLite DB, or ":memory:" for tests.
|
|
22
|
-
* @returns { db, sqlite } — drizzle instance + raw
|
|
22
|
+
* @returns { db, sqlite } — drizzle instance + raw better-sqlite3 handle
|
|
23
23
|
*/
|
|
24
24
|
export function openDatabase(dbPath) {
|
|
25
25
|
const resolvedPath = dbPath ?? defaultDbPath();
|
|
@@ -32,8 +32,8 @@ export function openDatabase(dbPath) {
|
|
|
32
32
|
}
|
|
33
33
|
const sqlite = new Database(resolvedPath);
|
|
34
34
|
// Enable WAL mode for better concurrent read performance
|
|
35
|
-
sqlite.
|
|
36
|
-
sqlite.
|
|
35
|
+
sqlite.pragma("journal_mode = WAL");
|
|
36
|
+
sqlite.pragma("foreign_keys = ON");
|
|
37
37
|
const db = drizzle(sqlite, { schema });
|
|
38
38
|
return { db, sqlite };
|
|
39
39
|
}
|
|
@@ -46,7 +46,7 @@ export function openDatabase(dbPath) {
|
|
|
46
46
|
*/
|
|
47
47
|
export function migrateDatabase(sqlite) {
|
|
48
48
|
// Ensure the migrations tracking table exists
|
|
49
|
-
sqlite.
|
|
49
|
+
sqlite.exec(`
|
|
50
50
|
CREATE TABLE IF NOT EXISTS _migrations (
|
|
51
51
|
id INTEGER PRIMARY KEY,
|
|
52
52
|
name TEXT NOT NULL,
|
|
@@ -54,7 +54,7 @@ export function migrateDatabase(sqlite) {
|
|
|
54
54
|
)
|
|
55
55
|
`);
|
|
56
56
|
// Load which migrations have already been applied
|
|
57
|
-
const applied = new Set(sqlite.
|
|
57
|
+
const applied = new Set(sqlite.prepare("SELECT id FROM _migrations").all()
|
|
58
58
|
.map((r) => r.id));
|
|
59
59
|
let ran = 0;
|
|
60
60
|
for (const migration of migrations) {
|
|
@@ -63,7 +63,7 @@ export function migrateDatabase(sqlite) {
|
|
|
63
63
|
console.log(` Running migration ${migration.id}: ${migration.name}`);
|
|
64
64
|
migration.run(sqlite);
|
|
65
65
|
// Record that this migration has been applied
|
|
66
|
-
sqlite.
|
|
66
|
+
sqlite.prepare("INSERT INTO _migrations (id, name, applied_at) VALUES (?, ?, ?)").run(migration.id, migration.name, new Date().toISOString());
|
|
67
67
|
ran++;
|
|
68
68
|
}
|
|
69
69
|
if (ran > 0) {
|
|
@@ -75,7 +75,7 @@ export function migrateDatabase(sqlite) {
|
|
|
75
75
|
*/
|
|
76
76
|
export function getSchemaVersion(sqlite) {
|
|
77
77
|
try {
|
|
78
|
-
const row = sqlite.
|
|
78
|
+
const row = sqlite.prepare("SELECT MAX(id) as v FROM _migrations").get();
|
|
79
79
|
return row?.v ?? 0;
|
|
80
80
|
}
|
|
81
81
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/db/migrations.d.ts
CHANGED
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
* - Use `CREATE TABLE IF NOT EXISTS` and try/catch `ALTER TABLE` for safety.
|
|
15
15
|
* - Give each migration a short human-readable `name`.
|
|
16
16
|
*/
|
|
17
|
-
import type
|
|
17
|
+
import type Database from "better-sqlite3";
|
|
18
18
|
export interface Migration {
|
|
19
19
|
id: number;
|
|
20
20
|
name: string;
|
|
21
|
-
run: (db: Database) => void;
|
|
21
|
+
run: (db: Database.Database) => void;
|
|
22
22
|
}
|
|
23
23
|
export declare const migrations: Migration[];
|
|
24
24
|
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,EA0SjC,CAAC"}
|
package/dist/db/migrations.js
CHANGED
|
@@ -4,7 +4,7 @@ export const migrations = [
|
|
|
4
4
|
id: 1,
|
|
5
5
|
name: "baseline_schema",
|
|
6
6
|
run(db) {
|
|
7
|
-
db.
|
|
7
|
+
db.exec(`
|
|
8
8
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
9
9
|
id TEXT PRIMARY KEY,
|
|
10
10
|
user_id TEXT,
|
|
@@ -16,8 +16,8 @@ export const migrations = [
|
|
|
16
16
|
metadata TEXT
|
|
17
17
|
)
|
|
18
18
|
`);
|
|
19
|
-
db.
|
|
20
|
-
db.
|
|
19
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_sessions_user_status ON sessions(user_id, status, last_active_at DESC)`);
|
|
20
|
+
db.exec(`
|
|
21
21
|
CREATE TABLE IF NOT EXISTS users (
|
|
22
22
|
id TEXT PRIMARY KEY,
|
|
23
23
|
username TEXT NOT NULL UNIQUE,
|
|
@@ -26,8 +26,8 @@ export const migrations = [
|
|
|
26
26
|
updated_at TEXT NOT NULL
|
|
27
27
|
)
|
|
28
28
|
`);
|
|
29
|
-
db.
|
|
30
|
-
db.
|
|
29
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_users_username ON users(username)`);
|
|
30
|
+
db.exec(`
|
|
31
31
|
CREATE TABLE IF NOT EXISTS user_settings (
|
|
32
32
|
user_id TEXT PRIMARY KEY,
|
|
33
33
|
theme TEXT NOT NULL DEFAULT 'system',
|
|
@@ -36,7 +36,7 @@ export const migrations = [
|
|
|
36
36
|
updated_at TEXT NOT NULL
|
|
37
37
|
)
|
|
38
38
|
`);
|
|
39
|
-
db.
|
|
39
|
+
db.exec(`
|
|
40
40
|
CREATE TABLE IF NOT EXISTS audit_log (
|
|
41
41
|
id TEXT PRIMARY KEY,
|
|
42
42
|
timestamp TEXT NOT NULL,
|
|
@@ -55,11 +55,11 @@ export const migrations = [
|
|
|
55
55
|
consent_method TEXT
|
|
56
56
|
)
|
|
57
57
|
`);
|
|
58
|
-
db.
|
|
59
|
-
db.
|
|
60
|
-
db.
|
|
61
|
-
db.
|
|
62
|
-
db.
|
|
58
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_audit_action_id ON audit_log(action_id)`);
|
|
59
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_audit_session ON audit_log(session_id, timestamp DESC)`);
|
|
60
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_audit_surface ON audit_log(surface_type, timestamp DESC)`);
|
|
61
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_audit_device ON audit_log(device_id, timestamp DESC)`);
|
|
62
|
+
db.exec(`
|
|
63
63
|
CREATE TABLE IF NOT EXISTS trust_levels (
|
|
64
64
|
action_type TEXT PRIMARY KEY,
|
|
65
65
|
approved_count INTEGER DEFAULT 0,
|
|
@@ -67,7 +67,7 @@ export const migrations = [
|
|
|
67
67
|
current_level INTEGER DEFAULT 0
|
|
68
68
|
)
|
|
69
69
|
`);
|
|
70
|
-
db.
|
|
70
|
+
db.exec(`
|
|
71
71
|
CREATE TABLE IF NOT EXISTS consent_log (
|
|
72
72
|
id TEXT PRIMARY KEY,
|
|
73
73
|
action_id TEXT NOT NULL,
|
|
@@ -77,14 +77,14 @@ export const migrations = [
|
|
|
77
77
|
decided_via TEXT
|
|
78
78
|
)
|
|
79
79
|
`);
|
|
80
|
-
db.
|
|
80
|
+
db.exec(`
|
|
81
81
|
CREATE TABLE IF NOT EXISTS consent_session_approvals (
|
|
82
82
|
session_id TEXT PRIMARY KEY,
|
|
83
83
|
approve_all INTEGER NOT NULL DEFAULT 1,
|
|
84
84
|
updated_at TEXT NOT NULL
|
|
85
85
|
)
|
|
86
86
|
`);
|
|
87
|
-
db.
|
|
87
|
+
db.exec(`
|
|
88
88
|
CREATE TABLE IF NOT EXISTS memories (
|
|
89
89
|
id TEXT PRIMARY KEY,
|
|
90
90
|
scope TEXT NOT NULL,
|
|
@@ -98,9 +98,9 @@ export const migrations = [
|
|
|
98
98
|
expires_at TEXT
|
|
99
99
|
)
|
|
100
100
|
`);
|
|
101
|
-
db.
|
|
102
|
-
db.
|
|
103
|
-
db.
|
|
101
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_scope ON memories(scope, created_at)`);
|
|
102
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_expires ON memories(expires_at)`);
|
|
103
|
+
db.exec(`
|
|
104
104
|
CREATE TABLE IF NOT EXISTS messages (
|
|
105
105
|
id TEXT PRIMARY KEY,
|
|
106
106
|
session_id TEXT NOT NULL,
|
|
@@ -110,8 +110,8 @@ export const migrations = [
|
|
|
110
110
|
created_at TEXT NOT NULL
|
|
111
111
|
)
|
|
112
112
|
`);
|
|
113
|
-
db.
|
|
114
|
-
db.
|
|
113
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id, created_at)`);
|
|
114
|
+
db.exec(`
|
|
115
115
|
CREATE TABLE IF NOT EXISTS scheduled_jobs (
|
|
116
116
|
id TEXT PRIMARY KEY,
|
|
117
117
|
user_id TEXT,
|
|
@@ -127,9 +127,9 @@ export const migrations = [
|
|
|
127
127
|
updated_at TEXT NOT NULL
|
|
128
128
|
)
|
|
129
129
|
`);
|
|
130
|
-
db.
|
|
131
|
-
db.
|
|
132
|
-
db.
|
|
130
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_scheduled_jobs_enabled ON scheduled_jobs(enabled)`);
|
|
131
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_scheduled_jobs_updated ON scheduled_jobs(updated_at DESC)`);
|
|
132
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_scheduled_jobs_user_updated ON scheduled_jobs(user_id, updated_at DESC)`);
|
|
133
133
|
},
|
|
134
134
|
},
|
|
135
135
|
// ─── 002: Legacy column migrations (safe re-runs) ─────────────────
|
|
@@ -139,15 +139,15 @@ export const migrations = [
|
|
|
139
139
|
run(db) {
|
|
140
140
|
// These were the old try/catch ALTER TABLEs — now tracked properly
|
|
141
141
|
try {
|
|
142
|
-
db.
|
|
142
|
+
db.exec(`ALTER TABLE sessions ADD COLUMN user_id TEXT`);
|
|
143
143
|
}
|
|
144
144
|
catch { /* exists */ }
|
|
145
145
|
try {
|
|
146
|
-
db.
|
|
146
|
+
db.exec(`ALTER TABLE scheduled_jobs ADD COLUMN user_id TEXT`);
|
|
147
147
|
}
|
|
148
148
|
catch { /* exists */ }
|
|
149
149
|
try {
|
|
150
|
-
db.
|
|
150
|
+
db.exec(`ALTER TABLE messages ADD COLUMN tool_calls TEXT`);
|
|
151
151
|
}
|
|
152
152
|
catch { /* exists */ }
|
|
153
153
|
},
|
|
@@ -158,7 +158,7 @@ export const migrations = [
|
|
|
158
158
|
name: "user_settings_disabled_tools",
|
|
159
159
|
run(db) {
|
|
160
160
|
try {
|
|
161
|
-
db.
|
|
161
|
+
db.exec(`ALTER TABLE user_settings ADD COLUMN disabled_tools TEXT`);
|
|
162
162
|
}
|
|
163
163
|
catch { /* exists */ }
|
|
164
164
|
},
|
|
@@ -168,7 +168,7 @@ export const migrations = [
|
|
|
168
168
|
id: 4,
|
|
169
169
|
name: "session_state_table",
|
|
170
170
|
run(db) {
|
|
171
|
-
db.
|
|
171
|
+
db.exec(`
|
|
172
172
|
CREATE TABLE IF NOT EXISTS session_state (
|
|
173
173
|
session_id TEXT NOT NULL,
|
|
174
174
|
key TEXT NOT NULL,
|
|
@@ -177,7 +177,7 @@ export const migrations = [
|
|
|
177
177
|
PRIMARY KEY (session_id, key)
|
|
178
178
|
)
|
|
179
179
|
`);
|
|
180
|
-
db.
|
|
180
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_session_state_session ON session_state(session_id)`);
|
|
181
181
|
},
|
|
182
182
|
},
|
|
183
183
|
// ─── 005: stt_provider in user_settings ────────────────────────────
|
|
@@ -186,7 +186,7 @@ export const migrations = [
|
|
|
186
186
|
name: "user_settings_stt_provider",
|
|
187
187
|
run(db) {
|
|
188
188
|
try {
|
|
189
|
-
db.
|
|
189
|
+
db.exec(`ALTER TABLE user_settings ADD COLUMN stt_provider TEXT NOT NULL DEFAULT 'simulated'`);
|
|
190
190
|
}
|
|
191
191
|
catch { /* exists */ }
|
|
192
192
|
},
|
|
@@ -197,7 +197,7 @@ export const migrations = [
|
|
|
197
197
|
name: "messages_segments_column",
|
|
198
198
|
run(db) {
|
|
199
199
|
try {
|
|
200
|
-
db.
|
|
200
|
+
db.exec(`ALTER TABLE messages ADD COLUMN segments TEXT`);
|
|
201
201
|
}
|
|
202
202
|
catch { /* exists */ }
|
|
203
203
|
},
|
|
@@ -207,7 +207,7 @@ export const migrations = [
|
|
|
207
207
|
id: 7,
|
|
208
208
|
name: "agent_threads_tables",
|
|
209
209
|
run(db) {
|
|
210
|
-
db.
|
|
210
|
+
db.exec(`
|
|
211
211
|
CREATE TABLE IF NOT EXISTS agent_threads (
|
|
212
212
|
id TEXT PRIMARY KEY,
|
|
213
213
|
user_id TEXT,
|
|
@@ -226,11 +226,11 @@ export const migrations = [
|
|
|
226
226
|
completed_at TEXT
|
|
227
227
|
)
|
|
228
228
|
`);
|
|
229
|
-
db.
|
|
230
|
-
db.
|
|
231
|
-
db.
|
|
232
|
-
db.
|
|
233
|
-
db.
|
|
229
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_agent_threads_user ON agent_threads(user_id)`);
|
|
230
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_agent_threads_session ON agent_threads(session_id)`);
|
|
231
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_agent_threads_status ON agent_threads(status)`);
|
|
232
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_agent_threads_updated ON agent_threads(updated_at)`);
|
|
233
|
+
db.exec(`
|
|
234
234
|
CREATE TABLE IF NOT EXISTS agent_thread_activities (
|
|
235
235
|
id TEXT PRIMARY KEY,
|
|
236
236
|
thread_id TEXT NOT NULL,
|
|
@@ -240,7 +240,7 @@ export const migrations = [
|
|
|
240
240
|
created_at TEXT NOT NULL
|
|
241
241
|
)
|
|
242
242
|
`);
|
|
243
|
-
db.
|
|
243
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_agent_thread_activities_thread ON agent_thread_activities(thread_id, created_at)`);
|
|
244
244
|
},
|
|
245
245
|
},
|
|
246
246
|
// ─── 008: Add chat_provider to user_settings ──────────────────────
|
|
@@ -249,7 +249,7 @@ export const migrations = [
|
|
|
249
249
|
name: "user_settings_chat_provider",
|
|
250
250
|
run(db) {
|
|
251
251
|
try {
|
|
252
|
-
db.
|
|
252
|
+
db.exec(`ALTER TABLE user_settings ADD COLUMN chat_provider TEXT NOT NULL DEFAULT 'jait'`);
|
|
253
253
|
}
|
|
254
254
|
catch { /* column already exists */ }
|
|
255
255
|
},
|
|
@@ -260,19 +260,19 @@ export const migrations = [
|
|
|
260
260
|
name: "agent_threads_pr_metadata",
|
|
261
261
|
run(db) {
|
|
262
262
|
try {
|
|
263
|
-
db.
|
|
263
|
+
db.exec(`ALTER TABLE agent_threads ADD COLUMN pr_url TEXT`);
|
|
264
264
|
}
|
|
265
265
|
catch { /* exists */ }
|
|
266
266
|
try {
|
|
267
|
-
db.
|
|
267
|
+
db.exec(`ALTER TABLE agent_threads ADD COLUMN pr_number INTEGER`);
|
|
268
268
|
}
|
|
269
269
|
catch { /* exists */ }
|
|
270
270
|
try {
|
|
271
|
-
db.
|
|
271
|
+
db.exec(`ALTER TABLE agent_threads ADD COLUMN pr_title TEXT`);
|
|
272
272
|
}
|
|
273
273
|
catch { /* exists */ }
|
|
274
274
|
try {
|
|
275
|
-
db.
|
|
275
|
+
db.exec(`ALTER TABLE agent_threads ADD COLUMN pr_state TEXT`);
|
|
276
276
|
}
|
|
277
277
|
catch { /* exists */ }
|
|
278
278
|
},
|
|
@@ -282,7 +282,7 @@ export const migrations = [
|
|
|
282
282
|
id: 10,
|
|
283
283
|
name: "automation_repositories_table",
|
|
284
284
|
run(db) {
|
|
285
|
-
db.
|
|
285
|
+
db.exec(`
|
|
286
286
|
CREATE TABLE IF NOT EXISTS automation_repositories (
|
|
287
287
|
id TEXT PRIMARY KEY,
|
|
288
288
|
user_id TEXT,
|
|
@@ -294,7 +294,7 @@ export const migrations = [
|
|
|
294
294
|
updated_at TEXT NOT NULL
|
|
295
295
|
)
|
|
296
296
|
`);
|
|
297
|
-
db.
|
|
297
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_automation_repos_user ON automation_repositories(user_id)`);
|
|
298
298
|
},
|
|
299
299
|
},
|
|
300
300
|
// ─── 011: Add device_id to automation repositories ──────────────
|
|
@@ -303,7 +303,7 @@ export const migrations = [
|
|
|
303
303
|
name: "automation_repositories_device_id",
|
|
304
304
|
run(db) {
|
|
305
305
|
try {
|
|
306
|
-
db.
|
|
306
|
+
db.exec(`ALTER TABLE automation_repositories ADD COLUMN device_id TEXT`);
|
|
307
307
|
}
|
|
308
308
|
catch { /* column already exists */ }
|
|
309
309
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,sEAAsE;IACtE;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,iBAAiB;QACvB,GAAG,CAAC,EAAE;YACJ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -20,10 +20,10 @@ import type { SessionStateService } from "./services/session-state.js";
|
|
|
20
20
|
import type { ThreadService } from "./services/threads.js";
|
|
21
21
|
import type { RepositoryService } from "./services/repositories.js";
|
|
22
22
|
import type { ProviderRegistry } from "./providers/registry.js";
|
|
23
|
-
import type
|
|
23
|
+
import type Database from "better-sqlite3";
|
|
24
24
|
export interface ServerDeps {
|
|
25
25
|
db?: JaitDB;
|
|
26
|
-
sqlite?: Database;
|
|
26
|
+
sqlite?: Database.Database;
|
|
27
27
|
sessionService?: SessionService;
|
|
28
28
|
userService?: UserService;
|
|
29
29
|
audit?: AuditWriter;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAO9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuB7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jait/gateway",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Jait AI gateway — local-first AI coding agent with terminal, filesystem, and browser control",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsc",
|
|
17
17
|
"dev": "bun --watch src/index.ts",
|
|
18
|
-
"start": "
|
|
18
|
+
"start": "node dist/index.js",
|
|
19
19
|
"typecheck": "tsc --noEmit"
|
|
20
20
|
},
|
|
21
21
|
"keywords": [
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"@fastify/cors": "^11.0.0",
|
|
39
39
|
"@fastify/static": "^9.0.0",
|
|
40
40
|
"@fastify/websocket": "^11.0.0",
|
|
41
|
-
"@jait/screen-share": "^0.1.
|
|
42
|
-
"@jait/shared": "^0.1.
|
|
43
|
-
"@jait/web": "^0.1.
|
|
44
|
-
"
|
|
41
|
+
"@jait/screen-share": "^0.1.3",
|
|
42
|
+
"@jait/shared": "^0.1.3",
|
|
43
|
+
"@jait/web": "^0.1.3",
|
|
44
|
+
"better-sqlite3": "^11.0.0",
|
|
45
45
|
"dotenv": "^16.4.0",
|
|
46
46
|
"drizzle-orm": "^0.45.1",
|
|
47
47
|
"fastify": "^5.2.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"ws": "^8.18.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/
|
|
56
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
57
57
|
"@types/ws": "^8.5.0",
|
|
58
58
|
"drizzle-kit": "^0.31.9",
|
|
59
59
|
"typescript": "^5.7.3"
|