@cereworker/core 26.322.5 → 26.323.1

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.
@@ -1,7 +1,8 @@
1
1
  import type { Conversation, Message, MessageRole } from './types.js';
2
2
  export declare class ConversationStore {
3
- private backend;
3
+ private db;
4
4
  constructor(dbPath?: string);
5
+ private ensureSchema;
5
6
  create(): Conversation;
6
7
  get(id: string): Conversation | undefined;
7
8
  list(): Conversation[];
@@ -11,7 +12,5 @@ export declare class ConversationStore {
11
12
  /** Get the most recent message content from a conversation (for list previews) */
12
13
  getPreview(conversationId: string): string | null;
13
14
  close(): void;
14
- /** Migrate conversations from a JSON fallback file into SQLite, then rename the JSON file */
15
- private migrateJsonToSqlite;
16
15
  }
17
16
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA4QrE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,MAAM;IAoC3B,MAAM,IAAI,YAAY;IActB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAYzC,IAAI,IAAI,YAAY,EAAE;IAStB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAgB5G,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE;IAI9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B,kFAAkF;IAClF,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjD,KAAK,IAAI,IAAI;IAIb,6FAA6F;IAC7F,OAAO,CAAC,mBAAmB;CA0B5B"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOrE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAe;gBAEb,MAAM,CAAC,EAAE,MAAM;IAgB3B,OAAO,CAAC,YAAY;IAyBpB,MAAM,IAAI,YAAY;IAgBtB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAczC,IAAI,IAAI,YAAY,EAAE;IAatB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAqC5G,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE;IA2B9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS3B,kFAAkF;IAClF,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWjD,KAAK,IAAI,IAAI;CAGd"}
@@ -1,29 +1,25 @@
1
+ import { DatabaseSync } from 'node:sqlite';
1
2
  import { nanoid } from 'nanoid';
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync } from 'node:fs';
3
+ import { existsSync, mkdirSync } from 'node:fs';
3
4
  import { dirname, join } from 'node:path';
4
5
  import { homedir } from 'node:os';
5
- import { createRequire } from 'node:module';
6
6
  import { createLogger } from './logger.js';
7
7
  const log = createLogger('conversation');
8
- const require = createRequire(import.meta.url);
9
- function tryOpenDb(dbPath) {
10
- try {
11
- const Database = require('better-sqlite3');
12
- return new Database(dbPath);
13
- }
14
- catch {
15
- return null;
16
- }
17
- }
18
8
  const DEFAULT_DB_PATH = join(homedir(), '.cereworker', 'conversations.db');
19
- /** SQLite-backed storage using better-sqlite3 */
20
- class SqliteBackend {
9
+ export class ConversationStore {
21
10
  db;
22
- constructor(db) {
23
- this.db = db;
24
- this.db.pragma('journal_mode = WAL');
25
- this.db.pragma('foreign_keys = ON');
11
+ constructor(dbPath) {
12
+ const path = dbPath ?? DEFAULT_DB_PATH;
13
+ if (path !== ':memory:') {
14
+ const dir = dirname(path);
15
+ if (!existsSync(dir)) {
16
+ mkdirSync(dir, { recursive: true });
17
+ }
18
+ }
19
+ this.db = new DatabaseSync(path);
20
+ this.db.exec('PRAGMA journal_mode = WAL');
26
21
  this.ensureSchema();
22
+ log.info('Opened conversation database', { path });
27
23
  }
28
24
  ensureSchema() {
29
25
  this.db.exec(`
@@ -49,182 +45,6 @@ class SqliteBackend {
49
45
  ON messages(conversationId, timestamp);
50
46
  `);
51
47
  }
52
- createConversation(id, now) {
53
- this.db
54
- .prepare('INSERT INTO conversations (id, createdAt, updatedAt) VALUES (?, ?, ?)')
55
- .run(id, now, now);
56
- }
57
- getConversation(id) {
58
- return this.db
59
- .prepare('SELECT id, createdAt, updatedAt FROM conversations WHERE id = ?')
60
- .get(id);
61
- }
62
- listConversations() {
63
- return this.db
64
- .prepare('SELECT id, createdAt, updatedAt FROM conversations ORDER BY updatedAt DESC')
65
- .all();
66
- }
67
- insertMessage(conversationId, message) {
68
- this.db
69
- .prepare(`INSERT INTO messages (id, conversationId, role, content, timestamp, toolCalls, toolResult, metadata)
70
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
71
- .run(message.id, conversationId, message.role, message.content, message.timestamp, message.toolCalls ? JSON.stringify(message.toolCalls) : null, message.toolResult ? JSON.stringify(message.toolResult) : null, message.metadata ? JSON.stringify(message.metadata) : null);
72
- this.db
73
- .prepare('UPDATE conversations SET updatedAt = ? WHERE id = ?')
74
- .run(Date.now(), conversationId);
75
- }
76
- getMessages(conversationId) {
77
- const rows = this.db
78
- .prepare(`SELECT id, role, content, timestamp, toolCalls, toolResult, metadata
79
- FROM messages WHERE conversationId = ? ORDER BY timestamp`)
80
- .all(conversationId);
81
- return rows.map((row) => ({
82
- id: row.id,
83
- role: row.role,
84
- content: row.content,
85
- timestamp: row.timestamp,
86
- ...(row.toolCalls ? { toolCalls: JSON.parse(row.toolCalls) } : {}),
87
- ...(row.toolResult ? { toolResult: JSON.parse(row.toolResult) } : {}),
88
- ...(row.metadata ? { metadata: JSON.parse(row.metadata) } : {}),
89
- }));
90
- }
91
- deleteConversation(id) {
92
- const result = this.db
93
- .prepare('DELETE FROM conversations WHERE id = ?')
94
- .run(id);
95
- return result.changes > 0;
96
- }
97
- getPreview(conversationId) {
98
- const row = this.db
99
- .prepare(`SELECT content FROM messages
100
- WHERE conversationId = ? AND role = 'user'
101
- ORDER BY timestamp ASC LIMIT 1`)
102
- .get(conversationId);
103
- return row?.content ?? null;
104
- }
105
- close() {
106
- this.db.close();
107
- }
108
- }
109
- class JsonFileBackend {
110
- data;
111
- filePath;
112
- dirty = false;
113
- flushTimer = null;
114
- constructor(filePath) {
115
- this.filePath = filePath;
116
- this.data = { conversations: {}, messages: {} };
117
- if (filePath && existsSync(filePath)) {
118
- try {
119
- this.data = JSON.parse(readFileSync(filePath, 'utf-8'));
120
- }
121
- catch {
122
- log.warn('Failed to parse conversation JSON, starting fresh');
123
- }
124
- }
125
- }
126
- createConversation(id, now) {
127
- this.data.conversations[id] = { id, createdAt: now, updatedAt: now };
128
- this.data.messages[id] = [];
129
- this.scheduleFlush();
130
- }
131
- getConversation(id) {
132
- return this.data.conversations[id];
133
- }
134
- listConversations() {
135
- return Object.values(this.data.conversations).sort((a, b) => b.updatedAt - a.updatedAt);
136
- }
137
- insertMessage(conversationId, message) {
138
- const msgs = this.data.messages[conversationId];
139
- if (msgs) {
140
- msgs.push(message);
141
- const conv = this.data.conversations[conversationId];
142
- if (conv)
143
- conv.updatedAt = Date.now();
144
- this.scheduleFlush();
145
- }
146
- }
147
- getMessages(conversationId) {
148
- return [...(this.data.messages[conversationId] ?? [])];
149
- }
150
- deleteConversation(id) {
151
- const existed = id in this.data.conversations;
152
- delete this.data.conversations[id];
153
- delete this.data.messages[id];
154
- if (existed)
155
- this.scheduleFlush();
156
- return existed;
157
- }
158
- getPreview(conversationId) {
159
- const msgs = this.data.messages[conversationId] ?? [];
160
- const first = msgs.find((m) => m.role === 'user');
161
- return first?.content ?? null;
162
- }
163
- close() {
164
- if (this.flushTimer) {
165
- clearTimeout(this.flushTimer);
166
- this.flushTimer = null;
167
- }
168
- this.flush();
169
- }
170
- /** Debounced write — flush at most once per 500ms to avoid excessive I/O */
171
- scheduleFlush() {
172
- this.dirty = true;
173
- if (this.flushTimer)
174
- return;
175
- this.flushTimer = setTimeout(() => {
176
- this.flushTimer = null;
177
- this.flush();
178
- }, 500);
179
- }
180
- flush() {
181
- if (!this.dirty || !this.filePath)
182
- return;
183
- try {
184
- writeFileSync(this.filePath, JSON.stringify(this.data), 'utf-8');
185
- this.dirty = false;
186
- }
187
- catch (err) {
188
- log.warn('Failed to write conversation JSON', {
189
- error: err instanceof Error ? err.message : String(err),
190
- });
191
- }
192
- }
193
- }
194
- export class ConversationStore {
195
- backend;
196
- constructor(dbPath) {
197
- const path = dbPath ?? DEFAULT_DB_PATH;
198
- // Try SQLite first
199
- if (path !== ':memory:') {
200
- const dir = dirname(path);
201
- if (!existsSync(dir)) {
202
- mkdirSync(dir, { recursive: true });
203
- }
204
- }
205
- const jsonPath = path === ':memory:' ? null : path.replace(/\.db$/, '.json');
206
- const db = tryOpenDb(path);
207
- if (db) {
208
- const sqlite = new SqliteBackend(db);
209
- this.backend = sqlite;
210
- log.info('Opened conversation database', { path });
211
- // Migrate JSON → SQLite if a JSON file exists from a previous fallback
212
- if (jsonPath && existsSync(jsonPath)) {
213
- this.migrateJsonToSqlite(jsonPath, sqlite);
214
- }
215
- }
216
- else {
217
- this.backend = new JsonFileBackend(jsonPath);
218
- if (jsonPath) {
219
- const hint = process.platform === 'darwin'
220
- ? 'xcode-select --install'
221
- : process.platform === 'win32'
222
- ? 'npm install --global windows-build-tools'
223
- : 'sudo apt install build-essential';
224
- log.info(`better-sqlite3 not available, using JSON file store. For better performance, install build tools and reinstall:\n ${hint} && npm install -g @cereworker/cli`, { path: jsonPath });
225
- }
226
- }
227
- }
228
48
  create() {
229
49
  const now = Date.now();
230
50
  const conversation = {
@@ -233,12 +53,16 @@ export class ConversationStore {
233
53
  createdAt: now,
234
54
  updatedAt: now,
235
55
  };
236
- this.backend.createConversation(conversation.id, now);
56
+ this.db
57
+ .prepare('INSERT INTO conversations (id, createdAt, updatedAt) VALUES (?, ?, ?)')
58
+ .run(conversation.id, now, now);
237
59
  log.debug('Created conversation', { id: conversation.id });
238
60
  return conversation;
239
61
  }
240
62
  get(id) {
241
- const row = this.backend.getConversation(id);
63
+ const row = this.db
64
+ .prepare('SELECT id, createdAt, updatedAt FROM conversations WHERE id = ?')
65
+ .get(id);
242
66
  if (!row)
243
67
  return undefined;
244
68
  return {
@@ -249,7 +73,10 @@ export class ConversationStore {
249
73
  };
250
74
  }
251
75
  list() {
252
- return this.backend.listConversations().map((row) => ({
76
+ const rows = this.db
77
+ .prepare('SELECT id, createdAt, updatedAt FROM conversations ORDER BY updatedAt DESC')
78
+ .all();
79
+ return rows.map((row) => ({
253
80
  id: row.id,
254
81
  messages: [], // Don't load messages for list view
255
82
  createdAt: row.createdAt,
@@ -257,7 +84,9 @@ export class ConversationStore {
257
84
  }));
258
85
  }
259
86
  appendMessage(conversationId, role, content, extra) {
260
- const row = this.backend.getConversation(conversationId);
87
+ const row = this.db
88
+ .prepare('SELECT id FROM conversations WHERE id = ?')
89
+ .get(conversationId);
261
90
  if (!row)
262
91
  throw new Error(`Conversation ${conversationId} not found`);
263
92
  const message = {
@@ -267,49 +96,49 @@ export class ConversationStore {
267
96
  timestamp: Date.now(),
268
97
  ...extra,
269
98
  };
270
- this.backend.insertMessage(conversationId, message);
99
+ this.db
100
+ .prepare(`INSERT INTO messages (id, conversationId, role, content, timestamp, toolCalls, toolResult, metadata)
101
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
102
+ .run(message.id, conversationId, message.role, message.content, message.timestamp, message.toolCalls ? JSON.stringify(message.toolCalls) : null, message.toolResult ? JSON.stringify(message.toolResult) : null, message.metadata ? JSON.stringify(message.metadata) : null);
103
+ this.db
104
+ .prepare('UPDATE conversations SET updatedAt = ? WHERE id = ?')
105
+ .run(Date.now(), conversationId);
271
106
  return message;
272
107
  }
273
108
  getMessages(conversationId) {
274
- return this.backend.getMessages(conversationId);
109
+ const rows = this.db
110
+ .prepare(`SELECT id, role, content, timestamp, toolCalls, toolResult, metadata
111
+ FROM messages WHERE conversationId = ? ORDER BY timestamp`)
112
+ .all(conversationId);
113
+ return rows.map((row) => ({
114
+ id: row.id,
115
+ role: row.role,
116
+ content: row.content,
117
+ timestamp: row.timestamp,
118
+ ...(row.toolCalls ? { toolCalls: JSON.parse(row.toolCalls) } : {}),
119
+ ...(row.toolResult ? { toolResult: JSON.parse(row.toolResult) } : {}),
120
+ ...(row.metadata ? { metadata: JSON.parse(row.metadata) } : {}),
121
+ }));
275
122
  }
276
123
  delete(id) {
277
- const result = this.backend.deleteConversation(id);
278
- log.debug('Deleted conversation', { id, deleted: result });
279
- return result;
124
+ const result = this.db
125
+ .prepare('DELETE FROM conversations WHERE id = ?')
126
+ .run(id);
127
+ const deleted = Number(result.changes) > 0;
128
+ log.debug('Deleted conversation', { id, deleted });
129
+ return deleted;
280
130
  }
281
131
  /** Get the most recent message content from a conversation (for list previews) */
282
132
  getPreview(conversationId) {
283
- return this.backend.getPreview(conversationId);
133
+ const row = this.db
134
+ .prepare(`SELECT content FROM messages
135
+ WHERE conversationId = ? AND role = 'user'
136
+ ORDER BY timestamp ASC LIMIT 1`)
137
+ .get(conversationId);
138
+ return row?.content ?? null;
284
139
  }
285
140
  close() {
286
- this.backend.close();
287
- }
288
- /** Migrate conversations from a JSON fallback file into SQLite, then rename the JSON file */
289
- migrateJsonToSqlite(jsonPath, sqlite) {
290
- try {
291
- const raw = JSON.parse(readFileSync(jsonPath, 'utf-8'));
292
- let migrated = 0;
293
- for (const conv of Object.values(raw.conversations)) {
294
- // Skip if already exists in SQLite (e.g. partial previous migration)
295
- if (sqlite.getConversation(conv.id))
296
- continue;
297
- sqlite.createConversation(conv.id, conv.createdAt);
298
- const msgs = raw.messages[conv.id] ?? [];
299
- for (const msg of msgs) {
300
- sqlite.insertMessage(conv.id, msg);
301
- }
302
- migrated++;
303
- }
304
- // Rename instead of delete so nothing is lost if something goes wrong
305
- renameSync(jsonPath, jsonPath + '.migrated');
306
- log.info('Migrated JSON conversations to SQLite', { migrated, source: jsonPath });
307
- }
308
- catch (err) {
309
- log.warn('Failed to migrate JSON conversations to SQLite', {
310
- error: err instanceof Error ? err.message : String(err),
311
- });
312
- }
141
+ this.db.close();
313
142
  }
314
143
  }
315
144
  //# sourceMappingURL=conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAWD,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAkB;gBAEhB,MAAM,CAAC,EAAE,MAAM;IAY3B,OAAO,CAAC,YAAY;IA0BpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA+C1F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IASrD,WAAW,IAAI,cAAc,EAAE;IAO/B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAsCzC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQxD,WAAW,IAAI,MAAM;IAQrB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQxD,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAe;gBAEb,MAAM,CAAC,EAAE,MAAM;IAQ3B,OAAO,CAAC,YAAY;IA0BpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA8C1F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAQrD,WAAW,IAAI,cAAc,EAAE;IAM/B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAqCzC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOxD,WAAW,IAAI,MAAM;IAOrB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOxD,KAAK,IAAI,IAAI;CAGd"}
package/dist/pairing.js CHANGED
@@ -1,10 +1,9 @@
1
+ import { DatabaseSync } from 'node:sqlite';
1
2
  import { randomInt } from 'node:crypto';
2
3
  import { join } from 'node:path';
3
4
  import { homedir } from 'node:os';
4
- import { createRequire } from 'node:module';
5
5
  import { createLogger } from './logger.js';
6
6
  const log = createLogger('pairing');
7
- const require = createRequire(import.meta.url);
8
7
  const DEFAULT_DB_PATH = join(homedir(), '.cereworker', 'conversations.db');
9
8
  const CODE_ALPHABET = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
10
9
  const CODE_LENGTH = 8;
@@ -23,28 +22,14 @@ export function formatCode(code) {
23
22
  export function normalizeCode(input) {
24
23
  return input.replace(/[-\s]/g, '').toUpperCase();
25
24
  }
26
- function tryOpenDb(dbPath) {
27
- try {
28
- const Database = require('better-sqlite3');
29
- return new Database(dbPath);
30
- }
31
- catch {
32
- return null;
33
- }
34
- }
35
25
  export class PairingStore {
36
26
  db;
37
27
  constructor(dbPath) {
38
28
  const path = dbPath ?? DEFAULT_DB_PATH;
39
- this.db = tryOpenDb(path);
40
- if (this.db) {
41
- this.db.pragma('journal_mode = WAL');
42
- this.ensureSchema();
43
- log.info('Opened pairing database', { path });
44
- }
45
- else {
46
- log.warn('better-sqlite3 not available — pairing will be disabled. Run "cereworker onboard" to install build tools.');
47
- }
29
+ this.db = new DatabaseSync(path);
30
+ this.db.exec('PRAGMA journal_mode = WAL');
31
+ this.ensureSchema();
32
+ log.info('Opened pairing database', { path });
48
33
  }
49
34
  ensureSchema() {
50
35
  this.db.exec(`
@@ -72,8 +57,6 @@ export class PairingStore {
72
57
  `);
73
58
  }
74
59
  createPairingCode(channelId, senderId, senderName) {
75
- if (!this.db)
76
- return null;
77
60
  this.expireStale();
78
61
  // Check for existing pending code for this sender+channel
79
62
  const existing = this.db.prepare(`SELECT code FROM pairing_requests WHERE channelId = ? AND senderId = ? AND status = 'pending' AND expiresAt > ?`).get(channelId, senderId, Date.now());
@@ -104,20 +87,14 @@ export class PairingStore {
104
87
  return formatCode(code);
105
88
  }
106
89
  getPendingByCode(code) {
107
- if (!this.db)
108
- return null;
109
90
  const normalized = normalizeCode(code);
110
91
  const row = this.db.prepare(`SELECT * FROM pairing_requests WHERE code = ? AND status = 'pending' AND expiresAt > ?`).get(normalized, Date.now());
111
92
  return row ?? null;
112
93
  }
113
94
  listPending() {
114
- if (!this.db)
115
- return [];
116
95
  return this.db.prepare(`SELECT * FROM pairing_requests WHERE status = 'pending' AND expiresAt > ? ORDER BY createdAt DESC`).all(Date.now());
117
96
  }
118
97
  approveCode(code) {
119
- if (!this.db)
120
- return { ok: false, error: 'Pairing unavailable (database not available)' };
121
98
  const normalized = normalizeCode(code);
122
99
  this.expireStale();
123
100
  const request = this.db.prepare(`SELECT * FROM pairing_requests WHERE code = ? AND status = 'pending' AND expiresAt > ?`).get(normalized, Date.now());
@@ -142,25 +119,19 @@ export class PairingStore {
142
119
  };
143
120
  }
144
121
  isApproved(channelId, senderId) {
145
- if (!this.db)
146
- return true;
147
122
  const row = this.db.prepare(`SELECT 1 FROM approved_users WHERE channelId = ? AND senderId = ?`).get(channelId, senderId);
148
123
  return !!row;
149
124
  }
150
125
  expireStale() {
151
- if (!this.db)
152
- return 0;
153
126
  const result = this.db.prepare(`UPDATE pairing_requests SET status = 'expired' WHERE status = 'pending' AND expiresAt <= ?`).run(Date.now());
154
- return result.changes;
127
+ return Number(result.changes);
155
128
  }
156
129
  addConfigUser(channelId, senderId) {
157
- if (!this.db)
158
- return;
159
130
  this.db.prepare(`INSERT OR IGNORE INTO approved_users (channelId, senderId, approvedAt, approvedVia)
160
131
  VALUES (?, ?, ?, 'config')`).run(channelId, senderId, Date.now());
161
132
  }
162
133
  close() {
163
- this.db?.close();
134
+ this.db.close();
164
135
  }
165
136
  }
166
137
  //# sourceMappingURL=pairing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cereworker/core",
3
- "version": "26.322.5",
3
+ "version": "26.323.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,14 +16,10 @@
16
16
  "directory": "packages/core"
17
17
  },
18
18
  "dependencies": {
19
- "@cereworker/config": "26.322.5",
19
+ "@cereworker/config": "26.323.1",
20
20
  "nanoid": "^5.0.9"
21
21
  },
22
- "optionalDependencies": {
23
- "better-sqlite3": "^11.7.0"
24
- },
25
22
  "devDependencies": {
26
- "@types/better-sqlite3": "^7.6.12",
27
23
  "typescript": "^5.7.3"
28
24
  },
29
25
  "scripts": {