[{"data":1,"prerenderedAt":590},["ShallowReactive",2],{"navigation":3,"\u002Fconcepts\u002Fglossary":169,"\u002Fconcepts\u002Fglossary-surround":585},[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":40,"body":171,"description":578,"extension":579,"links":580,"meta":581,"navigation":582,"path":41,"seo":583,"stem":42,"__hash__":584},"docs\u002F2.concepts\u002F10.glossary.md",{"type":172,"value":173,"toc":539},"minimark",[174,178,183,190,194,204,208,218,222,227,230,235,239,257,261,270,274,279,283,288,292,297,301,314,318,323,327,335,339,344,348,353,357,362,366,372,376,381,385,390,394,399,403,408,411,419,423,428,430,438,442,447,451,459,463,472,476,481,485,494,498,503,507,512,516,521,525,530,534],[175,176,177],"p",{},"Every term teaspill uses, in one place. Terms are listed alphabetically; if you're new, read the Concepts section in order instead — it introduces each of these when you need it.",[179,180,182],"h2",{"id":181},"agent","Agent",[175,184,185,186,189],{},"An AI agent that keeps working — and keeps its memory — across process restarts, deploys, and crashes. Every teaspill agent is a durable entity with its own timeline. → Defined in the ",[187,188,10],"a",{"href":6},".",[179,191,193],{"id":192},"api-key","API key",[175,195,196,197,201,202,189],{},"The server-side credential (",[198,199,200],"code",{},"tsp_…",") for the gateway. It authorizes everything — spawn, send, control, registration — and belongs in backends, never browsers. → Defined in ",[187,203,118],{"href":119},[179,205,207],{"id":206},"archive","Archive",[175,209,210,211,215,216,189],{},"An idle agent archives: its state is stored in the catalog and it stops costing anything. Its timeline stays readable. See also ",[187,212,214],{"href":213},"#resurrection","Resurrection",". → Defined in ",[187,217,80],{"href":81},[179,219,221],{"id":220},"catalog","Catalog",[175,223,224,225,189],{},"The Postgres registry of every entity — type, status, parent, tags — that your UI subscribes to as live-updating queries (via Electric). Lists and dashboards come from the catalog; conversation detail comes from timelines. → Defined in ",[187,226,60],{"href":61},[179,228,229],{"id":229},"child_finished",[175,231,232,233,189],{},"The message a finishing child delivers to its parent, carrying the child's outcome and result. It arrives as a wake — never as a return value. → Defined in ",[187,234,35],{"href":36},[179,236,238],{"id":237},"control-verb","Control verb",[175,240,241,242,245,246,245,249,245,252,254,255,189],{},"The four outside interventions: ",[198,243,244],{},"interrupt",", ",[198,247,248],{},"pause",[198,250,251],{},"resume",[198,253,206],{},". Everything else you want to tell an agent is just a message. → Defined in ",[187,256,80],{"href":81},[179,258,260],{"id":259},"drift","Drift",[175,262,263,264,267,268,189],{},"A reader-detected inconsistency in a timeline — a forward gap in ",[198,265,266],{},"seq"," where events should be. The client SDK surfaces it loudly instead of rendering a silently incomplete history. → Defined in ",[187,269,102],{"href":103},[179,271,273],{"id":272},"durable-execution","Durable execution",[175,275,276,277,189],{},"A way of running code as a journal of recorded steps: if the process dies, the run resumes from the last completed step instead of starting over. teaspill gets this from Restate. → Defined in ",[187,278,35],{"href":36},[179,280,282],{"id":281},"durable-streams","Durable streams",[175,284,285,286,189],{},"The history store: the durable streams server holds every timeline, delta stream, and workspace output stream as append-only, resumable HTTP streams. → Described in ",[187,287,113],{"href":114},[179,289,291],{"id":290},"electric","Electric",[175,293,294,295,189],{},"The open-source Postgres sync engine that streams catalog rows to clients as live-updating subscriptions. → Introduced in ",[187,296,60],{"href":61},[179,298,300],{"id":299},"entity","Entity",[175,302,303,304,307,308,311,312,189],{},"Each running agent is an ",[305,306,299],"em",{}," with a stable URL-shaped id (",[198,309,310],{},"\u002Ft\u002Fdefault\u002Fa\u002Fresearcher\u002F01j…",") used everywhere: in the catalog, in events, in the API. → Defined in ",[187,313,50],{"href":51},[179,315,317],{"id":316},"executor","Executor",[175,319,320,321,189],{},"The service plane that hosts workspaces; it scales independently of the agents themselves. → Defined in ",[187,322,65],{"href":66},[179,324,326],{"id":325},"fast-join","Fast-join",[175,328,329,330,332,333,189],{},"Joining a long timeline at its latest snapshot and folding forward, instead of replaying from event 0. → Defined in ",[187,331,55],{"href":56},", shown in ",[187,334,102],{"href":103},[179,336,338],{"id":337},"gateway","Gateway",[175,340,341,342,189],{},"The single front door. Your app, your UI, and the CLI talk to teaspill only through the gateway. → Defined in the ",[187,343,10],{"href":6},[179,345,347],{"id":346},"harness","Harness",[175,349,350,351,189],{},"The engine that runs the model loop inside a wake. You pick one per agent: the native harness (teaspill owns the loop, any provider) or the Claude Agent SDK harness (Claude Code semantics). Swapping harnesses changes nothing else about the agent. → Defined in ",[187,352,70],{"href":71},[179,354,356],{"id":355},"history-hole","History hole",[175,358,359,360,189],{},"A marked gap: after catastrophic history loss and recovery, the timeline says \"history is missing here\" instead of pretending otherwise. → Explained in ",[187,361,123],{"href":124},[179,363,365],{"id":364},"opaque-event","Opaque event",[175,367,368,369,189],{},"A lossless carrier for records with no other canonical home — typically harness-internal data that must round-trip exactly. Most consumers ignore it. → Specified in the ",[187,370,371],{"href":135},"Event schema reference",[179,373,375],{"id":374},"outbox","Outbox",[175,377,378,379,189],{},"The mechanism that makes projections exactly-once. You'll only care about the name if you work on teaspill itself. → Named in ",[187,380,60],{"href":61},[179,382,384],{"id":383},"projection","Projection",[175,386,387,388,189],{},"The one-way flow that copies what agents do out to the places you read from (the timeline stream, the catalog). Nothing is ever read back from a projection to make a decision. → Defined in ",[187,389,60],{"href":61},[179,391,393],{"id":392},"read-token","Read token",[175,395,396,397,189],{},"An optional, short-lived token that lets a browser read streams and catalog shapes directly. A read token can never spawn, send, or control. → Defined in ",[187,398,118],{"href":119},[179,400,402],{"id":401},"restate","Restate",[175,404,405,406,189],{},"The open-source durable-execution engine teaspill builds on. It runs as one of the stack's services; you never talk to it directly. → Defined in ",[187,407,45],{"href":46},[179,409,214],{"id":410},"resurrection",[175,412,413,414,416,417,189],{},"Sending to an archived agent resurrects it — same identity, same timeline, and the ",[198,415,266],{}," counter continues where it left off. → Defined in ",[187,418,80],{"href":81},[179,420,422],{"id":421},"revision","Revision",[175,424,425,426,189],{},"The version number of an agent type's state schema. Within a revision, changes must be additive; a breaking change bumps the revision, and existing instances keep theirs until they archive. → Explained in ",[187,427,98],{"href":99},[179,429,266],{"id":266},[175,431,432,433,435,436,189],{},"An event's position on its entity's timeline: 0-based, gapless, counting up by one. ",[198,434,266],{}," — not the timestamp — is the ordering authority. → Defined in ",[187,437,55],{"href":56},[179,439,441],{"id":440},"snapshot","Snapshot",[175,443,444,445,189],{},"A periodic event that carries the entity's complete state at that point, so a UI can join a long timeline at the latest snapshot and fold forward, instead of replaying from event 0. → Defined in ",[187,446,55],{"href":56},[179,448,450],{"id":449},"spawn","Spawn",[175,452,453,454,215,457,189],{},"Creating a new agent entity — from your backend, the CLI, or another agent. Spawn returns the new entity's id immediately; a child's result arrives later as ",[187,455,229],{"href":456},"#child_finished",[187,458,35],{"href":36},[179,460,462],{"id":461},"steer","Steer",[175,464,465,466,469,470,189],{},"Injecting a message into an agent's ",[305,467,468],{},"current"," run mid-turn instead of queueing a new wake; degrades to a normal message if the agent isn't mid-turn. → Defined in ",[187,471,80],{"href":81},[179,473,475],{"id":474},"summarization","Summarization",[175,477,478,479,189],{},"An event marking a context fold: for the model, older conversation is superseded by a summary once the context budget is crossed. History stays intact for UIs — nothing is deleted. → Specified in the ",[187,480,371],{"href":135},[179,482,484],{"id":483},"tenant","Tenant",[175,486,487,488,491,492,189],{},"The namespace segment in every identifier (",[198,489,490],{},"\u002Ft\u002Fdefault\u002F…","). One deployment is one tenant; the segment is a constant you rarely think about. → Defined in ",[187,493,50],{"href":51},[179,495,497],{"id":496},"timeline","Timeline",[175,499,500,501,189],{},"The append-only record of everything an entity does — messages, tool calls, results, lifecycle markers — as numbered events. The timeline is history you can read and replay; the platform never reads it to decide what to do next. Its records are called canonical events. → Defined in ",[187,502,55],{"href":56},[179,504,506],{"id":505},"token-delta","Token delta",[175,508,509,510,189],{},"The live, streaming fragments of a message while the model is still producing it. Deltas ride a sibling stream, are droppable, and are always superseded by the finalized event on the timeline. → Defined in ",[187,511,55],{"href":56},[179,513,515],{"id":514},"virtual-object","Virtual object",[175,517,518,519,189],{},"A named, addressable unit with its own state that handles one invocation at a time. Every teaspill agent is one; \"single-writer\" means nothing else can mutate its state concurrently, which is what makes its event ordering trustworthy. → Defined in ",[187,520,45],{"href":46},[179,522,524],{"id":523},"wake","Wake",[175,526,527,528,189],{},"One turn of an agent's life. A message or a child finishing wakes the agent; it does some work (maybe calls the model, maybe spawns children), then goes back to sleep. Agents never block or poll — anything they're waiting for arrives as a later wake. → Defined in ",[187,529,35],{"href":36},[179,531,533],{"id":532},"workspace","Workspace",[175,535,536,537,189],{},"The sandboxed environment (filesystem + shell) an agent's tools run in, chosen when the agent is spawned. → Defined in ",[187,538,65],{"href":66},{"title":540,"searchDepth":541,"depth":542,"links":543},"",1,2,[544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577],{"id":181,"depth":542,"text":182},{"id":192,"depth":542,"text":193},{"id":206,"depth":542,"text":207},{"id":220,"depth":542,"text":221},{"id":229,"depth":542,"text":229},{"id":237,"depth":542,"text":238},{"id":259,"depth":542,"text":260},{"id":272,"depth":542,"text":273},{"id":281,"depth":542,"text":282},{"id":290,"depth":542,"text":291},{"id":299,"depth":542,"text":300},{"id":316,"depth":542,"text":317},{"id":325,"depth":542,"text":326},{"id":337,"depth":542,"text":338},{"id":346,"depth":542,"text":347},{"id":355,"depth":542,"text":356},{"id":364,"depth":542,"text":365},{"id":374,"depth":542,"text":375},{"id":383,"depth":542,"text":384},{"id":392,"depth":542,"text":393},{"id":401,"depth":542,"text":402},{"id":410,"depth":542,"text":214},{"id":421,"depth":542,"text":422},{"id":266,"depth":542,"text":266},{"id":440,"depth":542,"text":441},{"id":449,"depth":542,"text":450},{"id":461,"depth":542,"text":462},{"id":474,"depth":542,"text":475},{"id":483,"depth":542,"text":484},{"id":496,"depth":542,"text":497},{"id":505,"depth":542,"text":506},{"id":514,"depth":542,"text":515},{"id":523,"depth":542,"text":524},{"id":532,"depth":542,"text":533},"Every teaspill term in one place, alphabetically, with a link to the page that teaches it.","md",null,{},{"icon":43},{"title":40,"description":578},"vp3WVOlKB4OQzqT0pfk6I-HjsgxZnKNZ7HKbBmLO7X8",[586,588],{"title":35,"path":36,"stem":37,"description":587,"icon":38,"children":-1},"How teaspill agents survive crashes, restarts, and deploys — and the wake model that shapes every turn of their life.",{"title":45,"path":46,"stem":47,"description":589,"icon":48,"children":-1},"What Restate is, what a virtual object is, and why teaspill builds on both — for developers who have never used it.",1784473422579]