Skip to content

Instantly share code, notes, and snippets.

@EdwardIrby
Last active September 11, 2026 17:08
Show Gist options
  • Select an option

  • Save EdwardIrby/53fb0ed04c6c3800c79b0c6399597216 to your computer and use it in GitHub Desktop.

Select an option

Save EdwardIrby/53fb0ed04c6c3800c79b0c6399597216 to your computer and use it in GitHub Desktop.
Measure You.com MCP you-search callTool result size: 100 jittered calls (~25 min) + clickhouse-local analysis + hash-batch content confirmation
-- ClickHouse-local analysis for the You.com MCP you-search size probe.
--
-- Run with the clickhouse-local binary (v26.9 tested):
--
-- clickhouse local --multiquery < analyze.sql
-- clickhouse local --multiquery --queries-file=analyze.sql
--
-- # or, with clickhousectl:
-- clickhousectl local use latest
-- "$(clickhousectl local which --json | jq -r .binary_path)" local --multiquery < analyze.sql
--
-- Expects these files in the working directory:
-- results.jsonl -- 100-call timed run (search-size.ts) [one JSON line per call]
-- hash-batch.jsonl -- 30-call hash confirmation (hash-batch.ts) [one JSON line per call]
--
-- See the gist for the scripts that produced them.
SET format = 'PrettyCompact';
SET max_block_size = 1;
-- ---------------------------------------------------------------------------
-- 1. Timed run overview (results.jsonl)
-- ---------------------------------------------------------------------------
SELECT
count() AS n,
countIf(isError) AS errors,
min(bytes) AS min_bytes,
max(bytes) AS max_bytes,
max(bytes) - min(bytes) AS byte_range,
round(avg(bytes), 2) AS avg_bytes,
round(stddevPop(bytes), 4) AS sd_bytes,
round(quantile(0.5)(bytes), 0) AS p50_bytes,
round(quantile(0.9)(bytes), 0) AS p90_bytes,
round(quantile(0.99)(bytes), 0) AS p99_bytes,
round(min(actualOffsetMs) / 60000, 2) AS first_min,
round(max(actualOffsetMs) / 60000, 2) AS last_min,
round((max(actualOffsetMs) - min(actualOffsetMs)) / 60000, 2) AS span_min,
round(avg(durationMs), 0) AS avg_duration_ms,
max(durationMs) AS max_duration_ms
FROM file('results.jsonl', JSONEachRow)
;
-- ---------------------------------------------------------------------------
-- 2. Per-field byte distribution (which field wobbles, which is constant)
-- ---------------------------------------------------------------------------
SELECT
perField.content AS content_bytes,
perField.structuredContent AS sc_bytes,
perField._meta AS meta_bytes,
count() AS n
FROM file('results.jsonl', JSONEachRow)
GROUP BY content_bytes, sc_bytes, meta_bytes
ORDER BY content_bytes, sc_bytes
;
-- ---------------------------------------------------------------------------
-- 3. Timing / spacing correlation with size (does the gap matter?)
-- ---------------------------------------------------------------------------
SELECT
round(corr(actualOffsetMs, bytes), 4) AS corr_time_bytes,
round(corr(actualOffsetMs, durationMs), 4) AS corr_time_dur,
round(corr(delayBeforeMs, durationMs), 4) AS corr_gap_dur,
round(corr(delayBeforeMs, bytes), 4) AS corr_gap_bytes,
round(corr(index, bytes), 4) AS corr_index_bytes
FROM file('results.jsonl', JSONEachRow)
;
-- ---------------------------------------------------------------------------
-- 4. Gap histogram (minutes between successive calls) — jitter check
-- ---------------------------------------------------------------------------
SELECT
round(gap_min, 2) AS gap_min,
count() AS n
FROM (
SELECT
(actualOffsetMs - lagInFrame(actualOffsetMs) OVER (ORDER BY index)) / 60000 AS gap_min
FROM file('results.jsonl', JSONEachRow)
)
WHERE gap_min >= 0
GROUP BY gap_min
ORDER BY gap_min
;
-- ---------------------------------------------------------------------------
-- 5. Definitive 'same data?' answer (hash-batch.jsonl)
-- 1 distinct webResultsHash => the actual search results are identical
-- every call; only per-request metadata (search_uuid, latency) changes.
-- ---------------------------------------------------------------------------
SELECT
count() AS n,
uniqExact(webResultsHash) AS distinct_web_hashes,
uniqExact(textHash) AS distinct_text_hashes,
uniqExact(searchUuid) AS distinct_uuids,
uniqExact(latency) AS distinct_latencies,
uniqExact(webHitCount) AS distinct_hit_counts,
any(webHitCount) AS hits_per_call,
min(bytes) AS min_bytes,
max(bytes) AS max_bytes
FROM file('hash-batch.jsonl', JSONEachRow)
;
-- ---------------------------------------------------------------------------
-- 6. The single web-results hash that every call produced
-- ---------------------------------------------------------------------------
SELECT webResultsHash, count() AS n
FROM file('hash-batch.jsonl', JSONEachRow)
GROUP BY webResultsHash
ORDER BY n DESC
;
-- ---------------------------------------------------------------------------
-- 7. Why textHash varies while webResultsHash doesn't: the only
-- per-request variance inside the text payload is the latency float's
-- serialized length (the search_uuid is a fixed-length UUID).
-- ---------------------------------------------------------------------------
SELECT
count() AS n,
uniqExact(webBytes) AS distinct_webBytes,
min(webBytes) AS min_webBytes,
max(webBytes) AS max_webBytes,
uniqExact(textBytes) AS distinct_textBytes,
min(textBytes) AS min_textBytes,
max(textBytes) AS max_textBytes
FROM file('hash-batch.jsonl', JSONEachRow)
;
{"index":0,"iso":"2026-09-11T17:07:11.308Z","durationMs":1697,"bytes":62449,"textHash":"b1e326360d294714","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"96c80730-e4b0-486c-b346-c2a379b1dd2b","latency":0.001692911027930677,"textBytes":30641,"webBytes":30399}
{"index":1,"iso":"2026-09-11T17:07:11.735Z","durationMs":425,"bytes":62451,"textHash":"03992a0521ed670d","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"30165275-063a-4d90-813c-77071f2b2253","latency":0.0015743750846013427,"textBytes":30642,"webBytes":30399}
{"index":2,"iso":"2026-09-11T17:07:12.238Z","durationMs":503,"bytes":62451,"textHash":"3b1bbbb1e30fd668","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"c24ac149-1ac6-4655-9dba-3532b977f86d","latency":0.0014118379913270473,"textBytes":30642,"webBytes":30399}
{"index":3,"iso":"2026-09-11T17:07:12.640Z","durationMs":401,"bytes":62451,"textHash":"c1d7d53239c3e255","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"d20a8dea-1099-4f33-960b-e2b3265453bc","latency":0.0015834909863770008,"textBytes":30642,"webBytes":30399}
{"index":4,"iso":"2026-09-11T17:07:13.060Z","durationMs":420,"bytes":62449,"textHash":"c817f968230bb258","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"b01d9006-f33a-4a47-bc0a-1ffd340e0f5d","latency":0.002005817979807034,"textBytes":30641,"webBytes":30399}
{"index":5,"iso":"2026-09-11T17:07:13.445Z","durationMs":385,"bytes":62451,"textHash":"6c0b6e4166d5fd98","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"89c454bd-d633-4eef-b366-668dafcd3e1b","latency":0.0011766139650717378,"textBytes":30642,"webBytes":30399}
{"index":6,"iso":"2026-09-11T17:07:13.832Z","durationMs":386,"bytes":62451,"textHash":"905d698208ba5c9a","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"491bea03-3d76-44d3-9467-cf7c7cabdb19","latency":0.0017678949516266584,"textBytes":30642,"webBytes":30399}
{"index":7,"iso":"2026-09-11T17:07:14.229Z","durationMs":396,"bytes":62451,"textHash":"9f9d6a9341412a27","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"b029df20-f98b-4a06-a774-1f05cf1a1887","latency":0.0014917760854586959,"textBytes":30642,"webBytes":30399}
{"index":8,"iso":"2026-09-11T17:07:14.585Z","durationMs":356,"bytes":62451,"textHash":"6619c090bae360dd","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"b8f7dee2-f5c9-4551-99de-49b2b5d625cb","latency":0.0017554599326103926,"textBytes":30642,"webBytes":30399}
{"index":9,"iso":"2026-09-11T17:07:15.022Z","durationMs":436,"bytes":62451,"textHash":"2979f09fb6990189","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"ce088de9-e4f5-44d1-8072-6aa8a360caf5","latency":0.0015400709817185998,"textBytes":30642,"webBytes":30399}
{"index":10,"iso":"2026-09-11T17:07:15.430Z","durationMs":406,"bytes":62449,"textHash":"392fe7fc93235e61","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"b0f3c8fc-7a38-4684-85a5-f11efccb7dc2","latency":0.001549395965412259,"textBytes":30641,"webBytes":30399}
{"index":11,"iso":"2026-09-11T17:07:15.776Z","durationMs":345,"bytes":62451,"textHash":"8881315e90a90aed","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"eda46713-1e18-46f5-b872-6f4ad7a20db7","latency":0.0014544569421559572,"textBytes":30642,"webBytes":30399}
{"index":12,"iso":"2026-09-11T17:07:16.146Z","durationMs":369,"bytes":62451,"textHash":"716ff4fccc342027","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"9d802fc5-a569-4b6d-94eb-3ce418c53c52","latency":0.0011207719799131155,"textBytes":30642,"webBytes":30399}
{"index":13,"iso":"2026-09-11T17:07:16.482Z","durationMs":336,"bytes":62451,"textHash":"1cb1efa838a1ed2d","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"2c93a252-0f78-4e49-97c9-01c48ee6f20c","latency":0.0015484309988096356,"textBytes":30642,"webBytes":30399}
{"index":14,"iso":"2026-09-11T17:07:16.886Z","durationMs":403,"bytes":62451,"textHash":"172cb8614e2bb6da","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"44b97129-d9c9-45f3-9f6f-d8e850178027","latency":0.0011315519222989678,"textBytes":30642,"webBytes":30399}
{"index":15,"iso":"2026-09-11T17:07:17.315Z","durationMs":428,"bytes":62451,"textHash":"1f9a9f99b54415df","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"10a772d5-6a76-4766-9151-87d437123e48","latency":0.0016508489934494719,"textBytes":30642,"webBytes":30399}
{"index":16,"iso":"2026-09-11T17:07:17.750Z","durationMs":434,"bytes":62451,"textHash":"28f06e21a72af22f","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"083f8a55-10c7-46d4-8686-81884fee739f","latency":0.0015790869947522879,"textBytes":30642,"webBytes":30399}
{"index":17,"iso":"2026-09-11T17:07:18.114Z","durationMs":363,"bytes":62449,"textHash":"d6e5a252b1154a64","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"4a44687f-ecfe-4d77-a89c-fb329baf3b49","latency":0.001198271056637168,"textBytes":30641,"webBytes":30399}
{"index":18,"iso":"2026-09-11T17:07:18.524Z","durationMs":409,"bytes":62451,"textHash":"3756aa37c084e53b","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"4296caee-6e22-4298-aa3e-5d360ec16fc7","latency":0.0017938660457730293,"textBytes":30642,"webBytes":30399}
{"index":19,"iso":"2026-09-11T17:07:18.897Z","durationMs":373,"bytes":62449,"textHash":"b4c1c6d180e1452b","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"87498986-b7b1-4ace-9ebe-0874949fa23f","latency":0.001545920968055725,"textBytes":30641,"webBytes":30399}
{"index":20,"iso":"2026-09-11T17:07:19.308Z","durationMs":409,"bytes":62451,"textHash":"b0a1fb399600d209","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"e73ff65a-6d5c-4a0e-a5d7-6d37e3b1eb0d","latency":0.0017303430940955877,"textBytes":30642,"webBytes":30399}
{"index":21,"iso":"2026-09-11T17:07:19.758Z","durationMs":449,"bytes":62451,"textHash":"eca25e62f2641334","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"7de136ce-810f-4a16-8086-e32b280f48c7","latency":0.0015693489694967866,"textBytes":30642,"webBytes":30399}
{"index":22,"iso":"2026-09-11T17:07:20.177Z","durationMs":417,"bytes":62449,"textHash":"f11833da998304b6","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"a22954f4-195f-4549-b9b6-2a2b051964b1","latency":0.001969838049262762,"textBytes":30641,"webBytes":30399}
{"index":23,"iso":"2026-09-11T17:07:20.508Z","durationMs":331,"bytes":62451,"textHash":"a36fba5670231ba7","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"2daecdbe-88bb-4fa5-9658-1b10feee9493","latency":0.0015628819819539785,"textBytes":30642,"webBytes":30399}
{"index":24,"iso":"2026-09-11T17:07:20.832Z","durationMs":323,"bytes":62449,"textHash":"b4464c64256626fa","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"70a4e733-9a42-4628-8ae9-d9b3a597fdeb","latency":0.001594342989847064,"textBytes":30641,"webBytes":30399}
{"index":25,"iso":"2026-09-11T17:07:21.137Z","durationMs":304,"bytes":62449,"textHash":"aeeacfe3085a5e39","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"51e04cb0-7d37-485c-99cd-86b3215807bd","latency":0.001038353075273335,"textBytes":30641,"webBytes":30399}
{"index":26,"iso":"2026-09-11T17:07:21.495Z","durationMs":358,"bytes":62451,"textHash":"c23e4c76757f2957","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"b8cc5355-9757-41aa-ac1c-15fde5e40d9b","latency":0.0010949739953503013,"textBytes":30642,"webBytes":30399}
{"index":27,"iso":"2026-09-11T17:07:21.856Z","durationMs":360,"bytes":62451,"textHash":"3f0542eacc531608","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"3d36ebed-6536-401d-8e88-8047c170ee5d","latency":0.0010992190800607204,"textBytes":30642,"webBytes":30399}
{"index":28,"iso":"2026-09-11T17:07:22.215Z","durationMs":359,"bytes":62451,"textHash":"3db4f640af8ec652","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"f01033e3-0b58-406a-b8fb-4d806dd46638","latency":0.0019189330050721765,"textBytes":30642,"webBytes":30399}
{"index":29,"iso":"2026-09-11T17:07:22.609Z","durationMs":394,"bytes":62451,"textHash":"077a132314f07d67","webResultsHash":"d52941ed4617f205","webHitCount":13,"searchUuid":"8a7b59c0-50a0-4ebb-ba49-6f563241205a","latency":0.0019348030909895897,"textBytes":30642,"webBytes":30399}
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client'
import { createHash } from 'node:crypto'
const SERVER_URL = process.env.YDC_API_URL ?? 'https://api.you.com/mcp'
const API_KEY = process.env.YDC_API_KEY!
const QUERY = 'What is the top story on Hacker News right now? You must use the search tool. Answer with the exact title and URL.'
const N = Number(process.env.HB_N ?? 30)
const call = async () => {
const t = new StreamableHTTPClientTransport(new URL(SERVER_URL), {
requestInit: { headers: { Authorization: `Bearer ${API_KEY}` } },
})
const c = new Client({ name: 'hash-batch', version: '1.0.0' })
try {
await c.connect(t)
return await c.callTool({ name: 'you-search', arguments: { query: QUERY } })
} finally { await c.close().catch(()=>{}); await t.close().catch(()=>{}) }
}
const sha = (s: string) => createHash('sha256').update(s).digest('hex').slice(0,16)
const textOf = (r:any) => r.content?.find((b:any)=>b.type==='text')?.text ?? ''
const scOf = (r:any) => r.structuredContent ?? {}
const webOf = (r:any) => JSON.stringify(r.structuredContent?.results?.web ?? [])
const metaOf = (r:any) => r.structuredContent?.metadata ?? {}
const lines: string[] = []
for (let i=0;i<N;i++){
const t0=Date.now()
try {
const r:any = await call()
const dur=Date.now()-t0
const txt=textOf(r)
const web=webOf(r)
const meta=metaOf(r)
lines.push(JSON.stringify({
index:i, iso:new Date().toISOString(), durationMs:dur,
bytes:Buffer.byteLength(JSON.stringify(r),'utf8'),
textHash:sha(txt),
webResultsHash:sha(web),
webHitCount:(r.structuredContent?.results?.web??[]).length,
searchUuid:meta.search_uuid ?? null,
latency:meta.latency ?? null,
textBytes:Buffer.byteLength(txt,'utf8'),
webBytes:Buffer.byteLength(web,'utf8'),
}))
} catch(e){
lines.push(JSON.stringify({index:i,iso:new Date().toISOString(),durationMs:Date.now()-t0,error:e instanceof Error?e.message:String(e)}))
}
if((i+1)%5===0) console.error(`hash-batch ${i+1}/${N}`)
}
await Bun.write('hash-batch.jsonl', lines.join('\n')+'\n')
console.log(`wrote ${lines.length} records to hash-batch.jsonl`)
{"index":0,"scheduledOffsetMs":0,"actualOffsetMs":1075,"delayBeforeMs":0,"iso":"2026-09-11T16:18:15.114Z","durationMs":1071,"bytes":62443,"chars":62195,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31680,"structuredContent":30638}}
{"index":1,"scheduledOffsetMs":10145,"actualOffsetMs":10312,"delayBeforeMs":9069,"iso":"2026-09-11T16:18:24.352Z","durationMs":165,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":2,"scheduledOffsetMs":25880,"actualOffsetMs":26077,"delayBeforeMs":15568,"iso":"2026-09-11T16:18:40.117Z","durationMs":194,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":3,"scheduledOffsetMs":40998,"actualOffsetMs":41175,"delayBeforeMs":14921,"iso":"2026-09-11T16:18:55.215Z","durationMs":175,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":4,"scheduledOffsetMs":48299,"actualOffsetMs":48469,"delayBeforeMs":7123,"iso":"2026-09-11T16:19:02.508Z","durationMs":168,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":5,"scheduledOffsetMs":67335,"actualOffsetMs":67514,"delayBeforeMs":18866,"iso":"2026-09-11T16:19:21.554Z","durationMs":178,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":6,"scheduledOffsetMs":81111,"actualOffsetMs":81284,"delayBeforeMs":13596,"iso":"2026-09-11T16:19:35.323Z","durationMs":171,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":7,"scheduledOffsetMs":91159,"actualOffsetMs":91334,"delayBeforeMs":9874,"iso":"2026-09-11T16:19:45.374Z","durationMs":173,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":8,"scheduledOffsetMs":112293,"actualOffsetMs":112467,"delayBeforeMs":20959,"iso":"2026-09-11T16:20:06.507Z","durationMs":172,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":9,"scheduledOffsetMs":122469,"actualOffsetMs":122631,"delayBeforeMs":10001,"iso":"2026-09-11T16:20:16.670Z","durationMs":160,"bytes":62447,"chars":62199,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31682,"structuredContent":30640}}
{"index":10,"scheduledOffsetMs":140407,"actualOffsetMs":140571,"delayBeforeMs":17776,"iso":"2026-09-11T16:20:34.610Z","durationMs":162,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":11,"scheduledOffsetMs":160578,"actualOffsetMs":160735,"delayBeforeMs":20007,"iso":"2026-09-11T16:20:54.775Z","durationMs":155,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":12,"scheduledOffsetMs":178980,"actualOffsetMs":179187,"delayBeforeMs":18245,"iso":"2026-09-11T16:21:13.227Z","durationMs":205,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":13,"scheduledOffsetMs":188100,"actualOffsetMs":188275,"delayBeforeMs":8912,"iso":"2026-09-11T16:21:22.314Z","durationMs":172,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":14,"scheduledOffsetMs":197028,"actualOffsetMs":197205,"delayBeforeMs":8753,"iso":"2026-09-11T16:21:31.245Z","durationMs":175,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":15,"scheduledOffsetMs":219734,"actualOffsetMs":219897,"delayBeforeMs":22527,"iso":"2026-09-11T16:21:53.937Z","durationMs":161,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":16,"scheduledOffsetMs":229395,"actualOffsetMs":229630,"delayBeforeMs":9498,"iso":"2026-09-11T16:22:03.670Z","durationMs":232,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":17,"scheduledOffsetMs":247892,"actualOffsetMs":248271,"delayBeforeMs":18261,"iso":"2026-09-11T16:22:22.311Z","durationMs":378,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":18,"scheduledOffsetMs":255436,"actualOffsetMs":255597,"delayBeforeMs":7164,"iso":"2026-09-11T16:22:29.637Z","durationMs":159,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":19,"scheduledOffsetMs":274747,"actualOffsetMs":274955,"delayBeforeMs":19150,"iso":"2026-09-11T16:22:48.993Z","durationMs":204,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":20,"scheduledOffsetMs":286285,"actualOffsetMs":286498,"delayBeforeMs":11329,"iso":"2026-09-11T16:23:00.537Z","durationMs":211,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":21,"scheduledOffsetMs":298371,"actualOffsetMs":298534,"delayBeforeMs":11873,"iso":"2026-09-11T16:23:12.573Z","durationMs":161,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":22,"scheduledOffsetMs":309241,"actualOffsetMs":309438,"delayBeforeMs":10707,"iso":"2026-09-11T16:23:23.478Z","durationMs":194,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":23,"scheduledOffsetMs":322816,"actualOffsetMs":322994,"delayBeforeMs":13377,"iso":"2026-09-11T16:23:37.034Z","durationMs":177,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":24,"scheduledOffsetMs":328963,"actualOffsetMs":329942,"delayBeforeMs":5968,"iso":"2026-09-11T16:23:43.982Z","durationMs":977,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":25,"scheduledOffsetMs":351531,"actualOffsetMs":351693,"delayBeforeMs":21589,"iso":"2026-09-11T16:24:05.733Z","durationMs":160,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":26,"scheduledOffsetMs":359129,"actualOffsetMs":359279,"delayBeforeMs":7435,"iso":"2026-09-11T16:24:13.319Z","durationMs":149,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":27,"scheduledOffsetMs":374524,"actualOffsetMs":374695,"delayBeforeMs":15244,"iso":"2026-09-11T16:24:28.735Z","durationMs":169,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":28,"scheduledOffsetMs":385292,"actualOffsetMs":385447,"delayBeforeMs":10597,"iso":"2026-09-11T16:24:39.486Z","durationMs":153,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":29,"scheduledOffsetMs":395593,"actualOffsetMs":395758,"delayBeforeMs":10146,"iso":"2026-09-11T16:24:49.798Z","durationMs":164,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":30,"scheduledOffsetMs":414051,"actualOffsetMs":414224,"delayBeforeMs":18292,"iso":"2026-09-11T16:25:08.263Z","durationMs":171,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":31,"scheduledOffsetMs":424082,"actualOffsetMs":424882,"delayBeforeMs":9858,"iso":"2026-09-11T16:25:18.921Z","durationMs":798,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":32,"scheduledOffsetMs":441596,"actualOffsetMs":441761,"delayBeforeMs":16713,"iso":"2026-09-11T16:25:35.801Z","durationMs":163,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":33,"scheduledOffsetMs":465258,"actualOffsetMs":465434,"delayBeforeMs":23497,"iso":"2026-09-11T16:25:59.474Z","durationMs":174,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":34,"scheduledOffsetMs":476507,"actualOffsetMs":476678,"delayBeforeMs":11073,"iso":"2026-09-11T16:26:10.718Z","durationMs":168,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":35,"scheduledOffsetMs":497507,"actualOffsetMs":497696,"delayBeforeMs":20829,"iso":"2026-09-11T16:26:31.735Z","durationMs":186,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":36,"scheduledOffsetMs":512573,"actualOffsetMs":512735,"delayBeforeMs":14876,"iso":"2026-09-11T16:26:46.775Z","durationMs":160,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":37,"scheduledOffsetMs":526886,"actualOffsetMs":527066,"delayBeforeMs":14151,"iso":"2026-09-11T16:27:01.105Z","durationMs":176,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":38,"scheduledOffsetMs":544308,"actualOffsetMs":544478,"delayBeforeMs":17242,"iso":"2026-09-11T16:27:18.518Z","durationMs":168,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":39,"scheduledOffsetMs":560011,"actualOffsetMs":560177,"delayBeforeMs":15533,"iso":"2026-09-11T16:27:34.217Z","durationMs":165,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":40,"scheduledOffsetMs":566413,"actualOffsetMs":566579,"delayBeforeMs":6235,"iso":"2026-09-11T16:27:40.619Z","durationMs":165,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":41,"scheduledOffsetMs":589341,"actualOffsetMs":589506,"delayBeforeMs":22762,"iso":"2026-09-11T16:28:03.545Z","durationMs":162,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":42,"scheduledOffsetMs":611762,"actualOffsetMs":611952,"delayBeforeMs":22256,"iso":"2026-09-11T16:28:25.992Z","durationMs":189,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":43,"scheduledOffsetMs":626922,"actualOffsetMs":627096,"delayBeforeMs":14969,"iso":"2026-09-11T16:28:41.136Z","durationMs":172,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":44,"scheduledOffsetMs":640157,"actualOffsetMs":640309,"delayBeforeMs":13060,"iso":"2026-09-11T16:28:54.349Z","durationMs":151,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":45,"scheduledOffsetMs":650643,"actualOffsetMs":650803,"delayBeforeMs":10333,"iso":"2026-09-11T16:29:04.843Z","durationMs":159,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":46,"scheduledOffsetMs":669489,"actualOffsetMs":669691,"delayBeforeMs":18686,"iso":"2026-09-11T16:29:23.731Z","durationMs":200,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":47,"scheduledOffsetMs":691197,"actualOffsetMs":691380,"delayBeforeMs":21505,"iso":"2026-09-11T16:29:45.419Z","durationMs":181,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":48,"scheduledOffsetMs":700589,"actualOffsetMs":700768,"delayBeforeMs":9208,"iso":"2026-09-11T16:29:54.808Z","durationMs":177,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":49,"scheduledOffsetMs":712173,"actualOffsetMs":712339,"delayBeforeMs":11405,"iso":"2026-09-11T16:30:06.378Z","durationMs":163,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":50,"scheduledOffsetMs":730538,"actualOffsetMs":730739,"delayBeforeMs":18199,"iso":"2026-09-11T16:30:24.779Z","durationMs":200,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":51,"scheduledOffsetMs":742295,"actualOffsetMs":742461,"delayBeforeMs":11555,"iso":"2026-09-11T16:30:36.501Z","durationMs":165,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":52,"scheduledOffsetMs":749141,"actualOffsetMs":749302,"delayBeforeMs":6679,"iso":"2026-09-11T16:30:43.342Z","durationMs":160,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":53,"scheduledOffsetMs":765156,"actualOffsetMs":765502,"delayBeforeMs":15853,"iso":"2026-09-11T16:30:59.542Z","durationMs":345,"bytes":62447,"chars":62199,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31682,"structuredContent":30640}}
{"index":54,"scheduledOffsetMs":783643,"actualOffsetMs":783801,"delayBeforeMs":18140,"iso":"2026-09-11T16:31:17.840Z","durationMs":156,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":55,"scheduledOffsetMs":806245,"actualOffsetMs":806399,"delayBeforeMs":22443,"iso":"2026-09-11T16:31:40.439Z","durationMs":153,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":56,"scheduledOffsetMs":820001,"actualOffsetMs":820201,"delayBeforeMs":13601,"iso":"2026-09-11T16:31:54.240Z","durationMs":198,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":57,"scheduledOffsetMs":833581,"actualOffsetMs":833737,"delayBeforeMs":13380,"iso":"2026-09-11T16:32:07.776Z","durationMs":153,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":58,"scheduledOffsetMs":851800,"actualOffsetMs":851984,"delayBeforeMs":18062,"iso":"2026-09-11T16:32:26.023Z","durationMs":181,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":59,"scheduledOffsetMs":872950,"actualOffsetMs":873112,"delayBeforeMs":20966,"iso":"2026-09-11T16:32:47.152Z","durationMs":160,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":60,"scheduledOffsetMs":887903,"actualOffsetMs":888062,"delayBeforeMs":14790,"iso":"2026-09-11T16:33:02.102Z","durationMs":157,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":61,"scheduledOffsetMs":911349,"actualOffsetMs":911516,"delayBeforeMs":23286,"iso":"2026-09-11T16:33:25.555Z","durationMs":164,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":62,"scheduledOffsetMs":933952,"actualOffsetMs":934117,"delayBeforeMs":22435,"iso":"2026-09-11T16:33:48.156Z","durationMs":163,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":63,"scheduledOffsetMs":943379,"actualOffsetMs":943545,"delayBeforeMs":9262,"iso":"2026-09-11T16:33:57.584Z","durationMs":163,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":64,"scheduledOffsetMs":949704,"actualOffsetMs":949856,"delayBeforeMs":6159,"iso":"2026-09-11T16:34:03.895Z","durationMs":150,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":65,"scheduledOffsetMs":968844,"actualOffsetMs":969001,"delayBeforeMs":18988,"iso":"2026-09-11T16:34:23.041Z","durationMs":156,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":66,"scheduledOffsetMs":984648,"actualOffsetMs":984803,"delayBeforeMs":15646,"iso":"2026-09-11T16:34:38.843Z","durationMs":154,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":67,"scheduledOffsetMs":991877,"actualOffsetMs":992030,"delayBeforeMs":7074,"iso":"2026-09-11T16:34:46.069Z","durationMs":150,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":68,"scheduledOffsetMs":1000849,"actualOffsetMs":1001232,"delayBeforeMs":8819,"iso":"2026-09-11T16:34:55.272Z","durationMs":382,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":69,"scheduledOffsetMs":1016210,"actualOffsetMs":1016375,"delayBeforeMs":14978,"iso":"2026-09-11T16:35:10.415Z","durationMs":163,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":70,"scheduledOffsetMs":1035958,"actualOffsetMs":1036119,"delayBeforeMs":19583,"iso":"2026-09-11T16:35:30.159Z","durationMs":160,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":71,"scheduledOffsetMs":1059256,"actualOffsetMs":1059417,"delayBeforeMs":23137,"iso":"2026-09-11T16:35:53.457Z","durationMs":159,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":72,"scheduledOffsetMs":1068342,"actualOffsetMs":1068505,"delayBeforeMs":8924,"iso":"2026-09-11T16:36:02.545Z","durationMs":162,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":73,"scheduledOffsetMs":1085009,"actualOffsetMs":1085177,"delayBeforeMs":16504,"iso":"2026-09-11T16:36:19.216Z","durationMs":165,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":74,"scheduledOffsetMs":1094098,"actualOffsetMs":1094280,"delayBeforeMs":8921,"iso":"2026-09-11T16:36:28.319Z","durationMs":179,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":75,"scheduledOffsetMs":1102094,"actualOffsetMs":1102280,"delayBeforeMs":7814,"iso":"2026-09-11T16:36:36.319Z","durationMs":184,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":76,"scheduledOffsetMs":1124563,"actualOffsetMs":1124729,"delayBeforeMs":22283,"iso":"2026-09-11T16:36:58.769Z","durationMs":165,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":77,"scheduledOffsetMs":1141861,"actualOffsetMs":1142032,"delayBeforeMs":17131,"iso":"2026-09-11T16:37:16.071Z","durationMs":169,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":78,"scheduledOffsetMs":1162060,"actualOffsetMs":1162226,"delayBeforeMs":20027,"iso":"2026-09-11T16:37:36.266Z","durationMs":165,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":79,"scheduledOffsetMs":1178378,"actualOffsetMs":1178534,"delayBeforeMs":16151,"iso":"2026-09-11T16:37:52.574Z","durationMs":154,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":80,"scheduledOffsetMs":1185741,"actualOffsetMs":1185890,"delayBeforeMs":7207,"iso":"2026-09-11T16:37:59.930Z","durationMs":147,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":81,"scheduledOffsetMs":1193383,"actualOffsetMs":1193537,"delayBeforeMs":7492,"iso":"2026-09-11T16:38:07.577Z","durationMs":153,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":82,"scheduledOffsetMs":1205460,"actualOffsetMs":1205652,"delayBeforeMs":11923,"iso":"2026-09-11T16:38:19.691Z","durationMs":189,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":83,"scheduledOffsetMs":1221904,"actualOffsetMs":1222089,"delayBeforeMs":16251,"iso":"2026-09-11T16:38:36.129Z","durationMs":183,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":84,"scheduledOffsetMs":1237814,"actualOffsetMs":1237980,"delayBeforeMs":15723,"iso":"2026-09-11T16:38:52.020Z","durationMs":164,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":85,"scheduledOffsetMs":1253610,"actualOffsetMs":1253774,"delayBeforeMs":15630,"iso":"2026-09-11T16:39:07.814Z","durationMs":161,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":86,"scheduledOffsetMs":1266342,"actualOffsetMs":1266494,"delayBeforeMs":12568,"iso":"2026-09-11T16:39:20.533Z","durationMs":149,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":87,"scheduledOffsetMs":1288210,"actualOffsetMs":1288361,"delayBeforeMs":21716,"iso":"2026-09-11T16:39:42.400Z","durationMs":150,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":88,"scheduledOffsetMs":1309340,"actualOffsetMs":1309509,"delayBeforeMs":20979,"iso":"2026-09-11T16:40:03.549Z","durationMs":167,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":89,"scheduledOffsetMs":1328096,"actualOffsetMs":1328312,"delayBeforeMs":18586,"iso":"2026-09-11T16:40:22.352Z","durationMs":213,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":90,"scheduledOffsetMs":1339330,"actualOffsetMs":1339483,"delayBeforeMs":11018,"iso":"2026-09-11T16:40:33.523Z","durationMs":151,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":91,"scheduledOffsetMs":1358699,"actualOffsetMs":1358878,"delayBeforeMs":19215,"iso":"2026-09-11T16:40:52.918Z","durationMs":178,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":92,"scheduledOffsetMs":1372567,"actualOffsetMs":1372719,"delayBeforeMs":13689,"iso":"2026-09-11T16:41:06.759Z","durationMs":153,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":93,"scheduledOffsetMs":1378936,"actualOffsetMs":1379093,"delayBeforeMs":6217,"iso":"2026-09-11T16:41:13.133Z","durationMs":160,"bytes":62449,"chars":62201,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31683,"structuredContent":30641}}
{"index":94,"scheduledOffsetMs":1400989,"actualOffsetMs":1401140,"delayBeforeMs":21895,"iso":"2026-09-11T16:41:35.179Z","durationMs":157,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":95,"scheduledOffsetMs":1423610,"actualOffsetMs":1423772,"delayBeforeMs":22470,"iso":"2026-09-11T16:41:57.811Z","durationMs":162,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":96,"scheduledOffsetMs":1442561,"actualOffsetMs":1442714,"delayBeforeMs":18789,"iso":"2026-09-11T16:42:16.754Z","durationMs":152,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":97,"scheduledOffsetMs":1457056,"actualOffsetMs":1457216,"delayBeforeMs":14341,"iso":"2026-09-11T16:42:31.255Z","durationMs":158,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":98,"scheduledOffsetMs":1468824,"actualOffsetMs":1468995,"delayBeforeMs":11608,"iso":"2026-09-11T16:42:43.034Z","durationMs":167,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
{"index":99,"scheduledOffsetMs":1492500,"actualOffsetMs":1492661,"delayBeforeMs":23504,"iso":"2026-09-11T16:43:06.701Z","durationMs":159,"bytes":62451,"chars":62203,"contentBlocks":1,"isError":false,"error":null,"perField":{"_meta":83,"content":31684,"structuredContent":30642}}
/**
* Calls the You.com MCP `you-search` tool via the TypeScript MCP client SDK
* v2 (`@modelcontextprotocol/client`) repeatedly and records the size of each
* tool-call response to a JSONL file.
*
* ## Setup
*
* ```bash
* bun install @modelcontextprotocol/client
* ```
*
* ## Run
*
* ```bash
* YDC_API_KEY=your-key-here bun run search-size.ts
*
* # Optional overrides
* YDC_API_URL=https://api-staging.you.com/mcp YDC_API_KEY=... bun run search-size.ts
* YDC_NUM_QUERIES=100 YDC_WINDOW_MIN=25 YDC_OUT=results.jsonl bun run search-size.ts
* ```
*
* ## What it does
*
* Runs `YDC_NUM_QUERIES` (default 100) `you-search` calls spread across a
* `YDC_WINDOW_MIN`-minute (default 25) window. Each call is placed at a
* jittered time slot so the gaps between calls vary while the total span stays
* close to the requested window. For every call one JSON line is appended to
* `YDC_OUT` (default `results.jsonl`):
*
* { index, scheduledOffsetMs, actualOffsetMs, delayBeforeMs, iso, durationMs,
* bytes, chars, contentBlocks, isError, error, perField }
*
* `perField` is a UTF-8 JSON byte breakdown of each top-level field of the
* `CallToolResult` so you can see what contributes to the total.
*
* Auth is sent as `Authorization: Bearer <YDC_API_KEY>`, matching the You.com
* hosted MCP server's API-key auth path. A fresh transport + client is created
* per call, matching the server's per-request lifecycle.
*/
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client'
import { appendFile } from 'node:fs/promises'
const SERVER_URL = process.env.YDC_API_URL ?? 'https://api.you.com/mcp'
const API_KEY = process.env.YDC_API_KEY
const NUM_QUERIES = Number(process.env.YDC_NUM_QUERIES ?? 100)
const WINDOW_MIN = Number(process.env.YDC_WINDOW_MIN ?? 25)
const OUT = process.env.YDC_OUT ?? 'results.jsonl'
const QUERY =
'What is the top story on Hacker News right now? You must use the search tool. Answer with the exact title and URL.'
if (!API_KEY) {
console.error('Error: YDC_API_KEY env var is required')
process.exit(1)
}
const byteSize = (v: unknown): number => Buffer.byteLength(JSON.stringify(v), 'utf8')
const sleep = (ms: number): Promise<void> => new Promise((r) => setTimeout(r, ms))
/**
* Build `n` jittered offsets in [0, windowMs) that sum to ~windowMs and are
* monotonically increasing. Gaps vary uniformly in [base*0.4, base*1.6].
*/
function buildSchedule(n: number, windowMs: number): number[] {
const base = windowMs / n
const raw: number[] = []
let acc = 0
for (let i = 0; i < n; i++) {
const gap = i === 0 ? 0 : base * (0.4 + Math.random() * 1.2)
acc += gap
raw.push(acc)
}
// Normalize so the last slot lands exactly at windowMs (minus a hair so the
// final call still has time to complete within the window).
const scale = (windowMs - base * 0.5) / raw[raw.length - 1]
return raw.map((t) => Math.round(t * scale))
}
interface CallRecord {
index: number
scheduledOffsetMs: number
actualOffsetMs: number
delayBeforeMs: number
iso: string
durationMs: number
bytes: number
chars: number
contentBlocks: number
isError: boolean
error: string | null
perField: Record<string, number>
}
const runOnce = async (index: number): Promise<CallRecord> => {
const t0 = Date.now()
const transport = new StreamableHTTPClientTransport(new URL(SERVER_URL), {
requestInit: { headers: { Authorization: `Bearer ${API_KEY}` } },
})
const client = new Client({ name: 'search-size-script', version: '1.0.0' })
try {
await client.connect(transport)
const result = await client.callTool({ name: 'you-search', arguments: { query: QUERY } })
const durationMs = Date.now() - t0
const perField: Record<string, number> = {}
for (const [key, value] of Object.entries(result)) {
perField[key] = value === undefined ? 0 : byteSize(value)
}
return {
index,
scheduledOffsetMs: 0,
actualOffsetMs: 0,
delayBeforeMs: 0,
iso: new Date().toISOString(),
durationMs,
bytes: byteSize(result),
chars: JSON.stringify(result).length,
contentBlocks: result.content?.length ?? 0,
isError: result.isError ?? false,
error: null,
perField,
}
} catch (err) {
return {
index,
scheduledOffsetMs: 0,
actualOffsetMs: 0,
delayBeforeMs: 0,
iso: new Date().toISOString(),
durationMs: Date.now() - t0,
bytes: 0,
chars: 0,
contentBlocks: 0,
isError: true,
error: err instanceof Error ? `${err.name}: ${err.message}` : String(err),
perField: {},
}
} finally {
await client.close().catch(() => {})
await transport.close().catch(() => {})
}
}
const main = async (): Promise<void> => {
const windowMs = WINDOW_MIN * 60_000
const schedule = buildSchedule(NUM_QUERIES, windowMs)
const spanMin = (schedule[schedule.length - 1] / 60_000).toFixed(2)
console.log(
`Running ${NUM_QUERIES} queries over ~${spanMin} min (${WINDOW_MIN} min window) -> ${OUT}`,
)
const startWall = Date.now()
let prev = 0
for (let i = 0; i < NUM_QUERIES; i++) {
const target = startWall + schedule[i]
const now = Date.now()
const delayBeforeMs = Math.max(0, target - now)
await sleep(delayBeforeMs)
const rec = await runOnce(i)
rec.scheduledOffsetMs = schedule[i]
rec.actualOffsetMs = Date.now() - startWall
rec.delayBeforeMs = delayBeforeMs
const line = JSON.stringify(rec)
await appendFile(OUT, line + '\n', 'utf8')
const pct = ((i + 1) / NUM_QUERIES * 100).toFixed(0)
console.log(
`[${pct.padStart(3)}%] #${(i + 1).toString().padStart(3)}/${NUM_QUERIES} ` +
`bytes=${rec.bytes} blocks=${rec.contentBlocks} err=${rec.error ?? '-'} ` +
`(${(rec.actualOffsetMs / 60_000).toFixed(2)}m)`,
)
prev = rec.actualOffsetMs
}
void prev
console.log(`Done. Wrote ${NUM_QUERIES} records to ${OUT}`)
}
await main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment