@intentface/latch-drizzle 0.18.0 → 0.20.0

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 +1 @@
1
- {"version":3,"file":"adapter.shared.d.ts","sourceRoot":"","sources":["../src/adapter.shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,GAAG,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAWL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;GAQG;AAEH,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC;;;;OAIG;IACH,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,6GAA6G;IAC7G,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC;;;;OAIG;IACH,KAAK,EAAE,GAAG,CAAC;IACX;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzD;AAmBD;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAc,CAAC;AAOxC,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,EAAE,EAAE,GAAG,EACP,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,CAAC,CAAC,CAkpBnB"}
1
+ {"version":3,"file":"adapter.shared.d.ts","sourceRoot":"","sources":["../src/adapter.shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,GAAG,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAeL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;GAQG;AAEH,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC;;;;OAIG;IACH,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,6GAA6G;IAC7G,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC;;;;OAIG;IACH,KAAK,EAAE,GAAG,CAAC;IACX;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzD;AAmBD;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAc,CAAC;AAUxC,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,EAAE,EAAE,GAAG,EACP,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,CAAC,CAAC,CA60BnB"}
@@ -1,5 +1,6 @@
1
- import { and, asc, eq, getTableColumns, getTableName, isNotNull, isNull, lt, lte, ne, or, sql, } from "drizzle-orm";
2
- import { ChatBusyError, ChatConflictError, encodeOwnerKey, } from "@intentface/latch-core";
1
+ import { and, asc, eq, getTableColumns, getTableName, inArray, isNotNull, isNull, lt, lte, ne, or, sql, } from "drizzle-orm";
2
+ import { ChatBusyError, ChatConflictError, encodeOwnerKey, OwnerKeyMismatchError, refileTarget, } from "@intentface/latch-core";
3
+ import { deleteBatch, underOwnerPath } from "./owner-path.js";
3
4
  function newId(prefix) {
4
5
  return `${prefix}_${crypto.randomUUID().replace(/-/g, "").slice(0, 24)}`;
5
6
  }
@@ -35,6 +36,8 @@ function violates(error, sqliteCode, pgCode, text) {
35
36
  * turn would block its chat forever. Durable runs use their lease instead.
36
37
  */
37
38
  export const STALE_RUN_MS = 10 * 60_000;
39
+ /** What a re-filed usage row's `run_id` becomes: a link back to nothing. */
40
+ const ERASED_RUN = "erased";
38
41
  /** Join an `owner` path into one composite key; refuses a missing or empty segment. */
39
42
  function ownerKeyOf(owner, principal) {
40
43
  return encodeOwnerKey(owner(principal));
@@ -58,6 +61,7 @@ export function makeStorageAdapter(db, s, opts) {
58
61
  chatId: r.chatId,
59
62
  agent: r.agent,
60
63
  status: r.status,
64
+ ...(r.ownerKey ? { ownerKey: r.ownerKey } : {}),
61
65
  identity: r.identity ?? undefined,
62
66
  leaseOwner: r.leaseOwner,
63
67
  leaseExpiresAt: r.leaseExpiresAt,
@@ -96,6 +100,29 @@ export function makeStorageAdapter(db, s, opts) {
96
100
  leaseExpiresAt: r.leaseExpiresAt,
97
101
  createdAt: r.createdAt,
98
102
  });
103
+ /** A run's owner key: its own, or its chat's for runs stamped before the column existed. */
104
+ const runOwner = sql `coalesce(${s.runs.ownerKey}, (select ${s.chats.owner} from ${s.chats} where ${s.chats.id} = ${s.runs.chatId}))`;
105
+ /** The owner key a row was stored under, or `undefined` when there's no such row. */
106
+ async function storedOwner(kind, id) {
107
+ const rows = kind === "run"
108
+ ? await db.select({ owner: runOwner }).from(s.runs).where(eq(s.runs.id, id))
109
+ : kind === "chat"
110
+ ? await db.select({ owner: s.chats.owner }).from(s.chats).where(eq(s.chats.id, id))
111
+ : await db.select({ owner: s.schedules.owner }).from(s.schedules).where(eq(s.schedules.id, id));
112
+ return rows[0]?.owner ?? undefined;
113
+ }
114
+ /**
115
+ * Refuse an id-only call whose owner key isn't the row's (OwnerScope). An
116
+ * owner never changes once written, so checking before the write can't race
117
+ * it; a row that doesn't exist is left to the write itself to miss.
118
+ */
119
+ async function checkOwner(kind, id, scope) {
120
+ if (!scope?.ownerKey)
121
+ return;
122
+ const owner = await storedOwner(kind, id);
123
+ if (owner !== undefined && owner !== scope.ownerKey)
124
+ throw new OwnerKeyMismatchError(`${kind} ${id}`);
125
+ }
99
126
  async function getChat(principal, id) {
100
127
  const rows = await db
101
128
  .select()
@@ -127,6 +154,16 @@ export function makeStorageAdapter(db, s, opts) {
127
154
  }
128
155
  /** Whether `fence`'s run still holds its lease — evaluated inside the write it guards. */
129
156
  const fenceHolds = (fence) => sql `exists (select 1 from ${s.runs} where ${s.runs.id} = ${fence.runId} and ${s.runs.leaseOwner} = ${fence.owner} and ${s.runs.fencingToken} = ${fence.fencingToken}${opts.lockFencedRun ? sql ` for share` : sql ``})`;
157
+ /**
158
+ * A chat's id, looked up rather than taken on trust: NULL when the chat is
159
+ * gone, which the NOT NULL `chat_id` columns turn into a failed write. So a
160
+ * run or message for a deleted chat can't land as an orphan. On Postgres it
161
+ * also waits (FOR SHARE) for a deletion of that chat to commit, which is what
162
+ * serializes `deleteChats` with a run starting in the same chat.
163
+ */
164
+ const chatRef = (chatId) => sql `(select ${s.chats.id} from ${s.chats} where ${s.chats.id} = ${chatId}${opts.lockFencedRun ? sql ` for share` : sql ``})`;
165
+ /** The error for a write into a chat that doesn't exist (any more). */
166
+ const chatGone = (chatId) => new Error(`Unknown chat: ${chatId}`);
130
167
  /**
131
168
  * One message upsert (seq computed in-statement) as a query, for batching.
132
169
  *
@@ -141,7 +178,7 @@ export function makeStorageAdapter(db, s, opts) {
141
178
  .insert(s.messages)
142
179
  .values({
143
180
  id: m.id,
144
- chatId,
181
+ chatId: chatRef(chatId),
145
182
  runId: null,
146
183
  seq: (fence ? sql `case when ${fenceHolds(fence)} then ${nextSeq} end` : nextSeq),
147
184
  role: m.role,
@@ -164,15 +201,17 @@ export function makeStorageAdapter(db, s, opts) {
164
201
  * in the lease's remaining time OUTSIDE the transaction, because on Postgres
165
202
  * a failed statement aborts the transaction and nothing can be read in it.
166
203
  */
167
- async function insertRun(exec, row) {
204
+ async function insertRun(exec, row, chatId) {
168
205
  try {
169
206
  const got = await exec.insert(s.runs).values(row).returning();
170
207
  return got[0];
171
208
  }
172
209
  catch (error) {
210
+ if (isNotNullViolation(error))
211
+ throw chatGone(chatId);
173
212
  if (!isUniqueViolation(error))
174
213
  throw error;
175
- throw new ChatBusyError(String(row.chatId), 0);
214
+ throw new ChatBusyError(chatId, 0);
176
215
  }
177
216
  }
178
217
  /** The busy refusal with the live run's remaining time, computed on the main connection. */
@@ -188,7 +227,7 @@ export function makeStorageAdapter(db, s, opts) {
188
227
  async function openRunRow(row, chatId, now) {
189
228
  await supersedeStale(db, chatId, now);
190
229
  try {
191
- return await insertRun(db, row);
230
+ return await insertRun(db, row, chatId);
192
231
  }
193
232
  catch (error) {
194
233
  if (error instanceof ChatBusyError)
@@ -198,9 +237,12 @@ export function makeStorageAdapter(db, s, opts) {
198
237
  }
199
238
  const runRow = (principal, input, now) => ({
200
239
  id: newId("run"),
201
- chatId: input.chatId,
240
+ chatId: chatRef(input.chatId),
202
241
  agent: input.agent,
203
242
  status: "active",
243
+ // The run inherits its chat's owner: the same key, derived from the same
244
+ // principal the turn's chat was opened for.
245
+ ownerKey: ownerKey(principal),
204
246
  identity: principal,
205
247
  kind: input.kind,
206
248
  // Stamped at OPEN, so a run that errors or crashes still says which agent
@@ -265,6 +307,44 @@ export function makeStorageAdapter(db, s, opts) {
265
307
  throw error;
266
308
  }
267
309
  }
310
+ /** One usage row; `owner` may be a lookup (see `recordUsage`). */
311
+ async function insertUsage(owner, input) {
312
+ await db.insert(s.usage).values({
313
+ id: newId("use"),
314
+ owner,
315
+ runId: input.runId,
316
+ model: input.model,
317
+ inputTokens: input.inputTokens,
318
+ outputTokens: input.outputTokens,
319
+ cacheReadTokens: input.cacheReadTokens,
320
+ cacheWriteTokens: input.cacheWriteTokens,
321
+ cost: input.cost,
322
+ createdAt: Date.now(),
323
+ });
324
+ }
325
+ /**
326
+ * Remove chats with everything under them but their usage (the purge
327
+ * decides that). Live runs are settled first with their fencing token
328
+ * bumped, so a worker still running one has its writes refused; then
329
+ * messages, runs and the chats themselves. Each step is
330
+ * safe to repeat, so a pass cut short is finished by the next.
331
+ */
332
+ async function removeChats(chatIds) {
333
+ await db
334
+ .update(s.runs)
335
+ .set({
336
+ status: "errored",
337
+ error: "deleted",
338
+ endedAt: nowMs,
339
+ leaseOwner: null,
340
+ fencingToken: sql `coalesce(${s.runs.fencingToken}, 0) + 1`,
341
+ })
342
+ .where(and(inArray(s.runs.chatId, chatIds), eq(s.runs.status, "active")));
343
+ const messages = await db.delete(s.messages).where(inArray(s.messages.chatId, chatIds)).returning({ id: s.messages.id });
344
+ const runs = await db.delete(s.runs).where(inArray(s.runs.chatId, chatIds)).returning({ id: s.runs.id });
345
+ const chats = await db.delete(s.chats).where(inArray(s.chats.id, chatIds)).returning({ id: s.chats.id });
346
+ return { chats: chats.length, messages: messages.length, runs: runs.length };
347
+ }
268
348
  return {
269
349
  async createChat(principal, input) {
270
350
  const now = Date.now();
@@ -337,7 +417,8 @@ export function makeStorageAdapter(db, s, opts) {
337
417
  metadata: (r.metadata ?? undefined),
338
418
  }));
339
419
  },
340
- async appendMessages(chatId, msgs, fence) {
420
+ async appendMessages(chatId, msgs, fence, scope) {
421
+ await checkOwner("chat", chatId, scope);
341
422
  if (fence)
342
423
  return msgs.length === 0 || appendFenced(chatId, msgs, fence);
343
424
  if (msgs.length === 0)
@@ -348,7 +429,14 @@ export function makeStorageAdapter(db, s, opts) {
348
429
  // (chat_id, seq) index backstops it. `withTx` is the dialect's batch
349
430
  // boundary: a real transaction where the driver is async (Postgres,
350
431
  // libsql), sequential statements on synchronous better-sqlite3.
351
- await opts.withTx((tx) => appendMessagesWith(tx, chatId, msgs));
432
+ try {
433
+ await opts.withTx((tx) => appendMessagesWith(tx, chatId, msgs));
434
+ }
435
+ catch (error) {
436
+ if (isNotNullViolation(error))
437
+ throw chatGone(chatId);
438
+ throw error;
439
+ }
352
440
  },
353
441
  /**
354
442
  * Run + first message in ONE transaction: a busy chat persists nothing, and
@@ -386,7 +474,7 @@ export function makeStorageAdapter(db, s, opts) {
386
474
  // sync-capable falls through to `withTx`, whose atomicity is its own.
387
475
  const inserted = await opts.withTx(async (tx) => {
388
476
  await supersedeStale(tx, input.chatId, now);
389
- const got = await insertRun(tx, row);
477
+ const got = await insertRun(tx, row, input.chatId);
390
478
  await appendMessagesWith(tx, input.chatId, input.messages);
391
479
  return got;
392
480
  });
@@ -396,6 +484,8 @@ export function makeStorageAdapter(db, s, opts) {
396
484
  if (error instanceof ChatBusyError || isUniqueViolation(error)) {
397
485
  throw await busyError(input.chatId);
398
486
  }
487
+ if (isNotNullViolation(error))
488
+ throw chatGone(input.chatId);
399
489
  throw error;
400
490
  }
401
491
  },
@@ -414,7 +504,8 @@ export function makeStorageAdapter(db, s, opts) {
414
504
  }, now);
415
505
  return rowToRun(await openRunRow(row, input.chatId, now));
416
506
  },
417
- async heartbeatRun(id, owner, ttlMs, fencingToken) {
507
+ async heartbeatRun(id, owner, ttlMs, fencingToken, scope) {
508
+ await checkOwner("run", id, scope);
418
509
  const updated = await db
419
510
  .update(s.runs)
420
511
  .set({ leaseExpiresAt: sql `${nowMs} + ${ttlMs}`, heartbeatAt: nowMs })
@@ -425,7 +516,8 @@ export function makeStorageAdapter(db, s, opts) {
425
516
  .returning({ id: s.runs.id });
426
517
  return updated.length > 0;
427
518
  },
428
- async reclaimRun(id, owner, ttlMs) {
519
+ async reclaimRun(id, owner, ttlMs, scope) {
520
+ await checkOwner("run", id, scope);
429
521
  let updated;
430
522
  try {
431
523
  updated = await db
@@ -458,8 +550,11 @@ export function makeStorageAdapter(db, s, opts) {
458
550
  }
459
551
  return updated[0] ? rowToRun(updated[0]) : null;
460
552
  },
461
- async updateRun(id, patch, guard) {
462
- const set = Object.fromEntries(Object.entries(patch).filter(([k, v]) => v !== undefined && k !== "id"));
553
+ async updateRun(id, patch, guard, scope) {
554
+ await checkOwner("run", id, scope);
555
+ const set = Object.fromEntries(
556
+ // `ownerKey` is stamped at open and never changes.
557
+ Object.entries(patch).filter(([k, v]) => v !== undefined && k !== "id" && k !== "ownerKey"));
463
558
  if (Object.keys(set).length === 0)
464
559
  return true;
465
560
  const where = guard
@@ -488,12 +583,18 @@ export function makeStorageAdapter(db, s, opts) {
488
583
  .returning();
489
584
  return reaped.map(rowToRun);
490
585
  },
491
- async getRun(id) {
586
+ async getRun(id, scope) {
587
+ await checkOwner("run", id, scope);
492
588
  const rows = await db
493
- .select()
589
+ .select({ run: s.runs, owner: runOwner })
494
590
  .from(s.runs)
495
591
  .where(eq(s.runs.id, id));
496
- return rows[0] ? rowToRun(rows[0]) : null;
592
+ if (!rows[0])
593
+ return null;
594
+ // Asked for a person rather than by key: someone else's run is simply not found.
595
+ if (scope?.principal !== undefined && rows[0].owner !== ownerKey(scope.principal))
596
+ return null;
597
+ return rowToRun(rows[0].run);
497
598
  },
498
599
  async listRuns(principal, opts) {
499
600
  const rows = await db
@@ -505,19 +606,21 @@ export function makeStorageAdapter(db, s, opts) {
505
606
  .limit(opts?.limit ?? 100);
506
607
  return rows.map((r) => rowToRun(r.run));
507
608
  },
508
- async recordUsage(principal, input) {
509
- await db.insert(s.usage).values({
510
- id: newId("use"),
511
- owner: ownerKey(principal),
512
- runId: input.runId,
513
- model: input.model,
514
- inputTokens: input.inputTokens,
515
- outputTokens: input.outputTokens,
516
- cacheReadTokens: input.cacheReadTokens,
517
- cacheWriteTokens: input.cacheWriteTokens,
518
- cost: input.cost,
519
- createdAt: Date.now(),
520
- });
609
+ async recordUsage(_principal, input) {
610
+ // Usage inherits its run's owner (derive once, inherit), looked up in the
611
+ // same statement: a run that's gone (deleted) gives NULL, which the NOT
612
+ // NULL `owner` turns into a refusal instead of an orphan row. On Postgres
613
+ // the lookup holds a share lock on the run, so a deletion of its chat
614
+ // waits for this insert and then removes it too.
615
+ const owner = sql `(select ${runOwner} from ${s.runs} where ${s.runs.id} = ${input.runId}${opts.lockFencedRun ? sql ` for share` : sql ``})`;
616
+ try {
617
+ await insertUsage(owner, input);
618
+ }
619
+ catch (error) {
620
+ if (isNotNullViolation(error))
621
+ throw new Error(`Unknown run: ${input.runId}`);
622
+ throw error;
623
+ }
521
624
  },
522
625
  async createSchedule(principal, input) {
523
626
  const now = Date.now();
@@ -578,7 +681,8 @@ export function makeStorageAdapter(db, s, opts) {
578
681
  .returning();
579
682
  return claimed.map(rowToSchedule);
580
683
  },
581
- async completeSchedule(id, patch, owner, claim) {
684
+ async completeSchedule(id, patch, owner, claim, scope) {
685
+ await checkOwner("schedule", id, scope);
582
686
  const applied = await db
583
687
  .update(s.schedules)
584
688
  .set({
@@ -598,7 +702,8 @@ export function makeStorageAdapter(db, s, opts) {
598
702
  // occurrence, and the runtime must not fire it too.
599
703
  return applied.length > 0;
600
704
  },
601
- async noteScheduleFire(id, patch) {
705
+ async noteScheduleFire(id, patch, scope) {
706
+ await checkOwner("schedule", id, scope);
602
707
  // Fenced by the OCCURRENCE (see StorageAdapter): the stamp only lands
603
708
  // while last_run_at still holds the value this fire's completeSchedule
604
709
  // wrote — a delayed stamp from an older fire no-ops once a newer
@@ -608,6 +713,95 @@ export function makeStorageAdapter(db, s, opts) {
608
713
  .set({ lastChatId: patch.lastChatId })
609
714
  .where(and(eq(s.schedules.id, id), eq(s.schedules.lastRunAt, patch.firedAt)));
610
715
  },
716
+ async deleteChats(principal, ids) {
717
+ if (ids.length === 0)
718
+ return [];
719
+ const owned = (await db
720
+ .select({ id: s.chats.id })
721
+ .from(s.chats)
722
+ .where(and(inArray(s.chats.id, ids), eq(s.chats.owner, ownerKey(principal))))).map((r) => r.id);
723
+ if (owned.length === 0)
724
+ return [];
725
+ // The decision is made against ONE instant of the database's clock, read
726
+ // once: a lease that expires part-way through can't make one statement
727
+ // keep a chat's rows and the next delete the chat.
728
+ const at = Number((await db.select({ now: nowMs }).from(s.chats).limit(1))[0]?.now ?? Date.now());
729
+ const liveAt = sql `coalesce(${s.runs.leaseExpiresAt}, ${s.runs.startedAt} + ${STALE_RUN_MS}) > ${at}`;
730
+ const live = sql `exists (select 1 from ${s.runs} where ${inArray(s.runs.chatId, owned)} and ${s.runs.status} = 'active' and ${liveAt})`;
731
+ // Usage stays: the ledger records what was spent (see deleteChats).
732
+ const deletes = (exec, where = (w) => w) => [
733
+ exec.delete(s.messages).where(where(inArray(s.messages.chatId, owned))),
734
+ exec.delete(s.runs).where(where(inArray(s.runs.chatId, owned))),
735
+ exec.delete(s.chats).where(where(inArray(s.chats.id, owned))),
736
+ ];
737
+ if (opts.batch) {
738
+ // One transaction without branching: every statement carries the same
739
+ // condition, so all of them apply or none does.
740
+ await opts.batch(deletes(db, (w) => and(w, sql `not ${live}`)));
741
+ }
742
+ else if (opts.syncTx) {
743
+ opts.syncTx((tx) => {
744
+ if (tx.select({ one: sql `1` }).from(s.chats).where(live).limit(1).all().length)
745
+ return;
746
+ for (const q of deletes(tx))
747
+ q.run();
748
+ });
749
+ }
750
+ else {
751
+ await opts.withTx(async (tx) => {
752
+ // Lock the chats first: a run starting in one of them waits for this
753
+ // to commit (see chatRef), so none can start between check and delete.
754
+ await tx.select({ id: s.chats.id }).from(s.chats).where(inArray(s.chats.id, owned)).for("update");
755
+ // ...and their runs: a usage insert holding a share lock on one (see
756
+ // recordUsage) commits first, against a run that still exists.
757
+ await tx.select({ id: s.runs.id }).from(s.runs).where(inArray(s.runs.chatId, owned)).for("update");
758
+ if ((await tx.select({ one: sql `1` }).from(s.chats).where(live).limit(1)).length)
759
+ return;
760
+ for (const q of deletes(tx))
761
+ await q;
762
+ });
763
+ }
764
+ const kept = await db.select({ id: s.chats.id }).from(s.chats).where(inArray(s.chats.id, owned)).limit(1);
765
+ if (kept.length) {
766
+ // Refused: an answer is running in one of them. Say which, and for how long.
767
+ const busy = await db
768
+ .select({ chatId: s.runs.chatId, left: sql `${liveUntil} - ${nowMs}` })
769
+ .from(s.runs)
770
+ .where(and(inArray(s.runs.chatId, owned), eq(s.runs.status, "active")))
771
+ .limit(1);
772
+ throw new ChatBusyError(busy[0]?.chatId ?? kept[0].id, Math.max(1, Number(busy[0]?.left ?? 1)));
773
+ }
774
+ return owned;
775
+ },
776
+ async purgeOwner(segments, opts) {
777
+ const under = (col) => underOwnerPath(col, segments);
778
+ const limit = opts?.batchSize ?? 500;
779
+ const removed = { chats: 0, messages: 0, runs: 0, usage: 0, usageRefiled: 0, schedules: 0 };
780
+ const refileTo = refileTarget(segments, opts);
781
+ const chats = await db.select({ id: s.chats.id }).from(s.chats).where(under(s.chats.owner)).limit(limit);
782
+ const chatIds = chats.map((c) => c.id);
783
+ if (chatIds.length)
784
+ Object.assign(removed, await removeChats(chatIds));
785
+ // The usage ledger, as the host chose: re-filed one level up with the
786
+ // run id cleared (a handle back to data that's gone), kept, or deleted.
787
+ let usage = 0;
788
+ if (refileTo) {
789
+ const rows = await db.select({ id: s.usage.id }).from(s.usage).where(under(s.usage.owner)).limit(limit);
790
+ if (rows.length) {
791
+ await db
792
+ .update(s.usage)
793
+ .set({ owner: encodeOwnerKey(refileTo), runId: ERASED_RUN })
794
+ .where(inArray(s.usage.id, rows.map((r) => r.id)));
795
+ }
796
+ usage = removed.usageRefiled = rows.length;
797
+ }
798
+ else if (opts?.usage === "delete") {
799
+ usage = removed.usage = await deleteBatch(db, s.usage, s.usage.id, under(s.usage.owner), limit);
800
+ }
801
+ removed.schedules = await deleteBatch(db, s.schedules, s.schedules.id, under(s.schedules.owner), limit);
802
+ const done = chatIds.length < limit && usage < limit && removed.schedules < limit;
803
+ return { removed, done };
804
+ },
611
805
  };
612
806
  }
613
807
  //# sourceMappingURL=adapter.shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.shared.js","sourceRoot":"","sources":["../src/adapter.shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.shared.js","sourceRoot":"","sources":["../src/adapter.shared.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAkB,KAAK,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EAEV,iBAAiB,EAKjB,WAAW,EACX,UAAU,EAEX,MAAM,iCAAiC,CAAC;AA2GzC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;;OAIG;IACH,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,MAAM,EAAE,CAAC;IACrD,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,aAAa,CAAC;IACxC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAClB,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAChB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,CAAC,KACT,WAAW,CAAC,CAAC,CAAC,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,MAAM,CAAC;CACtC;AA8qBD,0FAA0F;AAC1F,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,EAAE,EAAE,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAClD,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACzB,iBAAiB,CAAC,CAAC,CAAC,CAgJtB;AAED,iGAAiG;AACjG,wBAAgB,+BAA+B,CAAC,CAAC,EAC/C,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7B,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACzB,iBAAiB,CAAC,CAAC,CAAC,CAgJtB"}
1
+ {"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAkB,KAAK,WAAW,EAAoC,MAAM,wBAAwB,CAAC;AAE5G,OAAO,KAAK,EAEV,iBAAiB,EAKjB,WAAW,EACX,UAAU,EAEX,MAAM,iCAAiC,CAAC;AA4GzC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;;OAIG;IACH,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,MAAM,EAAE,CAAC;IACrD,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,aAAa,CAAC;IACxC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAClB,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAChB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,CAAC,KACT,WAAW,CAAC,CAAC,CAAC,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,MAAM,CAAC;CACtC;AA6sBD,0FAA0F;AAC1F,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,EAAE,EAAE,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAClD,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACzB,iBAAiB,CAAC,CAAC,CAAC,CAiJtB;AAED,iGAAiG;AACjG,wBAAgB,+BAA+B,CAAC,CAAC,EAC/C,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7B,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACzB,iBAAiB,CAAC,CAAC,CAAC,CAiJtB"}
@@ -1,7 +1,8 @@
1
- import { desc, eq, inArray, and, like, sql } from "drizzle-orm";
1
+ import { desc, eq, inArray, and, like, or, sql } from "drizzle-orm";
2
2
  import { encodeOwnerKey } from "@intentface/latch-core";
3
3
  import { isCandidateId, parseAgentRef } from "@intentface/latch-agent-builder";
4
4
  import { isUniqueViolation } from "./adapter.shared.js";
5
+ import { deleteBatch, underOwnerPath } from "./owner-path.js";
5
6
  import * as sqliteSchema from "./schema.js";
6
7
  import * as pgSchema from "./schema.pg.js";
7
8
  /**
@@ -182,6 +183,7 @@ function createStore(queries, opts) {
182
183
  return row ? recordOf(row) : undefined;
183
184
  }
184
185
  return {
186
+ purgeOwner: (segments, opts) => queries.purge(segments, opts?.batchSize ?? 500),
185
187
  async resolve(name, principal) {
186
188
  // Channel bindings pin resolution to one scope with an `org:`/`user:`
187
189
  // prefix (stored names never contain `:` — normalizeAgentName strips
@@ -583,6 +585,25 @@ function versionValues(row) {
583
585
  createdAt: row.now,
584
586
  };
585
587
  }
588
+ /**
589
+ * Delete an owner path's agents with their versions, activations and
590
+ * candidates, and the drafts its people are writing (a draft's `editor` is a
591
+ * person even inside an organization's agent). The tables are shape-identical
592
+ * in both dialects. Drafts and candidates have composite keys and few rows per
593
+ * owner, so they go in one statement each.
594
+ */
595
+ async function purgeAgentTables(db, tables, segments, limit) {
596
+ const { t, v, a, d, c } = tables;
597
+ const agents = await deleteBatch(db, t, t.id, underOwnerPath(t.owner, segments), limit);
598
+ const versions = await deleteBatch(db, v, v.id, underOwnerPath(v.owner, segments), limit);
599
+ const activations = await deleteBatch(db, a, a.id, underOwnerPath(a.owner, segments), limit);
600
+ const drafts = (await db.delete(d).where(or(underOwnerPath(d.owner, segments), underOwnerPath(d.editor, segments))).returning({ name: d.name })).length;
601
+ const candidates = (await db.delete(c).where(underOwnerPath(c.owner, segments)).returning({ name: c.name })).length;
602
+ return {
603
+ removed: { agents, versions, activations, drafts, candidates },
604
+ done: agents < limit && versions < limit && activations < limit,
605
+ };
606
+ }
586
607
  /** `AgentBuilderStore` on a Drizzle SQLite database (libsql / better-sqlite3 / Turso). */
587
608
  export function createSqliteAgentBuilderStore(db, opts) {
588
609
  const t = sqliteSchema.agents;
@@ -591,6 +612,7 @@ export function createSqliteAgentBuilderStore(db, opts) {
591
612
  const d = sqliteSchema.agentDrafts;
592
613
  const c = sqliteSchema.agentCandidates;
593
614
  return createStore({
615
+ purge: (segments, limit) => purgeAgentTables(db, { t, v, a, d, c }, segments, limit),
594
616
  async byOwners(owners, name) {
595
617
  const where = name ? and(inArray(t.owner, owners), eq(t.name, name)) : inArray(t.owner, owners);
596
618
  return (await db.select().from(t).where(where).orderBy(desc(t.createdAt)));
@@ -734,6 +756,7 @@ export function createPostgresAgentBuilderStore(db, opts) {
734
756
  const d = pgSchema.agentDrafts;
735
757
  const c = pgSchema.agentCandidates;
736
758
  return createStore({
759
+ purge: (segments, limit) => purgeAgentTables(db, { t, v, a, d, c }, segments, limit),
737
760
  async byOwners(owners, name) {
738
761
  const where = name ? and(inArray(t.owner, owners), eq(t.name, name)) : inArray(t.owner, owners);
739
762
  return (await db.select().from(t).where(where).orderBy(desc(t.createdAt)));