@inoceanlee/brc 2.1.1 → 2.1.2

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.
Files changed (99) hide show
  1. package/dist/cli.js +68 -16
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/setup.d.ts +14 -0
  4. package/dist/commands/setup.js +57 -0
  5. package/dist/commands/setup.js.map +1 -0
  6. package/dist/config/manager.js +16 -8
  7. package/dist/config/manager.js.map +1 -1
  8. package/dist/config/settings.d.ts +5 -1
  9. package/dist/config/settings.js +5 -1
  10. package/dist/config/settings.js.map +1 -1
  11. package/dist/lifecycle/identity.d.ts +8 -0
  12. package/dist/lifecycle/identity.js +126 -0
  13. package/dist/lifecycle/identity.js.map +1 -0
  14. package/dist/lifecycle/lock-store.d.ts +28 -0
  15. package/dist/lifecycle/lock-store.js +204 -0
  16. package/dist/lifecycle/lock-store.js.map +1 -0
  17. package/dist/lifecycle/lock.d.ts +12 -3
  18. package/dist/lifecycle/lock.js +50 -74
  19. package/dist/lifecycle/lock.js.map +1 -1
  20. package/dist/lifecycle/processes.d.ts +5 -7
  21. package/dist/lifecycle/processes.js +106 -108
  22. package/dist/lifecycle/processes.js.map +1 -1
  23. package/dist/lifecycle/services.d.ts +1 -0
  24. package/dist/lifecycle/services.js +2 -5
  25. package/dist/lifecycle/services.js.map +1 -1
  26. package/dist/maintenance/cleanup.js +177 -71
  27. package/dist/maintenance/cleanup.js.map +1 -1
  28. package/dist/native/win32-x64/brc-process.exe +0 -0
  29. package/dist/progress.d.ts +29 -0
  30. package/dist/progress.js +159 -0
  31. package/dist/progress.js.map +1 -0
  32. package/dist/services/agent/cli.js +1 -2
  33. package/dist/services/agent/cli.js.map +1 -1
  34. package/dist/services/agent/core/config-field-definitions.d.ts +1 -0
  35. package/dist/services/agent/core/config-field-definitions.js +36 -0
  36. package/dist/services/agent/core/config-field-definitions.js.map +1 -1
  37. package/dist/services/agent/core/config-manager.d.ts +3 -5
  38. package/dist/services/agent/core/config-manager.js +64 -109
  39. package/dist/services/agent/core/config-manager.js.map +1 -1
  40. package/dist/services/agent/core/config-storage.d.ts +11 -0
  41. package/dist/services/agent/core/config-storage.js +66 -0
  42. package/dist/services/agent/core/config-storage.js.map +1 -0
  43. package/dist/services/agent/core/config.d.ts +5 -0
  44. package/dist/services/agent/core/config.js +5 -1
  45. package/dist/services/agent/core/config.js.map +1 -1
  46. package/dist/services/agent/core/handlers/filesystem-handlers.js +3 -2
  47. package/dist/services/agent/core/handlers/filesystem-handlers.js.map +1 -1
  48. package/dist/services/agent/core/tools/config.d.ts +3 -1
  49. package/dist/services/agent/core/tools/config.js +5 -66
  50. package/dist/services/agent/core/tools/config.js.map +1 -1
  51. package/dist/services/agent/core/tools/edit.js +2 -1
  52. package/dist/services/agent/core/tools/edit.js.map +1 -1
  53. package/dist/services/agent/core/tools/filesystem.js +15 -21
  54. package/dist/services/agent/core/tools/filesystem.js.map +1 -1
  55. package/dist/services/agent/core/tools/improved-process-tools.js +3 -2
  56. package/dist/services/agent/core/tools/improved-process-tools.js.map +1 -1
  57. package/dist/services/agent/core/tools/schemas.d.ts +2 -2
  58. package/dist/services/agent/core/tools/schemas.js +1 -1
  59. package/dist/services/agent/core/tools/schemas.js.map +1 -1
  60. package/dist/services/agent/core/utils/files/text-reader.d.ts +31 -0
  61. package/dist/services/agent/core/utils/files/text-reader.js +261 -0
  62. package/dist/services/agent/core/utils/files/text-reader.js.map +1 -0
  63. package/dist/services/agent/core/utils/files/text.d.ts +1 -25
  64. package/dist/services/agent/core/utils/files/text.js +6 -245
  65. package/dist/services/agent/core/utils/files/text.js.map +1 -1
  66. package/dist/services/agent/core/utils/fuzzySearchLogger.js +2 -2
  67. package/dist/services/agent/core/utils/fuzzySearchLogger.js.map +1 -1
  68. package/dist/services/agent/core/utils/toolHistory.d.ts +2 -1
  69. package/dist/services/agent/core/utils/toolHistory.js +65 -79
  70. package/dist/services/agent/core/utils/toolHistory.js.map +1 -1
  71. package/dist/services/agent/core/utils/toolHistoryStorage.d.ts +11 -0
  72. package/dist/services/agent/core/utils/toolHistoryStorage.js +135 -0
  73. package/dist/services/agent/core/utils/toolHistoryStorage.js.map +1 -0
  74. package/dist/services/agent/dispatcher.js +3 -5
  75. package/dist/services/agent/dispatcher.js.map +1 -1
  76. package/dist/services/agent/service.js +2 -1
  77. package/dist/services/agent/service.js.map +1 -1
  78. package/dist/services/agent/transport/pairing.js +24 -24
  79. package/dist/services/agent/transport/pairing.js.map +1 -1
  80. package/dist/services/relay/store/sqlite.d.ts +1 -6
  81. package/dist/services/relay/store/sqlite.js +84 -84
  82. package/dist/services/relay/store/sqlite.js.map +1 -1
  83. package/dist/traefik/core.d.ts +17 -5
  84. package/dist/traefik/core.js +70 -64
  85. package/dist/traefik/core.js.map +1 -1
  86. package/dist/traefik/input.d.ts +6 -7
  87. package/dist/traefik/input.js +46 -88
  88. package/dist/traefik/input.js.map +1 -1
  89. package/dist/traefik/manager.d.ts +13 -0
  90. package/dist/traefik/manager.js +64 -24
  91. package/dist/traefik/manager.js.map +1 -1
  92. package/dist/traefik/output.d.ts +9 -11
  93. package/dist/traefik/output.js +112 -46
  94. package/dist/traefik/output.js.map +1 -1
  95. package/dist/traefik/runtime.d.ts +1 -1
  96. package/dist/traefik/runtime.js +4 -3
  97. package/dist/traefik/runtime.js.map +1 -1
  98. package/node_modules/brc-shared/package.json +1 -1
  99. package/package.json +2 -2
@@ -60,7 +60,7 @@ const USER_REFERENCE_TABLES = [
60
60
  },
61
61
  ];
62
62
  export class SqliteStore {
63
- db;
63
+ #db;
64
64
  static open(file) {
65
65
  const isMemory = file === ':memory:';
66
66
  if (!isMemory && !existsSync(file)) {
@@ -114,16 +114,16 @@ export class SqliteStore {
114
114
  }
115
115
  }
116
116
  constructor(file, db, isNew) {
117
- this.db = db;
118
- this.db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;');
117
+ this.#db = db;
118
+ this.#db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;');
119
119
  if (isNew)
120
120
  this.initializeNewDatabase();
121
121
  else
122
122
  this.migrateExistingDatabase(file);
123
123
  }
124
124
  initializeNewDatabase() {
125
- this.db.exec(SCHEMA);
126
- this.db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)').run('admin_bootstrap', 'pending');
125
+ this.#db.exec(SCHEMA);
126
+ this.#db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)').run('admin_bootstrap', 'pending');
127
127
  }
128
128
  migrateExistingDatabase(file) {
129
129
  const missingTables = REQUIRED_TABLES.filter((table) => !this.tableExists(table));
@@ -139,7 +139,7 @@ export class SqliteStore {
139
139
  const counts = orphaned.map(({ table, count }) => `${table}=${count}`).join(', ');
140
140
  throw new Error(`Relay database contains orphaned user references: ${counts}. Backup: ${backup}`);
141
141
  }
142
- const violations = this.db.prepare('PRAGMA foreign_key_check').all();
142
+ const violations = this.#db.prepare('PRAGMA foreign_key_check').all();
143
143
  if (violations.length) {
144
144
  const backup = this.createMigrationBackup(file);
145
145
  throw new Error(`Relay database foreign_key_check failed with ${violations.length} violation(s). Backup: ${backup}`);
@@ -159,34 +159,34 @@ export class SqliteStore {
159
159
  }
160
160
  let inTransaction = false;
161
161
  try {
162
- this.db.exec('PRAGMA foreign_keys = OFF;');
163
- this.db.exec('BEGIN IMMEDIATE;');
162
+ this.#db.exec('PRAGMA foreign_keys = OFF;');
163
+ this.#db.exec('BEGIN IMMEDIATE;');
164
164
  inTransaction = true;
165
165
  for (const table of tablesToMigrate) {
166
166
  const temporary = `${table.name}_with_user_fk`;
167
- this.db.exec(table.create(temporary));
167
+ this.#db.exec(table.create(temporary));
168
168
  const columns = table.columns.join(', ');
169
- this.db.exec(`INSERT INTO "${temporary}" (${columns}) SELECT ${columns} FROM "${table.name}"`);
170
- this.db.exec(`DROP TABLE "${table.name}"`);
171
- this.db.exec(`ALTER TABLE "${temporary}" RENAME TO "${table.name}"`);
169
+ this.#db.exec(`INSERT INTO "${temporary}" (${columns}) SELECT ${columns} FROM "${table.name}"`);
170
+ this.#db.exec(`DROP TABLE "${table.name}"`);
171
+ this.#db.exec(`ALTER TABLE "${temporary}" RENAME TO "${table.name}"`);
172
172
  }
173
173
  if (needsMetadata) {
174
- this.db.exec('CREATE TABLE brc_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)');
175
- this.db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)').run('admin_bootstrap', 'complete');
174
+ this.#db.exec('CREATE TABLE brc_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)');
175
+ this.#db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)').run('admin_bootstrap', 'complete');
176
176
  }
177
- const violations = this.db.prepare('PRAGMA foreign_key_check').all();
177
+ const violations = this.#db.prepare('PRAGMA foreign_key_check').all();
178
178
  if (violations.length)
179
179
  throw new Error(`foreign_key_check reported ${violations.length} violation(s).`);
180
- const integrity = this.db.prepare('PRAGMA integrity_check').get();
180
+ const integrity = this.#db.prepare('PRAGMA integrity_check').get();
181
181
  if (integrity.integrity_check !== 'ok')
182
182
  throw new Error(`integrity_check failed: ${integrity.integrity_check}`);
183
- this.db.exec('COMMIT;');
183
+ this.#db.exec('COMMIT;');
184
184
  inTransaction = false;
185
185
  }
186
186
  catch (error) {
187
187
  if (inTransaction) {
188
188
  try {
189
- this.db.exec('ROLLBACK;');
189
+ this.#db.exec('ROLLBACK;');
190
190
  }
191
191
  catch { }
192
192
  }
@@ -194,32 +194,32 @@ export class SqliteStore {
194
194
  throw new Error(`Relay database identity migration failed; original data was preserved. Backup: ${backup}. ${detail}`);
195
195
  }
196
196
  finally {
197
- this.db.exec('PRAGMA foreign_keys = ON;');
197
+ this.#db.exec('PRAGMA foreign_keys = ON;');
198
198
  }
199
199
  this.validateBootstrapState();
200
200
  }
201
201
  createMigrationBackup(file) {
202
202
  const backup = `${path.resolve(file)}.pre-identity-migration-${Date.now()}-${randomToken(6)}.bak`;
203
- this.db.exec(`VACUUM INTO '${backup.replaceAll("'", "''")}'`);
203
+ this.#db.exec(`VACUUM INTO '${backup.replaceAll("'", "''")}'`);
204
204
  return backup;
205
205
  }
206
206
  tableExists(name) {
207
- return !!this.db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(name);
207
+ return !!this.#db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(name);
208
208
  }
209
209
  hasUserForeignKey(table) {
210
- return this.db.prepare(`PRAGMA foreign_key_list(${table})`).all().some((row) => {
210
+ return this.#db.prepare(`PRAGMA foreign_key_list(${table})`).all().some((row) => {
211
211
  const foreignKey = row;
212
212
  return foreignKey.table === 'users' && foreignKey.from === 'user_id' && foreignKey.to === 'id' && foreignKey.on_delete === 'RESTRICT';
213
213
  });
214
214
  }
215
215
  userCount() {
216
- return this.db.prepare('SELECT COUNT(*) AS count FROM users').get().count;
216
+ return this.#db.prepare('SELECT COUNT(*) AS count FROM users').get().count;
217
217
  }
218
218
  orphanedUserReferences() {
219
219
  return USER_REFERENCE_TABLES
220
220
  .filter((table) => this.tableExists(table.name))
221
221
  .map((table) => {
222
- const row = this.db.prepare(`SELECT COUNT(*) AS count FROM "${table.name}" AS child LEFT JOIN users AS parent ON parent.id = child.user_id WHERE child.user_id IS NOT NULL AND parent.id IS NULL`).get();
222
+ const row = this.#db.prepare(`SELECT COUNT(*) AS count FROM "${table.name}" AS child LEFT JOIN users AS parent ON parent.id = child.user_id WHERE child.user_id IS NOT NULL AND parent.id IS NULL`).get();
223
223
  return { table: table.name, count: row.count };
224
224
  })
225
225
  .filter((item) => item.count > 0);
@@ -227,7 +227,7 @@ export class SqliteStore {
227
227
  bootstrapState() {
228
228
  if (!this.tableExists('brc_meta'))
229
229
  return undefined;
230
- const row = this.db.prepare('SELECT value FROM brc_meta WHERE key = ?').get('admin_bootstrap');
230
+ const row = this.#db.prepare('SELECT value FROM brc_meta WHERE key = ?').get('admin_bootstrap');
231
231
  return row?.value;
232
232
  }
233
233
  validateBootstrapState() {
@@ -245,7 +245,7 @@ export class SqliteStore {
245
245
  if (!username.trim() || password.length < 8) {
246
246
  throw new Error('Administrator username and password (at least 8 characters) are required.');
247
247
  }
248
- this.db.exec('BEGIN IMMEDIATE;');
248
+ this.#db.exec('BEGIN IMMEDIATE;');
249
249
  try {
250
250
  if (this.bootstrapState() !== 'pending' || this.userCount() !== 0) {
251
251
  throw new Error('Relay administrator is already initialized.');
@@ -256,27 +256,27 @@ export class SqliteStore {
256
256
  password_hash: hashPassword(password),
257
257
  created_at: Date.now(),
258
258
  };
259
- this.db.prepare('INSERT INTO users VALUES (?,?,?,?)')
259
+ this.#db.prepare('INSERT INTO users VALUES (?,?,?,?)')
260
260
  .run(user.id, user.username, user.password_hash, user.created_at);
261
- this.db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)')
261
+ this.#db.prepare('INSERT INTO brc_meta (key, value) VALUES (?, ?)')
262
262
  .run('session_secret', randomBytes(32).toString('hex'));
263
- this.db.prepare('UPDATE brc_meta SET value = ? WHERE key = ?').run('complete', 'admin_bootstrap');
264
- this.db.exec('COMMIT;');
263
+ this.#db.prepare('UPDATE brc_meta SET value = ? WHERE key = ?').run('complete', 'admin_bootstrap');
264
+ this.#db.exec('COMMIT;');
265
265
  }
266
266
  catch (error) {
267
- this.db.exec('ROLLBACK;');
267
+ this.#db.exec('ROLLBACK;');
268
268
  throw error;
269
269
  }
270
270
  }
271
271
  getAdministrator() {
272
- const users = this.db.prepare('SELECT * FROM users LIMIT 2').all();
272
+ const users = this.#db.prepare('SELECT * FROM users LIMIT 2').all();
273
273
  if (this.bootstrapState() !== 'complete' || users.length !== 1) {
274
274
  throw new Error('Relay administrator identity is missing or ambiguous; refusing to start.');
275
275
  }
276
276
  return users[0];
277
277
  }
278
278
  getSessionSecret() {
279
- const row = this.db.prepare('SELECT value FROM brc_meta WHERE key = ?')
279
+ const row = this.#db.prepare('SELECT value FROM brc_meta WHERE key = ?')
280
280
  .get('session_secret');
281
281
  if (!row || !/^[0-9a-f]{64}$/.test(row.value)) {
282
282
  throw new Error('Relay session secret is missing or invalid; refusing to start.');
@@ -284,10 +284,10 @@ export class SqliteStore {
284
284
  return row.value;
285
285
  }
286
286
  getUserByName(username) {
287
- return this.db.prepare('SELECT * FROM users WHERE username = ?').get(username);
287
+ return this.#db.prepare('SELECT * FROM users WHERE username = ?').get(username);
288
288
  }
289
289
  getUser(id) {
290
- return this.db.prepare('SELECT * FROM users WHERE id = ?').get(id);
290
+ return this.#db.prepare('SELECT * FROM users WHERE id = ?').get(id);
291
291
  }
292
292
  upsertUser(username, password) {
293
293
  const existing = this.getUserByName(username);
@@ -295,31 +295,31 @@ export class SqliteStore {
295
295
  if (verifyPassword(password, existing.password_hash))
296
296
  return existing;
297
297
  const hash = hashPassword(password);
298
- this.db.prepare('UPDATE users SET password_hash = ? WHERE id = ?').run(hash, existing.id);
298
+ this.#db.prepare('UPDATE users SET password_hash = ? WHERE id = ?').run(hash, existing.id);
299
299
  return { ...existing, password_hash: hash };
300
300
  }
301
301
  if (this.bootstrapState() !== 'pending' || this.userCount() !== 0) {
302
302
  throw new Error(`Relay database is missing configured administrator "${username}"; refusing to create a replacement identity.`);
303
303
  }
304
304
  const row = { id: randomToken(12), username, password_hash: hashPassword(password), created_at: Date.now() };
305
- this.db.exec('BEGIN IMMEDIATE;');
305
+ this.#db.exec('BEGIN IMMEDIATE;');
306
306
  try {
307
307
  const concurrent = this.getUserByName(username);
308
308
  if (concurrent) {
309
- this.db.exec('COMMIT;');
309
+ this.#db.exec('COMMIT;');
310
310
  return this.upsertUser(username, password);
311
311
  }
312
312
  if (this.bootstrapState() !== 'pending' || this.userCount() !== 0) {
313
313
  throw new Error(`Relay database is missing configured administrator "${username}"; refusing to create a replacement identity.`);
314
314
  }
315
- this.db.prepare('INSERT INTO users VALUES (?,?,?,?)').run(row.id, row.username, row.password_hash, row.created_at);
316
- this.db.prepare('UPDATE brc_meta SET value = ? WHERE key = ?').run('complete', 'admin_bootstrap');
317
- this.db.exec('COMMIT;');
315
+ this.#db.prepare('INSERT INTO users VALUES (?,?,?,?)').run(row.id, row.username, row.password_hash, row.created_at);
316
+ this.#db.prepare('UPDATE brc_meta SET value = ? WHERE key = ?').run('complete', 'admin_bootstrap');
317
+ this.#db.exec('COMMIT;');
318
318
  return row;
319
319
  }
320
320
  catch (error) {
321
321
  try {
322
- this.db.exec('ROLLBACK;');
322
+ this.#db.exec('ROLLBACK;');
323
323
  }
324
324
  catch { }
325
325
  throw error;
@@ -327,33 +327,33 @@ export class SqliteStore {
327
327
  }
328
328
  /* ---------- oauth clients ---------- */
329
329
  getClient(clientId) {
330
- return this.db.prepare('SELECT * FROM oauth_clients WHERE client_id = ?').get(clientId);
330
+ return this.#db.prepare('SELECT * FROM oauth_clients WHERE client_id = ?').get(clientId);
331
331
  }
332
332
  insertClient(row) {
333
- this.db.prepare('INSERT INTO oauth_clients VALUES (?,?,?,?)').run(row.client_id, row.client_secret, row.metadata, row.created_at);
333
+ this.#db.prepare('INSERT INTO oauth_clients VALUES (?,?,?,?)').run(row.client_id, row.client_secret, row.metadata, row.created_at);
334
334
  }
335
335
  /* ---------- auth codes ---------- */
336
336
  insertAuthCode(row) {
337
- this.db.prepare('INSERT INTO auth_codes VALUES (?,?,?,?,?,?,?,?)')
337
+ this.#db.prepare('INSERT INTO auth_codes VALUES (?,?,?,?,?,?,?,?)')
338
338
  .run(row.code, row.client_id, row.user_id, row.code_challenge, row.redirect_uri, row.scopes, row.resource, row.expires_at);
339
339
  }
340
340
  takeAuthCode(code) {
341
- const row = this.db.prepare('SELECT * FROM auth_codes WHERE code = ?').get(code);
341
+ const row = this.#db.prepare('SELECT * FROM auth_codes WHERE code = ?').get(code);
342
342
  if (row)
343
- this.db.prepare('DELETE FROM auth_codes WHERE code = ?').run(code);
343
+ this.#db.prepare('DELETE FROM auth_codes WHERE code = ?').run(code);
344
344
  return row && row.expires_at > Date.now() ? row : undefined;
345
345
  }
346
346
  peekAuthCode(code) {
347
- const row = this.db.prepare('SELECT * FROM auth_codes WHERE code = ?').get(code);
347
+ const row = this.#db.prepare('SELECT * FROM auth_codes WHERE code = ?').get(code);
348
348
  return row && row.expires_at > Date.now() ? row : undefined;
349
349
  }
350
350
  /* ---------- tokens ---------- */
351
351
  insertToken(row) {
352
- this.db.prepare('INSERT INTO tokens VALUES (?,?,?,?,?,?,?,?,?)')
352
+ this.#db.prepare('INSERT INTO tokens VALUES (?,?,?,?,?,?,?,?,?)')
353
353
  .run(row.token_hash, row.kind, row.client_id, row.user_id, row.scopes, row.resource, row.expires_at, row.created_at, row.revoked);
354
354
  }
355
355
  getToken(raw, kind) {
356
- const row = this.db.prepare('SELECT * FROM tokens WHERE token_hash = ? AND kind = ? AND revoked = 0').get(sha256(raw), kind);
356
+ const row = this.#db.prepare('SELECT * FROM tokens WHERE token_hash = ? AND kind = ? AND revoked = 0').get(sha256(raw), kind);
357
357
  if (!row)
358
358
  return undefined;
359
359
  if (row.expires_at && row.expires_at < Date.now())
@@ -361,45 +361,45 @@ export class SqliteStore {
361
361
  return row;
362
362
  }
363
363
  revokeToken(raw) {
364
- this.db.prepare('UPDATE tokens SET revoked = 1 WHERE token_hash = ?').run(sha256(raw));
364
+ this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE token_hash = ?').run(sha256(raw));
365
365
  }
366
366
  revokeTokensForClient(clientId, userId) {
367
367
  if (userId)
368
- this.db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ? AND user_id = ?').run(clientId, userId);
368
+ this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ? AND user_id = ?').run(clientId, userId);
369
369
  else
370
- this.db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ?').run(clientId);
370
+ this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ?').run(clientId);
371
371
  }
372
372
  /* ---------- devices ---------- */
373
373
  getDeviceByToken(raw) {
374
- return this.db.prepare('SELECT * FROM devices WHERE token_hash = ?').get(sha256(raw));
374
+ return this.#db.prepare('SELECT * FROM devices WHERE token_hash = ?').get(sha256(raw));
375
375
  }
376
376
  getDevice(deviceId) {
377
- return this.db.prepare('SELECT * FROM devices WHERE device_id = ?').get(deviceId);
377
+ return this.#db.prepare('SELECT * FROM devices WHERE device_id = ?').get(deviceId);
378
378
  }
379
379
  listDevices(userId) {
380
- return this.db.prepare('SELECT * FROM devices WHERE user_id = ? ORDER BY created_at').all(userId);
380
+ return this.#db.prepare('SELECT * FROM devices WHERE user_id = ? ORDER BY created_at').all(userId);
381
381
  }
382
382
  /** Creates (or re-keys) a device and returns the raw token once. */
383
383
  issueDeviceToken(deviceId, userId, name, platform) {
384
384
  const raw = `brc_dev_${randomToken(32)}`;
385
385
  const existing = this.getDevice(deviceId);
386
386
  if (existing) {
387
- this.db.prepare('UPDATE devices SET token_hash = ?, name = ?, platform = ?, user_id = ? WHERE device_id = ?').run(sha256(raw), name, platform, userId, deviceId);
387
+ this.#db.prepare('UPDATE devices SET token_hash = ?, name = ?, platform = ?, user_id = ? WHERE device_id = ?').run(sha256(raw), name, platform, userId, deviceId);
388
388
  }
389
389
  else {
390
- this.db.prepare('INSERT INTO devices (device_id, user_id, name, token_hash, platform, created_at) VALUES (?,?,?,?,?,?)')
390
+ this.#db.prepare('INSERT INTO devices (device_id, user_id, name, token_hash, platform, created_at) VALUES (?,?,?,?,?,?)')
391
391
  .run(deviceId, userId, name, sha256(raw), platform, Date.now());
392
392
  }
393
393
  return raw;
394
394
  }
395
395
  touchDevice(deviceId) {
396
- this.db.prepare('UPDATE devices SET last_seen = ? WHERE device_id = ?').run(Date.now(), deviceId);
396
+ this.#db.prepare('UPDATE devices SET last_seen = ? WHERE device_id = ?').run(Date.now(), deviceId);
397
397
  }
398
398
  setDevicePaused(deviceId, paused) {
399
- this.db.prepare('UPDATE devices SET paused = ? WHERE device_id = ?').run(paused ? 1 : 0, deviceId);
399
+ this.#db.prepare('UPDATE devices SET paused = ? WHERE device_id = ?').run(paused ? 1 : 0, deviceId);
400
400
  }
401
401
  deleteDevice(deviceId) {
402
- this.db.prepare('DELETE FROM devices WHERE device_id = ?').run(deviceId);
402
+ this.#db.prepare('DELETE FROM devices WHERE device_id = ?').run(deviceId);
403
403
  }
404
404
  /* ---------- device pairing codes ---------- */
405
405
  createDeviceCode(clientName, ttlMs) {
@@ -407,24 +407,24 @@ export class SqliteStore {
407
407
  device_code: randomToken(32), user_code: SqliteStore.userCode(), client_name: clientName,
408
408
  user_id: null, approved: 0, denied: 0, device_id: null, expires_at: Date.now() + ttlMs, created_at: Date.now(),
409
409
  };
410
- this.db.prepare('INSERT INTO device_codes VALUES (?,?,?,?,?,?,?,?,?)')
410
+ this.#db.prepare('INSERT INTO device_codes VALUES (?,?,?,?,?,?,?,?,?)')
411
411
  .run(row.device_code, row.user_code, row.client_name, row.user_id, row.approved, row.denied, row.device_id, row.expires_at, row.created_at);
412
412
  return row;
413
413
  }
414
414
  getDeviceCode(deviceCode) {
415
- return this.db.prepare('SELECT * FROM device_codes WHERE device_code = ?').get(deviceCode);
415
+ return this.#db.prepare('SELECT * FROM device_codes WHERE device_code = ?').get(deviceCode);
416
416
  }
417
417
  getDeviceCodeByUserCode(userCode) {
418
- return this.db.prepare('SELECT * FROM device_codes WHERE user_code = ?').get(userCode.toUpperCase().replace(/[^A-Z0-9]/g, '').replace(/^(.{4})(.{4})$/, '$1-$2'));
418
+ return this.#db.prepare('SELECT * FROM device_codes WHERE user_code = ?').get(userCode.toUpperCase().replace(/[^A-Z0-9]/g, '').replace(/^(.{4})(.{4})$/, '$1-$2'));
419
419
  }
420
420
  approveDeviceCode(deviceCode, userId, deviceId) {
421
- this.db.prepare('UPDATE device_codes SET approved = 1, user_id = ?, device_id = ? WHERE device_code = ?').run(userId, deviceId, deviceCode);
421
+ this.#db.prepare('UPDATE device_codes SET approved = 1, user_id = ?, device_id = ? WHERE device_code = ?').run(userId, deviceId, deviceCode);
422
422
  }
423
423
  denyDeviceCode(deviceCode) {
424
- this.db.prepare('UPDATE device_codes SET denied = 1 WHERE device_code = ?').run(deviceCode);
424
+ this.#db.prepare('UPDATE device_codes SET denied = 1 WHERE device_code = ?').run(deviceCode);
425
425
  }
426
426
  deleteDeviceCode(deviceCode) {
427
- this.db.prepare('DELETE FROM device_codes WHERE device_code = ?').run(deviceCode);
427
+ this.#db.prepare('DELETE FROM device_codes WHERE device_code = ?').run(deviceCode);
428
428
  }
429
429
  static userCode() {
430
430
  const alphabet = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
@@ -434,60 +434,60 @@ export class SqliteStore {
434
434
  }
435
435
  /* ---------- audit ---------- */
436
436
  audit(row) {
437
- this.db.prepare('INSERT INTO audit (ts,user_id,device_id,client,tool,args_hash,ok,ms,error) VALUES (?,?,?,?,?,?,?,?,?)')
437
+ this.#db.prepare('INSERT INTO audit (ts,user_id,device_id,client,tool,args_hash,ok,ms,error) VALUES (?,?,?,?,?,?,?,?,?)')
438
438
  .run(row.ts, row.user_id, row.device_id, row.client, row.tool, row.args_hash, row.ok, row.ms, row.error);
439
439
  }
440
440
  recentAudit(userId, limit = 100) {
441
- return this.db.prepare('SELECT * FROM audit WHERE user_id = ? ORDER BY id DESC LIMIT ?').all(userId, limit);
441
+ return this.#db.prepare('SELECT * FROM audit WHERE user_id = ? ORDER BY id DESC LIMIT ?').all(userId, limit);
442
442
  }
443
443
  /** Housekeeping: drop expired codes/tokens. */
444
444
  vacuumExpired() {
445
445
  const now = Date.now();
446
- this.db.prepare('DELETE FROM auth_codes WHERE expires_at < ?').run(now);
447
- this.db.prepare('DELETE FROM device_codes WHERE expires_at < ?').run(now);
448
- this.db.prepare('DELETE FROM tokens WHERE expires_at IS NOT NULL AND expires_at < ?').run(now - 7 * 86_400_000);
446
+ this.#db.prepare('DELETE FROM auth_codes WHERE expires_at < ?').run(now);
447
+ this.#db.prepare('DELETE FROM device_codes WHERE expires_at < ?').run(now);
448
+ this.#db.prepare('DELETE FROM tokens WHERE expires_at IS NOT NULL AND expires_at < ?').run(now - 7 * 86_400_000);
449
449
  }
450
450
  /* ---------- OAuth clients (management) ---------- */
451
451
  listClients() {
452
- return this.db.prepare('SELECT * FROM oauth_clients ORDER BY created_at DESC').all();
452
+ return this.#db.prepare('SELECT * FROM oauth_clients ORDER BY created_at DESC').all();
453
453
  }
454
454
  deleteClient(clientId) {
455
- this.db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ?').run(clientId);
456
- this.db.prepare('DELETE FROM oauth_clients WHERE client_id = ?').run(clientId);
455
+ this.#db.prepare('UPDATE tokens SET revoked = 1 WHERE client_id = ?').run(clientId);
456
+ this.#db.prepare('DELETE FROM oauth_clients WHERE client_id = ?').run(clientId);
457
457
  }
458
458
  renameDevice(deviceId, name) {
459
- this.db.prepare('UPDATE devices SET name = ? WHERE device_id = ?').run(name, deviceId);
459
+ this.#db.prepare('UPDATE devices SET name = ? WHERE device_id = ?').run(name, deviceId);
460
460
  }
461
461
  auditStats(userId) {
462
- const row = this.db.prepare('SELECT COUNT(*) AS total, SUM(CASE WHEN ok = 0 THEN 1 ELSE 0 END) AS failed, SUM(CASE WHEN ts > ? THEN 1 ELSE 0 END) AS last24h FROM audit WHERE user_id = ?').get(Date.now() - 86_400_000, userId);
462
+ const row = this.#db.prepare('SELECT COUNT(*) AS total, SUM(CASE WHEN ok = 0 THEN 1 ELSE 0 END) AS failed, SUM(CASE WHEN ts > ? THEN 1 ELSE 0 END) AS last24h FROM audit WHERE user_id = ?').get(Date.now() - 86_400_000, userId);
463
463
  return { total: row.total, failed: row.failed ?? 0, last24h: row.last24h ?? 0 };
464
464
  }
465
465
  /* ---------- API keys (static bearer tokens) ---------- */
466
466
  ensureApiKeys() {
467
- this.db.exec('CREATE TABLE IF NOT EXISTS api_keys (key_hash TEXT PRIMARY KEY, user_id TEXT NOT NULL REFERENCES users(id) ON DELETE RESTRICT, name TEXT NOT NULL, prefix TEXT NOT NULL, created_at INTEGER NOT NULL, last_used INTEGER, revoked INTEGER NOT NULL DEFAULT 0)');
467
+ this.#db.exec('CREATE TABLE IF NOT EXISTS api_keys (key_hash TEXT PRIMARY KEY, user_id TEXT NOT NULL REFERENCES users(id) ON DELETE RESTRICT, name TEXT NOT NULL, prefix TEXT NOT NULL, created_at INTEGER NOT NULL, last_used INTEGER, revoked INTEGER NOT NULL DEFAULT 0)');
468
468
  }
469
469
  createApiKey(userId, name) {
470
470
  this.ensureApiKeys();
471
471
  const raw = `brc_ak_${randomToken(32)}`;
472
472
  const prefix = raw.slice(0, 18);
473
- this.db.prepare('INSERT INTO api_keys (key_hash, user_id, name, prefix, created_at) VALUES (?,?,?,?,?)').run(sha256(raw), userId, name, prefix, Date.now());
473
+ this.#db.prepare('INSERT INTO api_keys (key_hash, user_id, name, prefix, created_at) VALUES (?,?,?,?,?)').run(sha256(raw), userId, name, prefix, Date.now());
474
474
  return { raw, prefix };
475
475
  }
476
476
  getApiKey(raw) {
477
477
  this.ensureApiKeys();
478
- const row = this.db.prepare('SELECT user_id, name, prefix FROM api_keys WHERE key_hash = ? AND revoked = 0').get(sha256(raw));
478
+ const row = this.#db.prepare('SELECT user_id, name, prefix FROM api_keys WHERE key_hash = ? AND revoked = 0').get(sha256(raw));
479
479
  if (row)
480
- this.db.prepare('UPDATE api_keys SET last_used = ? WHERE key_hash = ?').run(Date.now(), sha256(raw));
480
+ this.#db.prepare('UPDATE api_keys SET last_used = ? WHERE key_hash = ?').run(Date.now(), sha256(raw));
481
481
  return row;
482
482
  }
483
483
  listApiKeys(userId) {
484
484
  this.ensureApiKeys();
485
- return this.db.prepare('SELECT prefix, name, created_at, last_used FROM api_keys WHERE user_id = ? AND revoked = 0 ORDER BY created_at DESC').all(userId);
485
+ return this.#db.prepare('SELECT prefix, name, created_at, last_used FROM api_keys WHERE user_id = ? AND revoked = 0 ORDER BY created_at DESC').all(userId);
486
486
  }
487
487
  revokeApiKey(userId, prefix) {
488
488
  this.ensureApiKeys();
489
- this.db.prepare('UPDATE api_keys SET revoked = 1 WHERE user_id = ? AND prefix = ?').run(userId, prefix);
489
+ this.#db.prepare('UPDATE api_keys SET revoked = 1 WHERE user_id = ? AND prefix = ?').run(userId, prefix);
490
490
  }
491
- close() { this.db.close(); }
491
+ close() { this.#db.close(); }
492
492
  }
493
493
  //# sourceMappingURL=sqlite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { BrcSettings } from '../config/settings.js';
2
+ import type { ZipEntry } from 'unzipper';
1
3
  export interface VersionManifest {
2
4
  version: 1;
3
5
  current: string;
@@ -14,11 +16,21 @@ export declare function errorCode(error: unknown): string | undefined;
14
16
  export declare function errorMessage(error: unknown): string;
15
17
  export declare function isVersion(value: unknown): value is string;
16
18
  export declare function parseManifest(value: unknown): VersionManifest;
17
- export declare function ensureSafeDirectory(root: string, directory: string): Promise<void>;
18
- export declare function ensureRegularFile(filename: string): Promise<void>;
19
- export declare function readManifest(root: string): Promise<VersionManifest | null>;
20
19
  export declare function safeArchivePath(value: string): boolean;
21
- export declare function sha256File(filename: string): Promise<string>;
22
20
  export declare function quoteYaml(value: string): string;
23
21
  export declare function renderTemplate(template: string, replacements: Record<string, string>): string;
24
- export declare function writeAtomic(filename: string, contents: string): Promise<void>;
22
+ export interface TraefikTemplates {
23
+ staticConfig: string;
24
+ dynamicConfig: string;
25
+ }
26
+ export declare function renderConfig({ templates, dynamicSettings, staticSettings, dynamicPath, generation }: {
27
+ templates: TraefikTemplates;
28
+ dynamicSettings: Readonly<BrcSettings>;
29
+ staticSettings: Readonly<BrcSettings>;
30
+ dynamicPath: string;
31
+ generation: string;
32
+ }): TraefikTemplates;
33
+ export declare function readChecksum(contents: string, filename: string): string;
34
+ export declare function parseRelease(value: unknown): TraefikRelease;
35
+ export declare function validateArchiveEntries(entries: ZipEntry[]): ZipEntry;
36
+ export declare function verifyChecksum(actual: string, expected: string): void;