Readonly~@dxos/echo/ReadonlycreatedISO timestamp; display only, ordering is by feed position.
ReadonlyidReadonlypayloadReadonly_tag: "message"Optional Readonlyattachments?: readonly { contentId?: string; name?: string; ref: Ref<Unknown> }[]Files or objects attached alongside the blocks, as on Message.Message.
Readonlyblocks: readonly (Optional Readonlyproperties?: { readonly [key: string]: any }Message.Message's properties, carried so a message converts both ways; a channel backend's post receipt lives
here (e.g. discord.messageId), which tells a mirror the message is already posted.
Readonly_tag: "turnBegin"Optional Readonlyfrom?: {What the turn saw; absent when it started on an empty log.
Readonlyevent: stringLast event of the parent that was visible: the last event the writer had folded when it wrote the opener, so an event that syncs in afterwards stays out of what the thread saw.
Optional Readonlyfeed?: Ref<Feed & OfKind<Object> & Unknown>Feed of another conversation; absent for the current one.
Optional Readonlythread?: string & Brand<"@dxos/echo/Feed/BranchId">Parent thread; absent for the main thread.
Optional Readonlymodel?: DXNModel DXN, as SessionConfig.model stores it; absent when the writer does not choose the model.
Readonly_tag: "contextBind"Optional Readonlyconnections?: readonly Ref<Unknown>[]Connections whose MCP server the conversation turns on (contextBind) or off (contextUnbind); one never
named follows the space default.
Readonlyobjects: readonly Ref<Unknown>[]Readonlyskills: readonly Ref<Skill.Skill & OfKind<Object> & Unknown>[]Readonly_tag: "contextUnbind"Optional Readonlyconnections?: readonly Ref<Unknown>[]Connections whose MCP server the conversation turns on (contextBind) or off (contextUnbind); one never
named follows the space default.
Readonlyobjects: readonly Ref<Unknown>[]Readonlyskills: readonly Ref<Skill.Skill & OfKind<Object> & Unknown>[]Readonly_tag: "alarmSet"Optional Readonlymessage?: stringReadonlywakeAt: numberEpoch milliseconds.
Readonly_tag: "toolBackground"Optional Readonlypid?: stringProcess running the call.
ReadonlytoolCallId: stringReadonly_tag: "hookBegin"Readonlyhook: stringReadonlykind: "inline" | "background" | "agentic"Optional Readonlythread?: string & Brand<"@dxos/echo/Feed/BranchId">Thread an agentic hook runs in.
Readonly_tag: "hookEnd"Readonlybegin: stringOptional Readonlyblocks?: readonly (Output of an inline hook, which the model sees.
Optional Readonlyerror?: stringReadonly_tag: "compact"Optional Readonlyclosure?: readonly (string & Brand<"@dxos/echo/Feed/BranchId">)[]Threads whose merged entries the range holds; a thread still running is never in it.
Readonlyfrom: stringReadonlysummary: readonly (Readonlyto: stringReadonly_tag: "rewind"Readonlyfrom: stringFirst event discarded.
Readonly_tag: "threadOpen"Optional Readonlyfrom?: {Where a fork or light thread branches from; a fresh thread starts with no history.
Readonlyevent: stringLast event of the parent that was visible: the last event the writer had folded when it wrote the opener, so an event that syncs in afterwards stays out of what the thread saw.
Optional Readonlyfeed?: Ref<Feed & OfKind<Object> & Unknown>Feed of another conversation; absent for the current one.
Optional Readonlythread?: string & Brand<"@dxos/echo/Feed/BranchId">Parent thread; absent for the main thread.
Readonlymode: "fork" | "fresh" | "light"Optional Readonlypurpose?: stringOptional Readonlysiblings?: readonly (string & Brand<"@dxos/echo/Feed/BranchId">)[]light only: threads (or turns on main) still running when it opened, whose work it starts with.
Readonly_tag: "custom"Optional Readonlyblocks?: readonly (Optional Readonlydata?: unknownReadonlytype: stringNamespaced extension type (e.g. org.example.checkpoint).
Readonlyvisible: booleanReadonlysenderOptional Readonlyidentity?: IdentityDidWriter's identity, which tells participants apart in a multi-tenant chat.
Optional Readonlyname?: stringReadonlyrole: "user" | "assistant" | "tool" | "event"Optional Readonlysubject?: Ref<Unknown>Object the sender stands for when it is not a person (agent session, service, hook).
Static Readonly~@dxos/echo/Entity-kind brand of the type-entity value itself — always EntityKind.Type.
The kind of instance the type describes lives on [SchemaKindId]
(Object / Relation / Type). Lets Obj.isObject / Relation.isRelation
reject type entities by a single [KindId] check.
Static Readonly~@dxos/echo/Schema-kind brand (object).
Static Optional Readonly~@dxos/echo/Static Readonly~@dxos/echo/Source Effect Schema — used internally by Type.getSchema(self).
Static ReadonlyfieldsThe fields defined in the original struct schema. Allows accessing field definitions for introspection.
Static ReadonlyidObject id. Like all ECHO entities, type entities always carry an id —
stamped at construction for in-memory (static) declarations and assigned by
the database once persisted. The id does NOT determine the entity's URI:
static types resolve to their typename DXN, persisted types to echo:///<id>
(see getTypeURIFromSpecifier).
Static ReadonlyjsonStatic Optional Readonlyname
One immutable entry in an agent trajectory; every conversation state (history, queue, alarms, bindings, threads) is a reduction over the feed's events in feed order.