@cat-factory/local-server 0.94.2 → 0.96.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.
@@ -3,6 +3,7 @@ import { subscriptionVendorSchema } from '@cat-factory/contracts';
3
3
  import { decodeEnum } from '@cat-factory/server';
4
4
  import { openSqliteDb } from './db.js';
5
5
  import { SqliteTelemetryIngestReader, } from './telemetryIngestReader.js';
6
+ import { TELEMETRY_COVERAGE_SCHEMA, SqliteTelemetryCoverage, } from './telemetryCoverage.js';
6
7
  import { rowToMetric, rowToQuery, rowToSnapshot, } from './telemetryRows.js';
7
8
  // The mothership-mode LOCAL telemetry store (docs/initiatives/mothership-mode.md, PR 5).
8
9
  //
@@ -291,12 +292,15 @@ CREATE TABLE IF NOT EXISTS telemetry_ingest_state (
291
292
  ingested_at INTEGER NOT NULL,
292
293
  PRIMARY KEY (workspace_id, execution_id)
293
294
  );
295
+ ${TELEMETRY_COVERAGE_SCHEMA}
294
296
  `;
295
297
  /** The per-call LLM telemetry sink — the local-sqlite mirror of `D1LlmCallMetricRepository`. */
296
298
  class SqliteLlmCallMetricRepository {
297
299
  db;
298
- constructor(db) {
300
+ coverage;
301
+ constructor(db, coverage) {
299
302
  this.db = db;
303
+ this.coverage = coverage;
300
304
  }
301
305
  async record(metric) {
302
306
  this.insert(metric);
@@ -369,6 +373,28 @@ class SqliteLlmCallMetricRepository {
369
373
  .all(workspaceId, executionId, agentKind ?? null, agentKind ?? null, limit ?? -1);
370
374
  return rows.map(rowToMetric);
371
375
  }
376
+ async listRunPage(workspaceId, query) {
377
+ const clauses = ['workspace_id = ?', 'execution_id = ?'];
378
+ const binds = [workspaceId, query.executionId];
379
+ if (query.agentKind != null) {
380
+ clauses.push('agent_kind = ?');
381
+ binds.push(query.agentKind);
382
+ }
383
+ if (query.cursor) {
384
+ // Composite keyset matching the ORDER BY, for the same reason `listPage`'s is composite.
385
+ clauses.push('(created_at < ? OR (created_at = ? AND id < ?))');
386
+ binds.push(query.cursor.createdAt, query.cursor.createdAt, query.cursor.id);
387
+ }
388
+ binds.push(query.limit);
389
+ // `SELECT *` — the bodies WHOLE, unlike `listPage`, which returns slices plus their lengths.
390
+ const rows = this.db
391
+ .prepare(`SELECT * FROM llm_call_metrics
392
+ WHERE ${clauses.join(' AND ')}
393
+ ORDER BY created_at DESC, id DESC
394
+ LIMIT ?`)
395
+ .all(...binds);
396
+ return rows.map(rowToMetric);
397
+ }
372
398
  async listPage(workspaceId, query) {
373
399
  const ascending = query.order === 'oldest';
374
400
  const clauses = ['workspace_id = ?', 'execution_id = ?'];
@@ -467,6 +493,11 @@ class SqliteLlmCallMetricRepository {
467
493
  }));
468
494
  }
469
495
  async deleteOlderThan(epochMs) {
496
+ // Record which runs this delete makes the local store non-authoritative for BEFORE taking
497
+ // the rows — afterwards there is nothing left to tell. See `telemetryCoverage.ts`: a run that
498
+ // straddles the cutoff keeps its newer rows, and a subset answered as though it were the whole
499
+ // run is how a pruned run's token rollup silently reads low.
500
+ this.coverage.markPrunedBefore('llm_call_metrics', epochMs);
470
501
  const res = this.db.prepare('DELETE FROM llm_call_metrics WHERE created_at < ?').run(epochMs);
471
502
  return Number(res.changes);
472
503
  }
@@ -488,8 +519,10 @@ function rowToIndex(row) {
488
519
  /** The per-dispatch agent-context sink — the local-sqlite mirror of `D1AgentContextSnapshotRepository`. */
489
520
  class SqliteAgentContextSnapshotRepository {
490
521
  db;
491
- constructor(db) {
522
+ coverage;
523
+ constructor(db, coverage) {
492
524
  this.db = db;
525
+ this.coverage = coverage;
493
526
  }
494
527
  async record(snapshot) {
495
528
  this.insert(snapshot, false);
@@ -554,6 +587,28 @@ class SqliteAgentContextSnapshotRepository {
554
587
  .all(...binds);
555
588
  return rows.map(rowToIndex);
556
589
  }
590
+ async listRunPage(workspaceId, query) {
591
+ const clauses = ['workspace_id = ?', 'execution_id = ?'];
592
+ const binds = [workspaceId, query.executionId];
593
+ if (query.stepIndex != null) {
594
+ clauses.push('step_index = ?');
595
+ binds.push(query.stepIndex);
596
+ }
597
+ if (query.cursor) {
598
+ clauses.push('(created_at < ? OR (created_at = ? AND id < ?))');
599
+ binds.push(query.cursor.createdAt, query.cursor.createdAt, query.cursor.id);
600
+ }
601
+ binds.push(query.limit);
602
+ // Same predicate, ordering and keyset as `listIndex` — bodies included. Keeping the two in
603
+ // step is what lets a caller page the index and then page the rows and see the same run.
604
+ const rows = this.db
605
+ .prepare(`SELECT * FROM agent_context_snapshots
606
+ WHERE ${clauses.join(' AND ')}
607
+ ORDER BY created_at DESC, id DESC
608
+ LIMIT ?`)
609
+ .all(...binds);
610
+ return rows.map(rowToSnapshot);
611
+ }
557
612
  async get(workspaceId, id) {
558
613
  const row = this.db
559
614
  .prepare('SELECT * FROM agent_context_snapshots WHERE workspace_id = ? AND id = ?')
@@ -567,6 +622,11 @@ class SqliteAgentContextSnapshotRepository {
567
622
  return row?.n ?? 0;
568
623
  }
569
624
  async deleteOlderThan(epochMs) {
625
+ // Record which runs this delete makes the local store non-authoritative for BEFORE taking
626
+ // the rows — afterwards there is nothing left to tell. See `telemetryCoverage.ts`: a run that
627
+ // straddles the cutoff keeps its newer rows, and a subset answered as though it were the whole
628
+ // run is how a pruned run's token rollup silently reads low.
629
+ this.coverage.markPrunedBefore('agent_context_snapshots', epochMs);
570
630
  const res = this.db
571
631
  .prepare('DELETE FROM agent_context_snapshots WHERE created_at < ?')
572
632
  .run(epochMs);
@@ -576,8 +636,10 @@ class SqliteAgentContextSnapshotRepository {
576
636
  /** The performed-web-search sink — the local-sqlite mirror of `D1AgentSearchQueryRepository`. */
577
637
  class SqliteAgentSearchQueryRepository {
578
638
  db;
579
- constructor(db) {
639
+ coverage;
640
+ constructor(db, coverage) {
580
641
  this.db = db;
642
+ this.coverage = coverage;
581
643
  }
582
644
  async record(query) {
583
645
  this.insert(query, false);
@@ -638,6 +700,11 @@ class SqliteAgentSearchQueryRepository {
638
700
  return row?.n ?? 0;
639
701
  }
640
702
  async deleteOlderThan(epochMs) {
703
+ // Record which runs this delete makes the local store non-authoritative for BEFORE taking
704
+ // the rows — afterwards there is nothing left to tell. See `telemetryCoverage.ts`: a run that
705
+ // straddles the cutoff keeps its newer rows, and a subset answered as though it were the whole
706
+ // run is how a pruned run's token rollup silently reads low.
707
+ this.coverage.markPrunedBefore('agent_search_queries', epochMs);
641
708
  const res = this.db
642
709
  .prepare('DELETE FROM agent_search_queries WHERE created_at < ?')
643
710
  .run(epochMs);
@@ -790,13 +857,17 @@ class SqliteSubscriptionQuotaCycleRepository {
790
857
  */
791
858
  export function createLocalTelemetryStore(path) {
792
859
  const db = openSqliteDb(path, SCHEMA);
860
+ // Shared by the three run-scoped sinks: each records what its own prune took, and the
861
+ // read-through asks the one record whether a run's local answer is still the whole of it.
862
+ const coverage = new SqliteTelemetryCoverage(db);
793
863
  return {
794
- llmCallMetricRepository: new SqliteLlmCallMetricRepository(db),
795
- agentContextSnapshotRepository: new SqliteAgentContextSnapshotRepository(db),
796
- agentSearchQueryRepository: new SqliteAgentSearchQueryRepository(db),
864
+ llmCallMetricRepository: new SqliteLlmCallMetricRepository(db, coverage),
865
+ agentContextSnapshotRepository: new SqliteAgentContextSnapshotRepository(db, coverage),
866
+ agentSearchQueryRepository: new SqliteAgentSearchQueryRepository(db, coverage),
797
867
  provisioningLogRepository: new SqliteProvisioningLogRepository(db),
798
868
  subscriptionQuotaCycleRepository: new SqliteSubscriptionQuotaCycleRepository(db),
799
869
  ingestReader: new SqliteTelemetryIngestReader(db),
870
+ coverage,
800
871
  close: () => db.close(),
801
872
  };
802
873
  }
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryStore.js","sourceRoot":"","sources":["../../src/sqlite/telemetryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetryStore.js","sourceRoot":"","sources":["../../src/sqlite/telemetryStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { AgentContextSnapshotRepository, AgentSearchQueryRepository, LlmCallMetricRepository, Logger } from '@cat-factory/kernel';
2
+ import { type MachineTelemetryReadClient } from '@cat-factory/server';
3
+ import type { LocalTelemetryCoverage } from './sqlite/telemetryCoverage.js';
4
+ /** The three run-scoped telemetry repositories this decorates. */
5
+ export interface ReadThroughTelemetryRepositories {
6
+ llmCallMetricRepository: LlmCallMetricRepository;
7
+ agentContextSnapshotRepository: AgentContextSnapshotRepository;
8
+ agentSearchQueryRepository: AgentSearchQueryRepository;
9
+ }
10
+ /** What the read-through needs besides the local store it decorates. */
11
+ export interface TelemetryReadThroughDeps {
12
+ /** Performs one bounded read against the mothership. */
13
+ client: MachineTelemetryReadClient;
14
+ /**
15
+ * Whether the local store still holds ALL of a run's rows. Required rather than optional: a
16
+ * default of "always complete" would silently restore the partial-run under-reporting this
17
+ * exists to remove, and it would do so on the surface — a token total — least likely to be
18
+ * questioned.
19
+ */
20
+ coverage: LocalTelemetryCoverage;
21
+ logger?: Logger;
22
+ }
23
+ /**
24
+ * Wrap `local` so that a read the local store cannot answer WHOLE is answered from the mothership.
25
+ *
26
+ * Only READS are decorated. `record` / `recordMany` / `latestChainTip` / `deleteOlderThan` pass
27
+ * straight through to the local store: the first three are the capture hot path (the whole reason
28
+ * this bucket is local-first), the chain tip must resolve against the rows this node actually
29
+ * holds or it would compute a prompt delta against a tip it cannot reproduce, and the prune owns
30
+ * local rows only.
31
+ */
32
+ export declare function withTelemetryReadThrough(local: ReadThroughTelemetryRepositories, deps: TelemetryReadThroughDeps): ReadThroughTelemetryRepositories;
33
+ //# sourceMappingURL=telemetryReadThrough.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryReadThrough.d.ts","sourceRoot":"","sources":["../src/telemetryReadThrough.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,8BAA8B,EAG9B,0BAA0B,EAI1B,uBAAuB,EAIvB,MAAM,EACP,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAIL,KAAK,0BAA0B,EAEhC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAsD3E,kEAAkE;AAClE,MAAM,WAAW,gCAAgC;IAC/C,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,8BAA8B,EAAE,8BAA8B,CAAA;IAC9D,0BAA0B,EAAE,0BAA0B,CAAA;CACvD;AAED,wEAAwE;AACxE,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,MAAM,EAAE,0BAA0B,CAAA;IAClC;;;;;OAKG;IACH,QAAQ,EAAE,sBAAsB,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,gCAAgC,EACvC,IAAI,EAAE,wBAAwB,GAC7B,gCAAgC,CAqBlC"}
@@ -0,0 +1,296 @@
1
+ import { noopLogger } from '@cat-factory/kernel';
2
+ import { TELEMETRY_READ_PAGE_SIZES, TelemetryReadTooLargeError, telemetryReadBodyCap, } from '@cat-factory/server';
3
+ /**
4
+ * Ceiling on how many rows a `listByExecution` fallback will drain from the mothership when the
5
+ * caller named no limit of its own.
6
+ *
7
+ * `listByExecution` has no cursor, so the node has to decide where to stop; these are the caps a
8
+ * local answer would effectively have been bounded by anyway (a run's own capture volume). A
9
+ * drain that REACHES its cap is logged with the run it stopped on, because a silently shortened
10
+ * list would read to whoever is looking at the panel as the whole run.
11
+ */
12
+ const DRAIN_CAPS = {
13
+ metrics: 1000,
14
+ snapshots: 200,
15
+ searchQueries: 2000,
16
+ };
17
+ /**
18
+ * Wrap `local` so that a read the local store cannot answer WHOLE is answered from the mothership.
19
+ *
20
+ * Only READS are decorated. `record` / `recordMany` / `latestChainTip` / `deleteOlderThan` pass
21
+ * straight through to the local store: the first three are the capture hot path (the whole reason
22
+ * this bucket is local-first), the chain tip must resolve against the rows this node actually
23
+ * holds or it would compute a prompt delta against a tip it cannot reproduce, and the prune owns
24
+ * local rows only.
25
+ */
26
+ export function withTelemetryReadThrough(local, deps) {
27
+ const log = (deps.logger ?? noopLogger).child({ scope: 'telemetryReadThrough' });
28
+ const read = (repo, method, workspaceId, args) => deps.client.read({ workspaceId, repo, method, args });
29
+ const ctx = {
30
+ read,
31
+ log,
32
+ // A run local has rows for is authoritative only while the prune has taken none of them.
33
+ whole: (workspaceId, executionId, held) => held > 0 && deps.coverage.isRunLocallyComplete(workspaceId, executionId),
34
+ };
35
+ return {
36
+ llmCallMetricRepository: metricsReadThrough(local.llmCallMetricRepository, ctx),
37
+ agentContextSnapshotRepository: snapshotsReadThrough(local.agentContextSnapshotRepository, ctx),
38
+ agentSearchQueryRepository: searchQueriesReadThrough(local.agentSearchQueryRepository, ctx),
39
+ };
40
+ }
41
+ /** The EXCLUSIVE cursor that continues after `rows`' oldest entry, or undefined when it is empty. */
42
+ function cursorAfter(rows) {
43
+ const last = rows[rows.length - 1];
44
+ return last ? { createdAt: last.createdAt, id: last.id } : undefined;
45
+ }
46
+ /**
47
+ * Whether a page-shaped local answer can be returned as-is.
48
+ *
49
+ * A FULL page is always its own answer — the caller holds a cursor and will come back for more,
50
+ * and a run that is missing older rows reaches the seam on a later page, where this same test
51
+ * fails and the fallback picks it up. A SHORT page is the end of the data only if the local store
52
+ * is whole for the run; otherwise the missing rows are exactly what makes it short.
53
+ */
54
+ function pageIsAnswerable(ctx, workspaceId, executionId, held, limit) {
55
+ return held >= limit || ctx.whole(workspaceId, executionId, held);
56
+ }
57
+ /**
58
+ * Page a remote read forwards from newest to oldest until it is exhausted or `cap` rows have been
59
+ * collected, cursoring on the `(createdAt, id)` composite every telemetry read orders by.
60
+ *
61
+ * Reaching the cap is REPORTED rather than silently returned as a complete list: the caller is
62
+ * rendering a run, and a list that quietly stops partway reads as the whole of it.
63
+ *
64
+ * A page refused for SIZE halves and re-asks on the same cursor. That terminates: the mothership's
65
+ * backstop is derived to exceed the largest single row either body-bearing sink can store, so a
66
+ * one-row page can never be refused for size (`MAX_TELEMETRY_READ_CHARS`, pinned by an assertion
67
+ * against both capture ceilings).
68
+ */
69
+ async function drainPages(opts, fetchPage) {
70
+ const rows = [];
71
+ // The local store already filled the caller's whole allowance, so there is no remainder to
72
+ // fetch. Returning HERE rather than falling through the loop matters: with no iterations left
73
+ // the tail below would report a cap it never reached, and a "capped a run's calls" warning about
74
+ // a complete answer is exactly the kind of noise that teaches a reader to ignore the real one.
75
+ if (opts.cap <= 0)
76
+ return rows;
77
+ let cursor = opts.cursor;
78
+ let pageSize = opts.pageSize;
79
+ while (rows.length < opts.cap) {
80
+ // Never ask for more than the cap still allows, so the last page is not over-fetched.
81
+ const want = Math.min(pageSize, opts.cap - rows.length);
82
+ let page;
83
+ try {
84
+ page = await fetchPage(cursor, want);
85
+ }
86
+ catch (error) {
87
+ // Within its ROW cap but over the mothership's BYTE backstop — a run with large prompts, not
88
+ // a fault. Re-ask smaller on the same cursor; nothing is lost because the cursor has not
89
+ // moved. Any other failure propagates, as does this one at a page of 1 (unreachable by the
90
+ // backstop's derivation, so reaching it means that invariant broke and must be reported).
91
+ if (error instanceof TelemetryReadTooLargeError && want > 1) {
92
+ pageSize = Math.max(1, Math.floor(want / 2));
93
+ opts.log.debug('read-through narrowed a page the mothership refused for size', {
94
+ executionId: opts.executionId,
95
+ what: opts.what,
96
+ was: want,
97
+ now: pageSize,
98
+ });
99
+ continue;
100
+ }
101
+ throw error;
102
+ }
103
+ rows.push(...page);
104
+ // A SHORT page means the store had no more, and terminating on it is what makes the drain
105
+ // finite. A full one may or may not — finding out costs another request, which is exactly
106
+ // what the next iteration is.
107
+ if (page.length < want)
108
+ return rows;
109
+ const next = cursorAfter(page);
110
+ if (!next)
111
+ return rows;
112
+ cursor = next;
113
+ }
114
+ // Stopped ON the cap rather than on an exhausted store. It is possible the run held exactly
115
+ // this many rows and nothing was actually dropped — distinguishing the two would cost one more
116
+ // request per drain, and reporting a cap that happened to be exact is the cheaper error.
117
+ opts.log.warn(`read-through capped a run's ${opts.what}`, {
118
+ executionId: opts.executionId,
119
+ cap: opts.cap,
120
+ collected: rows.length,
121
+ });
122
+ return rows;
123
+ }
124
+ function metricsReadThrough(local, ctx) {
125
+ return {
126
+ // Capture + prune + chain-tip: local only. See the module note.
127
+ record: (metric) => local.record(metric),
128
+ recordMany: (metrics) => local.recordMany(metrics),
129
+ latestChainTip: (ws, ex, kind) => local.latestChainTip(ws, ex, kind),
130
+ deleteOlderThan: (epochMs) => local.deleteOlderThan(epochMs),
131
+ async listByExecution(ws, executionId, limit, agentKind) {
132
+ const rows = await local.listByExecution(ws, executionId, limit, agentKind);
133
+ if (ctx.whole(ws, executionId, rows.length))
134
+ return rows;
135
+ const cap = limit ?? DRAIN_CAPS.metrics;
136
+ // Everything strictly OLDER than local's oldest row — the disjoint remainder, per the
137
+ // module note's prefix-prune invariant. With no local rows this is the whole run.
138
+ const older = await drainPages({
139
+ pageSize: TELEMETRY_READ_PAGE_SIZES.metrics,
140
+ cap: cap - rows.length,
141
+ cursor: cursorAfter(rows),
142
+ log: ctx.log,
143
+ what: 'calls',
144
+ executionId,
145
+ }, (cursor, pageLimit) => ctx.read('llmCallMetricRepository', 'listRunPage', ws, [
146
+ { executionId, agentKind, limit: pageLimit, cursor },
147
+ ]));
148
+ return [...rows, ...older];
149
+ },
150
+ async listRunPage(ws, query) {
151
+ const rows = await local.listRunPage(ws, query);
152
+ if (pageIsAnswerable(ctx, ws, query.executionId, rows.length, query.limit))
153
+ return rows;
154
+ return ctx.read('llmCallMetricRepository', 'listRunPage', ws, [query]);
155
+ },
156
+ async listPage(ws, query) {
157
+ const rows = await local.listPage(ws, query);
158
+ if (pageIsAnswerable(ctx, ws, query.executionId, rows.length, query.limit))
159
+ return rows;
160
+ // The whole page from the mothership rather than a stitch: this read's ORDER and cursor are
161
+ // the caller's, so where the seam falls depends on which direction it is walking, and
162
+ // re-deriving that across two stores per page is where the off-by-one lives. The mothership
163
+ // holds the run's complete copy, so one read answers it in any order.
164
+ return ctx.read('llmCallMetricRepository', 'listPage', ws, [query]);
165
+ },
166
+ async get(ws, id, body) {
167
+ const row = await local.get(ws, id, body);
168
+ if (row)
169
+ return row;
170
+ return ctx.read('llmCallMetricRepository', 'get', ws, [
171
+ id,
172
+ withDeclaredBodyCap('llmCallMetricRepository', 'get', body),
173
+ ]);
174
+ },
175
+ async summarizeByExecution(ws, executionId) {
176
+ const cells = await local.summarizeByExecution(ws, executionId);
177
+ // Cell COUNT stands in for row count here: an aggregate over zero rows is zero cells, and a
178
+ // run the prune has taken from produces cells whose totals are simply too low.
179
+ if (ctx.whole(ws, executionId, cells.length))
180
+ return cells;
181
+ // Never a merge of the two. The local aggregate is over a subset and the remote over the
182
+ // complete ingested copy, and nothing in either says which rows they share — so summing
183
+ // double-counts and taking the larger is a guess. The mothership's is the whole run's.
184
+ ctx.log.debug('read-through folding a run rollup from the mothership', { executionId });
185
+ return ctx.read('llmCallMetricRepository', 'summarizeByExecution', ws, [executionId]);
186
+ },
187
+ };
188
+ }
189
+ function snapshotsReadThrough(local, ctx) {
190
+ return {
191
+ record: (snapshot) => local.record(snapshot),
192
+ recordMany: (snapshots) => local.recordMany(snapshots),
193
+ deleteOlderThan: (epochMs) => local.deleteOlderThan(epochMs),
194
+ async listByExecution(ws, executionId) {
195
+ const rows = await local.listByExecution(ws, executionId);
196
+ if (ctx.whole(ws, executionId, rows.length))
197
+ return rows;
198
+ const older = await drainPages({
199
+ pageSize: TELEMETRY_READ_PAGE_SIZES.snapshots,
200
+ cap: DRAIN_CAPS.snapshots - rows.length,
201
+ cursor: cursorAfter(rows),
202
+ log: ctx.log,
203
+ what: 'dispatch snapshots',
204
+ executionId,
205
+ }, (cursor, pageLimit) => ctx.read('agentContextSnapshotRepository', 'listRunPage', ws, [
206
+ { executionId, limit: pageLimit, cursor },
207
+ ]));
208
+ return [...rows, ...older];
209
+ },
210
+ async listRunPage(ws, query) {
211
+ const rows = await local.listRunPage(ws, query);
212
+ if (pageIsAnswerable(ctx, ws, query.executionId, rows.length, query.limit))
213
+ return rows;
214
+ return ctx.read('agentContextSnapshotRepository', 'listRunPage', ws, [
215
+ query,
216
+ ]);
217
+ },
218
+ async listIndex(ws, query) {
219
+ const rows = await local.listIndex(ws, query);
220
+ if (pageIsAnswerable(ctx, ws, query.executionId, rows.length, query.limit))
221
+ return rows;
222
+ return ctx.read('agentContextSnapshotRepository', 'listIndex', ws, [query]);
223
+ },
224
+ async get(ws, id) {
225
+ const row = await local.get(ws, id);
226
+ if (row)
227
+ return row;
228
+ return ctx.read('agentContextSnapshotRepository', 'get', ws, [
229
+ id,
230
+ ]);
231
+ },
232
+ async countByExecution(ws, executionId) {
233
+ const n = await local.countByExecution(ws, executionId);
234
+ if (ctx.whole(ws, executionId, n))
235
+ return n;
236
+ return ctx.read('agentContextSnapshotRepository', 'countByExecution', ws, [
237
+ executionId,
238
+ ]);
239
+ },
240
+ };
241
+ }
242
+ function searchQueriesReadThrough(local, ctx) {
243
+ return {
244
+ record: (query) => local.record(query),
245
+ recordMany: (queries) => local.recordMany(queries),
246
+ deleteOlderThan: (epochMs) => local.deleteOlderThan(epochMs),
247
+ async listByExecution(ws, executionId) {
248
+ const rows = await local.listByExecution(ws, executionId);
249
+ if (ctx.whole(ws, executionId, rows.length))
250
+ return rows;
251
+ // Searches need no `listRunPage` of their own: this sink's `listPage` already returns
252
+ // WHOLE rows on the same keyset (the query text is capped at capture, so there is no
253
+ // unbounded body to slice), so the drain rides it directly.
254
+ const older = await drainPages({
255
+ pageSize: TELEMETRY_READ_PAGE_SIZES.searchQueries,
256
+ cap: DRAIN_CAPS.searchQueries - rows.length,
257
+ cursor: cursorAfter(rows),
258
+ log: ctx.log,
259
+ what: 'searches',
260
+ executionId,
261
+ }, (cursor, pageLimit) => ctx.read('agentSearchQueryRepository', 'listPage', ws, [
262
+ { executionId, limit: pageLimit, cursor },
263
+ ]));
264
+ return [...rows, ...older];
265
+ },
266
+ async listPage(ws, query) {
267
+ const rows = await local.listPage(ws, query);
268
+ if (pageIsAnswerable(ctx, ws, query.executionId, rows.length, query.limit))
269
+ return rows;
270
+ return ctx.read('agentSearchQueryRepository', 'listPage', ws, [query]);
271
+ },
272
+ async countByExecution(ws, executionId) {
273
+ const n = await local.countByExecution(ws, executionId);
274
+ if (ctx.whole(ws, executionId, n))
275
+ return n;
276
+ return ctx.read('agentSearchQueryRepository', 'countByExecution', ws, [executionId]);
277
+ },
278
+ };
279
+ }
280
+ /**
281
+ * The body window to send for a point read, filling in the method's declared ceiling when the
282
+ * caller supplied none.
283
+ *
284
+ * An absent window means "the whole bodies" to the port, which is the unstated size the machine
285
+ * surface refuses — so passing the caller's `undefined` straight through would turn a legitimate
286
+ * local miss into a 422. The ceiling is the most the surface will serve anyway, and the slice is
287
+ * self-describing (`totalChars` beside the text), so a longer body reports itself as cut rather
288
+ * than passing as whole.
289
+ */
290
+ function withDeclaredBodyCap(repo, method, window) {
291
+ if (window?.chars != null)
292
+ return window;
293
+ const cap = telemetryReadBodyCap(repo, method);
294
+ return cap == null ? window : { ...window, chars: cap };
295
+ }
296
+ //# sourceMappingURL=telemetryReadThrough.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryReadThrough.js","sourceRoot":"","sources":["../src/telemetryReadThrough.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,GAGrB,MAAM,qBAAqB,CAAA;AA4E5B;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,IAAI;CACX,CAAA;AAEV;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAuC,EACvC,IAA8B;IAE9B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAChF,MAAM,IAAI,GAAG,CACX,IAA6B,EAC7B,MAAc,EACd,WAAmB,EACnB,IAAe,EACH,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAe,CAAA;IACpF,MAAM,GAAG,GAAuB;QAC9B,IAAI;QACJ,GAAG;QACH,yFAAyF;QACzF,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CACxC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC;KAC3E,CAAA;IAED,OAAO;QACL,uBAAuB,EAAE,kBAAkB,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC;QAC/E,8BAA8B,EAAE,oBAAoB,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC;QAC/F,0BAA0B,EAAE,wBAAwB,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC;KAC5F,CAAA;AACH,CAAC;AAwBD,qGAAqG;AACrG,SAAS,WAAW,CAAC,IAA0B;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,GAAuB,EACvB,WAAmB,EACnB,WAAmB,EACnB,IAAY,EACZ,KAAa;IAEb,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;AACnE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,UAAU,CACvB,IAOC,EACD,SAAyE;IAEzE,MAAM,IAAI,GAAQ,EAAE,CAAA;IACpB,2FAA2F;IAC3F,8FAA8F;IAC9F,iGAAiG;IACjG,+FAA+F;IAC/F,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,sFAAsF;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,IAAS,CAAA;QACb,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6FAA6F;YAC7F,yFAAyF;YACzF,2FAA2F;YAC3F,0FAA0F;YAC1F,IAAI,KAAK,YAAY,0BAA0B,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC5D,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC5C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,EAAE;oBAC7E,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI;oBACT,GAAG,EAAE,QAAQ;iBACd,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QAClB,0FAA0F;QAC1F,0FAA0F;QAC1F,8BAA8B;QAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;YAAE,OAAO,IAAI,CAAA;QACnC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;IACD,4FAA4F;IAC5F,+FAA+F;IAC/F,yFAAyF;IACzF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,EAAE;QACxD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CACzB,KAA8B,EAC9B,GAAuB;IAEvB,OAAO;QACL,gEAAgE;QAChE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QAClD,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;QACpE,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;QAE5D,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS;YACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;YAC3E,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAA;YACxD,MAAM,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,OAAO,CAAA;YACvC,sFAAsF;YACtF,kFAAkF;YAClF,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B;gBACE,QAAQ,EAAE,yBAAyB,CAAC,OAAO;gBAC3C,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM;gBACtB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;gBACzB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,OAAO;gBACb,WAAW;aACZ,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CACpB,GAAG,CAAC,IAAI,CAAkB,yBAAyB,EAAE,aAAa,EAAE,EAAE,EAAE;gBACtE,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAgC;aACnF,CAAC,CACL,CAAA;YACD,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAA0B;YAC9C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC/C,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YACvF,OAAO,GAAG,CAAC,IAAI,CAAkB,yBAAyB,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QACzF,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAuB;YACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC5C,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YACvF,4FAA4F;YAC5F,sFAAsF;YACtF,4FAA4F;YAC5F,sEAAsE;YACtE,OAAO,GAAG,CAAC,IAAI,CAAsB,yBAAyB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1F,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAwB;YACxC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;YACzC,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAA;YACnB,OAAO,GAAG,CAAC,IAAI,CAA2B,yBAAyB,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9E,EAAE;gBACF,mBAAmB,CAAC,yBAAyB,EAAE,KAAK,EAAE,IAAI,CAAC;aAC5D,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW;YACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YAC/D,4FAA4F;YAC5F,+EAA+E;YAC/E,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1D,yFAAyF;YACzF,wFAAwF;YACxF,uFAAuF;YACvF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;YACvF,OAAO,GAAG,CAAC,IAAI,CACb,yBAAyB,EACzB,sBAAsB,EACtB,EAAE,EACF,CAAC,WAAW,CAAC,CACd,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAqC,EACrC,GAAuB;IAEvB,OAAO;QACL,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5C,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QACtD,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;QAE5D,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW;YACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACzD,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAA;YACxD,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B;gBACE,QAAQ,EAAE,yBAAyB,CAAC,SAAS;gBAC7C,GAAG,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;gBACvC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;gBACzB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,WAAW;aACZ,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CACpB,GAAG,CAAC,IAAI,CAAyB,gCAAgC,EAAE,aAAa,EAAE,EAAE,EAAE;gBACpF,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAqC;aAC7E,CAAC,CACL,CAAA;YACD,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAA+B;YACnD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC/C,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YACvF,OAAO,GAAG,CAAC,IAAI,CAAyB,gCAAgC,EAAE,aAAa,EAAE,EAAE,EAAE;gBAC3F,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAA6B;YAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC7C,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YACvF,OAAO,GAAG,CAAC,IAAI,CACb,gCAAgC,EAChC,WAAW,EACX,EAAE,EACF,CAAC,KAAK,CAAC,CACR,CAAA;QACH,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACnC,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAA;YACnB,OAAO,GAAG,CAAC,IAAI,CAA8B,gCAAgC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACxF,EAAE;aACH,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW;YACpC,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACvD,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAA;YAC3C,OAAO,GAAG,CAAC,IAAI,CAAS,gCAAgC,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBAChF,WAAW;aACZ,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAiC,EACjC,GAAuB;IAEvB,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QAClD,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;QAE5D,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW;YACnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACzD,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAA;YACxD,sFAAsF;YACtF,qFAAqF;YACrF,4DAA4D;YAC5D,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B;gBACE,QAAQ,EAAE,yBAAyB,CAAC,aAAa;gBACjD,GAAG,EAAE,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;gBAC3C,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;gBACzB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,UAAU;gBAChB,WAAW;aACZ,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CACpB,GAAG,CAAC,IAAI,CAAqB,4BAA4B,EAAE,UAAU,EAAE,EAAE,EAAE;gBACzE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAsC;aAC9E,CAAC,CACL,CAAA;YACD,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAgC;YACjD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC5C,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YACvF,OAAO,GAAG,CAAC,IAAI,CAAqB,4BAA4B,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5F,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW;YACpC,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YACvD,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAA;YAC3C,OAAO,GAAG,CAAC,IAAI,CAAS,4BAA4B,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9F,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAC1B,IAA6B,EAC7B,MAAc,EACd,MAAqC;IAErC,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;QAAE,OAAO,MAAM,CAAA;IACxC,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9C,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACzD,CAAC"}
@@ -10,6 +10,8 @@ export interface LocalTelemetryRetentionResult {
10
10
  subscriptionQuotaCycles: number;
11
11
  /** Upstream-ingest high-water marks (PR 5's sync UP) whose runs' rows are long gone. */
12
12
  ingestState: number;
13
+ /** Partial-prune markers (PR 5's read-through) for runs the store now holds nothing of. */
14
+ prunedRunMarkers: number;
13
15
  }
14
16
  /**
15
17
  * Prune each local telemetry table to its retention window. Pure over the store, so it is
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryRetention.d.ts","sourceRoot":"","sources":["../src/telemetryRetention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4BrE,mEAAmE;AACnE,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAA;CACpB;AAYD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,6BAA6B,CAAC,CAyBxC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,OAAO,CAAC,IAAI,CAAC,CA8BrB"}
1
+ {"version":3,"file":"telemetryRetention.d.ts","sourceRoot":"","sources":["../src/telemetryRetention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4BrE,mEAAmE;AACnE,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAA;IACnB,2FAA2F;IAC3F,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAYD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,6BAA6B,CAAC,CAgCxC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,OAAO,CAAC,IAAI,CAAC,CA8BrB"}
@@ -46,6 +46,13 @@ export async function sweepLocalTelemetryRetention(store, retention, now) {
46
46
  // so the mark outlives the rows it describes and can never be dropped while a still-stored run
47
47
  // would be re-uploaded because of it.
48
48
  ingestState: await prune(retention.llmCallMetricsMs, now, async (c) => store.ingestReader.deleteIngestStateOlderThan(c)),
49
+ // LAST, and unconditionally: the three prunes above are what create these markers, so sweeping
50
+ // before them would leave a pass's own markers behind for an hour. It takes no window of its
51
+ // own — a marker is spent exactly when the run it names has no local rows left, at which point
52
+ // the read-through's emptiness gate already falls through to the mothership. Ageing it out on
53
+ // a duration instead would expire it while the run's SURVIVING rows were still being answered
54
+ // with, which is the one moment it is load-bearing.
55
+ prunedRunMarkers: store.coverage.forgetSettledRuns(),
49
56
  };
50
57
  }
51
58
  /**