add lexicon codegen: vendored lexicons, lex cli and generation scripts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Samuel Newman
2026-08-03 12:06:59 +03:00
parent a2129885c6
commit a3243820c9
311 changed files with 23342 additions and 14 deletions
+42
View File
@@ -0,0 +1,42 @@
{
"id": "chat.bsky.convo.acceptConvo",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"properties": {
"rev": {
"type": "string",
"description": "Rev when the convo was accepted. If not present, the convo was already accepted."
}
}
},
"encoding": "application/json"
},
"description": "Marks a conversation as accepted, so it is shown in the list of accepted convos instead on the request convos."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+73
View File
@@ -0,0 +1,73 @@
{
"id": "chat.bsky.convo.addReaction",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId",
"messageId",
"value"
],
"properties": {
"value": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"maxGraphemes": 1,
"minGraphemes": 1
},
"convoId": {
"type": "string"
},
"messageId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
},
{
"name": "ReactionNotAllowed",
"description": "Indicates that reactions are not allowed on this message, e.g. because it is a system message."
},
{
"name": "ReactionMessageDeleted",
"description": "Indicates that the message has been deleted and reactions can no longer be added/removed."
},
{
"name": "ReactionLimitReached",
"description": "Indicates that the message has the maximum number of reactions allowed for a single user, and the requested reaction wasn't yet present. If it was already present, the request will not fail since it is idempotent."
},
{
"name": "ReactionInvalidValue",
"description": "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"ref": "chat.bsky.convo.defs#messageView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Adds an emoji reaction to a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in a single reaction."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,45 @@
{
"id": "chat.bsky.convo.deleteMessageForSelf",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId",
"messageId"
],
"properties": {
"convoId": {
"type": "string"
},
"messageId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
},
{
"name": "MessageDeleteNotAllowed",
"description": "Indicates that this message cannot be deleted, e.g. because it is a system message."
}
],
"output": {
"schema": {
"ref": "chat.bsky.convo.defs#deletedMessageView",
"type": "ref"
},
"encoding": "application/json"
},
"description": "Marks a message as deleted for the viewer, so they won't see that message in future enumerations."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,13 @@
{
"lexicon": 1,
"id": "chat.bsky.convo.exportAccountData",
"description": "Stub: chat.bsky.convo.exportAccountData is referenced in chat.bsky.authFullChatClient but the lexicon may have been renamed in the local repo.",
"defs": {
"main": {
"type": "query",
"output": {
"encoding": "application/jsonl"
}
}
}
}
+42
View File
@@ -0,0 +1,42 @@
{
"id": "chat.bsky.convo.getConvo",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"description": "Gets an existing conversation by its ID."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,46 @@
{
"id": "chat.bsky.convo.getConvoAvailability",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"canChat"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
},
"canChat": {
"type": "boolean"
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"members"
],
"properties": {
"members": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 10,
"minLength": 1
}
}
},
"description": "Check whether the requester and the other members can start a 1-1 chat. Only applicable to direct (non-group) conversations. If an existing convo is found for these members, it is returned. Does not create a new convo if it doesn't exist."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,63 @@
{
"id": "chat.bsky.convo.getConvoForMembers",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "AccountSuspended"
},
{
"name": "BlockedActor"
},
{
"name": "BlockedSubject"
},
{
"name": "MessagesDisabled"
},
{
"name": "NotFollowedBySender"
},
{
"name": "RecipientNotFound"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"members"
],
"properties": {
"members": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 10,
"minLength": 1
}
}
},
"description": "Get or create a 1-1 conversation for the given members. Always returns the same direct (non-group) conversation. To create a group conversation, use createGroup."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,57 @@
{
"id": "chat.bsky.convo.getConvoMembers",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"members"
],
"properties": {
"cursor": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"ref": "chat.bsky.actor.defs#profileViewBasic",
"type": "ref"
}
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"convoId"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"convoId": {
"type": "string"
}
}
},
"description": "Returns a paginated list of members from a conversation."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+71
View File
@@ -0,0 +1,71 @@
{
"id": "chat.bsky.convo.getLog",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"logs"
],
"properties": {
"logs": {
"type": "array",
"items": {
"refs": [
"chat.bsky.convo.defs#logBeginConvo",
"chat.bsky.convo.defs#logAcceptConvo",
"chat.bsky.convo.defs#logLeaveConvo",
"chat.bsky.convo.defs#logMuteConvo",
"chat.bsky.convo.defs#logUnmuteConvo",
"chat.bsky.convo.defs#logCreateMessage",
"chat.bsky.convo.defs#logDeleteMessage",
"chat.bsky.convo.defs#logReadMessage",
"chat.bsky.convo.defs#logAddReaction",
"chat.bsky.convo.defs#logRemoveReaction",
"chat.bsky.convo.defs#logReadConvo",
"chat.bsky.convo.defs#logAddMember",
"chat.bsky.convo.defs#logRemoveMember",
"chat.bsky.convo.defs#logMemberJoin",
"chat.bsky.convo.defs#logMemberLeave",
"chat.bsky.convo.defs#logLockConvo",
"chat.bsky.convo.defs#logUnlockConvo",
"chat.bsky.convo.defs#logLockConvoPermanently",
"chat.bsky.convo.defs#logEditGroup",
"chat.bsky.convo.defs#logCreateJoinLink",
"chat.bsky.convo.defs#logEditJoinLink",
"chat.bsky.convo.defs#logEnableJoinLink",
"chat.bsky.convo.defs#logDisableJoinLink",
"chat.bsky.convo.defs#logIncomingJoinRequest",
"chat.bsky.convo.defs#logApproveJoinRequest",
"chat.bsky.convo.defs#logRejectJoinRequest",
"chat.bsky.convo.defs#logOutgoingJoinRequest",
"chat.bsky.convo.defs#logWithdrawIncomingJoinRequest",
"chat.bsky.convo.defs#logWithdrawOutgoingJoinRequest",
"chat.bsky.convo.defs#logReadJoinRequests"
],
"type": "union"
}
},
"cursor": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [],
"properties": {
"cursor": {
"type": "string"
}
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+69
View File
@@ -0,0 +1,69 @@
{
"id": "chat.bsky.convo.getMessages",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"messages"
],
"properties": {
"cursor": {
"type": "string"
},
"messages": {
"type": "array",
"items": {
"refs": [
"chat.bsky.convo.defs#messageView",
"chat.bsky.convo.defs#deletedMessageView",
"chat.bsky.convo.defs#systemMessageView"
],
"type": "union"
}
},
"relatedProfiles": {
"type": "array",
"items": {
"ref": "chat.bsky.actor.defs#profileViewBasic",
"type": "ref"
},
"description": "Set of all members who authored or reacted to the returned messages. Members referred to by system messages are also included."
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"convoId"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"convoId": {
"type": "string"
}
}
},
"description": "Returns a page of messages from a conversation."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,41 @@
{
"id": "chat.bsky.convo.getUnreadCounts",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"unreadAcceptedConvos",
"unreadRequestConvos"
],
"properties": {
"unreadRequestConvos": {
"type": "integer",
"description": "Number of unread, unlocked request convos. Includes convos with unread messages, but not with unread join request, since only the owner of a group has join requests to read, and the group would necessarily be accepted. Capped at 100, where 100 means more than 99."
},
"unreadAcceptedConvos": {
"type": "integer",
"description": "Number of unread, unlocked accepted convos. Counts convos with unread messages and unread join requests. Capped at 100, where 100 means more than 99."
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"properties": {
"includeGroupChats": {
"type": "boolean",
"default": true,
"description": "When false, group convos are excluded from the counts."
}
}
},
"description": "Returns unread conversation counts for conversations that are unlocked, not muted, split by convo status. Direct convos are excluded when a block relationship exists between the actor and the other member, or when the other member's account is deleted or deactivated. Group convos are considered unread if they have unread join request counts."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+52
View File
@@ -0,0 +1,52 @@
{
"id": "chat.bsky.convo.leaveConvo",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
},
{
"name": "OwnerCannotLeave",
"description": "The owner of a group conversation cannot leave before locking the group."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convoId",
"rev"
],
"properties": {
"rev": {
"type": "string"
},
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"description": "Leaves a conversation (direct or group). For group, this effectively removes membership. For direct, membership is never removed, only changed to remove from enumerations by the user who left."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,49 @@
{
"id": "chat.bsky.convo.listConvoRequests",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"requests"
],
"properties": {
"cursor": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"refs": [
"chat.bsky.convo.defs#convoView",
"chat.bsky.group.defs#joinRequestConvoView"
],
"type": "union"
}
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
}
}
},
"description": "Returns a page of incoming conversation requests for the user. Direct convo requests are returned as convoView; group join requests made by the user are returned as joinRequestConvoView."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+77
View File
@@ -0,0 +1,77 @@
{
"id": "chat.bsky.convo.listConvos",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"convos"
],
"properties": {
"convos": {
"type": "array",
"items": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
},
"cursor": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"properties": {
"kind": {
"type": "string",
"description": "Filter by conversation kind.",
"knownValues": [
"direct",
"group"
]
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"status": {
"type": "string",
"description": "Filter convos by their status. It is discouraged to call with \"request\" and preferred to call chat.bsky.convo.listConvoRequests, which also includes group join requests made by the user.",
"knownValues": [
"request",
"accepted"
]
},
"readState": {
"type": "string",
"knownValues": [
"unread"
]
},
"lockStatus": {
"type": "string",
"description": "Filter by conversation lock status. Values follow chat.bsky.convo.defs#convoLockStatus.",
"knownValues": [
"unlocked",
"locked",
"locked-permanently"
]
}
}
},
"description": "Returns a page of conversations (direct or group) for the user."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+51
View File
@@ -0,0 +1,51 @@
{
"id": "chat.bsky.convo.lockConvo",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "ConvoLocked"
},
{
"name": "InvalidConvo"
},
{
"name": "InsufficientRole"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Locks a group convo so no more content (messages, reactions) can be added to it."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+45
View File
@@ -0,0 +1,45 @@
{
"id": "chat.bsky.convo.muteConvo",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Mutes a conversation, preventing notifications related to it."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,69 @@
{
"id": "chat.bsky.convo.removeReaction",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId",
"messageId",
"value"
],
"properties": {
"value": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"maxGraphemes": 1,
"minGraphemes": 1
},
"convoId": {
"type": "string"
},
"messageId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
},
{
"name": "ReactionNotAllowed",
"description": "Indicates that reactions are not allowed on this message, e.g. because it is a system message."
},
{
"name": "ReactionMessageDeleted",
"description": "Indicates that the message has been deleted and reactions can no longer be added/removed."
},
{
"name": "ReactionInvalidValue",
"description": "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"ref": "chat.bsky.convo.defs#messageView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Removes an emoji reaction from a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in that reaction not being present, even if it already wasn't."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+48
View File
@@ -0,0 +1,48 @@
{
"id": "chat.bsky.convo.sendMessage",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId",
"message"
],
"properties": {
"convoId": {
"type": "string"
},
"message": {
"ref": "chat.bsky.convo.defs#messageInput",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "ConvoLocked"
},
{
"name": "InvalidConvo"
},
{
"name": "ReplyTargetNotFound"
}
],
"output": {
"schema": {
"ref": "chat.bsky.convo.defs#messageView",
"type": "ref"
},
"encoding": "application/json"
},
"description": "Sends a message to a conversation."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,75 @@
{
"id": "chat.bsky.convo.sendMessageBatch",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"ref": "#batchItem",
"type": "ref"
},
"maxLength": 100
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "ConvoLocked"
},
{
"name": "InvalidConvo"
},
{
"name": "ReplyTargetNotFound"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"ref": "chat.bsky.convo.defs#messageView",
"type": "ref"
}
}
}
},
"encoding": "application/json"
},
"description": "Sends a batch of messages to a conversation."
},
"batchItem": {
"type": "object",
"required": [
"convoId",
"message"
],
"properties": {
"convoId": {
"type": "string"
},
"message": {
"ref": "chat.bsky.convo.defs#messageInput",
"type": "ref"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+51
View File
@@ -0,0 +1,51 @@
{
"id": "chat.bsky.convo.unlockConvo",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
},
{
"name": "InsufficientRole"
},
{
"name": "ConvoLockedByModeration"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Unlocks a group convo so it is able to receive new content."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+45
View File
@@ -0,0 +1,45 @@
{
"id": "chat.bsky.convo.unmuteConvo",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Unmutes a conversation, allowing notifications related to it."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
@@ -0,0 +1,41 @@
{
"id": "chat.bsky.convo.updateAllRead",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"knownValues": [
"request",
"accepted"
]
}
}
},
"encoding": "application/json"
},
"output": {
"schema": {
"type": "object",
"required": [
"updatedCount"
],
"properties": {
"updatedCount": {
"type": "integer",
"description": "The count of updated convos."
}
}
},
"encoding": "application/json"
},
"description": "Sets conversations from a user as read to the latest message, with filters."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
+48
View File
@@ -0,0 +1,48 @@
{
"id": "chat.bsky.convo.updateRead",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"convoId"
],
"properties": {
"convoId": {
"type": "string"
},
"messageId": {
"type": "string"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "InvalidConvo"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"convo"
],
"properties": {
"convo": {
"ref": "chat.bsky.convo.defs#convoView",
"type": "ref"
}
}
},
"encoding": "application/json"
},
"description": "Updates the read state of a conversation from, optionally specifying the last read message."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}