@positronic/cloudflare 0.0.73 → 0.0.74

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.
@@ -177,7 +177,7 @@ app.post('/', function(c) {
177
177
  authDo = c.env.AUTH_DO.get(authDoId);
178
178
  return [
179
179
  4,
180
- authDo.getUserByName(body.name)
180
+ authDo.getUser(body.name)
181
181
  ];
182
182
  case 2:
183
183
  existing = _state.sent();
@@ -258,10 +258,10 @@ app.get('/', function(c) {
258
258
  });
259
259
  })();
260
260
  });
261
- // GET /users/:id - Get a specific user
262
- app.get('/:id', function(c) {
261
+ // GET /users/:name - Get a specific user
262
+ app.get('/:name', function(c) {
263
263
  return _async_to_generator(function() {
264
- var userId, authDoId, authDo, user, error;
264
+ var name, authDoId, authDo, user, error;
265
265
  return _ts_generator(this, function(_state) {
266
266
  switch(_state.label){
267
267
  case 0:
@@ -271,12 +271,12 @@ app.get('/:id', function(c) {
271
271
  ,
272
272
  3
273
273
  ]);
274
- userId = c.req.param('id');
274
+ name = c.req.param('name');
275
275
  authDoId = c.env.AUTH_DO.idFromName('auth');
276
276
  authDo = c.env.AUTH_DO.get(authDoId);
277
277
  return [
278
278
  4,
279
- authDo.getUser(userId)
279
+ authDo.getUser(name)
280
280
  ];
281
281
  case 1:
282
282
  user = _state.sent();
@@ -284,7 +284,7 @@ app.get('/:id', function(c) {
284
284
  return [
285
285
  2,
286
286
  c.json({
287
- error: "User '".concat(userId, "' not found")
287
+ error: "User '".concat(name, "' not found")
288
288
  }, 404)
289
289
  ];
290
290
  }
@@ -309,10 +309,10 @@ app.get('/:id', function(c) {
309
309
  });
310
310
  })();
311
311
  });
312
- // DELETE /users/:id - Delete a user
313
- app.delete('/:id', function(c) {
312
+ // DELETE /users/:name - Delete a user
313
+ app.delete('/:name', function(c) {
314
314
  return _async_to_generator(function() {
315
- var userId, authDoId, authDo, deleted, error;
315
+ var name, authDoId, authDo, deleted, error;
316
316
  return _ts_generator(this, function(_state) {
317
317
  switch(_state.label){
318
318
  case 0:
@@ -322,12 +322,12 @@ app.delete('/:id', function(c) {
322
322
  ,
323
323
  3
324
324
  ]);
325
- userId = c.req.param('id');
325
+ name = c.req.param('name');
326
326
  authDoId = c.env.AUTH_DO.idFromName('auth');
327
327
  authDo = c.env.AUTH_DO.get(authDoId);
328
328
  return [
329
329
  4,
330
- authDo.deleteUser(userId)
330
+ authDo.deleteUser(name)
331
331
  ];
332
332
  case 1:
333
333
  deleted = _state.sent();
@@ -335,7 +335,7 @@ app.delete('/:id', function(c) {
335
335
  return [
336
336
  2,
337
337
  c.json({
338
- error: "User '".concat(userId, "' not found")
338
+ error: "User '".concat(name, "' not found")
339
339
  }, 404)
340
340
  ];
341
341
  }
@@ -360,10 +360,10 @@ app.delete('/:id', function(c) {
360
360
  });
361
361
  })();
362
362
  });
363
- // POST /users/:id/keys - Add a key to a user
364
- app.post('/:id/keys', function(c) {
363
+ // POST /users/:name/keys - Add a key to a user
364
+ app.post('/:name/keys', function(c) {
365
365
  return _async_to_generator(function() {
366
- var userId, body, authDoId, authDo, user, existingKey, key, error;
366
+ var name, body, authDoId, authDo, user, existingKey, key, error;
367
367
  return _ts_generator(this, function(_state) {
368
368
  switch(_state.label){
369
369
  case 0:
@@ -373,7 +373,7 @@ app.post('/:id/keys', function(c) {
373
373
  ,
374
374
  6
375
375
  ]);
376
- userId = c.req.param('id');
376
+ name = c.req.param('name');
377
377
  return [
378
378
  4,
379
379
  c.req.json()
@@ -400,7 +400,7 @@ app.post('/:id/keys', function(c) {
400
400
  authDo = c.env.AUTH_DO.get(authDoId);
401
401
  return [
402
402
  4,
403
- authDo.getUser(userId)
403
+ authDo.getUser(name)
404
404
  ];
405
405
  case 2:
406
406
  user = _state.sent();
@@ -408,7 +408,7 @@ app.post('/:id/keys', function(c) {
408
408
  return [
409
409
  2,
410
410
  c.json({
411
- error: "User '".concat(userId, "' not found")
411
+ error: "User '".concat(name, "' not found")
412
412
  }, 404)
413
413
  ];
414
414
  }
@@ -428,7 +428,7 @@ app.post('/:id/keys', function(c) {
428
428
  }
429
429
  return [
430
430
  4,
431
- authDo.addKey(userId, body.fingerprint, JSON.stringify(body.jwk), body.label || '')
431
+ authDo.addKey(name, body.fingerprint, JSON.stringify(body.jwk), body.label || '')
432
432
  ];
433
433
  case 4:
434
434
  key = _state.sent();
@@ -437,7 +437,7 @@ app.post('/:id/keys', function(c) {
437
437
  2,
438
438
  c.json({
439
439
  fingerprint: key.fingerprint,
440
- userId: key.userId,
440
+ userName: key.userName,
441
441
  label: key.label,
442
442
  addedAt: key.addedAt
443
443
  }, 201)
@@ -459,10 +459,10 @@ app.post('/:id/keys', function(c) {
459
459
  });
460
460
  })();
461
461
  });
462
- // GET /users/:id/keys - List keys for a user
463
- app.get('/:id/keys', function(c) {
462
+ // GET /users/:name/keys - List keys for a user
463
+ app.get('/:name/keys', function(c) {
464
464
  return _async_to_generator(function() {
465
- var userId, authDoId, authDo, user, result, error;
465
+ var name, authDoId, authDo, user, result, error;
466
466
  return _ts_generator(this, function(_state) {
467
467
  switch(_state.label){
468
468
  case 0:
@@ -472,12 +472,12 @@ app.get('/:id/keys', function(c) {
472
472
  ,
473
473
  4
474
474
  ]);
475
- userId = c.req.param('id');
475
+ name = c.req.param('name');
476
476
  authDoId = c.env.AUTH_DO.idFromName('auth');
477
477
  authDo = c.env.AUTH_DO.get(authDoId);
478
478
  return [
479
479
  4,
480
- authDo.getUser(userId)
480
+ authDo.getUser(name)
481
481
  ];
482
482
  case 1:
483
483
  user = _state.sent();
@@ -485,13 +485,13 @@ app.get('/:id/keys', function(c) {
485
485
  return [
486
486
  2,
487
487
  c.json({
488
- error: "User '".concat(userId, "' not found")
488
+ error: "User '".concat(name, "' not found")
489
489
  }, 404)
490
490
  ];
491
491
  }
492
492
  return [
493
493
  4,
494
- authDo.listKeys(userId)
494
+ authDo.listKeys(name)
495
495
  ];
496
496
  case 2:
497
497
  result = _state.sent();
@@ -502,7 +502,7 @@ app.get('/:id/keys', function(c) {
502
502
  keys: result.keys.map(function(key) {
503
503
  return {
504
504
  fingerprint: key.fingerprint,
505
- userId: key.userId,
505
+ userName: key.userName,
506
506
  label: key.label,
507
507
  addedAt: key.addedAt
508
508
  };
@@ -527,10 +527,10 @@ app.get('/:id/keys', function(c) {
527
527
  });
528
528
  })();
529
529
  });
530
- // DELETE /users/:id/keys/:fingerprint - Remove a key from a user
531
- app.delete('/:id/keys/:fingerprint', function(c) {
530
+ // DELETE /users/:name/keys/:fingerprint - Remove a key from a user
531
+ app.delete('/:name/keys/:fingerprint', function(c) {
532
532
  return _async_to_generator(function() {
533
- var userId, fingerprint, authDoId, authDo, deleted, error;
533
+ var name, fingerprint, authDoId, authDo, deleted, error;
534
534
  return _ts_generator(this, function(_state) {
535
535
  switch(_state.label){
536
536
  case 0:
@@ -540,13 +540,13 @@ app.delete('/:id/keys/:fingerprint', function(c) {
540
540
  ,
541
541
  3
542
542
  ]);
543
- userId = c.req.param('id');
543
+ name = c.req.param('name');
544
544
  fingerprint = decodeURIComponent(c.req.param('fingerprint'));
545
545
  authDoId = c.env.AUTH_DO.idFromName('auth');
546
546
  authDo = c.env.AUTH_DO.get(authDoId);
547
547
  return [
548
548
  4,
549
- authDo.removeKey(userId, fingerprint)
549
+ authDo.removeKey(name, fingerprint)
550
550
  ];
551
551
  case 1:
552
552
  deleted = _state.sent();
@@ -205,7 +205,6 @@ function _ts_generator(thisArg, body) {
205
205
  }
206
206
  }
207
207
  import { DurableObject } from 'cloudflare:workers';
208
- import { v4 as uuidv4 } from 'uuid';
209
208
  export var AuthDO = /*#__PURE__*/ function(DurableObject) {
210
209
  "use strict";
211
210
  _inherits(AuthDO, DurableObject);
@@ -217,8 +216,7 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
217
216
  env
218
217
  ]), _define_property(_this, "storage", void 0);
219
218
  _this.storage = state.storage.sql;
220
- // Initialize database schema
221
- _this.storage.exec("\n CREATE TABLE IF NOT EXISTS users (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n created_at INTEGER NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS keys (\n fingerprint TEXT PRIMARY KEY,\n user_id TEXT NOT NULL,\n jwk TEXT NOT NULL,\n label TEXT DEFAULT '',\n added_at INTEGER NOT NULL,\n FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_keys_user\n ON keys(user_id);\n ");
219
+ _this.storage.exec("\n CREATE TABLE IF NOT EXISTS users (\n name TEXT PRIMARY KEY,\n created_at INTEGER NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS keys (\n fingerprint TEXT PRIMARY KEY,\n user_name TEXT NOT NULL,\n jwk TEXT NOT NULL,\n label TEXT DEFAULT '',\n added_at INTEGER NOT NULL,\n FOREIGN KEY (user_name) REFERENCES users(name) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_keys_user\n ON keys(user_name);\n ");
222
220
  return _this;
223
221
  }
224
222
  _create_class(AuthDO, [
@@ -226,15 +224,13 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
226
224
  key: "createUser",
227
225
  value: function createUser(name) {
228
226
  return _async_to_generator(function() {
229
- var id, createdAt;
227
+ var createdAt;
230
228
  return _ts_generator(this, function(_state) {
231
- id = uuidv4();
232
229
  createdAt = Date.now();
233
- this.storage.exec("INSERT INTO users (id, name, created_at) VALUES (?, ?, ?)", id, name, createdAt);
230
+ this.storage.exec("INSERT INTO users (name, created_at) VALUES (?, ?)", name, createdAt);
234
231
  return [
235
232
  2,
236
233
  {
237
- id: id,
238
234
  name: name,
239
235
  createdAt: createdAt
240
236
  }
@@ -245,11 +241,11 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
245
241
  },
246
242
  {
247
243
  key: "getUser",
248
- value: function getUser(userId) {
244
+ value: function getUser(name) {
249
245
  return _async_to_generator(function() {
250
246
  var results, row;
251
247
  return _ts_generator(this, function(_state) {
252
- results = this.storage.exec("SELECT id, name, created_at FROM users WHERE id = ?", userId).toArray();
248
+ results = this.storage.exec("SELECT name, created_at FROM users WHERE name = ?", name).toArray();
253
249
  if (results.length === 0) {
254
250
  return [
255
251
  2,
@@ -260,33 +256,6 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
260
256
  return [
261
257
  2,
262
258
  {
263
- id: row.id,
264
- name: row.name,
265
- createdAt: row.created_at
266
- }
267
- ];
268
- });
269
- }).call(this);
270
- }
271
- },
272
- {
273
- key: "getUserByName",
274
- value: function getUserByName(name) {
275
- return _async_to_generator(function() {
276
- var results, row;
277
- return _ts_generator(this, function(_state) {
278
- results = this.storage.exec("SELECT id, name, created_at FROM users WHERE name = ?", name).toArray();
279
- if (results.length === 0) {
280
- return [
281
- 2,
282
- null
283
- ];
284
- }
285
- row = results[0];
286
- return [
287
- 2,
288
- {
289
- id: row.id,
290
259
  name: row.name,
291
260
  createdAt: row.created_at
292
261
  }
@@ -301,9 +270,8 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
301
270
  return _async_to_generator(function() {
302
271
  var users;
303
272
  return _ts_generator(this, function(_state) {
304
- users = this.storage.exec("SELECT id, name, created_at FROM users ORDER BY created_at DESC").toArray().map(function(row) {
273
+ users = this.storage.exec("SELECT name, created_at FROM users ORDER BY created_at DESC").toArray().map(function(row) {
305
274
  return {
306
- id: row.id,
307
275
  name: row.name,
308
276
  createdAt: row.created_at
309
277
  };
@@ -321,7 +289,7 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
321
289
  },
322
290
  {
323
291
  key: "deleteUser",
324
- value: function deleteUser(userId) {
292
+ value: function deleteUser(name) {
325
293
  return _async_to_generator(function() {
326
294
  var existing;
327
295
  return _ts_generator(this, function(_state) {
@@ -329,7 +297,7 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
329
297
  case 0:
330
298
  return [
331
299
  4,
332
- this.getUser(userId)
300
+ this.getUser(name)
333
301
  ];
334
302
  case 1:
335
303
  existing = _state.sent();
@@ -340,8 +308,8 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
340
308
  ];
341
309
  }
342
310
  // Delete associated keys first (due to foreign key)
343
- this.storage.exec("DELETE FROM keys WHERE user_id = ?", userId);
344
- this.storage.exec("DELETE FROM users WHERE id = ?", userId);
311
+ this.storage.exec("DELETE FROM keys WHERE user_name = ?", name);
312
+ this.storage.exec("DELETE FROM users WHERE name = ?", name);
345
313
  return [
346
314
  2,
347
315
  true
@@ -353,18 +321,18 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
353
321
  },
354
322
  {
355
323
  key: "addKey",
356
- value: function addKey(userId, fingerprint, jwk) {
324
+ value: function addKey(userName, fingerprint, jwk) {
357
325
  var label = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : '';
358
326
  return _async_to_generator(function() {
359
327
  var addedAt;
360
328
  return _ts_generator(this, function(_state) {
361
329
  addedAt = Date.now();
362
- this.storage.exec("INSERT INTO keys (fingerprint, user_id, jwk, label, added_at) VALUES (?, ?, ?, ?, ?)", fingerprint, userId, jwk, label, addedAt);
330
+ this.storage.exec("INSERT INTO keys (fingerprint, user_name, jwk, label, added_at) VALUES (?, ?, ?, ?, ?)", fingerprint, userName, jwk, label, addedAt);
363
331
  return [
364
332
  2,
365
333
  {
366
334
  fingerprint: fingerprint,
367
- userId: userId,
335
+ userName: userName,
368
336
  jwk: jwk,
369
337
  label: label,
370
338
  addedAt: addedAt
@@ -376,14 +344,14 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
376
344
  },
377
345
  {
378
346
  key: "listKeys",
379
- value: function listKeys(userId) {
347
+ value: function listKeys(userName) {
380
348
  return _async_to_generator(function() {
381
349
  var keys;
382
350
  return _ts_generator(this, function(_state) {
383
- keys = this.storage.exec("SELECT fingerprint, user_id, jwk, label, added_at FROM keys WHERE user_id = ? ORDER BY added_at DESC", userId).toArray().map(function(row) {
351
+ keys = this.storage.exec("SELECT fingerprint, user_name, jwk, label, added_at FROM keys WHERE user_name = ? ORDER BY added_at DESC", userName).toArray().map(function(row) {
384
352
  return {
385
353
  fingerprint: row.fingerprint,
386
- userId: row.user_id,
354
+ userName: row.user_name,
387
355
  jwk: row.jwk,
388
356
  label: row.label,
389
357
  addedAt: row.added_at
@@ -402,18 +370,18 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
402
370
  },
403
371
  {
404
372
  key: "removeKey",
405
- value: function removeKey(userId, fingerprint) {
373
+ value: function removeKey(userName, fingerprint) {
406
374
  return _async_to_generator(function() {
407
375
  var existing;
408
376
  return _ts_generator(this, function(_state) {
409
- existing = this.storage.exec("SELECT fingerprint FROM keys WHERE fingerprint = ? AND user_id = ?", fingerprint, userId).toArray();
377
+ existing = this.storage.exec("SELECT fingerprint FROM keys WHERE fingerprint = ? AND user_name = ?", fingerprint, userName).toArray();
410
378
  if (existing.length === 0) {
411
379
  return [
412
380
  2,
413
381
  false
414
382
  ];
415
383
  }
416
- this.storage.exec("DELETE FROM keys WHERE fingerprint = ? AND user_id = ?", fingerprint, userId);
384
+ this.storage.exec("DELETE FROM keys WHERE fingerprint = ? AND user_name = ?", fingerprint, userName);
417
385
  return [
418
386
  2,
419
387
  true
@@ -428,7 +396,7 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
428
396
  return _async_to_generator(function() {
429
397
  var results, row;
430
398
  return _ts_generator(this, function(_state) {
431
- results = this.storage.exec("SELECT fingerprint, user_id, jwk, label, added_at FROM keys WHERE fingerprint = ?", fingerprint).toArray();
399
+ results = this.storage.exec("SELECT fingerprint, user_name, jwk, label, added_at FROM keys WHERE fingerprint = ?", fingerprint).toArray();
432
400
  if (results.length === 0) {
433
401
  return [
434
402
  2,
@@ -440,7 +408,7 @@ export var AuthDO = /*#__PURE__*/ function(DurableObject) {
440
408
  2,
441
409
  {
442
410
  fingerprint: row.fingerprint,
443
- userId: row.user_id,
411
+ userName: row.user_name,
444
412
  jwk: row.jwk,
445
413
  label: row.label,
446
414
  addedAt: row.added_at
@@ -507,7 +507,7 @@ var ScheduleAdapter = /*#__PURE__*/ function() {
507
507
  return BatchChunkAdapter;
508
508
  }();
509
509
  // SQL to initialize the run owner table (stores who started this brain run)
510
- var runOwnerTableSQL = "\nCREATE TABLE IF NOT EXISTS run_owner (\n user_id TEXT NOT NULL\n);\n";
510
+ var runOwnerTableSQL = "\nCREATE TABLE IF NOT EXISTS run_owner (\n user_name TEXT NOT NULL\n);\n";
511
511
  // SQL to initialize the signals table
512
512
  var signalsTableSQL = "\nCREATE TABLE IF NOT EXISTS brain_signals (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n signal_type TEXT NOT NULL,\n content TEXT,\n queued_at INTEGER NOT NULL\n);\n";
513
513
  // SQL to initialize the wait timeout table
@@ -539,17 +539,17 @@ export var BrainRunnerDO = /*#__PURE__*/ function(DurableObject) {
539
539
  },
540
540
  {
541
541
  key: "storeRunOwner",
542
- value: function storeRunOwner(userId) {
542
+ value: function storeRunOwner(userName) {
543
543
  this.initializeRunOwnerTable();
544
- this.sql.exec("INSERT INTO run_owner (user_id) VALUES (?)", userId);
544
+ this.sql.exec("INSERT INTO run_owner (user_name) VALUES (?)", userName);
545
545
  }
546
546
  },
547
547
  {
548
548
  key: "getRunOwner",
549
549
  value: function getRunOwner() {
550
550
  this.initializeRunOwnerTable();
551
- var results = this.sql.exec("SELECT user_id FROM run_owner LIMIT 1").toArray();
552
- return results.length > 0 ? results[0].user_id : null;
551
+ var results = this.sql.exec("SELECT user_name FROM run_owner LIMIT 1").toArray();
552
+ return results.length > 0 ? results[0].user_name : null;
553
553
  }
554
554
  },
555
555
  {
@@ -1134,7 +1134,7 @@ export var BrainRunnerDO = /*#__PURE__*/ function(DurableObject) {
1134
1134
  options = initialData === null || initialData === void 0 ? void 0 : initialData.options;
1135
1135
  initialState = initialData && !initialData.options ? initialData : {};
1136
1136
  // Persist run owner durably (immutable, not derived from events)
1137
- this.storeRunOwner(currentUser.id);
1137
+ this.storeRunOwner(currentUser.name);
1138
1138
  // Create abort controller for this run
1139
1139
  this.abortController = new AbortController();
1140
1140
  batchChunkAdapter = new BatchChunkAdapter(function(signal) {
@@ -1232,7 +1232,7 @@ export var BrainRunnerDO = /*#__PURE__*/ function(DurableObject) {
1232
1232
  throw new Error("No run owner found for brain run ".concat(brainRunId));
1233
1233
  }
1234
1234
  currentUser = {
1235
- id: ownerId
1235
+ name: ownerId
1236
1236
  };
1237
1237
  // Use the brainRunId from the START event, not the parameter.
1238
1238
  // alarm() passes state.id.toString() (the DO hex ID), but the brain was
@@ -178,7 +178,7 @@ function _ts_generator(thisArg, body) {
178
178
  *
179
179
  * Key resolution:
180
180
  * shared: store/{brainTitle}/{key}.json
181
- * per-user: store/{brainTitle}/user/{userId}/{key}.json
181
+ * per-user: store/{brainTitle}/user/{userName}/{key}.json
182
182
  *
183
183
  * The factory receives the store schema, brain title, and currentUser,
184
184
  * and returns a typed Store<any> with full key resolution built in.
@@ -190,7 +190,7 @@ function _ts_generator(thisArg, body) {
190
190
  if (!currentUser) {
191
191
  throw new Error('Store key "'.concat(key, '" is per-user but no currentUser was provided. ') + "Per-user store keys require a currentUser in run params.");
192
192
  }
193
- return "store/".concat(brainTitle, "/user/").concat(currentUser.id, "/").concat(key);
193
+ return "store/".concat(brainTitle, "/user/").concat(currentUser.name, "/").concat(key);
194
194
  }
195
195
  return "store/".concat(brainTitle, "/").concat(key);
196
196
  };
@@ -265,9 +265,9 @@ export var MonitorDO = /*#__PURE__*/ function(DurableObject) {
265
265
  } catch (e) {
266
266
  // Column already exists
267
267
  }
268
- // Migration: add user_id column to brain_runs for ownership tracking
268
+ // Migration: add user_name column to brain_runs for ownership tracking
269
269
  try {
270
- _this.storage.exec("ALTER TABLE brain_runs ADD COLUMN user_id TEXT");
270
+ _this.storage.exec("ALTER TABLE brain_runs ADD COLUMN user_name TEXT");
271
271
  } catch (e) {
272
272
  // Column already exists
273
273
  }
@@ -316,9 +316,9 @@ export var MonitorDO = /*#__PURE__*/ function(DurableObject) {
316
316
  } else {
317
317
  // All other events have brainTitle/brainDescription (BrainBaseEvent types)
318
318
  var brainEvent = event;
319
- // Extract user_id from START event (set once, never updated)
320
- var userId = event.type === BRAIN_EVENTS.START ? event.currentUser.id : null;
321
- this.storage.exec("\n INSERT INTO brain_runs (\n run_id, brain_title, brain_description, type, status,\n options, error, created_at, started_at, completed_at, user_id\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(run_id) DO UPDATE SET\n type = excluded.type,\n status = excluded.status,\n error = excluded.error,\n completed_at = excluded.completed_at\n ", brainRunId, brainEvent.brainTitle, brainEvent.brainDescription || null, event.type, status, JSON.stringify(event.options || {}), error, currentTime, startTime, completeTime, userId);
319
+ // Extract user_name from START event (set once, never updated)
320
+ var userName = event.type === BRAIN_EVENTS.START ? event.currentUser.name : null;
321
+ this.storage.exec("\n INSERT INTO brain_runs (\n run_id, brain_title, brain_description, type, status,\n options, error, created_at, started_at, completed_at, user_name\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(run_id) DO UPDATE SET\n type = excluded.type,\n status = excluded.status,\n error = excluded.error,\n completed_at = excluded.completed_at\n ", brainRunId, brainEvent.brainTitle, brainEvent.brainDescription || null, event.type, status, JSON.stringify(event.options || {}), error, currentTime, startTime, completeTime, userName);
322
322
  }
323
323
  // Clean up registrations and in-memory state when brain terminates
324
324
  if (isTerminalStatus) {
@@ -453,12 +453,12 @@ export var MonitorDO = /*#__PURE__*/ function(DurableObject) {
453
453
  {
454
454
  /**
455
455
  * Get detailed information about a specific brain run
456
- * Returns null if run not found or not owned by userId
457
- * Pass null for userId to skip ownership check (root access)
456
+ * Returns null if run not found or not owned by userName
457
+ * Pass null for userName to skip ownership check (root access)
458
458
  */ key: "getRun",
459
459
  value: function getRun(brainRunId) {
460
- var userId = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
461
- var results = this.storage.exec("\n SELECT\n run_id as brainRunId,\n brain_title as brainTitle,\n brain_description as brainDescription,\n type,\n status,\n options,\n error,\n created_at as createdAt,\n started_at as startedAt,\n completed_at as completedAt,\n user_id as userId\n FROM brain_runs\n WHERE run_id = ?\n AND (? IS NULL OR user_id = ?)\n ", brainRunId, userId, userId).toArray();
460
+ var userName = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
461
+ var results = this.storage.exec("\n SELECT\n run_id as brainRunId,\n brain_title as brainTitle,\n brain_description as brainDescription,\n type,\n status,\n options,\n error,\n created_at as createdAt,\n started_at as startedAt,\n completed_at as completedAt,\n user_name as userName\n FROM brain_runs\n WHERE run_id = ?\n AND (? IS NULL OR user_name = ?)\n ", brainRunId, userName, userName).toArray();
462
462
  if (results.length === 0) {
463
463
  return null;
464
464
  }
@@ -473,21 +473,21 @@ export var MonitorDO = /*#__PURE__*/ function(DurableObject) {
473
473
  {
474
474
  /**
475
475
  * Get run history for a brain.
476
- * Pass null for userId to skip ownership filter (root access).
476
+ * Pass null for userName to skip ownership filter (root access).
477
477
  */ key: "history",
478
478
  value: function history(brainTitle) {
479
- var limit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 10, userId = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
480
- return this.storage.exec("\n SELECT\n run_id as brainRunId,\n brain_title as brainTitle,\n brain_description as brainDescription,\n type,\n status,\n options,\n error,\n created_at as createdAt,\n started_at as startedAt,\n completed_at as completedAt,\n user_id as userId\n FROM brain_runs\n WHERE brain_title = ?\n AND (? IS NULL OR user_id = ?)\n ORDER BY created_at DESC\n LIMIT ?\n ", brainTitle, userId, userId, limit).toArray();
479
+ var limit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 10, userName = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
480
+ return this.storage.exec("\n SELECT\n run_id as brainRunId,\n brain_title as brainTitle,\n brain_description as brainDescription,\n type,\n status,\n options,\n error,\n created_at as createdAt,\n started_at as startedAt,\n completed_at as completedAt,\n user_name as userName\n FROM brain_runs\n WHERE brain_title = ?\n AND (? IS NULL OR user_name = ?)\n ORDER BY created_at DESC\n LIMIT ?\n ", brainTitle, userName, userName, limit).toArray();
481
481
  }
482
482
  },
483
483
  {
484
484
  /**
485
485
  * Get active brain runs for a specific brain (running, paused, or waiting).
486
- * Pass null for userId to skip ownership filter (root access).
486
+ * Pass null for userName to skip ownership filter (root access).
487
487
  */ key: "activeRuns",
488
488
  value: function activeRuns(brainTitle) {
489
- var userId = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
490
- return this.storage.exec("\n SELECT\n run_id as brainRunId,\n brain_title as brainTitle,\n brain_description as brainDescription,\n type,\n status,\n options,\n error,\n created_at as createdAt,\n started_at as startedAt,\n completed_at as completedAt,\n user_id as userId\n FROM brain_runs\n WHERE brain_title = ? AND status IN (?, ?, ?)\n AND (? IS NULL OR user_id = ?)\n ORDER BY created_at DESC\n ", brainTitle, STATUS.RUNNING, STATUS.PAUSED, STATUS.WAITING, userId, userId).toArray();
489
+ var userName = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
490
+ return this.storage.exec("\n SELECT\n run_id as brainRunId,\n brain_title as brainTitle,\n brain_description as brainDescription,\n type,\n status,\n options,\n error,\n created_at as createdAt,\n started_at as startedAt,\n completed_at as completedAt,\n user_name as userName\n FROM brain_runs\n WHERE brain_title = ? AND status IN (?, ?, ?)\n AND (? IS NULL OR user_name = ?)\n ORDER BY created_at DESC\n ", brainTitle, STATUS.RUNNING, STATUS.PAUSED, STATUS.WAITING, userName, userName).toArray();
491
491
  }
492
492
  },
493
493
  {