[{"data":1,"prerenderedAt":2381},["ShallowReactive",2],{"navigation":3,"\u002Freference\u002Fevents":169,"\u002Freference\u002Fevents-surround":2376},[4,28,85,127,157],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":23,"path":24,"stem":25,"icon":26},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture","i-lucide-layers","i-lucide-rocket",{"title":29,"icon":30,"path":31,"stem":32,"children":33,"page":84},"Concepts","i-lucide-lightbulb","\u002Fconcepts","2.concepts",[34,39,44,49,54,59,64,69,74,79],{"title":35,"path":36,"stem":37,"icon":38},"Durable agents","\u002Fconcepts\u002Fdurable-agents","2.concepts\u002F1.durable-agents","i-lucide-infinity",{"title":40,"path":41,"stem":42,"icon":43},"Glossary","\u002Fconcepts\u002Fglossary","2.concepts\u002F10.glossary","i-lucide-book-a",{"title":45,"path":46,"stem":47,"icon":48},"Restate in five minutes","\u002Fconcepts\u002Frestate-primer","2.concepts\u002F2.restate-primer","i-lucide-cpu",{"title":50,"path":51,"stem":52,"icon":53},"Entities & addressing","\u002Fconcepts\u002Fentities-addressing","2.concepts\u002F3.entities-addressing","i-lucide-at-sign",{"title":55,"path":56,"stem":57,"icon":58},"Timelines & events","\u002Fconcepts\u002Ftimelines-events","2.concepts\u002F4.timelines-events","i-lucide-list-ordered",{"title":60,"path":61,"stem":62,"icon":63},"Projections & the catalog","\u002Fconcepts\u002Fprojections-catalog","2.concepts\u002F5.projections-catalog","i-lucide-database",{"title":65,"path":66,"stem":67,"icon":68},"Workspaces & execution","\u002Fconcepts\u002Fworkspaces","2.concepts\u002F6.workspaces","i-lucide-terminal",{"title":70,"path":71,"stem":72,"icon":73},"Harnesses","\u002Fconcepts\u002Fharnesses","2.concepts\u002F7.harnesses","i-lucide-plug",{"title":75,"path":76,"stem":77,"icon":78},"Multi-agent patterns","\u002Fconcepts\u002Fmulti-agent","2.concepts\u002F8.multi-agent","i-lucide-network",{"title":80,"path":81,"stem":82,"icon":83},"Lifecycle & control","\u002Fconcepts\u002Flifecycle","2.concepts\u002F9.lifecycle","i-lucide-sliders-horizontal",false,{"title":86,"icon":87,"path":88,"stem":89,"children":90,"page":84},"Guides","i-lucide-book-open","\u002Fguides","3.guides",[91,106],{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":84},"Agents","i-lucide-bot","\u002Fguides\u002Fagents","3.guides\u002F1.agents",[97,101],{"title":98,"path":99,"stem":100,"icon":93},"Building agents","\u002Fguides\u002Fagents\u002Fbuilding-agents","3.guides\u002F1.agents\u002F1.building-agents",{"title":102,"path":103,"stem":104,"icon":105},"Frontend integration","\u002Fguides\u002Fagents\u002Ffrontend-integration","3.guides\u002F1.agents\u002F2.frontend-integration","i-lucide-monitor",{"title":107,"icon":108,"path":109,"stem":110,"children":111,"page":84},"Operations","i-lucide-server-cog","\u002Fguides\u002Foperations","3.guides\u002F2.operations",[112,117,122],{"title":113,"path":114,"stem":115,"icon":116},"Self-hosting","\u002Fguides\u002Foperations\u002Fself-hosting","3.guides\u002F2.operations\u002F1.self-hosting","i-lucide-server",{"title":118,"path":119,"stem":120,"icon":121},"Auth & API keys","\u002Fguides\u002Foperations\u002Fauth-api-keys","3.guides\u002F2.operations\u002F2.auth-api-keys","i-lucide-key-round",{"title":123,"path":124,"stem":125,"icon":126},"Backup & restore","\u002Fguides\u002Foperations\u002Fbackup-restore","3.guides\u002F2.operations\u002F3.backup-restore","i-lucide-database-backup",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":84},"Reference","i-lucide-book-marked","\u002Freference","4.reference",[133,138,143,148,153],{"title":134,"path":135,"stem":136,"icon":137},"Event schema","\u002Freference\u002Fevents","4.reference\u002F1.events","i-lucide-list-tree",{"title":139,"path":140,"stem":141,"icon":142},"Addressing","\u002Freference\u002Faddressing","4.reference\u002F2.addressing","i-lucide-map-pin",{"title":144,"path":145,"stem":146,"icon":147},"Gateway HTTP API","\u002Freference\u002Fgateway-api","4.reference\u002F3.gateway-api","i-lucide-webhook",{"title":149,"path":150,"stem":151,"icon":152},"CLI","\u002Freference\u002Fcli","4.reference\u002F4.cli","i-lucide-square-terminal",{"title":154,"path":155,"stem":156,"icon":83},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F5.configuration",{"title":158,"path":159,"stem":160,"children":161,"icon":163},"Contributing","\u002Fcontributing","5.contributing\u002F1.index",[162,164],{"title":158,"path":159,"stem":160,"icon":163},"i-lucide-git-pull-request",{"title":165,"path":166,"stem":167,"icon":168},"The package map","\u002Fcontributing\u002Fpackage-map","5.contributing\u002F2.package-map","i-lucide-boxes",{"id":170,"title":134,"body":171,"description":2369,"extension":2370,"links":2371,"meta":2372,"navigation":2373,"path":135,"seo":2374,"stem":136,"__hash__":2375},"docs\u002F4.reference\u002F1.events.md",{"type":172,"value":173,"toc":2343},"minimark",[174,194,210,225,230,236,352,356,361,396,406,423,427,616,619,622,687,710,712,825,860,862,940,953,955,999,1009,1011,1073,1078,1080,1123,1130,1132,1191,1209,1211,1255,1272,1274,1339,1348,1350,1442,1450,1452,1527,1533,1537,1648,1664,1666,1706,1725,1727,1763,1774,1778,1782,1795,1861,1865,1972,1975,1986,2073,2076,2129,2136,2214,2218,2223,2339],[175,176,177,178,182,183,186,187,190,191,193],"p",{},"The canonical event is the single vocabulary everything in teaspill speaks: both ",[179,180,181],"a",{"href":71},"harnesses"," emit it, the platform appends it to an ",[179,184,185],{"href":51},"entity","'s ",[179,188,189],{"href":56},"timeline",", and the frontend SDK materializes it. This page is the field-by-field specification; for the mental model, read ",[179,192,55],{"href":56},".",[175,195,196,197,201,202,205,206,209],{},"The schema is defined in ",[198,199,200],"code",{},"@teaspill\u002Fschema"," (",[198,203,204],{},"events.ts"," and ",[198,207,208],{},"deltas.ts",").",[211,212,213],"note",{},[175,214,215,216,220,221,224],{},"The v1 event schema is ",[217,218,219],"strong",{},"stable: additive-only within v1",". New optional fields and new event types may be added; a breaking change to an existing field bumps the envelope ",[198,222,223],{},"v"," and ships a migration.",[226,227,229],"h2",{"id":228},"envelope","Envelope",[175,231,232,233,193],{},"Every timeline event is ",[198,234,235],{},"{ v, entityId, seq, ts, type, payload }",[237,238,239,255],"table",{},[240,241,242],"thead",{},[243,244,245,249,252],"tr",{},[246,247,248],"th",{},"Field",[246,250,251],{},"Type",[246,253,254],{},"Meaning",[256,257,258,274,293,306,324,337],"tbody",{},[243,259,260,265,271],{},[261,262,263],"td",{},[198,264,223],{},[261,266,267,270],{},[198,268,269],{},"1"," (literal)",[261,272,273],{},"Schema version. Bumps only on a breaking change.",[243,275,276,281,284],{},[261,277,278],{},[198,279,280],{},"entityId",[261,282,283],{},"string",[261,285,286,287,290,291,209],{},"Canonical entity URL (",[198,288,289],{},"\u002Ft\u002F\u003Ctenant>\u002Fa\u002F\u003Ctype>\u002F\u003Cid>"," — see ",[179,292,139],{"href":140},[243,294,295,300,303],{},[261,296,297],{},[198,298,299],{},"seq",[261,301,302],{},"int ≥ 0",[261,304,305],{},"0-based, gapless, monotonic per entity. The ordering authority.",[243,307,308,313,316],{},[261,309,310],{},[198,311,312],{},"ts",[261,314,315],{},"ISO 8601 (with offset)",[261,317,318,319,321,322,193],{},"Informational timestamp. Ordering authority is ",[198,320,299],{},", not ",[198,323,312],{},[243,325,326,331,334],{},[261,327,328],{},[198,329,330],{},"type",[261,332,333],{},"one of 15",[261,335,336],{},"Discriminant (the table below).",[243,338,339,344,347],{},[261,340,341],{},[198,342,343],{},"payload",[261,345,346],{},"per-type",[261,348,349,350,193],{},"Shape depends on ",[198,351,330],{},[226,353,355],{"id":354},"the-seq-guarantees","The seq guarantees",[175,357,358,360],{},[198,359,299],{}," is the backbone of the timeline. Three rules hold for every entity:",[362,363,364,379,389],"ul",{},[365,366,367,368,371,372,375,376,193],"li",{},"The ",[217,369,370],{},"first"," event has ",[198,373,374],{},"seq === 0"," and is always ",[198,377,378],{},"entity_spawned",[365,380,381,384,385,388],{},[217,382,383],{},"Every"," event occupies a slot: a ",[198,386,387],{},"state_snapshot"," at seq N consumes N like any other event. Nothing skips a number.",[365,390,391,393,394,193],{},[198,392,299],{}," is assigned server-side by the one component that owns the entity's history, so numbering is gapless by construction. Producers never pick their own ",[198,395,299],{},[175,397,398,399,401,402,405],{},"Because ",[198,400,299],{}," is 0-based and gapless, a reader can always answer \"did I miss anything?\" — a gap is drift, never normal. A ",[179,403,404],{"href":56},"snapshot"," at seq N lets a reader join late and consume from N+1 without replaying earlier events.",[407,408,409],"caution",{},[175,410,411,412,415,416,418,419,209],{},"Token deltas are ",[217,413,414],{},"not"," canonical events and carry no ",[198,417,299],{},". They ride a sibling stream (see ",[179,420,422],{"href":421},"#token-deltas","Token deltas",[226,424,426],{"id":425},"the-fifteen-event-types","The fifteen event types",[237,428,429,438],{},[240,430,431],{},[243,432,433,435],{},[246,434,251],{},[246,436,437],{},"Purpose",[256,439,440,449,467,487,497,507,517,526,536,549,559,572,582,592,606],{},[243,441,442,446],{},[261,443,444],{},[198,445,378],{},[261,447,448],{},"Always seq 0. The entity's first event.",[243,450,451,456],{},[261,452,453],{},[198,454,455],{},"run_started",[261,457,458,459,462,463,466],{},"A ",[179,460,461],{"href":36},"wake"," began. Carries ",[198,464,465],{},"runId",", wake source, harness kind, model.",[243,468,469,474],{},[261,470,471],{},[198,472,473],{},"message",[261,475,476,477,480,481,480,484,209],{},"A finalized conversation message (",[198,478,479],{},"user"," \u002F ",[198,482,483],{},"assistant",[198,485,486],{},"system_note",[243,488,489,494],{},[261,490,491],{},[198,492,493],{},"tool_call",[261,495,496],{},"The model invoked a tool.",[243,498,499,504],{},[261,500,501],{},[198,502,503],{},"tool_result",[261,505,506],{},"A tool returned or errored.",[243,508,509,514],{},[261,510,511],{},[198,512,513],{},"reasoning",[261,515,516],{},"Finalized thinking. Display-only — never re-projected into provider context.",[243,518,519,523],{},[261,520,521],{},[198,522,387],{},[261,524,525],{},"The complete entity state as of this event's seq (inclusive).",[243,527,528,533],{},[261,529,530],{},[198,531,532],{},"summarization",[261,534,535],{},"A context-truncation boundary.",[243,537,538,543],{},[261,539,540],{},[198,541,542],{},"control",[261,544,458,545,548],{},[179,546,547],{"href":81},"control verb"," was applied.",[243,550,551,556],{},[261,552,553],{},[198,554,555],{},"error",[261,557,558],{},"An error occurred.",[243,560,561,566],{},[261,562,563],{},[198,564,565],{},"run_finished",[261,567,568,569,193],{},"A wake ended. Carries outcome and token ",[198,570,571],{},"usage",[243,573,574,579],{},[261,575,576],{},[198,577,578],{},"child_spawned",[261,580,581],{},"This entity spawned a child.",[243,583,584,589],{},[261,585,586],{},[198,587,588],{},"child_finished",[261,590,591],{},"A child reported completion back to this entity.",[243,593,594,599],{},[261,595,596],{},[198,597,598],{},"archived",[261,600,601,602,605],{},"Episode-terminal ",[179,603,604],{"href":81},"archive"," marker. Not globally terminal.",[243,607,608,613],{},[261,609,610],{},[198,611,612],{},"opaque",[261,614,615],{},"A lossless carrier for foreign records with no canonical home.",[175,617,618],{},"Each subsection below gives the payload shape and the notes you need to consume it.",[620,621,378],"h3",{"id":378},[623,624,628],"pre",{"className":625,"code":626,"language":312,"meta":627,"style":627},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ entityType: string, parentId: string | null, spawnArgs?: Json, workspaceRef?: string }\n","",[198,629,630],{"__ignoreMap":627},[631,632,635,639,643,646,650,653,656,658,660,663,666,669,672,675,677,680,682,684],"span",{"class":633,"line":634},"line",1,[631,636,638],{"class":637},"sMK4o","{",[631,640,642],{"class":641},"sBMFI"," entityType",[631,644,645],{"class":637},":",[631,647,649],{"class":648},"sTEyZ"," string",[631,651,652],{"class":637},",",[631,654,655],{"class":641}," parentId",[631,657,645],{"class":637},[631,659,649],{"class":648},[631,661,662],{"class":637}," |",[631,664,665],{"class":637}," null,",[631,667,668],{"class":648}," spawnArgs",[631,670,671],{"class":637},"?:",[631,673,674],{"class":648}," Json",[631,676,652],{"class":637},[631,678,679],{"class":648}," workspaceRef",[631,681,671],{"class":637},[631,683,649],{"class":648},[631,685,686],{"class":637}," }\n",[175,688,689,690,693,694,697,698,701,702,705,706,709],{},"Always seq 0. ",[198,691,692],{},"parentId"," is the parent entity URL, or ",[198,695,696],{},"null"," for a root entity. ",[198,699,700],{},"workspaceRef"," is the ",[179,703,704],{"href":66},"workspace"," key (",[198,707,708],{},"\u003Ctenant>\u002F\u003Cname>",") chosen at spawn and never switched afterward.",[620,711,455],{"id":455},[623,713,715],{"className":625,"code":714,"language":312,"meta":627,"style":627},"{\n  runId: string,\n  wake: { source: WakeSource, from?: string },\n  harness: \"native\" | \"casdk\",\n  model?: string,\n  detail?: Json,\n}\n",[198,716,717,722,735,766,795,807,819],{"__ignoreMap":627},[631,718,719],{"class":633,"line":634},[631,720,721],{"class":637},"{\n",[631,723,725,728,730,732],{"class":633,"line":724},2,[631,726,727],{"class":641},"  runId",[631,729,645],{"class":637},[631,731,649],{"class":648},[631,733,734],{"class":637},",\n",[631,736,738,741,743,746,749,751,754,756,759,761,763],{"class":633,"line":737},3,[631,739,740],{"class":641},"  wake",[631,742,645],{"class":637},[631,744,745],{"class":637}," {",[631,747,748],{"class":641}," source",[631,750,645],{"class":637},[631,752,753],{"class":648}," WakeSource",[631,755,652],{"class":637},[631,757,758],{"class":648}," from",[631,760,671],{"class":637},[631,762,649],{"class":648},[631,764,765],{"class":637}," },\n",[631,767,769,772,774,777,781,784,786,788,791,793],{"class":633,"line":768},4,[631,770,771],{"class":641},"  harness",[631,773,645],{"class":637},[631,775,776],{"class":637}," \"",[631,778,780],{"class":779},"sfazB","native",[631,782,783],{"class":637},"\"",[631,785,662],{"class":637},[631,787,776],{"class":637},[631,789,790],{"class":779},"casdk",[631,792,783],{"class":637},[631,794,734],{"class":637},[631,796,798,801,803,805],{"class":633,"line":797},5,[631,799,800],{"class":648},"  model",[631,802,671],{"class":637},[631,804,649],{"class":648},[631,806,734],{"class":637},[631,808,810,813,815,817],{"class":633,"line":809},6,[631,811,812],{"class":648},"  detail",[631,814,671],{"class":637},[631,816,674],{"class":648},[631,818,734],{"class":637},[631,820,822],{"class":633,"line":821},7,[631,823,824],{"class":637},"}\n",[175,826,827,829,830,833,834,837,838,837,840,837,843,837,846,837,848,851,852,855,856,859],{},[198,828,465],{}," is unique per wake; every event the run produces carries it. ",[198,831,832],{},"wake.source"," is one of ",[198,835,836],{},"spawn",", ",[198,839,473],{},[198,841,842],{},"steer_degraded",[198,844,845],{},"cron",[198,847,542],{},[198,849,850],{},"system",". ",[198,853,854],{},"wake.from"," is the sender entity URL when the wake came from another entity. ",[198,857,858],{},"detail"," carries harness-specific extras (informational only).",[620,861,473],{"id":473},[623,863,865],{"className":625,"code":864,"language":312,"meta":627,"style":627},"{ id: string, runId?: string, role: \"user\" | \"assistant\" | \"system_note\", content: ContentBlock[], from?: string }\n",[198,866,867],{"__ignoreMap":627},[631,868,869,871,874,876,878,880,883,885,887,889,892,894,896,898,900,902,904,906,908,910,912,914,916,918,921,923,926,930,932,934,936,938],{"class":633,"line":634},[631,870,638],{"class":637},[631,872,873],{"class":641}," id",[631,875,645],{"class":637},[631,877,649],{"class":648},[631,879,652],{"class":637},[631,881,882],{"class":648}," runId",[631,884,671],{"class":637},[631,886,649],{"class":648},[631,888,652],{"class":637},[631,890,891],{"class":641}," role",[631,893,645],{"class":637},[631,895,776],{"class":637},[631,897,479],{"class":779},[631,899,783],{"class":637},[631,901,662],{"class":637},[631,903,776],{"class":637},[631,905,483],{"class":779},[631,907,783],{"class":637},[631,909,662],{"class":637},[631,911,776],{"class":637},[631,913,486],{"class":779},[631,915,783],{"class":637},[631,917,652],{"class":637},[631,919,920],{"class":641}," content",[631,922,645],{"class":637},[631,924,925],{"class":648}," ContentBlock",[631,927,929],{"class":928},"swJcz","[]",[631,931,652],{"class":637},[631,933,758],{"class":648},[631,935,671],{"class":637},[631,937,649],{"class":648},[631,939,686],{"class":637},[175,941,942,945,946,948,949,952],{},[198,943,944],{},"id"," is the stable message id that token deltas reference. ",[198,947,486],{}," is a platform-authored annotation (for example, \"child x finished\") — it is context-bearing but rendered to providers as a marked user message, never the API-level system prompt. ",[198,950,951],{},"from"," is the sender entity URL for inter-agent messages.",[620,954,493],{"id":493},[623,956,958],{"className":625,"code":957,"language":312,"meta":627,"style":627},"{ runId: string, toolUseId: string, name: string, input: Json }\n",[198,959,960],{"__ignoreMap":627},[631,961,962,964,966,968,970,972,975,977,979,981,984,986,988,990,993,995,997],{"class":633,"line":634},[631,963,638],{"class":637},[631,965,882],{"class":641},[631,967,645],{"class":637},[631,969,649],{"class":648},[631,971,652],{"class":637},[631,973,974],{"class":641}," toolUseId",[631,976,645],{"class":637},[631,978,649],{"class":648},[631,980,652],{"class":637},[631,982,983],{"class":641}," name",[631,985,645],{"class":637},[631,987,649],{"class":648},[631,989,652],{"class":637},[631,991,992],{"class":641}," input",[631,994,645],{"class":637},[631,996,674],{"class":648},[631,998,686],{"class":637},[175,1000,1001,1004,1005,1008],{},[198,1002,1003],{},"toolUseId"," is the provider tool-use id — the third component of the tool idempotency key ",[198,1006,1007],{},"(entityId, runId, toolUseId)"," that makes tool execution exactly-once.",[620,1010,503],{"id":503},[623,1012,1014],{"className":625,"code":1013,"language":312,"meta":627,"style":627},"{ runId: string, toolUseId: string, name?: string, content: ContentBlock[], detail?: Json, isError: boolean }\n",[198,1015,1016],{"__ignoreMap":627},[631,1017,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1057,1059,1061,1063,1066,1068,1071],{"class":633,"line":634},[631,1019,638],{"class":637},[631,1021,882],{"class":641},[631,1023,645],{"class":637},[631,1025,649],{"class":648},[631,1027,652],{"class":637},[631,1029,974],{"class":641},[631,1031,645],{"class":637},[631,1033,649],{"class":648},[631,1035,652],{"class":637},[631,1037,983],{"class":648},[631,1039,671],{"class":637},[631,1041,649],{"class":648},[631,1043,652],{"class":637},[631,1045,920],{"class":641},[631,1047,645],{"class":637},[631,1049,925],{"class":648},[631,1051,929],{"class":928},[631,1053,652],{"class":637},[631,1055,1056],{"class":648}," detail",[631,1058,671],{"class":637},[631,1060,674],{"class":648},[631,1062,652],{"class":637},[631,1064,1065],{"class":641}," isError",[631,1067,645],{"class":637},[631,1069,1070],{"class":648}," boolean",[631,1072,686],{"class":637},[175,1074,1075,1077],{},[198,1076,858],{}," is structured result data (diff, exit code, a stream reference, …) for rich renderers; it is populated by the in-process tool layer.",[620,1079,513],{"id":513},[623,1081,1083],{"className":625,"code":1082,"language":312,"meta":627,"style":627},"{ id: string, runId?: string, text: string, encrypted?: string }\n",[198,1084,1085],{"__ignoreMap":627},[631,1086,1087,1089,1091,1093,1095,1097,1099,1101,1103,1105,1108,1110,1112,1114,1117,1119,1121],{"class":633,"line":634},[631,1088,638],{"class":637},[631,1090,873],{"class":641},[631,1092,645],{"class":637},[631,1094,649],{"class":648},[631,1096,652],{"class":637},[631,1098,882],{"class":648},[631,1100,671],{"class":637},[631,1102,649],{"class":648},[631,1104,652],{"class":637},[631,1106,1107],{"class":641}," text",[631,1109,645],{"class":637},[631,1111,649],{"class":648},[631,1113,652],{"class":637},[631,1115,1116],{"class":648}," encrypted",[631,1118,671],{"class":637},[631,1120,649],{"class":648},[631,1122,686],{"class":637},[175,1124,1125,1126,1129],{},"Display-only history. Reasoning is never projected back into provider context (thinking signatures are unforgeable), and context assembly skips it. ",[198,1127,1128],{},"encrypted"," carries an opaque redacted-thinking payload when the provider supplies one.",[620,1131,387],{"id":387},[623,1133,1135],{"className":625,"code":1134,"language":312,"meta":627,"style":627},"{ state: Json, reason: \"periodic\" | \"pre_archive\" | \"recovery\", historyHole?: boolean }\n",[198,1136,1137],{"__ignoreMap":627},[631,1138,1139,1141,1144,1146,1148,1150,1153,1155,1157,1160,1162,1164,1166,1169,1171,1173,1175,1178,1180,1182,1185,1187,1189],{"class":633,"line":634},[631,1140,638],{"class":637},[631,1142,1143],{"class":641}," state",[631,1145,645],{"class":637},[631,1147,674],{"class":648},[631,1149,652],{"class":637},[631,1151,1152],{"class":641}," reason",[631,1154,645],{"class":637},[631,1156,776],{"class":637},[631,1158,1159],{"class":779},"periodic",[631,1161,783],{"class":637},[631,1163,662],{"class":637},[631,1165,776],{"class":637},[631,1167,1168],{"class":779},"pre_archive",[631,1170,783],{"class":637},[631,1172,662],{"class":637},[631,1174,776],{"class":637},[631,1176,1177],{"class":779},"recovery",[631,1179,783],{"class":637},[631,1181,652],{"class":637},[631,1183,1184],{"class":648}," historyHole",[631,1186,671],{"class":637},[631,1188,1070],{"class":648},[631,1190,686],{"class":637},[175,1192,1193,1194,1197,1198,1201,1202,1204,1205,1208],{},"A snapshot at seq N asserts: ",[198,1195,1196],{},"state"," is the complete materialization of this entity after consuming every event with ",[198,1199,1200],{},"seq \u003C= N",". To fast-join, initialize from ",[198,1203,1196],{}," and consume from N+1. ",[198,1206,1207],{},"historyHole: true"," marks a recovery snapshot after catastrophic stream loss — a marked gap where earlier events may be missing; consumers must not gap-check across it.",[620,1210,532],{"id":532},[623,1212,1214],{"className":625,"code":1213,"language":312,"meta":627,"style":627},"{ runId?: string, summary: string, replacesThroughSeq: number, detail?: Json }\n",[198,1215,1216],{"__ignoreMap":627},[631,1217,1218,1220,1222,1224,1226,1228,1231,1233,1235,1237,1240,1242,1245,1247,1249,1251,1253],{"class":633,"line":634},[631,1219,638],{"class":637},[631,1221,882],{"class":648},[631,1223,671],{"class":637},[631,1225,649],{"class":648},[631,1227,652],{"class":637},[631,1229,1230],{"class":641}," summary",[631,1232,645],{"class":637},[631,1234,649],{"class":648},[631,1236,652],{"class":637},[631,1238,1239],{"class":641}," replacesThroughSeq",[631,1241,645],{"class":637},[631,1243,1244],{"class":648}," number",[631,1246,652],{"class":637},[631,1248,1056],{"class":648},[631,1250,671],{"class":637},[631,1252,674],{"class":648},[631,1254,686],{"class":637},[175,1256,1257,1258,1261,1262,851,1265,1268,1269,1271],{},"A context-truncation boundary. For context assembly, context-bearing events with ",[198,1259,1260],{},"seq \u003C= replacesThroughSeq"," are superseded by ",[198,1263,1264],{},"summary",[198,1266,1267],{},"replacesThroughSeq"," is always less than the event's own seq. It does ",[217,1270,414],{}," delete or compact the stream — history stays intact for UIs; only the model-facing projection folds.",[620,1273,542],{"id":542},[623,1275,1277],{"className":625,"code":1276,"language":312,"meta":627,"style":627},"{ verb: \"interrupt\" | \"pause\" | \"resume\" | \"archive\", reason?: string, from?: string }\n",[198,1278,1279],{"__ignoreMap":627},[631,1280,1281,1283,1286,1288,1290,1293,1295,1297,1299,1302,1304,1306,1308,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337],{"class":633,"line":634},[631,1282,638],{"class":637},[631,1284,1285],{"class":641}," verb",[631,1287,645],{"class":637},[631,1289,776],{"class":637},[631,1291,1292],{"class":779},"interrupt",[631,1294,783],{"class":637},[631,1296,662],{"class":637},[631,1298,776],{"class":637},[631,1300,1301],{"class":779},"pause",[631,1303,783],{"class":637},[631,1305,662],{"class":637},[631,1307,776],{"class":637},[631,1309,1310],{"class":779},"resume",[631,1312,783],{"class":637},[631,1314,662],{"class":637},[631,1316,776],{"class":637},[631,1318,604],{"class":779},[631,1320,783],{"class":637},[631,1322,652],{"class":637},[631,1324,1152],{"class":648},[631,1326,671],{"class":637},[631,1328,649],{"class":648},[631,1330,652],{"class":637},[631,1332,758],{"class":648},[631,1334,671],{"class":637},[631,1336,649],{"class":648},[631,1338,686],{"class":637},[175,1340,1341,1342,1344,1345,1347],{},"Records that a ",[179,1343,547],{"href":81}," was applied. ",[198,1346,951],{}," is the requesting principal or entity when known.",[620,1349,555],{"id":555},[623,1351,1353],{"className":625,"code":1352,"language":312,"meta":627,"style":627},"{ runId?: string, code?: string, message: string, source: \"harness\" | \"tool\" | \"platform\" | \"provider\" | \"projection\", detail?: Json }\n",[198,1354,1355],{"__ignoreMap":627},[631,1356,1357,1359,1361,1363,1365,1367,1370,1372,1374,1376,1379,1381,1383,1385,1387,1389,1391,1394,1396,1398,1400,1403,1405,1407,1409,1412,1414,1416,1418,1421,1423,1425,1427,1430,1432,1434,1436,1438,1440],{"class":633,"line":634},[631,1358,638],{"class":637},[631,1360,882],{"class":648},[631,1362,671],{"class":637},[631,1364,649],{"class":648},[631,1366,652],{"class":637},[631,1368,1369],{"class":648}," code",[631,1371,671],{"class":637},[631,1373,649],{"class":648},[631,1375,652],{"class":637},[631,1377,1378],{"class":641}," message",[631,1380,645],{"class":637},[631,1382,649],{"class":648},[631,1384,652],{"class":637},[631,1386,748],{"class":641},[631,1388,645],{"class":637},[631,1390,776],{"class":637},[631,1392,1393],{"class":779},"harness",[631,1395,783],{"class":637},[631,1397,662],{"class":637},[631,1399,776],{"class":637},[631,1401,1402],{"class":779},"tool",[631,1404,783],{"class":637},[631,1406,662],{"class":637},[631,1408,776],{"class":637},[631,1410,1411],{"class":779},"platform",[631,1413,783],{"class":637},[631,1415,662],{"class":637},[631,1417,776],{"class":637},[631,1419,1420],{"class":779},"provider",[631,1422,783],{"class":637},[631,1424,662],{"class":637},[631,1426,776],{"class":637},[631,1428,1429],{"class":779},"projection",[631,1431,783],{"class":637},[631,1433,652],{"class":637},[631,1435,1056],{"class":648},[631,1437,671],{"class":637},[631,1439,674],{"class":648},[631,1441,686],{"class":637},[175,1443,1444,1446,1447,1449],{},[198,1445,198],{}," is a stable machine-readable code when available; ",[198,1448,473],{}," is always present.",[620,1451,565],{"id":565},[623,1453,1455],{"className":625,"code":1454,"language":312,"meta":627,"style":627},"{ runId: string, outcome: \"success\" | \"error\" | \"interrupted\", usage: RunUsage, durationMs?: number, detail?: Json }\n",[198,1456,1457],{"__ignoreMap":627},[631,1458,1459,1461,1463,1465,1467,1469,1472,1474,1476,1479,1481,1483,1485,1487,1489,1491,1493,1496,1498,1500,1503,1505,1508,1510,1513,1515,1517,1519,1521,1523,1525],{"class":633,"line":634},[631,1460,638],{"class":637},[631,1462,882],{"class":641},[631,1464,645],{"class":637},[631,1466,649],{"class":648},[631,1468,652],{"class":637},[631,1470,1471],{"class":641}," outcome",[631,1473,645],{"class":637},[631,1475,776],{"class":637},[631,1477,1478],{"class":779},"success",[631,1480,783],{"class":637},[631,1482,662],{"class":637},[631,1484,776],{"class":637},[631,1486,555],{"class":779},[631,1488,783],{"class":637},[631,1490,662],{"class":637},[631,1492,776],{"class":637},[631,1494,1495],{"class":779},"interrupted",[631,1497,783],{"class":637},[631,1499,652],{"class":637},[631,1501,1502],{"class":641}," usage",[631,1504,645],{"class":637},[631,1506,1507],{"class":648}," RunUsage",[631,1509,652],{"class":637},[631,1511,1512],{"class":648}," durationMs",[631,1514,671],{"class":637},[631,1516,1244],{"class":648},[631,1518,652],{"class":637},[631,1520,1056],{"class":648},[631,1522,671],{"class":637},[631,1524,674],{"class":648},[631,1526,686],{"class":637},[175,1528,1529,1530,1532],{},"Ends a wake. ",[198,1531,571],{}," (below) is the authoritative token accounting for the run.",[620,1534,1536],{"id":1535},"child_spawned-child_finished","child_spawned \u002F child_finished",[623,1538,1540],{"className":625,"code":1539,"language":312,"meta":627,"style":627},"\u002F\u002F child_spawned\n{ childId: string, childType: string, runId?: string, toolUseId?: string }\n\u002F\u002F child_finished\n{ childId: string, outcome: \"success\" | \"error\" | \"interrupted\" | \"archived\", result?: Json }\n",[198,1541,1542,1548,1586,1591],{"__ignoreMap":627},[631,1543,1544],{"class":633,"line":634},[631,1545,1547],{"class":1546},"sHwdD","\u002F\u002F child_spawned\n",[631,1549,1550,1552,1555,1557,1559,1561,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584],{"class":633,"line":724},[631,1551,638],{"class":637},[631,1553,1554],{"class":641}," childId",[631,1556,645],{"class":637},[631,1558,649],{"class":648},[631,1560,652],{"class":637},[631,1562,1563],{"class":641}," childType",[631,1565,645],{"class":637},[631,1567,649],{"class":648},[631,1569,652],{"class":637},[631,1571,882],{"class":648},[631,1573,671],{"class":637},[631,1575,649],{"class":648},[631,1577,652],{"class":637},[631,1579,974],{"class":648},[631,1581,671],{"class":637},[631,1583,649],{"class":648},[631,1585,686],{"class":637},[631,1587,1588],{"class":633,"line":737},[631,1589,1590],{"class":1546},"\u002F\u002F child_finished\n",[631,1592,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1642,1644,1646],{"class":633,"line":768},[631,1594,638],{"class":637},[631,1596,1554],{"class":641},[631,1598,645],{"class":637},[631,1600,649],{"class":648},[631,1602,652],{"class":637},[631,1604,1471],{"class":641},[631,1606,645],{"class":637},[631,1608,776],{"class":637},[631,1610,1478],{"class":779},[631,1612,783],{"class":637},[631,1614,662],{"class":637},[631,1616,776],{"class":637},[631,1618,555],{"class":779},[631,1620,783],{"class":637},[631,1622,662],{"class":637},[631,1624,776],{"class":637},[631,1626,1495],{"class":779},[631,1628,783],{"class":637},[631,1630,662],{"class":637},[631,1632,776],{"class":637},[631,1634,598],{"class":779},[631,1636,783],{"class":637},[631,1638,652],{"class":637},[631,1640,1641],{"class":648}," result",[631,1643,671],{"class":637},[631,1645,674],{"class":648},[631,1647,686],{"class":637},[175,1649,1650,1652,1653,1656,1657,851,1660,1663],{},[198,1651,588],{}," arrives on a ",[217,1654,1655],{},"later wake"," of the parent — the golden rule of ",[179,1658,1659],{"href":76},"multi-agent coordination",[198,1661,1662],{},"result"," is whatever the child reported back.",[620,1665,598],{"id":598},[623,1667,1669],{"className":625,"code":1668,"language":312,"meta":627,"style":627},"{ reason: \"idle\" | \"requested\", snapshotSeq?: number }\n",[198,1670,1671],{"__ignoreMap":627},[631,1672,1673,1675,1677,1679,1681,1684,1686,1688,1690,1693,1695,1697,1700,1702,1704],{"class":633,"line":634},[631,1674,638],{"class":637},[631,1676,1152],{"class":641},[631,1678,645],{"class":637},[631,1680,776],{"class":637},[631,1682,1683],{"class":779},"idle",[631,1685,783],{"class":637},[631,1687,662],{"class":637},[631,1689,776],{"class":637},[631,1691,1692],{"class":779},"requested",[631,1694,783],{"class":637},[631,1696,652],{"class":637},[631,1698,1699],{"class":648}," snapshotSeq",[631,1701,671],{"class":637},[631,1703,1244],{"class":648},[631,1705,686],{"class":637},[175,1707,1708,1709,1711,1712,1714,1715,1718,1719,1722,1723,193],{},"The episode-terminal marker of an ",[179,1710,604],{"href":81},". A ",[198,1713,387],{}," with ",[198,1716,1717],{},"reason: \"pre_archive\""," immediately precedes it. ",[217,1720,1721],{},"Not globally terminal:"," sending to an archived entity resurrects it — the same identity continues the same seq counter, and the next event is the resurrecting wake's ",[198,1724,455],{},[620,1726,612],{"id":612},[623,1728,1730],{"className":625,"code":1729,"language":312,"meta":627,"style":627},"{ origin: string, kind: string, data: Json }\n",[198,1731,1732],{"__ignoreMap":627},[631,1733,1734,1736,1739,1741,1743,1745,1748,1750,1752,1754,1757,1759,1761],{"class":633,"line":634},[631,1735,638],{"class":637},[631,1737,1738],{"class":641}," origin",[631,1740,645],{"class":637},[631,1742,649],{"class":648},[631,1744,652],{"class":637},[631,1746,1747],{"class":641}," kind",[631,1749,645],{"class":637},[631,1751,649],{"class":648},[631,1753,652],{"class":637},[631,1755,1756],{"class":641}," data",[631,1758,645],{"class":637},[631,1760,674],{"class":648},[631,1762,686],{"class":637},[175,1764,1765,1766,1769,1770,1773],{},"A lossless carrier for foreign records with no clean canonical home — unknown provider artifacts, records from another agent runtime. ",[198,1767,1768],{},"data"," round-trips verbatim; every consumer that does not recognize the ",[198,1771,1772],{},"origin"," may ignore it.",[226,1775,1777],{"id":1776},"shared-fragments","Shared fragments",[620,1779,1781],{"id":1780},"contentblock","ContentBlock",[175,1783,1784,1785,205,1788,1791,1792,193],{},"Message and tool-result content is deliberately small — ",[198,1786,1787],{},"text",[198,1789,1790],{},"image"," only for v1. Anything richer a tool wants to convey goes in ",[198,1793,1794],{},"tool_result.detail",[623,1796,1798],{"className":625,"code":1797,"language":312,"meta":627,"style":627},"{ type: \"text\", text: string }\n{ type: \"image\", mimeType: string, data: string \u002F* base64 *\u002F }\n",[198,1799,1800,1825],{"__ignoreMap":627},[631,1801,1802,1804,1807,1809,1811,1813,1815,1817,1819,1821,1823],{"class":633,"line":634},[631,1803,638],{"class":637},[631,1805,1806],{"class":641}," type",[631,1808,645],{"class":637},[631,1810,776],{"class":637},[631,1812,1787],{"class":779},[631,1814,783],{"class":637},[631,1816,652],{"class":637},[631,1818,1107],{"class":641},[631,1820,645],{"class":637},[631,1822,649],{"class":648},[631,1824,686],{"class":637},[631,1826,1827,1829,1831,1833,1835,1837,1839,1841,1844,1846,1848,1850,1852,1854,1856,1859],{"class":633,"line":724},[631,1828,638],{"class":637},[631,1830,1806],{"class":641},[631,1832,645],{"class":637},[631,1834,776],{"class":637},[631,1836,1790],{"class":779},[631,1838,783],{"class":637},[631,1840,652],{"class":637},[631,1842,1843],{"class":641}," mimeType",[631,1845,645],{"class":637},[631,1847,649],{"class":648},[631,1849,652],{"class":637},[631,1851,1756],{"class":641},[631,1853,645],{"class":637},[631,1855,649],{"class":648},[631,1857,1858],{"class":1546}," \u002F* base64 *\u002F",[631,1860,686],{"class":637},[620,1862,1864],{"id":1863},"runusage","RunUsage",[623,1866,1868],{"className":625,"code":1867,"language":312,"meta":627,"style":627},"{\n  inputTokens: number,        \u002F\u002F uncached input: fresh prompt + cache writes; cache reads excluded\n  cacheReadTokens?: number,   \u002F\u002F tokens read from the prompt cache\n  outputTokens: number,       \u002F\u002F completion tokens\n  contextTokens?: number,     \u002F\u002F cache-inclusive prompt size of the last step (\"% of context used\")\n  steps?: number,\n  costUsd?: number,\n  attempt?: number,           \u002F\u002F retry attempt; keep the latest attempt's numbers only\n}\n",[198,1869,1870,1874,1888,1902,1916,1930,1941,1952,1967],{"__ignoreMap":627},[631,1871,1872],{"class":633,"line":634},[631,1873,721],{"class":637},[631,1875,1876,1879,1881,1883,1885],{"class":633,"line":724},[631,1877,1878],{"class":641},"  inputTokens",[631,1880,645],{"class":637},[631,1882,1244],{"class":648},[631,1884,652],{"class":637},[631,1886,1887],{"class":1546},"        \u002F\u002F uncached input: fresh prompt + cache writes; cache reads excluded\n",[631,1889,1890,1893,1895,1897,1899],{"class":633,"line":737},[631,1891,1892],{"class":648},"  cacheReadTokens",[631,1894,671],{"class":637},[631,1896,1244],{"class":648},[631,1898,652],{"class":637},[631,1900,1901],{"class":1546},"   \u002F\u002F tokens read from the prompt cache\n",[631,1903,1904,1907,1909,1911,1913],{"class":633,"line":768},[631,1905,1906],{"class":641},"  outputTokens",[631,1908,645],{"class":637},[631,1910,1244],{"class":648},[631,1912,652],{"class":637},[631,1914,1915],{"class":1546},"       \u002F\u002F completion tokens\n",[631,1917,1918,1921,1923,1925,1927],{"class":633,"line":797},[631,1919,1920],{"class":648},"  contextTokens",[631,1922,671],{"class":637},[631,1924,1244],{"class":648},[631,1926,652],{"class":637},[631,1928,1929],{"class":1546},"     \u002F\u002F cache-inclusive prompt size of the last step (\"% of context used\")\n",[631,1931,1932,1935,1937,1939],{"class":633,"line":809},[631,1933,1934],{"class":648},"  steps",[631,1936,671],{"class":637},[631,1938,1244],{"class":648},[631,1940,734],{"class":637},[631,1942,1943,1946,1948,1950],{"class":633,"line":821},[631,1944,1945],{"class":648},"  costUsd",[631,1947,671],{"class":637},[631,1949,1244],{"class":648},[631,1951,734],{"class":637},[631,1953,1955,1958,1960,1962,1964],{"class":633,"line":1954},8,[631,1956,1957],{"class":648},"  attempt",[631,1959,671],{"class":637},[631,1961,1244],{"class":648},[631,1963,652],{"class":637},[631,1965,1966],{"class":1546},"           \u002F\u002F retry attempt; keep the latest attempt's numbers only\n",[631,1968,1970],{"class":633,"line":1969},9,[631,1971,824],{"class":637},[226,1973,422],{"id":1974},"token-deltas",[175,1976,1977,1978,1985],{},"Token deltas are the live, streaming fragments of a message while the model is still producing it. They ride a ",[217,1979,1980,1981,1984],{},"sibling ",[198,1982,1983],{},"\u002Fdeltas"," stream",", never the timeline, and are always superseded by the finalized event.",[623,1987,1989],{"className":625,"code":1988,"language":312,"meta":627,"style":627},"\u002F\u002F common fields\n{ v: 1, entityId: string, runId: string, ref: string, idx: number, ts: string, attempt?: number, kind, ... }\n",[198,1990,1991,1996],{"__ignoreMap":627},[631,1992,1993],{"class":633,"line":634},[631,1994,1995],{"class":1546},"\u002F\u002F common fields\n",[631,1997,1998,2000,2003,2005,2009,2011,2014,2016,2018,2020,2022,2024,2026,2028,2031,2033,2035,2037,2040,2042,2044,2046,2049,2051,2053,2055,2058,2060,2062,2064,2066,2068,2071],{"class":633,"line":724},[631,1999,638],{"class":637},[631,2001,2002],{"class":641}," v",[631,2004,645],{"class":637},[631,2006,2008],{"class":2007},"sbssI"," 1",[631,2010,652],{"class":637},[631,2012,2013],{"class":641}," entityId",[631,2015,645],{"class":637},[631,2017,649],{"class":648},[631,2019,652],{"class":637},[631,2021,882],{"class":641},[631,2023,645],{"class":637},[631,2025,649],{"class":648},[631,2027,652],{"class":637},[631,2029,2030],{"class":641}," ref",[631,2032,645],{"class":637},[631,2034,649],{"class":648},[631,2036,652],{"class":637},[631,2038,2039],{"class":641}," idx",[631,2041,645],{"class":637},[631,2043,1244],{"class":648},[631,2045,652],{"class":637},[631,2047,2048],{"class":641}," ts",[631,2050,645],{"class":637},[631,2052,649],{"class":648},[631,2054,652],{"class":637},[631,2056,2057],{"class":648}," attempt",[631,2059,671],{"class":637},[631,2061,1244],{"class":648},[631,2063,652],{"class":637},[631,2065,1747],{"class":648},[631,2067,652],{"class":637},[631,2069,2070],{"class":637}," ...",[631,2072,686],{"class":637},[175,2074,2075],{},"Contract:",[362,2077,2078,2100,2113,2123],{},[365,2079,2080,2081,2086,2087,2090,2091,2093,2094,2096,2097,2099],{},"Deltas carry ",[217,2082,2083,2084],{},"no ",[198,2085,299],{},". Each references the canonical event it streams toward via ",[198,2088,2089],{},"ref"," — the ",[198,2092,473],{}," id, the ",[198,2095,513],{}," id, or the ",[198,2098,1003],{}," the finalized event will carry.",[365,2101,2102,2105,2106,2108,2109,2112],{},[198,2103,2104],{},"idx"," is a per-",[198,2107,2089],{}," chunk counter for UI assembly. ",[217,2110,2111],{},"Gaps are allowed"," — dropped chunks are normal, not drift.",[365,2114,2115,2118,2119,2122],{},[217,2116,2117],{},"The finalized event always wins."," Once the timeline carries the finalized event with ",[198,2120,2121],{},"id == ref",", buffered deltas for that ref are discarded. Deltas are never used to reconstruct state.",[365,2124,2125,2128],{},[198,2126,2127],{},"attempt"," distinguishes retry attempts of the same run; render the highest attempt and drop the rest.",[175,2130,2131,2132,2135],{},"The four delta kinds (discriminated on ",[198,2133,2134],{},"kind","):",[237,2137,2138,2153],{},[240,2139,2140],{},[243,2141,2142,2145,2150],{},[246,2143,2144],{},"Kind",[246,2146,2147,2149],{},[198,2148,2089],{}," is",[246,2151,2152],{},"Extra fields",[256,2154,2155,2168,2181,2195],{},[243,2156,2157,2161,2164],{},[261,2158,2159],{},[198,2160,1787],{},[261,2162,2163],{},"message id",[261,2165,2166],{},[198,2167,1787],{},[243,2169,2170,2174,2177],{},[261,2171,2172],{},[198,2173,513],{},[261,2175,2176],{},"reasoning id",[261,2178,2179],{},[198,2180,1787],{},[243,2182,2183,2188,2190],{},[261,2184,2185],{},[198,2186,2187],{},"tool_input",[261,2189,1003],{},[261,2191,2192,2194],{},[198,2193,1787],{}," (partial JSON)",[243,2196,2197,2201,2203],{},[261,2198,2199],{},[198,2200,571],{},[261,2202,465],{},[261,2204,2205,2207,2208,2210,2211,193],{},[198,2206,571],{}," (partial ",[198,2209,1864],{},") — best-effort mid-run counters; the authoritative figure is ",[198,2212,2213],{},"run_finished.usage",[226,2215,2217],{"id":2216},"helpers","Helpers",[175,2219,2220,2221,193],{},"Exported from ",[198,2222,200],{},[237,2224,2225,2234],{},[240,2226,2227],{},[243,2228,2229,2232],{},[246,2230,2231],{},"Function",[246,2233,437],{},[256,2235,2236,2249,2259,2269,2287,2300,2313,2326],{},[243,2237,2238,2246],{},[261,2239,2240,480,2243],{},[198,2241,2242],{},"parseTimelineEvent",[198,2244,2245],{},"safeParseTimelineEvent",[261,2247,2248],{},"Parse an unknown value into a canonical event (throwing \u002F non-throwing).",[243,2250,2251,2256],{},[261,2252,2253],{},[198,2254,2255],{},"parseTimelineEventJson",[261,2257,2258],{},"Parse one JSON-encoded stream record.",[243,2260,2261,2266],{},[261,2262,2263],{},[198,2264,2265],{},"isTimelineEvent",[261,2267,2268],{},"Type guard.",[243,2270,2271,2276],{},[261,2272,2273],{},[198,2274,2275],{},"finalizeEvent(init, { entityId, seq })",[261,2277,2278,2279,2281,2282,2281,2284,2286],{},"Stamp ",[198,2280,223],{},"\u002F",[198,2283,280],{},[198,2285,299],{}," onto a produced event and validate it.",[243,2288,2289,2294],{},[261,2290,2291],{},[198,2292,2293],{},"checkSeqContiguity(events, { expectedFirstSeq })",[261,2295,2296,2297,193],{},"The gap detector. A reader joining from a snapshot at seq N passes ",[198,2298,2299],{},"N + 1",[243,2301,2302,2307],{},[261,2303,2304],{},[198,2305,2306],{},"checkTimelineInvariants(events)",[261,2308,2309,2310,2312],{},"Structural checks beyond per-event shape (first event is ",[198,2311,378],{},", summarization bound).",[243,2314,2315,2323],{},[261,2316,2317,480,2320],{},[198,2318,2319],{},"parseDeltaRecord",[198,2321,2322],{},"safeParseDeltaRecord",[261,2324,2325],{},"Parse a delta record.",[243,2327,2328,2336],{},[261,2329,2330,480,2333],{},[198,2331,2332],{},"EVENT_TYPES",[198,2334,2335],{},"DELTA_KINDS",[261,2337,2338],{},"The vocabularies as string arrays.",[2340,2341,2342],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":627,"searchDepth":634,"depth":724,"links":2344},[2345,2346,2347,2363,2367,2368],{"id":228,"depth":724,"text":229},{"id":354,"depth":724,"text":355},{"id":425,"depth":724,"text":426,"children":2348},[2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362],{"id":378,"depth":737,"text":378},{"id":455,"depth":737,"text":455},{"id":473,"depth":737,"text":473},{"id":493,"depth":737,"text":493},{"id":503,"depth":737,"text":503},{"id":513,"depth":737,"text":513},{"id":387,"depth":737,"text":387},{"id":532,"depth":737,"text":532},{"id":542,"depth":737,"text":542},{"id":555,"depth":737,"text":555},{"id":565,"depth":737,"text":565},{"id":1535,"depth":737,"text":1536},{"id":598,"depth":737,"text":598},{"id":612,"depth":737,"text":612},{"id":1776,"depth":724,"text":1777,"children":2364},[2365,2366],{"id":1780,"depth":737,"text":1781},{"id":1863,"depth":737,"text":1864},{"id":1974,"depth":724,"text":422},{"id":2216,"depth":724,"text":2217},"The canonical timeline event — envelope, the fifteen event types, token deltas, and the helpers exported from @teaspill\u002Fschema.","md",null,{},{"icon":137},{"title":134,"description":2369},"9Y68aS6yAkWwejFpTk62bc6K1CnheQXTSeM8lPfpCAk",[2377,2379],{"title":123,"path":124,"stem":125,"description":2378,"icon":126,"children":-1},"What each store holds, how to capture a consistent backup, and exactly which restore combinations come back cleanly versus lossily — and why.",{"title":139,"path":140,"stem":141,"description":2380,"icon":142,"children":-1},"Entity URLs, the gateway short form, stream paths, workspace keys, the segment grammar, and the addressing helpers in @teaspill\u002Fschema.",1784473423373]