@adonis-agora/agent 0.89.2 → 0.90.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +2 -1
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/src/a2ui/adapter.d.ts.map +1 -1
  6. package/dist/src/a2ui/adapter.js +2 -1
  7. package/dist/src/a2ui/adapter.js.map +1 -1
  8. package/dist/src/ag-ui/adapter.d.ts.map +1 -1
  9. package/dist/src/ag-ui/adapter.js +5 -1
  10. package/dist/src/ag-ui/adapter.js.map +1 -1
  11. package/dist/src/agent-service.d.ts +2 -0
  12. package/dist/src/agent-service.d.ts.map +1 -1
  13. package/dist/src/agent-service.js +8 -3
  14. package/dist/src/agent-service.js.map +1 -1
  15. package/dist/src/coalesced-writes.d.ts +51 -0
  16. package/dist/src/coalesced-writes.d.ts.map +1 -0
  17. package/dist/src/coalesced-writes.js +182 -0
  18. package/dist/src/coalesced-writes.js.map +1 -0
  19. package/dist/src/guardrails/detectors/custom.d.ts.map +1 -1
  20. package/dist/src/guardrails/detectors/custom.js +20 -3
  21. package/dist/src/guardrails/detectors/custom.js.map +1 -1
  22. package/dist/src/in-process-sink.d.ts +10 -0
  23. package/dist/src/in-process-sink.d.ts.map +1 -1
  24. package/dist/src/in-process-sink.js +66 -7
  25. package/dist/src/in-process-sink.js.map +1 -1
  26. package/dist/src/index.d.ts +2 -2
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +2 -2
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/interruptible.d.ts +22 -0
  31. package/dist/src/interruptible.d.ts.map +1 -0
  32. package/dist/src/interruptible.js +102 -0
  33. package/dist/src/interruptible.js.map +1 -0
  34. package/dist/src/lucid-token-stream-sink.d.ts +12 -15
  35. package/dist/src/lucid-token-stream-sink.d.ts.map +1 -1
  36. package/dist/src/lucid-token-stream-sink.js +63 -121
  37. package/dist/src/lucid-token-stream-sink.js.map +1 -1
  38. package/dist/src/processors.d.ts +3 -1
  39. package/dist/src/processors.d.ts.map +1 -1
  40. package/dist/src/processors.js +10 -2
  41. package/dist/src/processors.js.map +1 -1
  42. package/dist/src/react/core/use-agent-chat.d.ts.map +1 -1
  43. package/dist/src/react/core/use-agent-chat.js +5 -0
  44. package/dist/src/react/core/use-agent-chat.js.map +1 -1
  45. package/dist/src/redis-stream-client.d.ts +7 -0
  46. package/dist/src/redis-stream-client.d.ts.map +1 -1
  47. package/dist/src/redis-token-stream-sink.d.ts +16 -2
  48. package/dist/src/redis-token-stream-sink.d.ts.map +1 -1
  49. package/dist/src/redis-token-stream-sink.js +114 -21
  50. package/dist/src/redis-token-stream-sink.js.map +1 -1
  51. package/dist/src/spi/agent-store.d.ts +6 -0
  52. package/dist/src/spi/agent-store.d.ts.map +1 -1
  53. package/dist/src/spi/agent-store.js.map +1 -1
  54. package/dist/src/spi/governance-queries.d.ts +6 -0
  55. package/dist/src/spi/governance-queries.d.ts.map +1 -1
  56. package/dist/src/spi/token-stream-sink.d.ts +5 -1
  57. package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
  58. package/dist/src/spi/token-stream-sink.js.map +1 -1
  59. package/dist/src/stores/factory.d.ts.map +1 -1
  60. package/dist/src/stores/factory.js +11 -0
  61. package/dist/src/stores/factory.js.map +1 -1
  62. package/dist/src/stores/lucid-governance-queries.d.ts +29 -14
  63. package/dist/src/stores/lucid-governance-queries.d.ts.map +1 -1
  64. package/dist/src/stores/lucid-governance-queries.js +184 -158
  65. package/dist/src/stores/lucid-governance-queries.js.map +1 -1
  66. package/dist/src/stores/lucid-schema.d.ts +8 -1
  67. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  68. package/dist/src/stores/lucid-schema.js +24 -3
  69. package/dist/src/stores/lucid-schema.js.map +1 -1
  70. package/dist/src/stores/lucid.d.ts +1 -0
  71. package/dist/src/stores/lucid.d.ts.map +1 -1
  72. package/dist/src/stores/lucid.js +21 -24
  73. package/dist/src/stores/lucid.js.map +1 -1
  74. package/dist/src/telescope/agent-governance-providers.d.ts +4 -6
  75. package/dist/src/telescope/agent-governance-providers.d.ts.map +1 -1
  76. package/dist/src/telescope/agent-governance-providers.js +10 -10
  77. package/dist/src/telescope/agent-governance-providers.js.map +1 -1
  78. package/dist/src/testing/in-memory-governance-queries.d.ts +3 -0
  79. package/dist/src/testing/in-memory-governance-queries.d.ts.map +1 -1
  80. package/dist/src/testing/in-memory-governance-queries.js +8 -4
  81. package/dist/src/testing/in-memory-governance-queries.js.map +1 -1
  82. package/dist/src/testing/in-memory-store.d.ts +1 -0
  83. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  84. package/dist/src/testing/in-memory-store.js +3 -0
  85. package/dist/src/testing/in-memory-store.js.map +1 -1
  86. package/package.json +11 -11
  87. package/skills/agent-setup/SKILL.md +2 -2
@@ -2,7 +2,8 @@ import { summarizeGenuiCalls } from '../genui-telemetry.js';
2
2
  import { summarizeLatency, summarizeRunMetrics } from '../run-metrics.js';
3
3
  import { estimateCost, resolveModelPrice } from '../spi/pricing-store.js';
4
4
  import { inAppendOrder, toolCallIdOfRow } from './lucid.js';
5
- import { AGENT_TABLES, ensureAgentTables } from './lucid-schema.js';
5
+ import { AGENT_TABLES, ensureAgentTables, rowsOf } from './lucid-schema.js';
6
+ import { portableSql } from './sql-dialect.js';
6
7
  function toInt(value) {
7
8
  if (typeof value === 'number')
8
9
  return value;
@@ -72,6 +73,17 @@ function toNumOrNull(value) {
72
73
  function toStrOrNull(value) {
73
74
  return value === null || value === undefined ? null : String(value);
74
75
  }
76
+ /** A UTC day in epoch ms, as SQL every dialect evaluates the same: the start of `created_at`'s day. */
77
+ const DAY_START_SQL = `"created_at" - ("created_at" % 86400000)`;
78
+ /** Statement-sized slices of an `IN (…)` list. */
79
+ function chunked(values, size = 500) {
80
+ const out = [];
81
+ for (let index = 0; index < values.length; index += size) {
82
+ out.push(values.slice(index, index + size));
83
+ }
84
+ return out;
85
+ }
86
+ const placeholders = (values) => values.map(() => '?').join(', ');
75
87
  /** Parse a TEXT JSON column back to a value; `undefined` for null/empty/malformed. */
76
88
  function parseJsonCol(text) {
77
89
  if (typeof text !== 'string' || text.length === 0)
@@ -83,6 +95,11 @@ function parseJsonCol(text) {
83
95
  return undefined;
84
96
  }
85
97
  }
98
+ /**
99
+ * A pending call's owning actor in {@link LucidGovernanceQueries.pendingApprovals}'s join: the run's,
100
+ * else (an unknown run, or one with no actor) the thread's, else `''`.
101
+ */
102
+ const PENDING_ACTOR_SQL = `COALESCE(NULLIF(r."actor_ref", ''), th."actor_ref", '')`;
86
103
  /** Default page size + hard cap, mirroring the governance routes' clamp. */
87
104
  function clampLimit(limit, fallback = 50) {
88
105
  const value = limit !== undefined && Number.isFinite(limit) && limit > 0 ? Math.floor(limit) : fallback;
@@ -138,19 +155,6 @@ function toolCallRowToDetail(row) {
138
155
  createdAt: new Date(toInt(row.created_at)).toISOString(),
139
156
  };
140
157
  }
141
- function rowToUsage(row) {
142
- return {
143
- modelId: String(row.model_id),
144
- actorRef: String(row.actor_ref),
145
- threadId: String(row.thread_id),
146
- day: new Date(toInt(row.created_at)).toISOString().slice(0, 10),
147
- inputTokens: toInt(row.input_tokens),
148
- outputTokens: toInt(row.output_tokens),
149
- cacheWriteTokens: toNumOrNull(row.cache_write_tokens),
150
- cacheReadTokens: toNumOrNull(row.cache_read_tokens),
151
- costUsd: toNumOrNull(row.cost_usd),
152
- };
153
- }
154
158
  /**
155
159
  * A production {@link AgentGovernanceQueries} — the read/analytics half of the store SPI — backed by
156
160
  * AdonisJS **Lucid** (Knex) over the same five agent tables {@link import('./lucid.js').LucidAgentStore}
@@ -161,9 +165,10 @@ function rowToUsage(row) {
161
165
  * (fetched once per query, exactly like the Drizzle/MikroORM references and the loop's cost fold), so a
162
166
  * host that binds its own pricing store controls the cost every governance surface reports. A
163
167
  * provider-reported `cost_usd` on a usage row always wins; an unpriced model contributes 0 cost (its
164
- * tokens still count). Omit the pricing store entirely for a zero-cost read-model. Aggregation is
165
- * in-process (like `quotaToday`) so UTC-day bucketing stays dialect-portable across SQLite/Postgres/MySQL
166
- * — the behavioral twin of {@link import('../testing/in-memory-governance-queries.js').InMemoryGovernanceQueries}.
168
+ * tokens still count). Omit the pricing store entirely for a zero-cost read-model. Usage is summed in
169
+ * the database, per model, with UTC days bucketed by integer arithmetic on the epoch-ms `created_at`
170
+ * (the same on SQLite/Postgres/MySQL), and priced here — the behavioral twin of
171
+ * {@link import('../testing/in-memory-governance-queries.js').InMemoryGovernanceQueries}.
167
172
  */
168
173
  export class LucidGovernanceQueries {
169
174
  db;
@@ -191,52 +196,73 @@ export class LucidGovernanceQueries {
191
196
  }
192
197
  return pricing;
193
198
  }
194
- /** Provider-reported cost wins per row; otherwise the cache-aware token estimate (0 when unpriced). */
195
- rowCost(row, pricing) {
196
- if (row.costUsd !== null)
197
- return row.costUsd;
198
- const price = resolveModelPrice(pricing, row.modelId);
199
+ /**
200
+ * Provider-reported cost wins per row; the rest are priced by the cache-aware token estimate (0
201
+ * when the model is unpriced).
202
+ */
203
+ groupCost(group, pricing) {
204
+ const price = resolveModelPrice(pricing, group.modelId);
199
205
  if (price === undefined)
200
- return 0;
201
- return estimateCost({
202
- inputTokens: row.inputTokens,
203
- outputTokens: row.outputTokens,
204
- ...(row.cacheWriteTokens !== null ? { cacheWriteTokens: row.cacheWriteTokens } : {}),
205
- ...(row.cacheReadTokens !== null ? { cacheReadTokens: row.cacheReadTokens } : {}),
206
- }, price);
206
+ return group.reportedCostUsd;
207
+ return group.reportedCostUsd + estimateCost(group.unreported, price);
207
208
  }
208
- /** The usage ledger rows whose `created_at` falls inside the inclusive UTC-day range. */
209
- async usageInRange(range) {
210
- const start = Date.parse(`${range.fromDay}T00:00:00.000Z`);
211
- const end = Date.parse(`${range.toDay}T23:59:59.999Z`);
212
- const rows = await this.db
213
- .from(AGENT_TABLES.tokenUsage)
214
- .where('created_at', '>=', start)
215
- .where('created_at', '<=', end)
216
- .select('*');
217
- return rows.map(rowToUsage);
209
+ /**
210
+ * The usage ledger summed in the database — per model, and per `by` when given — over the
211
+ * inclusive UTC-day `range` and/or one thread. A dashboard's ranges span every row of a month or
212
+ * more; summing them is the database's job, not a page of rows shipped to the process per chart.
213
+ */
214
+ async usageGroups(filter, by) {
215
+ const where = [];
216
+ const bindings = [];
217
+ if (filter.range !== undefined) {
218
+ where.push(`"created_at" >= ?`, `"created_at" <= ?`);
219
+ bindings.push(Date.parse(`${filter.range.fromDay}T00:00:00.000Z`), Date.parse(`${filter.range.toDay}T23:59:59.999Z`));
220
+ }
221
+ if (filter.threadId !== undefined) {
222
+ where.push(`"thread_id" = ?`);
223
+ bindings.push(filter.threadId);
224
+ }
225
+ const bucket = by === 'actor' ? `"actor_ref"` : by === 'day' ? DAY_START_SQL : undefined;
226
+ const unreported = (column) => `SUM(CASE WHEN "cost_usd" IS NULL THEN COALESCE("${column}", 0) ELSE 0 END)`;
227
+ const rows = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT "model_id" AS model_id, ${bucket !== undefined ? `${bucket} AS bucket, ` : ''}` +
228
+ `COUNT(*) AS requests, SUM("input_tokens") AS input_tokens, ` +
229
+ `SUM("output_tokens") AS output_tokens, SUM("cost_usd") AS reported_cost, ` +
230
+ `${unreported('input_tokens')} AS unreported_input, ` +
231
+ `${unreported('output_tokens')} AS unreported_output, ` +
232
+ `${unreported('cache_write_tokens')} AS unreported_cache_write, ` +
233
+ `${unreported('cache_read_tokens')} AS unreported_cache_read ` +
234
+ `FROM "${AGENT_TABLES.tokenUsage}"` +
235
+ (where.length > 0 ? ` WHERE ${where.join(' AND ')}` : '') +
236
+ ` GROUP BY "model_id"${bucket !== undefined ? `, ${bucket}` : ''}`), bindings));
237
+ return rows.map((row) => ({
238
+ modelId: String(row.model_id),
239
+ bucket: by === 'day'
240
+ ? new Date(toInt(row.bucket)).toISOString().slice(0, 10)
241
+ : by === 'actor'
242
+ ? String(row.bucket)
243
+ : '',
244
+ requests: toInt(row.requests),
245
+ inputTokens: toInt(row.input_tokens),
246
+ outputTokens: toInt(row.output_tokens),
247
+ reportedCostUsd: toNumOrNull(row.reported_cost) ?? 0,
248
+ unreported: {
249
+ inputTokens: toInt(row.unreported_input),
250
+ outputTokens: toInt(row.unreported_output),
251
+ cacheWriteTokens: toInt(row.unreported_cache_write),
252
+ cacheReadTokens: toInt(row.unreported_cache_read),
253
+ },
254
+ }));
218
255
  }
219
256
  async spendByModel(range) {
220
257
  await this.ready();
221
258
  const pricing = await this.loadPricing();
222
- const byModel = new Map();
223
- for (const row of await this.usageInRange(range)) {
224
- const bucket = byModel.get(row.modelId) ?? {
225
- requests: 0,
226
- inputTokens: 0,
227
- outputTokens: 0,
228
- costUsd: 0,
229
- };
230
- bucket.requests += 1;
231
- bucket.inputTokens += row.inputTokens;
232
- bucket.outputTokens += row.outputTokens;
233
- bucket.costUsd += this.rowCost(row, pricing);
234
- byModel.set(row.modelId, bucket);
235
- }
236
- const result = [];
237
- for (const [modelId, bucket] of byModel) {
238
- result.push({ modelId, ...bucket });
239
- }
259
+ const result = (await this.usageGroups({ range })).map((group) => ({
260
+ modelId: group.modelId,
261
+ requests: group.requests,
262
+ inputTokens: group.inputTokens,
263
+ outputTokens: group.outputTokens,
264
+ costUsd: this.groupCost(group, pricing),
265
+ }));
240
266
  result.sort((left, right) => right.costUsd - left.costUsd || left.modelId.localeCompare(right.modelId));
241
267
  return result;
242
268
  }
@@ -244,12 +270,12 @@ export class LucidGovernanceQueries {
244
270
  await this.ready();
245
271
  const pricing = await this.loadPricing();
246
272
  const byActor = new Map();
247
- for (const row of await this.usageInRange(range)) {
248
- const bucket = byActor.get(row.actorRef) ?? { requests: 0, totalTokens: 0, costUsd: 0 };
249
- bucket.requests += 1;
250
- bucket.totalTokens += row.inputTokens + row.outputTokens;
251
- bucket.costUsd += this.rowCost(row, pricing);
252
- byActor.set(row.actorRef, bucket);
273
+ for (const group of await this.usageGroups({ range }, 'actor')) {
274
+ const bucket = byActor.get(group.bucket) ?? { requests: 0, totalTokens: 0, costUsd: 0 };
275
+ bucket.requests += group.requests;
276
+ bucket.totalTokens += group.inputTokens + group.outputTokens;
277
+ bucket.costUsd += this.groupCost(group, pricing);
278
+ byActor.set(group.bucket, bucket);
253
279
  }
254
280
  const result = [];
255
281
  for (const [actorRef, bucket] of byActor) {
@@ -262,11 +288,11 @@ export class LucidGovernanceQueries {
262
288
  await this.ready();
263
289
  const pricing = await this.loadPricing();
264
290
  const byDay = new Map();
265
- for (const row of await this.usageInRange(range)) {
266
- const bucket = byDay.get(row.day) ?? { totalTokens: 0, costUsd: 0 };
267
- bucket.totalTokens += row.inputTokens + row.outputTokens;
268
- bucket.costUsd += this.rowCost(row, pricing);
269
- byDay.set(row.day, bucket);
291
+ for (const group of await this.usageGroups({ range }, 'day')) {
292
+ const bucket = byDay.get(group.bucket) ?? { totalTokens: 0, costUsd: 0 };
293
+ bucket.totalTokens += group.inputTokens + group.outputTokens;
294
+ bucket.costUsd += this.groupCost(group, pricing);
295
+ byDay.set(group.bucket, bucket);
270
296
  }
271
297
  const result = [];
272
298
  for (const [day, bucket] of byDay) {
@@ -275,10 +301,25 @@ export class LucidGovernanceQueries {
275
301
  result.sort((left, right) => left.day.localeCompare(right.day));
276
302
  return result;
277
303
  }
304
+ /** `thread_id → value` for one aggregate over `table`'s rows of `threadIds`. */
305
+ async perThread(table, aggregate, threadIds) {
306
+ const out = new Map();
307
+ for (const chunk of chunked(threadIds)) {
308
+ const rows = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT "thread_id" AS thread_id, ${aggregate} AS value FROM "${table}" ` +
309
+ `WHERE "thread_id" IN (${placeholders(chunk)}) GROUP BY "thread_id"`), chunk));
310
+ for (const row of rows)
311
+ out.set(String(row.thread_id), toInt(row.value));
312
+ }
313
+ return out;
314
+ }
315
+ /** How many of `table`'s rows belong to `threadId`. */
316
+ async countForThread(table, threadId) {
317
+ const [row] = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT COUNT(*) AS n FROM "${table}" WHERE "thread_id" = ?`), [threadId]));
318
+ return toInt(row?.n);
319
+ }
278
320
  /**
279
- * Newest-first recent tool calls, capped at `limit`. Resolves each call's `threadId` through its
280
- * owning message (the structural query slice has no `join`, so it's one lookup per call — bounded by
281
- * `limit`, mirroring the reference adapters' N+1 for the recent feeds).
321
+ * Newest-first recent tool calls, capped at `limit`. Each call's `threadId` is its owning
322
+ * message's, read for the whole page at once.
282
323
  */
283
324
  async recentToolCalls(limit) {
284
325
  await this.ready();
@@ -287,22 +328,24 @@ export class LucidGovernanceQueries {
287
328
  .orderBy('created_at', 'desc')
288
329
  .limit(limit)
289
330
  .select('*');
290
- const result = [];
291
- for (const call of calls) {
292
- const message = await this.db
331
+ const threadOf = new Map();
332
+ const messageIds = [...new Set(calls.map((call) => String(call.message_id)))];
333
+ for (const chunk of chunked(messageIds)) {
334
+ const messages = await this.db
293
335
  .from(AGENT_TABLES.messages)
294
- .where('id', String(call.message_id))
295
- .first();
296
- result.push({
297
- toolCallId: toolCallIdOfRow(call),
298
- toolName: String(call.tool_name),
299
- toolType: String(call.tool_type),
300
- status: String(call.status),
301
- threadId: message === null || message === undefined ? '' : String(message.thread_id),
302
- createdAt: new Date(toInt(call.created_at)).toISOString(),
303
- });
336
+ .whereIn('id', chunk)
337
+ .select('id', 'thread_id');
338
+ for (const message of messages)
339
+ threadOf.set(String(message.id), String(message.thread_id));
304
340
  }
305
- return result;
341
+ return calls.map((call) => ({
342
+ toolCallId: toolCallIdOfRow(call),
343
+ toolName: String(call.tool_name),
344
+ toolType: String(call.tool_type),
345
+ status: String(call.status),
346
+ threadId: threadOf.get(String(call.message_id)) ?? '',
347
+ createdAt: new Date(toInt(call.created_at)).toISOString(),
348
+ }));
306
349
  }
307
350
  /**
308
351
  * Newest-first recent threads (soft-deleted excluded, mirroring `listThreads`/the reference), each
@@ -316,28 +359,20 @@ export class LucidGovernanceQueries {
316
359
  .orderBy('updated_at', 'desc')
317
360
  .limit(limit)
318
361
  .select('*');
319
- const result = [];
320
- for (const thread of threads) {
362
+ const threadIds = threads.map((thread) => String(thread.id));
363
+ const messageCounts = await this.perThread(AGENT_TABLES.messages, 'COUNT(*)', threadIds);
364
+ const tokenTotals = await this.perThread(AGENT_TABLES.tokenUsage, 'SUM("input_tokens" + "output_tokens")', threadIds);
365
+ return threads.map((thread) => {
321
366
  const threadId = String(thread.id);
322
- const messages = await this.db
323
- .from(AGENT_TABLES.messages)
324
- .where('thread_id', threadId)
325
- .select('id');
326
- const usageRows = await this.db
327
- .from(AGENT_TABLES.tokenUsage)
328
- .where('thread_id', threadId)
329
- .select('input_tokens', 'output_tokens');
330
- const totalTokens = usageRows.reduce((sum, row) => sum + toInt(row.input_tokens) + toInt(row.output_tokens), 0);
331
- result.push({
367
+ return {
332
368
  threadId,
333
369
  title: String(thread.title),
334
370
  actorRef: String(thread.actor_ref),
335
- messageCount: messages.length,
336
- totalTokens,
371
+ messageCount: messageCounts.get(threadId) ?? 0,
372
+ totalTokens: tokenTotals.get(threadId) ?? 0,
337
373
  lastActivityAt: new Date(toInt(thread.updated_at)).toISOString(),
338
- });
339
- }
340
- return result;
374
+ };
375
+ });
341
376
  }
342
377
  // ── Run lifecycle read-model ───────────────────────────────────────────────
343
378
  /**
@@ -430,57 +465,56 @@ export class LucidGovernanceQueries {
430
465
  };
431
466
  }
432
467
  /**
433
- * Tool calls sitting `pending_approval`, oldest first (an inbox drains from the back). Each call's
434
- * owning actor is resolved through its run (`run_id → agent_run.actor_ref`), falling back to its
435
- * thread (`message → agent_thread.actor_ref`) for a call recorded before run tracking. The `actor`
436
- * filter is applied after resolution; `limit` caps the returned inbox.
468
+ * `FROM … WHERE …` over the calls sitting `pending_approval`, each joined to the actor that owns
469
+ * it: its run's (`run_id`, or its message's, `→ agent_run.actor_ref`), else its thread's
470
+ * (`message → agent_thread.actor_ref`) for a call recorded before run tracking, else `''`. Joined
471
+ * rather than looked up per call, so the `actor` filter runs in the database and an inbox costs
472
+ * one statement however long the backlog.
437
473
  */
474
+ pendingApprovalsFrom(actor) {
475
+ const t = AGENT_TABLES;
476
+ return {
477
+ sql: `FROM "${t.toolCalls}" c ` +
478
+ `LEFT JOIN "${t.messages}" m ON m."id" = c."message_id" ` +
479
+ `LEFT JOIN "${t.runs}" r ON r."id" = COALESCE(c."run_id", m."run_id") ` +
480
+ `LEFT JOIN "${t.threads}" th ON th."id" = m."thread_id" ` +
481
+ `WHERE c."status" = 'pending_approval'` +
482
+ (actor !== undefined ? ` AND ${PENDING_ACTOR_SQL} = ?` : ''),
483
+ bindings: actor !== undefined ? [actor] : [],
484
+ };
485
+ }
486
+ /** Tool calls sitting `pending_approval`, oldest first; `actor` filters, `limit` caps the inbox. */
438
487
  async pendingApprovals(filter = {}) {
439
488
  await this.ready();
440
489
  const limit = clampLimit(filter.limit);
441
- const calls = await this.db
442
- .from(AGENT_TABLES.toolCalls)
443
- .where('status', 'pending_approval')
444
- .orderBy('created_at', 'asc')
445
- .select('*');
446
- const result = [];
447
- for (const call of calls) {
448
- const message = await this.db
449
- .from(AGENT_TABLES.messages)
450
- .where('id', String(call.message_id))
451
- .first();
452
- const threadId = message === null || message === undefined ? '' : String(message.thread_id);
490
+ const from = this.pendingApprovalsFrom(filter.actor);
491
+ const rows = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT c.*, m."thread_id" AS pending_thread_id, m."run_id" AS pending_message_run_id, ` +
492
+ `${PENDING_ACTOR_SQL} AS pending_actor_ref ${from.sql} ` +
493
+ `ORDER BY c."created_at" ASC LIMIT ${limit}`), from.bindings));
494
+ return rows.map((call) => {
453
495
  const runId = call.run_id !== null && call.run_id !== undefined
454
496
  ? String(call.run_id)
455
- : message?.run_id !== null && message?.run_id !== undefined
456
- ? String(message.run_id)
497
+ : call.pending_message_run_id !== null && call.pending_message_run_id !== undefined
498
+ ? String(call.pending_message_run_id)
457
499
  : null;
458
- let actorRef = '';
459
- if (runId !== null) {
460
- const run = await this.db.from(AGENT_TABLES.runs).where('id', runId).first();
461
- if (run !== null && run !== undefined)
462
- actorRef = String(run.actor_ref);
463
- }
464
- if (actorRef === '' && threadId !== '') {
465
- const thread = await this.db.from(AGENT_TABLES.threads).where('id', threadId).first();
466
- if (thread !== null && thread !== undefined)
467
- actorRef = String(thread.actor_ref);
468
- }
469
- if (filter.actor !== undefined && actorRef !== filter.actor)
470
- continue;
471
- result.push({
500
+ return {
472
501
  toolCallId: toolCallIdOfRow(call),
473
502
  toolName: String(call.tool_name),
474
503
  input: parseJsonCol(call.input),
475
- threadId,
504
+ threadId: call.pending_thread_id === null || call.pending_thread_id === undefined
505
+ ? ''
506
+ : String(call.pending_thread_id),
476
507
  runId,
477
- actorRef,
508
+ actorRef: String(call.pending_actor_ref ?? ''),
478
509
  requestedAt: new Date(toInt(call.created_at)).toISOString(),
479
- });
480
- if (result.length >= limit)
481
- break;
482
- }
483
- return result;
510
+ };
511
+ });
512
+ }
513
+ async countPendingApprovals(filter = {}) {
514
+ await this.ready();
515
+ const from = this.pendingApprovalsFrom(filter.actor);
516
+ const [row] = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT COUNT(*) AS n ${from.sql}`), from.bindings));
517
+ return toInt(row?.n);
484
518
  }
485
519
  /**
486
520
  * Per-tool call/failure/rejection/latency rollup over the (optional) range, highest call count
@@ -650,13 +684,11 @@ export class LucidGovernanceQueries {
650
684
  if (threadRow === null || threadRow === undefined)
651
685
  return null;
652
686
  const pricing = await this.loadPricing();
653
- const usageRows = await this.db
654
- .from(AGENT_TABLES.tokenUsage)
655
- .where('thread_id', threadId)
656
- .select('*');
657
- const usage = usageRows.map(rowToUsage);
658
- const totalTokens = usage.reduce((sum, row) => sum + row.inputTokens + row.outputTokens, 0);
659
- const costUsd = usage.length === 0 ? null : usage.reduce((sum, row) => sum + this.rowCost(row, pricing), 0);
687
+ const usage = await this.usageGroups({ threadId });
688
+ const totalTokens = usage.reduce((sum, group) => sum + group.inputTokens + group.outputTokens, 0);
689
+ const costUsd = usage.length === 0
690
+ ? null
691
+ : usage.reduce((sum, group) => sum + this.groupCost(group, pricing), 0);
660
692
  const runRows = await this.db
661
693
  .from(AGENT_TABLES.runs)
662
694
  .where('thread_id', threadId)
@@ -666,14 +698,8 @@ export class LucidGovernanceQueries {
666
698
  const messageRows = await inAppendOrder(this.db.from(AGENT_TABLES.messages).where('thread_id', threadId), 'desc')
667
699
  .limit(50)
668
700
  .select('*');
669
- const allRunIds = await this.db
670
- .from(AGENT_TABLES.runs)
671
- .where('thread_id', threadId)
672
- .select('id');
673
- const allMessageIds = await this.db
674
- .from(AGENT_TABLES.messages)
675
- .where('thread_id', threadId)
676
- .select('id');
701
+ const runCount = await this.countForThread(AGENT_TABLES.runs, threadId);
702
+ const messageCount = await this.countForThread(AGENT_TABLES.messages, threadId);
677
703
  return {
678
704
  threadId: String(threadRow.id),
679
705
  title: String(threadRow.title),
@@ -684,8 +710,8 @@ export class LucidGovernanceQueries {
684
710
  usage: {
685
711
  totalTokens,
686
712
  costUsd,
687
- runCount: allRunIds.length,
688
- messageCount: allMessageIds.length,
713
+ runCount,
714
+ messageCount,
689
715
  },
690
716
  runs: runRows.map(runRowToSummary),
691
717
  messages: messageRows.map((row) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"lucid-governance-queries.js","sourceRoot":"","sources":["../../../src/stores/lucid-governance-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucid-governance-queries.js","sourceRoot":"","sources":["../../../src/stores/lucid-governance-queries.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,12 @@ export declare function forDialect(statement: string, mysql: boolean): string;
52
52
  * key: a sink is usable with any store, and a delegated run writes under its ANCESTOR's run id.
53
53
  */
54
54
  export declare function streamFrameTableStatement(table?: string): string;
55
+ /**
56
+ * The frame buffer's `created_at` index, under `table`: what the sink's TTL purge reads to find the
57
+ * runs with rows past their window without scanning every row. `run_id` rides along so that lookup
58
+ * never touches the table itself.
59
+ */
60
+ export declare function streamFrameIndexStatement(table?: string): string;
55
61
  /**
56
62
  * `CREATE TABLE IF NOT EXISTS` for text channels' state (`lucidChannelStore`), under `table`. The
57
63
  * primary key IS the dedupe lock: two deliveries of one message race on the insert and one loses.
@@ -150,7 +156,8 @@ export declare function schemaRunner(db: LucidRawRunner): LucidRawRunner;
150
156
  */
151
157
  export declare function ensureAgentTables(db: LucidRawRunner): Promise<void>;
152
158
  /**
153
- * Idempotently create the Lucid token sink's frame table, under whatever name the sink was given.
159
+ * Idempotently create the Lucid token sink's frame table and its purge index, under whatever name the
160
+ * sink was given.
154
161
  * What the sink runs for itself (`autoCreateTables`), so it stands up next to ANY store — the
155
162
  * in-memory one included — without provisioning the other seven tables. {@link createAgentTables}
156
163
  * creates the same table under its default name, so the published migration covers it too.