{ "argumentSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "pattern": "system/home.tsx", "resultSchema": { "$defs": { "AboutRecord": { "properties": { "createdAt": { "description": "When the room was created.", "type": "FabricEpochNsec" }, "kind": { "$ref": "#/$defs/ChatRoomKind", "description": "How the room was created." }, "title": { "description": "A group room's title.", "type": "string" } }, "required": [ "kind" ], "type": "object" }, "AgentQueueEntry": { "properties": { "address": { "type": "string" }, "host": { "type": "string" }, "run": { "asCell": [ "cell" ], "scope": "user" } }, "required": [ "run", "host" ], "type": "object" }, "AgentQueueOutput": { "properties": { "$NAME": { "type": "string" }, "$UI": { "$ref": "https://commonfabric.org/schemas/vnode.json" }, "agentRunner": { "$ref": "#/$defs/AgentRunnerEntry", "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/agent-queue.tsx", "moduleIdentity": "4dscjSB5Y6NQkKYqcC3b5uCsNVBkh0VAqAqNWaF2HlU", "path": [ "setAgentRunner" ] } } } }, "entries": { "default": [], "items": { "$ref": "#/$defs/AgentQueueEntry" }, "type": "array" }, "setAgentRunner": { "$ref": "#/$defs/SetAgentRunnerEvent", "asCell": [ "stream" ] } }, "required": [ "entries", "setAgentRunner", "$NAME", "$UI" ], "type": "object" }, "AgentRun": { "properties": { "attempts": { "type": "number" }, "cancelRequestedAt": { "type": "string" }, "claim": { "properties": { "leaseUntil": { "type": "string" }, "runner": { "type": "string" } }, "required": [ "runner", "leaseUntil" ], "type": "object" }, "errorCode": { "$ref": "#/$defs/AgentRunErrorCode" }, "finishedAt": { "type": "string" }, "inputs": { "additionalProperties": { "type": "unknown" }, "properties": {}, "type": "object" }, "maxConfidentiality": { "items": { "type": "unknown" }, "type": "array" }, "modelTurns": { "type": "number" }, "outcome": { "$ref": "#/$defs/AgentRunOutcome" }, "piece": { "type": "unknown" }, "request": { "type": "unknown" }, "requestHash": { "type": "string" }, "result": { "type": "unknown" }, "resultSchema": { "type": "unknown" }, "runRef": { "type": "string" }, "space": { "type": "unknown" }, "startedAt": { "type": "string" }, "state": { "$ref": "#/$defs/AgentRunState" }, "stateSince": { "type": "string" }, "submittedAt": { "type": "string" }, "task": { "type": "string" }, "toolCalls": { "type": "number" }, "tools": { "items": { "type": "string" }, "type": "array" }, "usage": { "$ref": "#/$defs/AgentRunUsage" }, "usageCoverage": { "enum": [ "direct", "including-descendants" ] } }, "required": [ "requestHash", "request", "piece", "space", "task", "inputs", "resultSchema", "submittedAt", "state", "stateSince" ], "type": "object" }, "AgentRunErrorCode": { "enum": [ "INVALID_INPUT", "INVALID_RESULT", "LIMIT_REACHED", "PROVIDER_FAILURE", "RUNNER_LOST", "CANCELLED", "REFUSED" ] }, "AgentRunOutcome": { "enum": [ "refused", "completed", "failed", "cancelled" ] }, "AgentRunState": { "enum": [ "refused", "queued", "claimed", "running", "completed", "failed", "cancelled" ] }, "AgentRunUsage": { "properties": { "cacheWriteTokens": { "type": "number" }, "cachedInputTokens": { "type": "number" }, "costUsd": { "type": "number" }, "estimateWithheldReason": { "type": "string" }, "estimatedCostUsd": { "type": "number" }, "inputTokens": { "type": "number" }, "outputTokens": { "type": "number" }, "reasoningTokens": { "type": "number" }, "totalTokens": { "type": "number" } }, "type": "object" }, "AgentRunnerEntry": { "properties": { "host": { "type": "string" }, "lastClaimAt": { "type": "string" }, "registeredAt": { "type": "string" }, "registrationId": { "type": "string" }, "tools": { "items": { "type": "string" }, "type": "array" } }, "required": [ "host", "tools", "registeredAt" ], "type": "object" }, "BackwardsCompatibleProfile": { "properties": { "$NAME": { "type": "string" }, "$UI": { "type": "unknown" }, "addElement": { "$ref": "#/$defs/MutateProfileElementsEvent", "asCell": [ "stream" ] }, "addExternalLink": { "$ref": "#/$defs/MutateExternalProfileLinksEvent", "asCell": [ "stream" ] }, "addPiece": { "$ref": "#/$defs/MutateProfileElementsEvent", "asCell": [ "stream" ] }, "avatar": { "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "setAvatar" ] } } }, "type": "string" }, "bio": { "default": "", "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "setBio" ] } } }, "type": "string" }, "elements": { "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "mutateElements" ] } } }, "items": { "$ref": "#/$defs/ProfileElement" }, "type": "array" }, "externalLinks": { "default": [], "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "mutateExternalProfileLinks" ] } } }, "items": { "$ref": "#/$defs/ExternalProfileLink" }, "type": "array" }, "inbox": { "$ref": "#/$defs/ProfileInbox", "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "setInbox" ] } } } }, "initialNameApplied": { "type": "string" }, "isEditing": { "default": false, "type": "boolean" }, "name": { "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "setName" ] } } }, "type": "string" }, "publishVerifiedIdentities": { "$ref": "#/$defs/MutateVerifiedIdentitiesEvent", "asCell": [ "stream" ] }, "removeElement": { "$ref": "#/$defs/MutateProfileElementsEvent", "asCell": [ "stream" ] }, "removeExternalLink": { "$ref": "#/$defs/MutateExternalProfileLinksEvent", "asCell": [ "stream" ] }, "revokeVerifiedIdentities": { "$ref": "#/$defs/MutateVerifiedIdentitiesEvent", "asCell": [ "stream" ] }, "setAvatar": { "$ref": "#/$defs/SetProfileAvatarEvent", "asCell": [ "stream" ] }, "setBio": { "$ref": "#/$defs/SetProfileBioEvent", "asCell": [ "stream" ] }, "setInbox": { "$ref": "#/$defs/SetProfileInboxEvent", "asCell": [ "stream" ] }, "setName": { "$ref": "#/$defs/SetProfileNameEvent", "asCell": [ "stream" ] }, "toggleEditing": { "asCell": [ "stream", "opaque" ] }, "verifiedIdentities": { "default": [], "ifc": { "addIntegrity": [ { "kind": "represents-principal", "subject": { "__ctCurrentPrincipal": true } } ], "ownerPrincipal": { "__ctCurrentPrincipal": true }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-home.tsx", "moduleIdentity": "t3l66CrqcF9Wof_2-psRxCLyqs1GZHQGKNvF1qVVWUQ", "path": [ "publishVerifiedIdentities" ] } } }, "items": { "$ref": "#/$defs/VerifiedExternalIdentity" }, "type": "array" } }, "required": [ "$NAME", "name", "avatar", "bio", "externalLinks", "verifiedIdentities", "elements", "setName", "setAvatar", "addElement", "removeElement", "isEditing", "initialNameApplied", "$UI" ], "type": "object" }, "ChatIndexEntry": { "properties": { "counterpart": { "description": "A direct room's other member, by principal.", "type": "string" }, "kind": { "$ref": "#/$defs/ChatRoomKind", "description": "The room's kind, as its `about.kind` says." }, "revision": { "description": "The revision of the room's entry in the user's catalog, as listed, which a\nrequest to forget the room names; absent where the entry is not one the\ncatalog keeps revisions of.", "type": "string" }, "room": { "$ref": "#/$defs/ChatRoomLink", "description": "The room." }, "since": { "description": "When this user's catalog admitted it.", "type": "FabricEpochNsec" } }, "required": [ "room", "kind", "since" ], "type": "object" }, "ChatManagerNotice": { "properties": { "id": { "description": "The notice's id, unique in the manager.", "type": "string" }, "recipient": { "description": "The DID of the person admitted.", "type": "string" }, "room": { "$ref": "#/$defs/ChatRoomLink", "description": "The room the recipient was admitted to." } }, "required": [ "id", "room", "recipient" ], "type": "object" }, "ChatManagerProfile": { "properties": { "avatar": { "description": "The person's avatar: a URL or a glyph, if they have set one.", "type": "string" }, "inbox": { "$ref": "#/$defs/ProfileInbox", "description": "Where the person's offers are delivered, as the profile types its pointer:\na link naming nothing of the inbox but its name. An inbox labels its\noffers confidential to its owner, and a run reading the pointer as a link\nto more of the inbox, or untyped, takes that label on, which then refuses\nits sends." }, "name": { "description": "The person's display name, if they have set one.", "type": "string" } }, "type": "object" }, "ChatOfferDelivery": { "enum": [ "offered", "noticed" ] }, "ChatRefusalCode": { "enum": [ "space-own-chat", "shared-inbox" ] }, "ChatRequestOutcome": { "anyOf": [ { "properties": { "status": { "description": "The request has not finished.", "enum": [ "pending" ], "type": "string" } }, "required": [ "status" ], "type": "object" }, { "properties": { "delivery": { "$ref": "#/$defs/ChatOfferDelivery", "description": "How `offerRoom` told the member of the room; absent for the others." }, "entry": { "$ref": "#/$defs/ChatIndexEntry", "description": "The entry it produced; absent for `forget` and `offerRoom`." }, "status": { "description": "The request finished.", "enum": [ "done" ], "type": "string" } }, "required": [ "status" ], "type": "object" }, { "properties": { "code": { "$ref": "#/$defs/ChatRefusalCode", "description": "Which refusal it is, for a client to act on, where a client has one to\ntake; absent for the others." }, "reason": { "description": "Why, for a person to read.", "type": "string" }, "status": { "description": "The request was refused.", "enum": [ "refused" ], "type": "string" } }, "required": [ "status", "reason" ], "type": "object" } ] }, "ChatRoomAbout": { "properties": { "createdAt": { "description": "When the room was created; absent for a space's own chat.", "type": "FabricEpochNsec" }, "kind": { "$ref": "#/$defs/ChatRoomKind", "description": "`\"direct\"` if created as a direct room; `\"group\"` otherwise." }, "policy": { "$ref": "#/$defs/ChatRoomPolicy", "description": "The room's policy, stated correctly, in a document of its own." }, "record": { "$ref": "#/$defs/AboutRecord", "description": "The record the room's creator wrote, whose label names them; absent for a\nspace's own chat, which no one created as a room." }, "title": { "description": "A group room's title. A direct room, and a space's own chat, have none.", "type": "string" } }, "required": [ "kind", "policy" ], "type": "object" }, "ChatRoomKind": { "enum": [ "direct", "group" ] }, "ChatRoomLink": { "properties": { "about": { "$ref": "#/$defs/ChatRoomAbout", "description": "What the room says about itself." }, "messages": { "description": "Where the conversation stands: what of `messages` every member shares.", "properties": { "count": { "description": "How many messages the room holds, obliterated tombstones included.", "type": "number" }, "newestAt": { "description": "The newest message's `sentAt`; absent while there are none.", "type": "FabricEpochNsec" } }, "required": [ "count" ], "type": "object" }, "roster": { "description": "The profiles of those who joined the room, in the order they joined, as a\nmanager reads them: each a link, whose profile is read only through it.", "items": { "$ref": "#/$defs/ChatManagerProfile" }, "type": "array" } }, "type": "object" }, "ChatRoomPolicy": { "properties": { "deletionIsObliteration": { "description": "Whether a sender's deletion of their own message obliterates it.", "type": "boolean" }, "keepsHistory": { "description": "Whether an edit or a plain deletion keeps the version it replaces.", "type": "boolean" }, "maxOpenWindows": { "description": "The most message windows a session can have open.", "type": "number" }, "maxWindowCount": { "description": "The most messages a message window holds.", "type": "number" }, "ownersMayObliterate": { "description": "Whether an OWNER may obliterate messages.", "type": "boolean" }, "proposedTimeMaxAgeNsec": { "description": "How far before the room's clock a proposed time is accepted, in ns.", "type": "FabricDurationNsec" }, "proposedTimeMaxLeadNsec": { "description": "How far after the room's clock a proposed time is accepted, in ns.", "type": "FabricDurationNsec" }, "recentActivityWindowNsec": { "description": "How long an entry stays in `recentActivity`, in ns.", "type": "FabricDurationNsec" } }, "required": [ "ownersMayObliterate", "keepsHistory", "deletionIsObliteration", "proposedTimeMaxAgeNsec", "proposedTimeMaxLeadNsec", "recentActivityWindowNsec", "maxWindowCount", "maxOpenWindows" ], "type": "object" }, "CreateProfileEvent": { "properties": { "detail": { "properties": { "message": { "type": "string" } }, "type": "object" }, "key": { "type": "string" }, "name": { "type": "string" }, "target": { "properties": { "value": { "type": "string" } }, "type": "object" } }, "type": "object" }, "EnsurePrivateInboxEvent": { "properties": { "adopt": { "$ref": "#/$defs/ShareInboxPiece", "description": "The inbox the deciding profile advertises, which the host has vetted for\nHome to adopt; absent when the host vetted none." }, "from": { "$ref": "#/$defs/InboxPointable", "description": "The deciding profile: the first, in the order `#profile` answers in, that\npoints at an inbox. Absent from a host that names none, which Home takes\nas the first profile in its list that points at an inbox.", "tags": [ "profile" ] }, "refused": { "description": "The host's refusal of the inbox the deciding profile advertises, for Home\nto record; absent when the host refused none.", "properties": { "inbox": { "$ref": "#/$defs/ShareInboxPiece", "description": "The inbox refused." }, "reason": { "description": "Why the host refused it, by its code.", "type": "string" } }, "required": [ "reason", "inbox" ], "type": "object" } }, "type": "object" }, "ExternalIdentityAssertion": { "properties": { "type": { "type": "string" }, "value": { "type": "string" }, "verifiedAt": { "type": "string" } }, "required": [ "type", "value", "verifiedAt" ], "type": "object" }, "ExternalProfileLink": { "properties": { "label": { "type": "string" }, "url": { "type": "string" } }, "required": [ "label", "url" ], "type": "object" }, "FabriChatManagerOutput": { "properties": { "$NAME": { "description": "The manager's name, for lists of pieces.", "type": "string" }, "$UI": { "$ref": "https://commonfabric.org/schemas/vnode.json", "description": "The manager's rendering." }, "$VIEWS": { "description": "The manager's data face, as one group.", "properties": { "chats": { "$ref": "#/$defs/FabriChatManagerView" } }, "required": [ "chats" ], "type": "object" }, "accept": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Records a room this user has been admitted to." }, "createGroup": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Creates a group room." }, "delivered": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Reports a notice delivered." }, "direct": { "additionalProperties": { "$ref": "#/$defs/ChatIndexEntry" }, "description": "The direct room this user shares with each counterpart, by principal.", "properties": {}, "type": "object" }, "forget": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Removes a room from this user's list." }, "joinRoom": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Makes a room this user has entered one of their chats: lists it, or\nlists it again once forgotten, and adds them to its participants. A room\ntheir chats list already is left as it is." }, "offerRoom": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Offers someone added to a room the room, where this user may add people\nto it, and records how they were told of it." }, "openDirect": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Finds or creates the direct room with a person." }, "outgoingNotices": { "description": "Notices this user's requests have produced that no one has delivered.", "items": { "$ref": "#/$defs/ChatManagerNotice" }, "type": "array" }, "people": { "additionalProperties": { "items": { "$ref": "#/$defs/ChatManagerProfile" }, "type": "array" }, "description": "The people this user's rooms list, other than this user: by the principal\neach one's profile attests, the profiles attesting it, each once, in the\norder the rooms, newest first, list them.", "properties": {}, "scope": "session", "type": "object" }, "requests": { "additionalProperties": { "$ref": "#/$defs/ChatRequestOutcome" }, "description": "The outcome of each request, by the `requestId` its caller chose.", "properties": {}, "type": "object" }, "rooms": { "description": "Every room this user belongs to and hasn't forgotten, newest first.", "items": { "$ref": "#/$defs/ChatIndexEntry" }, "scope": "session", "type": "array" }, "sharedSpaceCatalog": { "$ref": "#/$defs/SharedSpaceCatalogStorage", "description": "The user's shared-space catalog, as stored, from which `rooms` is drawn. A\nreader in another piece finds a room's entry here by its space without\nthis manager's view having been computed." } }, "required": [ "rooms", "sharedSpaceCatalog", "direct", "requests", "outgoingNotices", "people", "openDirect", "createGroup", "offerRoom", "accept", "joinRoom", "forget", "delivered", "$NAME", "$UI", "$VIEWS" ], "type": "object" }, "FabriChatManagerView": { "properties": { "accept": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Records a room this user has been admitted to." }, "createGroup": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Creates a group room." }, "delivered": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Reports a notice delivered." }, "direct": { "additionalProperties": { "$ref": "#/$defs/ChatIndexEntry" }, "description": "The direct room this user shares with each counterpart, by principal.", "properties": {}, "type": "object" }, "forget": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Removes a room from this user's list." }, "joinRoom": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Makes a room this user has entered one of their chats: lists it, or\nlists it again once forgotten, and adds them to its participants. A room\ntheir chats list already is left as it is." }, "offerRoom": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Offers someone added to a room the room, where this user may add people\nto it, and records how they were told of it." }, "openDirect": { "$ref": "#/$defs/ManagerStreamEvent", "asCell": [ "stream" ], "description": "Finds or creates the direct room with a person." }, "outgoingNotices": { "description": "Notices this user's requests have produced that no one has delivered.", "items": { "$ref": "#/$defs/ChatManagerNotice" }, "type": "array" }, "people": { "additionalProperties": { "items": { "$ref": "#/$defs/ChatManagerProfile" }, "type": "array" }, "description": "The people this user's rooms list, other than this user: by the principal\neach one's profile attests, the profiles attesting it, each once, in the\norder the rooms, newest first, list them.", "properties": {}, "scope": "session", "type": "object" }, "requests": { "additionalProperties": { "$ref": "#/$defs/ChatRequestOutcome" }, "description": "The outcome of each request, by the `requestId` its caller chose.", "properties": {}, "type": "object" }, "rooms": { "description": "Every room this user belongs to and hasn't forgotten, newest first.", "items": { "$ref": "#/$defs/ChatIndexEntry" }, "scope": "session", "type": "array" }, "sharedSpaceCatalog": { "$ref": "#/$defs/SharedSpaceCatalogStorage", "description": "The user's shared-space catalog, as stored, from which `rooms` is drawn. A\nreader in another piece finds a room's entry here by its space without\nthis manager's view having been computed." } }, "required": [ "sharedSpaceCatalog", "rooms", "direct", "requests", "outgoingNotices", "people", "openDirect", "createGroup", "offerRoom", "accept", "joinRoom", "forget", "delivered" ], "type": "object" }, "Favorite": { "properties": { "cell": { "properties": { "$NAME": { "type": "string" } }, "type": "object" }, "id": { "type": "string" }, "spaceName": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "userTags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "cell", "tags", "userTags" ], "type": "object" }, "InboxPointable": { "properties": { "inbox": { "$ref": "#/$defs/ProfileInbox" }, "setInbox": { "$ref": "#/$defs/SetProfileInboxEvent", "asCell": [ "stream" ] } }, "type": "object" }, "JournalEntry": { "properties": { "eventType": { "type": "string" }, "narrative": { "type": "string" }, "narrativePending": { "type": "boolean" }, "snapshot": { "properties": { "name": { "type": "string" }, "schemaTag": { "type": "string" }, "valueExcerpt": { "type": "string" } }, "type": "object" }, "space": { "type": "string" }, "subject": { "type": "unknown" }, "tags": { "items": { "type": "string" }, "type": "array" }, "timestamp": { "type": "number" } }, "type": "object" }, "ManagerStreamEvent": { "properties": { "counterpart": { "description": "The DID of a direct room's other member.", "type": "string" }, "id": { "description": "The id of a notice delivered.", "type": "string" }, "joinableByLink": { "description": "Whether a new group room admits anyone who has its link; absent for a room\nadmitting its members alone.", "type": "boolean" }, "keepArchived": { "description": "Whether accepting a room leaves its entry archived, when it is; absent,\naccepting the room restores it.", "type": "boolean" }, "member": { "description": "The DID of a member added to a room, whom `offerRoom` offers it to.", "type": "string" }, "members": { "description": "The DIDs of a new group room's other members.", "items": { "type": "string" }, "type": "array" }, "profile": { "$ref": "#/$defs/ChatManagerProfile", "description": "A direct room's other member's profile, through whose share inbox a new\nroom is offered to them, or the profile of a member added to a room,\nthrough whose share inbox `offerRoom` offers it." }, "profiles": { "description": "The profiles of more of a new group room's other members, each naming its\nmember with its `represents-principal` label, through whose share inbox\nthe room is offered to them.", "items": { "$ref": "#/$defs/ChatManagerProfile" }, "type": "array" }, "requestId": { "description": "Chosen by the sender; the outcome is recorded under it, except for a start\nthat would create a room without its reviewed `ChatStart`, which is\nrefused whole and records none.", "type": "string" }, "revision": { "description": "The revision of a room's entry, as the list the request was made from\nshowed it, for a room to forget.", "type": "string" }, "room": { "$ref": "#/$defs/ChatRoomLink", "description": "A room to offer, accept, join, or forget." }, "target": { "description": "A rendered control's text, or the profile it starts a direct room with.", "properties": { "dataset": { "description": "The principal an older room's chip names the person by.", "properties": { "counterpart": { "type": "string" } }, "type": "object" }, "name": { "$ref": "#/$defs/ChatManagerProfile", "description": "The profile of the person a participant's chip starts a chat with." }, "value": { "type": "string" } }, "type": "object" }, "title": { "description": "A new group room's title.", "type": "string" } }, "type": "object" }, "MutateExternalProfileLinksEvent": { "properties": { "label": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "MutateProfileElementsEvent": { "properties": { "catalogId": { "type": "string" }, "cell": true, "patternUrl": { "type": "string" }, "pieceId": { "type": "string" }, "pieceSpace": { "type": "string" }, "tag": { "type": "string" }, "title": { "type": "string" }, "userTags": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "MutateVerifiedIdentitiesEvent": { "properties": { "identities": { "items": { "$ref": "#/$defs/VerifiedExternalIdentity" }, "type": "array" } }, "type": "object" }, "PrivateInboxHolder": { "properties": { "piece": { "$ref": "#/$defs/ShareInboxPiece", "description": "The inbox piece." } }, "type": "object" }, "PrivateInboxRefusal": { "properties": { "inbox": { "$ref": "#/$defs/ShareInboxPiece", "description": "The inbox refused, which the deciding profile points at." }, "reason": { "description": "The host's code for why it refused the inbox, as the event named it,\ntrimmed and cut to `REFUSAL_REASON_MAX_LENGTH`. Today the host sends one\nof `InboxAdoptionRefusal`'s codes, from\n`packages/piece/src/ops/private-inbox.ts`, such as\n`inbox-adoption-acl-mismatch`.", "type": "string" }, "refusedAt": { "description": "When Home first recorded this refusal, of this inbox for this reason, in\nmilliseconds since the epoch. A handler's clock reads to the second.", "type": "number" } }, "required": [ "reason", "inbox", "refusedAt" ], "type": "object" }, "PrivateInboxRefusalHolder": { "properties": { "refusal": { "$ref": "#/$defs/PrivateInboxRefusal", "description": "The refusal." } }, "type": "object" }, "PrivateInboxReplacement": { "properties": { "inbox": { "$ref": "#/$defs/ShareInboxPiece", "description": "The refused inbox, which the profiles pointing at it no longer advertise." }, "reason": { "description": "The host's code for why it refused that inbox, as the refusal held it.", "type": "string" }, "refusedAt": { "description": "When Home first recorded the refusal, as the refusal held it.", "type": "number" }, "replacedAt": { "description": "When the owner had Home replace the inbox, in milliseconds since the epoch.\nA handler's clock reads to the second.", "type": "number" } }, "required": [ "inbox", "reason", "refusedAt", "replacedAt" ], "type": "object" }, "PrivateInboxReplacementHolder": { "$ref": "#/$defs/PrivateInboxReplacementRecord", "ifc": { "uiContract": { "action": "ReplaceRefusedPrivateInbox", "helper": "UiAction", "requiredEventIntegrity": [ "PrivateInboxRefusalSurface" ], "trustedPattern": "PrivateInboxRefusalSurface" }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/private-inbox.tsx", "moduleIdentity": "tMQokoYPRCPmbrD8RQK_CMfnEIocqc3S_dhsy3M9H8M", "path": [ "replaceRefusedPrivateInbox" ] } } } }, "PrivateInboxReplacementRecord": { "properties": { "replacement": { "$ref": "#/$defs/PrivateInboxReplacement", "description": "The replacement." } }, "type": "object" }, "ProfileElement": { "properties": { "cell": true, "source": { "enum": [ "piece", "catalog", "url" ] }, "tag": { "type": "string" }, "title": { "type": "string" }, "userTags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "cell", "tag", "userTags" ], "type": "object" }, "ProfileInbox": { "properties": { "piece": { "$ref": "#/$defs/ShareInboxPiece", "description": "The owner's share inbox piece." } }, "type": "object" }, "SetAgentRunnerEvent": { "properties": { "expectedRegistrationId": { "type": "string" }, "runner": { "$ref": "#/$defs/AgentRunnerEntry" } }, "type": "object" }, "SetProfileAvatarEvent": { "properties": { "avatar": { "type": "string" }, "detail": { "properties": { "message": { "type": "string" } }, "type": "object" }, "key": { "type": "string" }, "target": { "properties": { "value": { "type": "string" } }, "type": "object" } }, "type": "object" }, "SetProfileBioEvent": { "properties": { "bio": { "type": "string" }, "detail": { "properties": { "message": { "type": "string" } }, "type": "object" }, "key": { "type": "string" }, "target": { "properties": { "value": { "type": "string" } }, "type": "object" } }, "type": "object" }, "SetProfileInboxEvent": { "properties": { "inbox": { "$ref": "#/$defs/ShareInboxPiece", "description": "The inbox piece to point at; absent clears the pointer." } }, "type": "object" }, "SetProfileNameEvent": { "properties": { "detail": { "properties": { "message": { "type": "string" } }, "type": "object" }, "key": { "type": "string" }, "name": { "type": "string" }, "target": { "properties": { "value": { "type": "string" } }, "type": "object" } }, "type": "object" }, "ShareInboxPiece": { "properties": { "$NAME": { "type": "string" } }, "type": "object" }, "SharedSpaceCatalog": { "properties": { "entries": { "additionalProperties": { "$ref": "#/$defs/SharedSpaceEntry" }, "properties": {}, "type": "object" }, "offers": { "additionalProperties": { "$ref": "#/$defs/SharedSpaceOfferReceipt" }, "properties": {}, "type": "object" } }, "required": [ "entries", "offers" ], "type": "object" }, "SharedSpaceCatalogStorage": { "additionalProperties": true, "properties": {}, "type": "object" }, "SharedSpaceEntry": { "properties": { "from": { "type": "string" }, "host": { "type": "string" }, "kind": { "type": "string" }, "lastAction": { "type": "unknown" }, "revision": { "type": "string" }, "since": { "type": "number" }, "space": { "type": "string" }, "state": { "type": "string" }, "title": { "type": "string" } }, "required": [ "space", "host", "kind", "state", "revision" ], "type": "object" }, "SharedSpaceMembership": { "enum": [ "saved", "archived" ] }, "SharedSpaceMembershipChange": { "properties": { "expectedRevision": { "type": "string" }, "id": { "type": "string" }, "space": { "type": "string" }, "state": { "$ref": "#/$defs/SharedSpaceMembership" } }, "required": [ "space", "id", "expectedRevision", "state" ], "type": "object" }, "SharedSpaceOfferReceipt": { "properties": { "from": { "type": "string" }, "host": { "type": "string" }, "id": { "type": "string" }, "kind": { "type": "string" }, "space": { "type": "string" } }, "required": [ "from", "id", "space", "host", "kind" ], "type": "object" }, "SharedSpaceRegistration": { "properties": { "host": { "type": "string" }, "initialState": { "$ref": "#/$defs/SharedSpaceMembership" }, "kind": { "type": "string" }, "offer": { "properties": { "from": { "type": "string" }, "id": { "type": "string" } }, "required": [ "from", "id" ], "type": "object" }, "since": { "type": "number" }, "space": { "type": "string" }, "title": { "type": "string" } }, "required": [ "space", "host", "kind" ], "type": "object" }, "SharedSpaceRemoval": { "properties": { "expectedRevision": { "type": "string" }, "space": { "type": "string" } }, "required": [ "space", "expectedRevision" ], "type": "object" }, "SpaceEntry": { "properties": { "did": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "TrustedDefaultProfile": { "properties": { "profile": { "$ref": "#/$defs/BackwardsCompatibleProfile", "ifc": { "addIntegrity": [ "profile-link" ], "uiContract": { "action": "SetDefaultProfile", "helper": "UiAction", "requiredEventIntegrity": [ "ProfilePickerSurface" ], "trustedPattern": "ProfilePickerSurface" }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-create.tsx", "moduleIdentity": "LPEKJKJKFbwcCTyEnAuMJL2rVFKDdyh1qw_TX2SoQcE", "path": [ "setDefaultProfile" ] } } } } }, "type": "object" }, "TrustedProfileLink": { "$ref": "#/$defs/BackwardsCompatibleProfile", "ifc": { "addIntegrity": [ "profile-link" ], "uiContract": { "action": "CreateProfile", "helper": "UiAction", "requiredEventIntegrity": [ "ProfileCreateSurface" ], "trustedPattern": "ProfileCreateSurface" }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-create.tsx", "moduleIdentity": "LPEKJKJKFbwcCTyEnAuMJL2rVFKDdyh1qw_TX2SoQcE", "path": [ "submitProfileCreation" ] } } } }, "TrustedProfileList": { "ifc": { "addIntegrity": [ "profile-link" ], "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-create.tsx", "moduleIdentity": "LPEKJKJKFbwcCTyEnAuMJL2rVFKDdyh1qw_TX2SoQcE", "path": [ "submitProfileCreation" ] } } }, "items": { "$ref": "#/$defs/TrustedProfileLink" }, "type": "array" }, "TrustedProfileMru": { "ifc": { "addIntegrity": [ "profile-link" ], "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-create.tsx", "moduleIdentity": "LPEKJKJKFbwcCTyEnAuMJL2rVFKDdyh1qw_TX2SoQcE", "path": [ "setMruProfile" ] } } }, "items": { "$ref": "#/$defs/BackwardsCompatibleProfile", "ifc": { "addIntegrity": [ "profile-link" ], "uiContract": { "action": "SetMruProfile", "helper": "UiAction", "requiredEventIntegrity": [ "ProfilePickerSurface" ], "trustedPattern": "ProfilePickerSurface" }, "writeAuthorizedBy": { "__ctWriterIdentityOf": { "file": "/packages/patterns/system/profile-create.tsx", "moduleIdentity": "LPEKJKJKFbwcCTyEnAuMJL2rVFKDdyh1qw_TX2SoQcE", "path": [ "setMruProfile" ] } } } }, "type": "array" }, "VerifiedExternalIdentity": { "$ref": "#/$defs/ExternalIdentityAssertion", "ifc": { "requiredIntegrity": [ "loom-verified-external-identity" ] } } }, "properties": { "$NAME": { "type": "string" }, "$UI": { "$ref": "https://commonfabric.org/schemas/vnode.json" }, "addFavorite": { "asCell": [ "stream" ], "properties": { "id": { "type": "string" }, "piece": { "properties": { "$NAME": { "type": "string" } }, "type": "object" }, "spaceName": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "piece" ], "type": "object" }, "addJournalEntry": { "asCell": [ "stream" ], "properties": { "entry": { "$ref": "#/$defs/JournalEntry" } }, "required": [ "entry" ], "type": "object" }, "addSpace": { "asCell": [ "stream" ], "properties": { "detail": { "properties": { "message": { "type": "string" } }, "required": [ "message" ], "type": "object" }, "did": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "adoptSpace": { "asCell": [ "stream" ], "properties": { "did": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "did" ], "type": "object" }, "agentQueue": { "$ref": "#/$defs/AgentQueueOutput" }, "changeSharedSpaceMembership": { "$ref": "#/$defs/SharedSpaceMembershipChange", "asCell": [ "stream" ] }, "chatManager": { "$ref": "#/$defs/FabriChatManagerOutput" }, "createProfile": { "$ref": "#/$defs/CreateProfileEvent", "asCell": [ "stream" ] }, "defaultAppUrl": { "default": "", "type": "string" }, "defaultProfile": { "$ref": "#/$defs/TrustedDefaultProfile" }, "ensurePrivateInbox": { "$ref": "#/$defs/EnsurePrivateInboxEvent", "asCell": [ "stream" ] }, "favorites": { "default": [], "items": { "$ref": "#/$defs/Favorite" }, "type": "array" }, "journal": { "default": [], "items": { "$ref": "#/$defs/JournalEntry" }, "type": "array" }, "legacyDefaultProfile": { "$ref": "#/$defs/BackwardsCompatibleProfile" }, "mru": { "$ref": "#/$defs/TrustedProfileMru", "default": [] }, "privateInbox": { "$ref": "#/$defs/PrivateInboxHolder" }, "privateInboxRefusal": { "$ref": "#/$defs/PrivateInboxRefusalHolder", "default": {} }, "privateInboxReplacement": { "$ref": "#/$defs/PrivateInboxReplacementHolder" }, "profiles": { "$ref": "#/$defs/TrustedProfileList", "default": [] }, "registerSharedSpace": { "$ref": "#/$defs/SharedSpaceRegistration", "asCell": [ "stream" ] }, "removeFavorite": { "asCell": [ "stream" ], "properties": { "id": { "type": "string" }, "piece": { "type": "unknown" } }, "type": "object" }, "removeSharedSpace": { "$ref": "#/$defs/SharedSpaceRemoval", "asCell": [ "stream" ] }, "removeSpace": { "asCell": [ "stream" ], "properties": { "did": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "renameSpace": { "asCell": [ "stream" ], "properties": { "did": { "type": "string" }, "name": { "type": "string" } }, "required": [ "did", "name" ], "type": "object" }, "replaceRefusedPrivateInbox": { "asCell": [ "stream", "opaque" ] }, "retainedPrivateInboxes": { "default": [], "items": { "$ref": "#/$defs/ShareInboxPiece" }, "type": "array" }, "sharedSpaceCatalog": { "$ref": "#/$defs/SharedSpaceCatalog" }, "spaces": { "default": [], "items": { "$ref": "#/$defs/SpaceEntry" }, "type": "array" } }, "required": [ "favorites", "journal", "spaces", "defaultAppUrl", "profiles", "mru", "agentQueue", "chatManager", "privateInbox", "retainedPrivateInboxes", "privateInboxRefusal", "privateInboxReplacement", "sharedSpaceCatalog", "registerSharedSpace", "changeSharedSpaceMembership", "removeSharedSpace", "createProfile", "ensurePrivateInbox", "replaceRefusedPrivateInbox", "addFavorite", "removeFavorite", "addJournalEntry", "addSpace", "removeSpace", "adoptSpace", "renameSpace", "$NAME", "$UI" ], "type": "object" } }