···11# Spark Feed Generator
2233-This repository is a feed generator for the Spark atproto app. It is a simple feed generator that fetches posts from a database and returns them in a format that can be used by the Spark client.
33+This repository is a feed generator for the Spark atproto app. It is a simple
44+feed generator that fetches posts from a database and returns them in a format
55+that can be used by the Spark client.
4655-The whole structure is heavily based on the Bluesky [feed-generator](https://github.com/bluesky-social/feed-generator) repository, most of the things said there apply here as well.
77+The whole structure is heavily based on the Bluesky
88+[feed-generator](https://github.com/bluesky-social/feed-generator) repository,
99+most of the things said there apply here as well.
610711## Setup
812913### Option 1: Docker Compose (Recommended)
10141111-The easiest way to get started is using Docker Compose, which will automatically build the application and set up the MongoDB database.
1515+The easiest way to get started is using Docker Compose, which will automatically
1616+build the application and set up the MongoDB database.
121713181. Start the services (this will automatically build the image):
1419···26312732### Option 2: Manual Setup
28332929-If you prefer to run the application manually or use an existing MongoDB instance:
3434+If you prefer to run the application manually or use an existing MongoDB
3535+instance:
30363137#### Prerequisites
3238···35413642#### Steps
37433838-1. Create a `.env` file in the root of the repository and add the following variables:
4444+1. Create a `.env` file in the root of the repository and add the following
4545+ variables:
39464047```
4141-DB_NAME=feed-gen
4242-DB_HOST=localhost
4343-DB_PORT=27017
4444-DB_USER=mongo
4545-DB_PASSWORD=mongo
4646-FEEDGEN_DOMAIN=localhost:3000
4747-NODE_ENV=development
4848+SPRK_DB_NAME=feed-gen
4949+SPRK_DB_HOST=localhost
5050+SPRK_DB_PORT=27017
5151+SPRK_DB_USER=username
5252+SPRK_DB_PASSWORD=password
5353+SPRK_FEEDGEN_DOMAIN=feeds.example.com
5454+NODE_ENV=production
4855```
495650572. Install dependencies:
···5360deno install
5461```
55625656-3. Make sure MongoDB is running. If you don't have MongoDB installed locally, you can run it with Docker:
5757-5858-```sh
5959-docker run -d --name mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=mongo -e MONGO_INITDB_ROOT_PASSWORD=mongo mongo:8
6060-```
6363+3. Make sure MongoDB is running.
616462654. Start the development server:
63666467```sh
6565-deno task dev
6868+deno task start
6669```
677068715. The application will be available at http://localhost:3000
+22
api/health.ts
···11+import { Hono } from "hono";
22+33+const app = new Hono();
44+55+app.get("/", (c) => {
66+ return c.text(
77+ `
88+This is a feed generator for the "sprk.so" application.
99+Learn more at https://github.com/sprksocial/feed-gen
1010+1111+Most API routes are under /xrpc/
1212+1313+ `,
1414+ );
1515+});
1616+1717+app.get("/xrpc/_health", (c) => {
1818+ const version = Deno.env.get("COMMIT_SHA") ?? "unknown";
1919+ return c.json({ version });
2020+});
2121+2222+export default app;
···66 createServer as createXrpcServer,
77 type MethodConfigOrHandler,
88 type Options as XrpcOptions,
99- Server as XrpcServer,
99+ type Server as XrpcServer,
1010 type StreamConfigOrHandler,
1111} from "@atp/xrpc-server";
1212import { schemas } from "./lexicons.ts";
1313-import * as ToolsOzoneSignatureFindCorrelation from "./types/tools/ozone/signature/findCorrelation.ts";
1414-import * as ToolsOzoneSignatureSearchAccounts from "./types/tools/ozone/signature/searchAccounts.ts";
1515-import * as ToolsOzoneSignatureFindRelatedAccounts from "./types/tools/ozone/signature/findRelatedAccounts.ts";
1616-import * as ToolsOzoneServerGetConfig from "./types/tools/ozone/server/getConfig.ts";
1717-import * as ToolsOzoneTeamListMembers from "./types/tools/ozone/team/listMembers.ts";
1818-import * as ToolsOzoneTeamDeleteMember from "./types/tools/ozone/team/deleteMember.ts";
1919-import * as ToolsOzoneTeamUpdateMember from "./types/tools/ozone/team/updateMember.ts";
2020-import * as ToolsOzoneTeamAddMember from "./types/tools/ozone/team/addMember.ts";
2121-import * as ToolsOzoneCommunicationUpdateTemplate from "./types/tools/ozone/communication/updateTemplate.ts";
2222-import * as ToolsOzoneCommunicationCreateTemplate from "./types/tools/ozone/communication/createTemplate.ts";
2323-import * as ToolsOzoneCommunicationListTemplates from "./types/tools/ozone/communication/listTemplates.ts";
2424-import * as ToolsOzoneCommunicationDeleteTemplate from "./types/tools/ozone/communication/deleteTemplate.ts";
2525-import * as ToolsOzoneSetAddValues from "./types/tools/ozone/set/addValues.ts";
2626-import * as ToolsOzoneSetGetValues from "./types/tools/ozone/set/getValues.ts";
2727-import * as ToolsOzoneSetDeleteSet from "./types/tools/ozone/set/deleteSet.ts";
2828-import * as ToolsOzoneSetUpsertSet from "./types/tools/ozone/set/upsertSet.ts";
2929-import * as ToolsOzoneSetDeleteValues from "./types/tools/ozone/set/deleteValues.ts";
3030-import * as ToolsOzoneSetQuerySets from "./types/tools/ozone/set/querySets.ts";
3131-import * as ToolsOzoneSettingListOptions from "./types/tools/ozone/setting/listOptions.ts";
3232-import * as ToolsOzoneSettingRemoveOptions from "./types/tools/ozone/setting/removeOptions.ts";
3333-import * as ToolsOzoneSettingUpsertOption from "./types/tools/ozone/setting/upsertOption.ts";
3434-import * as ToolsOzoneModerationGetReporterStats from "./types/tools/ozone/moderation/getReporterStats.ts";
3535-import * as ToolsOzoneModerationQueryStatuses from "./types/tools/ozone/moderation/queryStatuses.ts";
3636-import * as ToolsOzoneModerationGetRepo from "./types/tools/ozone/moderation/getRepo.ts";
3737-import * as ToolsOzoneModerationGetRecords from "./types/tools/ozone/moderation/getRecords.ts";
3838-import * as ToolsOzoneModerationGetEvent from "./types/tools/ozone/moderation/getEvent.ts";
3939-import * as ToolsOzoneModerationQueryEvents from "./types/tools/ozone/moderation/queryEvents.ts";
4040-import * as ToolsOzoneModerationGetRecord from "./types/tools/ozone/moderation/getRecord.ts";
4141-import * as ToolsOzoneModerationEmitEvent from "./types/tools/ozone/moderation/emitEvent.ts";
4242-import * as ToolsOzoneModerationSearchRepos from "./types/tools/ozone/moderation/searchRepos.ts";
4343-import * as ToolsOzoneModerationGetRepos from "./types/tools/ozone/moderation/getRepos.ts";
4444-import * as AppBskyVideoUploadVideo from "./types/app/bsky/video/uploadVideo.ts";
4545-import * as AppBskyVideoGetJobStatus from "./types/app/bsky/video/getJobStatus.ts";
4646-import * as AppBskyVideoGetUploadLimits from "./types/app/bsky/video/getUploadLimits.ts";
4747-import * as AppBskyNotificationRegisterPush from "./types/app/bsky/notification/registerPush.ts";
4848-import * as AppBskyNotificationPutPreferences from "./types/app/bsky/notification/putPreferences.ts";
4949-import * as AppBskyNotificationUpdateSeen from "./types/app/bsky/notification/updateSeen.ts";
5050-import * as AppBskyNotificationListNotifications from "./types/app/bsky/notification/listNotifications.ts";
5151-import * as AppBskyNotificationGetUnreadCount from "./types/app/bsky/notification/getUnreadCount.ts";
5252-import * as AppBskyUnspeccedSearchStarterPacksSkeleton from "./types/app/bsky/unspecced/searchStarterPacksSkeleton.ts";
5353-import * as AppBskyUnspeccedSearchActorsSkeleton from "./types/app/bsky/unspecced/searchActorsSkeleton.ts";
5454-import * as AppBskyUnspeccedGetSuggestionsSkeleton from "./types/app/bsky/unspecced/getSuggestionsSkeleton.ts";
5555-import * as AppBskyUnspeccedSearchPostsSkeleton from "./types/app/bsky/unspecced/searchPostsSkeleton.ts";
5656-import * as AppBskyUnspeccedGetPopularFeedGenerators from "./types/app/bsky/unspecced/getPopularFeedGenerators.ts";
5757-import * as AppBskyUnspeccedGetTrendingTopics from "./types/app/bsky/unspecced/getTrendingTopics.ts";
5858-import * as AppBskyUnspeccedGetTaggedSuggestions from "./types/app/bsky/unspecced/getTaggedSuggestions.ts";
5959-import * as AppBskyUnspeccedGetConfig from "./types/app/bsky/unspecced/getConfig.ts";
6060-import * as AppBskyGraphGetStarterPacks from "./types/app/bsky/graph/getStarterPacks.ts";
6161-import * as AppBskyGraphGetSuggestedFollowsByActor from "./types/app/bsky/graph/getSuggestedFollowsByActor.ts";
6262-import * as AppBskyGraphUnmuteActorList from "./types/app/bsky/graph/unmuteActorList.ts";
6363-import * as AppBskyGraphGetListBlocks from "./types/app/bsky/graph/getListBlocks.ts";
6464-import * as AppBskyGraphGetStarterPack from "./types/app/bsky/graph/getStarterPack.ts";
6565-import * as AppBskyGraphMuteActorList from "./types/app/bsky/graph/muteActorList.ts";
6666-import * as AppBskyGraphMuteThread from "./types/app/bsky/graph/muteThread.ts";
6767-import * as AppBskyGraphSearchStarterPacks from "./types/app/bsky/graph/searchStarterPacks.ts";
6868-import * as AppBskyGraphGetActorStarterPacks from "./types/app/bsky/graph/getActorStarterPacks.ts";
6969-import * as AppBskyGraphGetLists from "./types/app/bsky/graph/getLists.ts";
7070-import * as AppBskyGraphGetFollowers from "./types/app/bsky/graph/getFollowers.ts";
7171-import * as AppBskyGraphUnmuteThread from "./types/app/bsky/graph/unmuteThread.ts";
7272-import * as AppBskyGraphMuteActor from "./types/app/bsky/graph/muteActor.ts";
7373-import * as AppBskyGraphGetMutes from "./types/app/bsky/graph/getMutes.ts";
7474-import * as AppBskyGraphGetKnownFollowers from "./types/app/bsky/graph/getKnownFollowers.ts";
7575-import * as AppBskyGraphGetListMutes from "./types/app/bsky/graph/getListMutes.ts";
7676-import * as AppBskyGraphGetFollows from "./types/app/bsky/graph/getFollows.ts";
7777-import * as AppBskyGraphGetBlocks from "./types/app/bsky/graph/getBlocks.ts";
7878-import * as AppBskyGraphGetRelationships from "./types/app/bsky/graph/getRelationships.ts";
7979-import * as AppBskyGraphUnmuteActor from "./types/app/bsky/graph/unmuteActor.ts";
8080-import * as AppBskyGraphGetList from "./types/app/bsky/graph/getList.ts";
8181-import * as AppBskyFeedSendInteractions from "./types/app/bsky/feed/sendInteractions.ts";
8282-import * as AppBskyFeedGetFeedGenerators from "./types/app/bsky/feed/getFeedGenerators.ts";
8383-import * as AppBskyFeedGetTimeline from "./types/app/bsky/feed/getTimeline.ts";
8484-import * as AppBskyFeedGetFeedGenerator from "./types/app/bsky/feed/getFeedGenerator.ts";
8585-import * as AppBskyFeedGetAuthorFeed from "./types/app/bsky/feed/getAuthorFeed.ts";
8686-import * as AppBskyFeedGetLikes from "./types/app/bsky/feed/getLikes.ts";
8787-import * as AppBskyFeedGetPostThread from "./types/app/bsky/feed/getPostThread.ts";
8888-import * as AppBskyFeedGetActorLikes from "./types/app/bsky/feed/getActorLikes.ts";
8989-import * as AppBskyFeedGetRepostedBy from "./types/app/bsky/feed/getRepostedBy.ts";
9090-import * as AppBskyFeedDescribeFeedGenerator from "./types/app/bsky/feed/describeFeedGenerator.ts";
9191-import * as AppBskyFeedSearchPosts from "./types/app/bsky/feed/searchPosts.ts";
9292-import * as AppBskyFeedGetPosts from "./types/app/bsky/feed/getPosts.ts";
9393-import * as AppBskyFeedGetFeed from "./types/app/bsky/feed/getFeed.ts";
9494-import * as AppBskyFeedGetQuotes from "./types/app/bsky/feed/getQuotes.ts";
9595-import * as AppBskyFeedGetFeedSkeleton from "./types/app/bsky/feed/getFeedSkeleton.ts";
9696-import * as AppBskyFeedGetListFeed from "./types/app/bsky/feed/getListFeed.ts";
9797-import * as AppBskyFeedGetSuggestedFeeds from "./types/app/bsky/feed/getSuggestedFeeds.ts";
9898-import * as AppBskyFeedGetActorFeeds from "./types/app/bsky/feed/getActorFeeds.ts";
9999-import * as AppBskyActorSearchActorsTypeahead from "./types/app/bsky/actor/searchActorsTypeahead.ts";
100100-import * as AppBskyActorPutPreferences from "./types/app/bsky/actor/putPreferences.ts";
101101-import * as AppBskyActorGetProfile from "./types/app/bsky/actor/getProfile.ts";
102102-import * as AppBskyActorGetSuggestions from "./types/app/bsky/actor/getSuggestions.ts";
103103-import * as AppBskyActorSearchActors from "./types/app/bsky/actor/searchActors.ts";
104104-import * as AppBskyActorGetProfiles from "./types/app/bsky/actor/getProfiles.ts";
105105-import * as AppBskyActorGetPreferences from "./types/app/bsky/actor/getPreferences.ts";
106106-import * as AppBskyLabelerGetServices from "./types/app/bsky/labeler/getServices.ts";
107107-import * as ChatBskyConvoListConvos from "./types/chat/bsky/convo/listConvos.ts";
108108-import * as ChatBskyConvoUnmuteConvo from "./types/chat/bsky/convo/unmuteConvo.ts";
109109-import * as ChatBskyConvoGetConvoAvailability from "./types/chat/bsky/convo/getConvoAvailability.ts";
110110-import * as ChatBskyConvoGetLog from "./types/chat/bsky/convo/getLog.ts";
111111-import * as ChatBskyConvoSendMessage from "./types/chat/bsky/convo/sendMessage.ts";
112112-import * as ChatBskyConvoLeaveConvo from "./types/chat/bsky/convo/leaveConvo.ts";
113113-import * as ChatBskyConvoAcceptConvo from "./types/chat/bsky/convo/acceptConvo.ts";
114114-import * as ChatBskyConvoMuteConvo from "./types/chat/bsky/convo/muteConvo.ts";
115115-import * as ChatBskyConvoDeleteMessageForSelf from "./types/chat/bsky/convo/deleteMessageForSelf.ts";
116116-import * as ChatBskyConvoUpdateRead from "./types/chat/bsky/convo/updateRead.ts";
117117-import * as ChatBskyConvoUpdateAllRead from "./types/chat/bsky/convo/updateAllRead.ts";
118118-import * as ChatBskyConvoGetConvo from "./types/chat/bsky/convo/getConvo.ts";
119119-import * as ChatBskyConvoGetMessages from "./types/chat/bsky/convo/getMessages.ts";
120120-import * as ChatBskyConvoGetConvoForMembers from "./types/chat/bsky/convo/getConvoForMembers.ts";
121121-import * as ChatBskyConvoSendMessageBatch from "./types/chat/bsky/convo/sendMessageBatch.ts";
122122-import * as ChatBskyActorExportAccountData from "./types/chat/bsky/actor/exportAccountData.ts";
123123-import * as ChatBskyActorDeleteAccount from "./types/chat/bsky/actor/deleteAccount.ts";
124124-import * as ChatBskyModerationGetActorMetadata from "./types/chat/bsky/moderation/getActorMetadata.ts";
125125-import * as ChatBskyModerationGetMessageContext from "./types/chat/bsky/moderation/getMessageContext.ts";
126126-import * as ChatBskyModerationUpdateActorAccess from "./types/chat/bsky/moderation/updateActorAccess.ts";
127127-import * as SoSprkVideoUploadVideo from "./types/so/sprk/video/uploadVideo.ts";
128128-import * as SoSprkVideoGetJobStatus from "./types/so/sprk/video/getJobStatus.ts";
129129-import * as SoSprkVideoGetUploadLimits from "./types/so/sprk/video/getUploadLimits.ts";
130130-import * as SoSprkNotificationRegisterPush from "./types/so/sprk/notification/registerPush.ts";
131131-import * as SoSprkNotificationPutPreferences from "./types/so/sprk/notification/putPreferences.ts";
132132-import * as SoSprkNotificationUpdateSeen from "./types/so/sprk/notification/updateSeen.ts";
133133-import * as SoSprkNotificationListNotifications from "./types/so/sprk/notification/listNotifications.ts";
134134-import * as SoSprkNotificationGetUnreadCount from "./types/so/sprk/notification/getUnreadCount.ts";
135135-import * as SoSprkGraphGetSuggestedFollowsByActor from "./types/so/sprk/graph/getSuggestedFollowsByActor.ts";
136136-import * as SoSprkGraphMuteThread from "./types/so/sprk/graph/muteThread.ts";
137137-import * as SoSprkGraphGetFollowers from "./types/so/sprk/graph/getFollowers.ts";
138138-import * as SoSprkGraphUnmuteThread from "./types/so/sprk/graph/unmuteThread.ts";
139139-import * as SoSprkGraphMuteActor from "./types/so/sprk/graph/muteActor.ts";
140140-import * as SoSprkGraphGetMutes from "./types/so/sprk/graph/getMutes.ts";
141141-import * as SoSprkGraphGetKnownFollowers from "./types/so/sprk/graph/getKnownFollowers.ts";
142142-import * as SoSprkGraphGetFollows from "./types/so/sprk/graph/getFollows.ts";
143143-import * as SoSprkGraphGetBlocks from "./types/so/sprk/graph/getBlocks.ts";
144144-import * as SoSprkGraphGetRelationships from "./types/so/sprk/graph/getRelationships.ts";
145145-import * as SoSprkGraphUnmuteActor from "./types/so/sprk/graph/unmuteActor.ts";
146146-import * as SoSprkFeedSendInteractions from "./types/so/sprk/feed/sendInteractions.ts";
147147-import * as SoSprkFeedGetFeedGenerators from "./types/so/sprk/feed/getFeedGenerators.ts";
148148-import * as SoSprkFeedGetTimeline from "./types/so/sprk/feed/getTimeline.ts";
149149-import * as SoSprkFeedGetFeedGenerator from "./types/so/sprk/feed/getFeedGenerator.ts";
150150-import * as SoSprkFeedGetAuthorFeed from "./types/so/sprk/feed/getAuthorFeed.ts";
151151-import * as SoSprkFeedGetLikes from "./types/so/sprk/feed/getLikes.ts";
152152-import * as SoSprkFeedGetPostThread from "./types/so/sprk/feed/getPostThread.ts";
153153-import * as SoSprkFeedGetActorLikes from "./types/so/sprk/feed/getActorLikes.ts";
154154-import * as SoSprkFeedGetRepostedBy from "./types/so/sprk/feed/getRepostedBy.ts";
155155-import * as SoSprkFeedDescribeFeedGenerator from "./types/so/sprk/feed/describeFeedGenerator.ts";
156156-import * as SoSprkFeedSearchPosts from "./types/so/sprk/feed/searchPosts.ts";
157157-import * as SoSprkFeedGetPosts from "./types/so/sprk/feed/getPosts.ts";
158158-import * as SoSprkFeedGetFeed from "./types/so/sprk/feed/getFeed.ts";
159159-import * as SoSprkFeedGetFeedSkeleton from "./types/so/sprk/feed/getFeedSkeleton.ts";
160160-import * as SoSprkFeedGetSuggestedFeeds from "./types/so/sprk/feed/getSuggestedFeeds.ts";
161161-import * as SoSprkFeedGetActorFeeds from "./types/so/sprk/feed/getActorFeeds.ts";
162162-import * as SoSprkSoundGetActorAudios from "./types/so/sprk/sound/getActorAudios.ts";
163163-import * as SoSprkSoundGetAudioPosts from "./types/so/sprk/sound/getAudioPosts.ts";
164164-import * as SoSprkSoundGetAudios from "./types/so/sprk/sound/getAudios.ts";
165165-import * as SoSprkSoundGetTrendingAudios from "./types/so/sprk/sound/getTrendingAudios.ts";
166166-import * as SoSprkActorSearchActorsTypeahead from "./types/so/sprk/actor/searchActorsTypeahead.ts";
167167-import * as SoSprkActorPutPreferences from "./types/so/sprk/actor/putPreferences.ts";
168168-import * as SoSprkActorGetProfile from "./types/so/sprk/actor/getProfile.ts";
169169-import * as SoSprkActorGetSuggestions from "./types/so/sprk/actor/getSuggestions.ts";
170170-import * as SoSprkActorSearchActors from "./types/so/sprk/actor/searchActors.ts";
171171-import * as SoSprkActorGetProfiles from "./types/so/sprk/actor/getProfiles.ts";
172172-import * as SoSprkActorGetPreferences from "./types/so/sprk/actor/getPreferences.ts";
173173-import * as SoSprkStoryGetTimeline from "./types/so/sprk/story/getTimeline.ts";
174174-import * as SoSprkStoryGetStories from "./types/so/sprk/story/getStories.ts";
175175-import * as SoSprkLabelerGetServices from "./types/so/sprk/labeler/getServices.ts";
176176-import * as ComAtprotoTempAddReservedHandle from "./types/com/atproto/temp/addReservedHandle.ts";
177177-import * as ComAtprotoTempCheckSignupQueue from "./types/com/atproto/temp/checkSignupQueue.ts";
178178-import * as ComAtprotoTempRequestPhoneVerification from "./types/com/atproto/temp/requestPhoneVerification.ts";
179179-import * as ComAtprotoTempFetchLabels from "./types/com/atproto/temp/fetchLabels.ts";
180180-import * as ComAtprotoIdentityUpdateHandle from "./types/com/atproto/identity/updateHandle.ts";
181181-import * as ComAtprotoIdentitySignPlcOperation from "./types/com/atproto/identity/signPlcOperation.ts";
182182-import * as ComAtprotoIdentitySubmitPlcOperation from "./types/com/atproto/identity/submitPlcOperation.ts";
183183-import * as ComAtprotoIdentityResolveHandle from "./types/com/atproto/identity/resolveHandle.ts";
184184-import * as ComAtprotoIdentityRequestPlcOperationSignature from "./types/com/atproto/identity/requestPlcOperationSignature.ts";
185185-import * as ComAtprotoIdentityGetRecommendedDidCredentials from "./types/com/atproto/identity/getRecommendedDidCredentials.ts";
186186-import * as ComAtprotoAdminUpdateAccountEmail from "./types/com/atproto/admin/updateAccountEmail.ts";
187187-import * as ComAtprotoAdminGetAccountInfo from "./types/com/atproto/admin/getAccountInfo.ts";
188188-import * as ComAtprotoAdminGetSubjectStatus from "./types/com/atproto/admin/getSubjectStatus.ts";
189189-import * as ComAtprotoAdminSearchAccounts from "./types/com/atproto/admin/searchAccounts.ts";
190190-import * as ComAtprotoAdminUpdateAccountPassword from "./types/com/atproto/admin/updateAccountPassword.ts";
191191-import * as ComAtprotoAdminUpdateAccountHandle from "./types/com/atproto/admin/updateAccountHandle.ts";
192192-import * as ComAtprotoAdminGetInviteCodes from "./types/com/atproto/admin/getInviteCodes.ts";
193193-import * as ComAtprotoAdminEnableAccountInvites from "./types/com/atproto/admin/enableAccountInvites.ts";
194194-import * as ComAtprotoAdminDisableAccountInvites from "./types/com/atproto/admin/disableAccountInvites.ts";
195195-import * as ComAtprotoAdminDisableInviteCodes from "./types/com/atproto/admin/disableInviteCodes.ts";
196196-import * as ComAtprotoAdminUpdateSubjectStatus from "./types/com/atproto/admin/updateSubjectStatus.ts";
197197-import * as ComAtprotoAdminSendEmail from "./types/com/atproto/admin/sendEmail.ts";
198198-import * as ComAtprotoAdminGetAccountInfos from "./types/com/atproto/admin/getAccountInfos.ts";
199199-import * as ComAtprotoAdminDeleteAccount from "./types/com/atproto/admin/deleteAccount.ts";
200200-import * as ComAtprotoLabelSubscribeLabels from "./types/com/atproto/label/subscribeLabels.ts";
201201-import * as ComAtprotoLabelQueryLabels from "./types/com/atproto/label/queryLabels.ts";
202202-import * as ComAtprotoServerRequestEmailConfirmation from "./types/com/atproto/server/requestEmailConfirmation.ts";
203203-import * as ComAtprotoServerReserveSigningKey from "./types/com/atproto/server/reserveSigningKey.ts";
204204-import * as ComAtprotoServerGetServiceAuth from "./types/com/atproto/server/getServiceAuth.ts";
205205-import * as ComAtprotoServerGetAccountInviteCodes from "./types/com/atproto/server/getAccountInviteCodes.ts";
206206-import * as ComAtprotoServerCreateSession from "./types/com/atproto/server/createSession.ts";
207207-import * as ComAtprotoServerListAppPasswords from "./types/com/atproto/server/listAppPasswords.ts";
208208-import * as ComAtprotoServerCreateInviteCodes from "./types/com/atproto/server/createInviteCodes.ts";
209209-import * as ComAtprotoServerDeleteSession from "./types/com/atproto/server/deleteSession.ts";
210210-import * as ComAtprotoServerRevokeAppPassword from "./types/com/atproto/server/revokeAppPassword.ts";
211211-import * as ComAtprotoServerCreateAppPassword from "./types/com/atproto/server/createAppPassword.ts";
212212-import * as ComAtprotoServerActivateAccount from "./types/com/atproto/server/activateAccount.ts";
213213-import * as ComAtprotoServerDescribeServer from "./types/com/atproto/server/describeServer.ts";
214214-import * as ComAtprotoServerConfirmEmail from "./types/com/atproto/server/confirmEmail.ts";
215215-import * as ComAtprotoServerGetSession from "./types/com/atproto/server/getSession.ts";
216216-import * as ComAtprotoServerRefreshSession from "./types/com/atproto/server/refreshSession.ts";
217217-import * as ComAtprotoServerDeactivateAccount from "./types/com/atproto/server/deactivateAccount.ts";
218218-import * as ComAtprotoServerUpdateEmail from "./types/com/atproto/server/updateEmail.ts";
219219-import * as ComAtprotoServerResetPassword from "./types/com/atproto/server/resetPassword.ts";
220220-import * as ComAtprotoServerCheckAccountStatus from "./types/com/atproto/server/checkAccountStatus.ts";
221221-import * as ComAtprotoServerRequestEmailUpdate from "./types/com/atproto/server/requestEmailUpdate.ts";
222222-import * as ComAtprotoServerRequestPasswordReset from "./types/com/atproto/server/requestPasswordReset.ts";
223223-import * as ComAtprotoServerRequestAccountDelete from "./types/com/atproto/server/requestAccountDelete.ts";
224224-import * as ComAtprotoServerCreateAccount from "./types/com/atproto/server/createAccount.ts";
225225-import * as ComAtprotoServerDeleteAccount from "./types/com/atproto/server/deleteAccount.ts";
226226-import * as ComAtprotoServerCreateInviteCode from "./types/com/atproto/server/createInviteCode.ts";
227227-import * as ComAtprotoSyncGetHead from "./types/com/atproto/sync/getHead.ts";
228228-import * as ComAtprotoSyncGetBlob from "./types/com/atproto/sync/getBlob.ts";
229229-import * as ComAtprotoSyncGetRepo from "./types/com/atproto/sync/getRepo.ts";
230230-import * as ComAtprotoSyncNotifyOfUpdate from "./types/com/atproto/sync/notifyOfUpdate.ts";
231231-import * as ComAtprotoSyncRequestCrawl from "./types/com/atproto/sync/requestCrawl.ts";
232232-import * as ComAtprotoSyncListBlobs from "./types/com/atproto/sync/listBlobs.ts";
233233-import * as ComAtprotoSyncGetLatestCommit from "./types/com/atproto/sync/getLatestCommit.ts";
234234-import * as ComAtprotoSyncSubscribeRepos from "./types/com/atproto/sync/subscribeRepos.ts";
235235-import * as ComAtprotoSyncGetRepoStatus from "./types/com/atproto/sync/getRepoStatus.ts";
236236-import * as ComAtprotoSyncGetRecord from "./types/com/atproto/sync/getRecord.ts";
237237-import * as ComAtprotoSyncListRepos from "./types/com/atproto/sync/listRepos.ts";
238238-import * as ComAtprotoSyncGetBlocks from "./types/com/atproto/sync/getBlocks.ts";
239239-import * as ComAtprotoSyncListReposByCollection from "./types/com/atproto/sync/listReposByCollection.ts";
240240-import * as ComAtprotoSyncGetCheckout from "./types/com/atproto/sync/getCheckout.ts";
241241-import * as ComAtprotoRepoListMissingBlobs from "./types/com/atproto/repo/listMissingBlobs.ts";
242242-import * as ComAtprotoRepoCreateRecord from "./types/com/atproto/repo/createRecord.ts";
243243-import * as ComAtprotoRepoDeleteRecord from "./types/com/atproto/repo/deleteRecord.ts";
244244-import * as ComAtprotoRepoPutRecord from "./types/com/atproto/repo/putRecord.ts";
245245-import * as ComAtprotoRepoUploadBlob from "./types/com/atproto/repo/uploadBlob.ts";
246246-import * as ComAtprotoRepoImportRepo from "./types/com/atproto/repo/importRepo.ts";
247247-import * as ComAtprotoRepoDescribeRepo from "./types/com/atproto/repo/describeRepo.ts";
248248-import * as ComAtprotoRepoGetRecord from "./types/com/atproto/repo/getRecord.ts";
249249-import * as ComAtprotoRepoApplyWrites from "./types/com/atproto/repo/applyWrites.ts";
250250-import * as ComAtprotoRepoListRecords from "./types/com/atproto/repo/listRecords.ts";
251251-import * as ComAtprotoModerationCreateReport from "./types/com/atproto/moderation/createReport.ts";
1313+import type * as ToolsOzoneSignatureFindCorrelation from "./types/tools/ozone/signature/findCorrelation.ts";
1414+import type * as ToolsOzoneSignatureSearchAccounts from "./types/tools/ozone/signature/searchAccounts.ts";
1515+import type * as ToolsOzoneSignatureFindRelatedAccounts from "./types/tools/ozone/signature/findRelatedAccounts.ts";
1616+import type * as ToolsOzoneServerGetConfig from "./types/tools/ozone/server/getConfig.ts";
1717+import type * as ToolsOzoneVerificationRevokeVerifications from "./types/tools/ozone/verification/revokeVerifications.ts";
1818+import type * as ToolsOzoneVerificationGrantVerifications from "./types/tools/ozone/verification/grantVerifications.ts";
1919+import type * as ToolsOzoneVerificationListVerifications from "./types/tools/ozone/verification/listVerifications.ts";
2020+import type * as ToolsOzoneSafelinkAddRule from "./types/tools/ozone/safelink/addRule.ts";
2121+import type * as ToolsOzoneSafelinkRemoveRule from "./types/tools/ozone/safelink/removeRule.ts";
2222+import type * as ToolsOzoneSafelinkUpdateRule from "./types/tools/ozone/safelink/updateRule.ts";
2323+import type * as ToolsOzoneSafelinkQueryEvents from "./types/tools/ozone/safelink/queryEvents.ts";
2424+import type * as ToolsOzoneSafelinkQueryRules from "./types/tools/ozone/safelink/queryRules.ts";
2525+import type * as ToolsOzoneTeamListMembers from "./types/tools/ozone/team/listMembers.ts";
2626+import type * as ToolsOzoneTeamDeleteMember from "./types/tools/ozone/team/deleteMember.ts";
2727+import type * as ToolsOzoneTeamUpdateMember from "./types/tools/ozone/team/updateMember.ts";
2828+import type * as ToolsOzoneTeamAddMember from "./types/tools/ozone/team/addMember.ts";
2929+import type * as ToolsOzoneHostingGetAccountHistory from "./types/tools/ozone/hosting/getAccountHistory.ts";
3030+import type * as ToolsOzoneCommunicationUpdateTemplate from "./types/tools/ozone/communication/updateTemplate.ts";
3131+import type * as ToolsOzoneCommunicationCreateTemplate from "./types/tools/ozone/communication/createTemplate.ts";
3232+import type * as ToolsOzoneCommunicationListTemplates from "./types/tools/ozone/communication/listTemplates.ts";
3333+import type * as ToolsOzoneCommunicationDeleteTemplate from "./types/tools/ozone/communication/deleteTemplate.ts";
3434+import type * as ToolsOzoneSetAddValues from "./types/tools/ozone/set/addValues.ts";
3535+import type * as ToolsOzoneSetGetValues from "./types/tools/ozone/set/getValues.ts";
3636+import type * as ToolsOzoneSetDeleteSet from "./types/tools/ozone/set/deleteSet.ts";
3737+import type * as ToolsOzoneSetUpsertSet from "./types/tools/ozone/set/upsertSet.ts";
3838+import type * as ToolsOzoneSetDeleteValues from "./types/tools/ozone/set/deleteValues.ts";
3939+import type * as ToolsOzoneSetQuerySets from "./types/tools/ozone/set/querySets.ts";
4040+import type * as ToolsOzoneSettingListOptions from "./types/tools/ozone/setting/listOptions.ts";
4141+import type * as ToolsOzoneSettingRemoveOptions from "./types/tools/ozone/setting/removeOptions.ts";
4242+import type * as ToolsOzoneSettingUpsertOption from "./types/tools/ozone/setting/upsertOption.ts";
4343+import type * as ToolsOzoneModerationGetReporterStats from "./types/tools/ozone/moderation/getReporterStats.ts";
4444+import type * as ToolsOzoneModerationCancelScheduledActions from "./types/tools/ozone/moderation/cancelScheduledActions.ts";
4545+import type * as ToolsOzoneModerationListScheduledActions from "./types/tools/ozone/moderation/listScheduledActions.ts";
4646+import type * as ToolsOzoneModerationQueryStatuses from "./types/tools/ozone/moderation/queryStatuses.ts";
4747+import type * as ToolsOzoneModerationGetRepo from "./types/tools/ozone/moderation/getRepo.ts";
4848+import type * as ToolsOzoneModerationGetSubjects from "./types/tools/ozone/moderation/getSubjects.ts";
4949+import type * as ToolsOzoneModerationGetRecords from "./types/tools/ozone/moderation/getRecords.ts";
5050+import type * as ToolsOzoneModerationScheduleAction from "./types/tools/ozone/moderation/scheduleAction.ts";
5151+import type * as ToolsOzoneModerationGetEvent from "./types/tools/ozone/moderation/getEvent.ts";
5252+import type * as ToolsOzoneModerationQueryEvents from "./types/tools/ozone/moderation/queryEvents.ts";
5353+import type * as ToolsOzoneModerationGetRecord from "./types/tools/ozone/moderation/getRecord.ts";
5454+import type * as ToolsOzoneModerationEmitEvent from "./types/tools/ozone/moderation/emitEvent.ts";
5555+import type * as ToolsOzoneModerationSearchRepos from "./types/tools/ozone/moderation/searchRepos.ts";
5656+import type * as ToolsOzoneModerationGetAccountTimeline from "./types/tools/ozone/moderation/getAccountTimeline.ts";
5757+import type * as ToolsOzoneModerationGetRepos from "./types/tools/ozone/moderation/getRepos.ts";
5858+import type * as AppBskyVideoUploadVideo from "./types/app/bsky/video/uploadVideo.ts";
5959+import type * as AppBskyVideoGetJobStatus from "./types/app/bsky/video/getJobStatus.ts";
6060+import type * as AppBskyVideoGetUploadLimits from "./types/app/bsky/video/getUploadLimits.ts";
6161+import type * as AppBskyBookmarkDeleteBookmark from "./types/app/bsky/bookmark/deleteBookmark.ts";
6262+import type * as AppBskyBookmarkGetBookmarks from "./types/app/bsky/bookmark/getBookmarks.ts";
6363+import type * as AppBskyBookmarkCreateBookmark from "./types/app/bsky/bookmark/createBookmark.ts";
6464+import type * as AppBskyNotificationRegisterPush from "./types/app/bsky/notification/registerPush.ts";
6565+import type * as AppBskyNotificationPutPreferences from "./types/app/bsky/notification/putPreferences.ts";
6666+import type * as AppBskyNotificationPutActivitySubscription from "./types/app/bsky/notification/putActivitySubscription.ts";
6767+import type * as AppBskyNotificationPutPreferencesV2 from "./types/app/bsky/notification/putPreferencesV2.ts";
6868+import type * as AppBskyNotificationUpdateSeen from "./types/app/bsky/notification/updateSeen.ts";
6969+import type * as AppBskyNotificationListActivitySubscriptions from "./types/app/bsky/notification/listActivitySubscriptions.ts";
7070+import type * as AppBskyNotificationUnregisterPush from "./types/app/bsky/notification/unregisterPush.ts";
7171+import type * as AppBskyNotificationGetPreferences from "./types/app/bsky/notification/getPreferences.ts";
7272+import type * as AppBskyNotificationListNotifications from "./types/app/bsky/notification/listNotifications.ts";
7373+import type * as AppBskyNotificationGetUnreadCount from "./types/app/bsky/notification/getUnreadCount.ts";
7474+import type * as AppBskyUnspeccedGetSuggestedFeedsSkeleton from "./types/app/bsky/unspecced/getSuggestedFeedsSkeleton.ts";
7575+import type * as AppBskyUnspeccedSearchStarterPacksSkeleton from "./types/app/bsky/unspecced/searchStarterPacksSkeleton.ts";
7676+import type * as AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton from "./types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.ts";
7777+import type * as AppBskyUnspeccedGetSuggestedUsers from "./types/app/bsky/unspecced/getSuggestedUsers.ts";
7878+import type * as AppBskyUnspeccedGetPostThreadOtherV2 from "./types/app/bsky/unspecced/getPostThreadOtherV2.ts";
7979+import type * as AppBskyUnspeccedGetSuggestedStarterPacks from "./types/app/bsky/unspecced/getSuggestedStarterPacks.ts";
8080+import type * as AppBskyUnspeccedGetSuggestedStarterPacksSkeleton from "./types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.ts";
8181+import type * as AppBskyUnspeccedGetOnboardingSuggestedStarterPacks from "./types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.ts";
8282+import type * as AppBskyUnspeccedGetSuggestedUsersSkeleton from "./types/app/bsky/unspecced/getSuggestedUsersSkeleton.ts";
8383+import type * as AppBskyUnspeccedGetPostThreadV2 from "./types/app/bsky/unspecced/getPostThreadV2.ts";
8484+import type * as AppBskyUnspeccedGetTrends from "./types/app/bsky/unspecced/getTrends.ts";
8585+import type * as AppBskyUnspeccedSearchActorsSkeleton from "./types/app/bsky/unspecced/searchActorsSkeleton.ts";
8686+import type * as AppBskyUnspeccedGetSuggestionsSkeleton from "./types/app/bsky/unspecced/getSuggestionsSkeleton.ts";
8787+import type * as AppBskyUnspeccedSearchPostsSkeleton from "./types/app/bsky/unspecced/searchPostsSkeleton.ts";
8888+import type * as AppBskyUnspeccedGetAgeAssuranceState from "./types/app/bsky/unspecced/getAgeAssuranceState.ts";
8989+import type * as AppBskyUnspeccedGetPopularFeedGenerators from "./types/app/bsky/unspecced/getPopularFeedGenerators.ts";
9090+import type * as AppBskyUnspeccedInitAgeAssurance from "./types/app/bsky/unspecced/initAgeAssurance.ts";
9191+import type * as AppBskyUnspeccedGetTrendingTopics from "./types/app/bsky/unspecced/getTrendingTopics.ts";
9292+import type * as AppBskyUnspeccedGetTaggedSuggestions from "./types/app/bsky/unspecced/getTaggedSuggestions.ts";
9393+import type * as AppBskyUnspeccedGetSuggestedFeeds from "./types/app/bsky/unspecced/getSuggestedFeeds.ts";
9494+import type * as AppBskyUnspeccedGetTrendsSkeleton from "./types/app/bsky/unspecced/getTrendsSkeleton.ts";
9595+import type * as AppBskyUnspeccedGetConfig from "./types/app/bsky/unspecced/getConfig.ts";
9696+import type * as AppBskyGraphGetStarterPacks from "./types/app/bsky/graph/getStarterPacks.ts";
9797+import type * as AppBskyGraphGetSuggestedFollowsByActor from "./types/app/bsky/graph/getSuggestedFollowsByActor.ts";
9898+import type * as AppBskyGraphGetStarterPacksWithMembership from "./types/app/bsky/graph/getStarterPacksWithMembership.ts";
9999+import type * as AppBskyGraphGetListsWithMembership from "./types/app/bsky/graph/getListsWithMembership.ts";
100100+import type * as AppBskyGraphUnmuteActorList from "./types/app/bsky/graph/unmuteActorList.ts";
101101+import type * as AppBskyGraphGetListBlocks from "./types/app/bsky/graph/getListBlocks.ts";
102102+import type * as AppBskyGraphGetStarterPack from "./types/app/bsky/graph/getStarterPack.ts";
103103+import type * as AppBskyGraphMuteActorList from "./types/app/bsky/graph/muteActorList.ts";
104104+import type * as AppBskyGraphMuteThread from "./types/app/bsky/graph/muteThread.ts";
105105+import type * as AppBskyGraphSearchStarterPacks from "./types/app/bsky/graph/searchStarterPacks.ts";
106106+import type * as AppBskyGraphGetActorStarterPacks from "./types/app/bsky/graph/getActorStarterPacks.ts";
107107+import type * as AppBskyGraphGetLists from "./types/app/bsky/graph/getLists.ts";
108108+import type * as AppBskyGraphGetFollowers from "./types/app/bsky/graph/getFollowers.ts";
109109+import type * as AppBskyGraphUnmuteThread from "./types/app/bsky/graph/unmuteThread.ts";
110110+import type * as AppBskyGraphMuteActor from "./types/app/bsky/graph/muteActor.ts";
111111+import type * as AppBskyGraphGetMutes from "./types/app/bsky/graph/getMutes.ts";
112112+import type * as AppBskyGraphGetKnownFollowers from "./types/app/bsky/graph/getKnownFollowers.ts";
113113+import type * as AppBskyGraphGetListMutes from "./types/app/bsky/graph/getListMutes.ts";
114114+import type * as AppBskyGraphGetFollows from "./types/app/bsky/graph/getFollows.ts";
115115+import type * as AppBskyGraphGetBlocks from "./types/app/bsky/graph/getBlocks.ts";
116116+import type * as AppBskyGraphGetRelationships from "./types/app/bsky/graph/getRelationships.ts";
117117+import type * as AppBskyGraphUnmuteActor from "./types/app/bsky/graph/unmuteActor.ts";
118118+import type * as AppBskyGraphGetList from "./types/app/bsky/graph/getList.ts";
119119+import type * as AppBskyFeedSendInteractions from "./types/app/bsky/feed/sendInteractions.ts";
120120+import type * as AppBskyFeedGetFeedGenerators from "./types/app/bsky/feed/getFeedGenerators.ts";
121121+import type * as AppBskyFeedGetTimeline from "./types/app/bsky/feed/getTimeline.ts";
122122+import type * as AppBskyFeedGetFeedGenerator from "./types/app/bsky/feed/getFeedGenerator.ts";
123123+import type * as AppBskyFeedGetAuthorFeed from "./types/app/bsky/feed/getAuthorFeed.ts";
124124+import type * as AppBskyFeedGetLikes from "./types/app/bsky/feed/getLikes.ts";
125125+import type * as AppBskyFeedGetPostThread from "./types/app/bsky/feed/getPostThread.ts";
126126+import type * as AppBskyFeedGetActorLikes from "./types/app/bsky/feed/getActorLikes.ts";
127127+import type * as AppBskyFeedGetRepostedBy from "./types/app/bsky/feed/getRepostedBy.ts";
128128+import type * as AppBskyFeedDescribeFeedGenerator from "./types/app/bsky/feed/describeFeedGenerator.ts";
129129+import type * as AppBskyFeedSearchPosts from "./types/app/bsky/feed/searchPosts.ts";
130130+import type * as AppBskyFeedGetPosts from "./types/app/bsky/feed/getPosts.ts";
131131+import type * as AppBskyFeedGetFeed from "./types/app/bsky/feed/getFeed.ts";
132132+import type * as AppBskyFeedGetQuotes from "./types/app/bsky/feed/getQuotes.ts";
133133+import type * as AppBskyFeedGetFeedSkeleton from "./types/app/bsky/feed/getFeedSkeleton.ts";
134134+import type * as AppBskyFeedGetListFeed from "./types/app/bsky/feed/getListFeed.ts";
135135+import type * as AppBskyFeedGetSuggestedFeeds from "./types/app/bsky/feed/getSuggestedFeeds.ts";
136136+import type * as AppBskyFeedGetActorFeeds from "./types/app/bsky/feed/getActorFeeds.ts";
137137+import type * as AppBskyAgeassuranceBegin from "./types/app/bsky/ageassurance/begin.ts";
138138+import type * as AppBskyAgeassuranceGetState from "./types/app/bsky/ageassurance/getState.ts";
139139+import type * as AppBskyAgeassuranceGetConfig from "./types/app/bsky/ageassurance/getConfig.ts";
140140+import type * as AppBskyActorSearchActorsTypeahead from "./types/app/bsky/actor/searchActorsTypeahead.ts";
141141+import type * as AppBskyActorPutPreferences from "./types/app/bsky/actor/putPreferences.ts";
142142+import type * as AppBskyActorGetProfile from "./types/app/bsky/actor/getProfile.ts";
143143+import type * as AppBskyActorGetSuggestions from "./types/app/bsky/actor/getSuggestions.ts";
144144+import type * as AppBskyActorSearchActors from "./types/app/bsky/actor/searchActors.ts";
145145+import type * as AppBskyActorGetProfiles from "./types/app/bsky/actor/getProfiles.ts";
146146+import type * as AppBskyActorGetPreferences from "./types/app/bsky/actor/getPreferences.ts";
147147+import type * as AppBskyLabelerGetServices from "./types/app/bsky/labeler/getServices.ts";
148148+import type * as ChatBskyConvoListConvos from "./types/chat/bsky/convo/listConvos.ts";
149149+import type * as ChatBskyConvoUnmuteConvo from "./types/chat/bsky/convo/unmuteConvo.ts";
150150+import type * as ChatBskyConvoGetConvoAvailability from "./types/chat/bsky/convo/getConvoAvailability.ts";
151151+import type * as ChatBskyConvoGetLog from "./types/chat/bsky/convo/getLog.ts";
152152+import type * as ChatBskyConvoSendMessage from "./types/chat/bsky/convo/sendMessage.ts";
153153+import type * as ChatBskyConvoLeaveConvo from "./types/chat/bsky/convo/leaveConvo.ts";
154154+import type * as ChatBskyConvoAddReaction from "./types/chat/bsky/convo/addReaction.ts";
155155+import type * as ChatBskyConvoAcceptConvo from "./types/chat/bsky/convo/acceptConvo.ts";
156156+import type * as ChatBskyConvoMuteConvo from "./types/chat/bsky/convo/muteConvo.ts";
157157+import type * as ChatBskyConvoDeleteMessageForSelf from "./types/chat/bsky/convo/deleteMessageForSelf.ts";
158158+import type * as ChatBskyConvoRemoveReaction from "./types/chat/bsky/convo/removeReaction.ts";
159159+import type * as ChatBskyConvoUpdateRead from "./types/chat/bsky/convo/updateRead.ts";
160160+import type * as ChatBskyConvoUpdateAllRead from "./types/chat/bsky/convo/updateAllRead.ts";
161161+import type * as ChatBskyConvoGetConvo from "./types/chat/bsky/convo/getConvo.ts";
162162+import type * as ChatBskyConvoGetMessages from "./types/chat/bsky/convo/getMessages.ts";
163163+import type * as ChatBskyConvoGetConvoForMembers from "./types/chat/bsky/convo/getConvoForMembers.ts";
164164+import type * as ChatBskyConvoSendMessageBatch from "./types/chat/bsky/convo/sendMessageBatch.ts";
165165+import type * as ChatBskyActorExportAccountData from "./types/chat/bsky/actor/exportAccountData.ts";
166166+import type * as ChatBskyActorDeleteAccount from "./types/chat/bsky/actor/deleteAccount.ts";
167167+import type * as ChatBskyModerationGetActorMetadata from "./types/chat/bsky/moderation/getActorMetadata.ts";
168168+import type * as ChatBskyModerationGetMessageContext from "./types/chat/bsky/moderation/getMessageContext.ts";
169169+import type * as ChatBskyModerationUpdateActorAccess from "./types/chat/bsky/moderation/updateActorAccess.ts";
170170+import type * as SoSprkVideoUploadVideo from "./types/so/sprk/video/uploadVideo.ts";
171171+import type * as SoSprkVideoGetJobStatus from "./types/so/sprk/video/getJobStatus.ts";
172172+import type * as SoSprkVideoGetUploadLimits from "./types/so/sprk/video/getUploadLimits.ts";
173173+import type * as SoSprkNotificationRegisterPush from "./types/so/sprk/notification/registerPush.ts";
174174+import type * as SoSprkNotificationPutPreferences from "./types/so/sprk/notification/putPreferences.ts";
175175+import type * as SoSprkNotificationUpdateSeen from "./types/so/sprk/notification/updateSeen.ts";
176176+import type * as SoSprkNotificationListNotifications from "./types/so/sprk/notification/listNotifications.ts";
177177+import type * as SoSprkNotificationGetUnreadCount from "./types/so/sprk/notification/getUnreadCount.ts";
178178+import type * as SoSprkGraphGetSuggestedFollowsByActor from "./types/so/sprk/graph/getSuggestedFollowsByActor.ts";
179179+import type * as SoSprkGraphMuteThread from "./types/so/sprk/graph/muteThread.ts";
180180+import type * as SoSprkGraphGetFollowers from "./types/so/sprk/graph/getFollowers.ts";
181181+import type * as SoSprkGraphUnmuteThread from "./types/so/sprk/graph/unmuteThread.ts";
182182+import type * as SoSprkGraphMuteActor from "./types/so/sprk/graph/muteActor.ts";
183183+import type * as SoSprkGraphGetMutes from "./types/so/sprk/graph/getMutes.ts";
184184+import type * as SoSprkGraphGetKnownFollowers from "./types/so/sprk/graph/getKnownFollowers.ts";
185185+import type * as SoSprkGraphGetFollows from "./types/so/sprk/graph/getFollows.ts";
186186+import type * as SoSprkGraphGetBlocks from "./types/so/sprk/graph/getBlocks.ts";
187187+import type * as SoSprkGraphGetRelationships from "./types/so/sprk/graph/getRelationships.ts";
188188+import type * as SoSprkGraphUnmuteActor from "./types/so/sprk/graph/unmuteActor.ts";
189189+import type * as SoSprkFeedSendInteractions from "./types/so/sprk/feed/sendInteractions.ts";
190190+import type * as SoSprkFeedGetFeedGenerators from "./types/so/sprk/feed/getFeedGenerators.ts";
191191+import type * as SoSprkFeedGetTimeline from "./types/so/sprk/feed/getTimeline.ts";
192192+import type * as SoSprkFeedGetFeedGenerator from "./types/so/sprk/feed/getFeedGenerator.ts";
193193+import type * as SoSprkFeedGetAuthorFeed from "./types/so/sprk/feed/getAuthorFeed.ts";
194194+import type * as SoSprkFeedGetLikes from "./types/so/sprk/feed/getLikes.ts";
195195+import type * as SoSprkFeedGetPostThread from "./types/so/sprk/feed/getPostThread.ts";
196196+import type * as SoSprkFeedGetActorLikes from "./types/so/sprk/feed/getActorLikes.ts";
197197+import type * as SoSprkFeedGetRepostedBy from "./types/so/sprk/feed/getRepostedBy.ts";
198198+import type * as SoSprkFeedDescribeFeedGenerator from "./types/so/sprk/feed/describeFeedGenerator.ts";
199199+import type * as SoSprkFeedSearchPosts from "./types/so/sprk/feed/searchPosts.ts";
200200+import type * as SoSprkFeedGetPosts from "./types/so/sprk/feed/getPosts.ts";
201201+import type * as SoSprkFeedGetFeed from "./types/so/sprk/feed/getFeed.ts";
202202+import type * as SoSprkFeedGetFeedSkeleton from "./types/so/sprk/feed/getFeedSkeleton.ts";
203203+import type * as SoSprkFeedGetSuggestedFeeds from "./types/so/sprk/feed/getSuggestedFeeds.ts";
204204+import type * as SoSprkFeedGetActorFeeds from "./types/so/sprk/feed/getActorFeeds.ts";
205205+import type * as SoSprkSoundGetActorAudios from "./types/so/sprk/sound/getActorAudios.ts";
206206+import type * as SoSprkSoundGetAudioPosts from "./types/so/sprk/sound/getAudioPosts.ts";
207207+import type * as SoSprkSoundGetAudios from "./types/so/sprk/sound/getAudios.ts";
208208+import type * as SoSprkSoundGetTrendingAudios from "./types/so/sprk/sound/getTrendingAudios.ts";
209209+import type * as SoSprkActorSearchActorsTypeahead from "./types/so/sprk/actor/searchActorsTypeahead.ts";
210210+import type * as SoSprkActorPutPreferences from "./types/so/sprk/actor/putPreferences.ts";
211211+import type * as SoSprkActorGetProfile from "./types/so/sprk/actor/getProfile.ts";
212212+import type * as SoSprkActorGetSuggestions from "./types/so/sprk/actor/getSuggestions.ts";
213213+import type * as SoSprkActorSearchActors from "./types/so/sprk/actor/searchActors.ts";
214214+import type * as SoSprkActorGetProfiles from "./types/so/sprk/actor/getProfiles.ts";
215215+import type * as SoSprkActorGetPreferences from "./types/so/sprk/actor/getPreferences.ts";
216216+import type * as SoSprkStoryGetTimeline from "./types/so/sprk/story/getTimeline.ts";
217217+import type * as SoSprkStoryGetStories from "./types/so/sprk/story/getStories.ts";
218218+import type * as SoSprkLabelerGetServices from "./types/so/sprk/labeler/getServices.ts";
219219+import type * as ComAtprotoTempDereferenceScope from "./types/com/atproto/temp/dereferenceScope.ts";
220220+import type * as ComAtprotoTempAddReservedHandle from "./types/com/atproto/temp/addReservedHandle.ts";
221221+import type * as ComAtprotoTempCheckSignupQueue from "./types/com/atproto/temp/checkSignupQueue.ts";
222222+import type * as ComAtprotoTempCheckHandleAvailability from "./types/com/atproto/temp/checkHandleAvailability.ts";
223223+import type * as ComAtprotoTempRequestPhoneVerification from "./types/com/atproto/temp/requestPhoneVerification.ts";
224224+import type * as ComAtprotoTempRevokeAccountCredentials from "./types/com/atproto/temp/revokeAccountCredentials.ts";
225225+import type * as ComAtprotoTempFetchLabels from "./types/com/atproto/temp/fetchLabels.ts";
226226+import type * as ComAtprotoIdentityUpdateHandle from "./types/com/atproto/identity/updateHandle.ts";
227227+import type * as ComAtprotoIdentitySignPlcOperation from "./types/com/atproto/identity/signPlcOperation.ts";
228228+import type * as ComAtprotoIdentitySubmitPlcOperation from "./types/com/atproto/identity/submitPlcOperation.ts";
229229+import type * as ComAtprotoIdentityResolveIdentity from "./types/com/atproto/identity/resolveIdentity.ts";
230230+import type * as ComAtprotoIdentityRefreshIdentity from "./types/com/atproto/identity/refreshIdentity.ts";
231231+import type * as ComAtprotoIdentityResolveHandle from "./types/com/atproto/identity/resolveHandle.ts";
232232+import type * as ComAtprotoIdentityRequestPlcOperationSignature from "./types/com/atproto/identity/requestPlcOperationSignature.ts";
233233+import type * as ComAtprotoIdentityGetRecommendedDidCredentials from "./types/com/atproto/identity/getRecommendedDidCredentials.ts";
234234+import type * as ComAtprotoIdentityResolveDid from "./types/com/atproto/identity/resolveDid.ts";
235235+import type * as ComAtprotoAdminUpdateAccountEmail from "./types/com/atproto/admin/updateAccountEmail.ts";
236236+import type * as ComAtprotoAdminGetAccountInfo from "./types/com/atproto/admin/getAccountInfo.ts";
237237+import type * as ComAtprotoAdminGetSubjectStatus from "./types/com/atproto/admin/getSubjectStatus.ts";
238238+import type * as ComAtprotoAdminSearchAccounts from "./types/com/atproto/admin/searchAccounts.ts";
239239+import type * as ComAtprotoAdminUpdateAccountPassword from "./types/com/atproto/admin/updateAccountPassword.ts";
240240+import type * as ComAtprotoAdminUpdateAccountHandle from "./types/com/atproto/admin/updateAccountHandle.ts";
241241+import type * as ComAtprotoAdminGetInviteCodes from "./types/com/atproto/admin/getInviteCodes.ts";
242242+import type * as ComAtprotoAdminUpdateAccountSigningKey from "./types/com/atproto/admin/updateAccountSigningKey.ts";
243243+import type * as ComAtprotoAdminEnableAccountInvites from "./types/com/atproto/admin/enableAccountInvites.ts";
244244+import type * as ComAtprotoAdminDisableAccountInvites from "./types/com/atproto/admin/disableAccountInvites.ts";
245245+import type * as ComAtprotoAdminDisableInviteCodes from "./types/com/atproto/admin/disableInviteCodes.ts";
246246+import type * as ComAtprotoAdminUpdateSubjectStatus from "./types/com/atproto/admin/updateSubjectStatus.ts";
247247+import type * as ComAtprotoAdminSendEmail from "./types/com/atproto/admin/sendEmail.ts";
248248+import type * as ComAtprotoAdminGetAccountInfos from "./types/com/atproto/admin/getAccountInfos.ts";
249249+import type * as ComAtprotoAdminDeleteAccount from "./types/com/atproto/admin/deleteAccount.ts";
250250+import type * as ComAtprotoLabelSubscribeLabels from "./types/com/atproto/label/subscribeLabels.ts";
251251+import type * as ComAtprotoLabelQueryLabels from "./types/com/atproto/label/queryLabels.ts";
252252+import type * as ComAtprotoServerRequestEmailConfirmation from "./types/com/atproto/server/requestEmailConfirmation.ts";
253253+import type * as ComAtprotoServerReserveSigningKey from "./types/com/atproto/server/reserveSigningKey.ts";
254254+import type * as ComAtprotoServerGetServiceAuth from "./types/com/atproto/server/getServiceAuth.ts";
255255+import type * as ComAtprotoServerGetAccountInviteCodes from "./types/com/atproto/server/getAccountInviteCodes.ts";
256256+import type * as ComAtprotoServerCreateSession from "./types/com/atproto/server/createSession.ts";
257257+import type * as ComAtprotoServerListAppPasswords from "./types/com/atproto/server/listAppPasswords.ts";
258258+import type * as ComAtprotoServerCreateInviteCodes from "./types/com/atproto/server/createInviteCodes.ts";
259259+import type * as ComAtprotoServerDeleteSession from "./types/com/atproto/server/deleteSession.ts";
260260+import type * as ComAtprotoServerRevokeAppPassword from "./types/com/atproto/server/revokeAppPassword.ts";
261261+import type * as ComAtprotoServerCreateAppPassword from "./types/com/atproto/server/createAppPassword.ts";
262262+import type * as ComAtprotoServerActivateAccount from "./types/com/atproto/server/activateAccount.ts";
263263+import type * as ComAtprotoServerDescribeServer from "./types/com/atproto/server/describeServer.ts";
264264+import type * as ComAtprotoServerConfirmEmail from "./types/com/atproto/server/confirmEmail.ts";
265265+import type * as ComAtprotoServerGetSession from "./types/com/atproto/server/getSession.ts";
266266+import type * as ComAtprotoServerRefreshSession from "./types/com/atproto/server/refreshSession.ts";
267267+import type * as ComAtprotoServerDeactivateAccount from "./types/com/atproto/server/deactivateAccount.ts";
268268+import type * as ComAtprotoServerUpdateEmail from "./types/com/atproto/server/updateEmail.ts";
269269+import type * as ComAtprotoServerResetPassword from "./types/com/atproto/server/resetPassword.ts";
270270+import type * as ComAtprotoServerCheckAccountStatus from "./types/com/atproto/server/checkAccountStatus.ts";
271271+import type * as ComAtprotoServerRequestEmailUpdate from "./types/com/atproto/server/requestEmailUpdate.ts";
272272+import type * as ComAtprotoServerRequestPasswordReset from "./types/com/atproto/server/requestPasswordReset.ts";
273273+import type * as ComAtprotoServerRequestAccountDelete from "./types/com/atproto/server/requestAccountDelete.ts";
274274+import type * as ComAtprotoServerCreateAccount from "./types/com/atproto/server/createAccount.ts";
275275+import type * as ComAtprotoServerDeleteAccount from "./types/com/atproto/server/deleteAccount.ts";
276276+import type * as ComAtprotoServerCreateInviteCode from "./types/com/atproto/server/createInviteCode.ts";
277277+import type * as ComAtprotoLexiconResolveLexicon from "./types/com/atproto/lexicon/resolveLexicon.ts";
278278+import type * as ComAtprotoSyncGetHead from "./types/com/atproto/sync/getHead.ts";
279279+import type * as ComAtprotoSyncGetBlob from "./types/com/atproto/sync/getBlob.ts";
280280+import type * as ComAtprotoSyncGetRepo from "./types/com/atproto/sync/getRepo.ts";
281281+import type * as ComAtprotoSyncNotifyOfUpdate from "./types/com/atproto/sync/notifyOfUpdate.ts";
282282+import type * as ComAtprotoSyncRequestCrawl from "./types/com/atproto/sync/requestCrawl.ts";
283283+import type * as ComAtprotoSyncListBlobs from "./types/com/atproto/sync/listBlobs.ts";
284284+import type * as ComAtprotoSyncGetLatestCommit from "./types/com/atproto/sync/getLatestCommit.ts";
285285+import type * as ComAtprotoSyncSubscribeRepos from "./types/com/atproto/sync/subscribeRepos.ts";
286286+import type * as ComAtprotoSyncGetRepoStatus from "./types/com/atproto/sync/getRepoStatus.ts";
287287+import type * as ComAtprotoSyncGetRecord from "./types/com/atproto/sync/getRecord.ts";
288288+import type * as ComAtprotoSyncListHosts from "./types/com/atproto/sync/listHosts.ts";
289289+import type * as ComAtprotoSyncListRepos from "./types/com/atproto/sync/listRepos.ts";
290290+import type * as ComAtprotoSyncGetHostStatus from "./types/com/atproto/sync/getHostStatus.ts";
291291+import type * as ComAtprotoSyncGetBlocks from "./types/com/atproto/sync/getBlocks.ts";
292292+import type * as ComAtprotoSyncListReposByCollection from "./types/com/atproto/sync/listReposByCollection.ts";
293293+import type * as ComAtprotoSyncGetCheckout from "./types/com/atproto/sync/getCheckout.ts";
294294+import type * as ComAtprotoRepoListMissingBlobs from "./types/com/atproto/repo/listMissingBlobs.ts";
295295+import type * as ComAtprotoRepoCreateRecord from "./types/com/atproto/repo/createRecord.ts";
296296+import type * as ComAtprotoRepoDeleteRecord from "./types/com/atproto/repo/deleteRecord.ts";
297297+import type * as ComAtprotoRepoPutRecord from "./types/com/atproto/repo/putRecord.ts";
298298+import type * as ComAtprotoRepoUploadBlob from "./types/com/atproto/repo/uploadBlob.ts";
299299+import type * as ComAtprotoRepoImportRepo from "./types/com/atproto/repo/importRepo.ts";
300300+import type * as ComAtprotoRepoDescribeRepo from "./types/com/atproto/repo/describeRepo.ts";
301301+import type * as ComAtprotoRepoGetRecord from "./types/com/atproto/repo/getRecord.ts";
302302+import type * as ComAtprotoRepoApplyWrites from "./types/com/atproto/repo/applyWrites.ts";
303303+import type * as ComAtprotoRepoListRecords from "./types/com/atproto/repo/listRecords.ts";
304304+import type * as ComAtprotoModerationCreateReport from "./types/com/atproto/moderation/createReport.ts";
252305253306export const TOOLS_OZONE_TEAM = {
254307 DefsRoleAdmin: "tools.ozone.team.defs#roleAdmin",
255308 DefsRoleModerator: "tools.ozone.team.defs#roleModerator",
256309 DefsRoleTriage: "tools.ozone.team.defs#roleTriage",
310310+ DefsRoleVerifier: "tools.ozone.team.defs#roleVerifier",
311311+};
312312+export const TOOLS_OZONE_REPORT = {
313313+ DefsReasonAppeal: "tools.ozone.report.defs#reasonAppeal",
314314+ DefsReasonOther: "tools.ozone.report.defs#reasonOther",
315315+ DefsReasonViolenceAnimal: "tools.ozone.report.defs#reasonViolenceAnimal",
316316+ DefsReasonViolenceThreats: "tools.ozone.report.defs#reasonViolenceThreats",
317317+ DefsReasonViolenceGraphicContent:
318318+ "tools.ozone.report.defs#reasonViolenceGraphicContent",
319319+ DefsReasonViolenceGlorification:
320320+ "tools.ozone.report.defs#reasonViolenceGlorification",
321321+ DefsReasonViolenceExtremistContent:
322322+ "tools.ozone.report.defs#reasonViolenceExtremistContent",
323323+ DefsReasonViolenceTrafficking:
324324+ "tools.ozone.report.defs#reasonViolenceTrafficking",
325325+ DefsReasonViolenceOther: "tools.ozone.report.defs#reasonViolenceOther",
326326+ DefsReasonSexualAbuseContent:
327327+ "tools.ozone.report.defs#reasonSexualAbuseContent",
328328+ DefsReasonSexualNCII: "tools.ozone.report.defs#reasonSexualNCII",
329329+ DefsReasonSexualDeepfake: "tools.ozone.report.defs#reasonSexualDeepfake",
330330+ DefsReasonSexualAnimal: "tools.ozone.report.defs#reasonSexualAnimal",
331331+ DefsReasonSexualUnlabeled: "tools.ozone.report.defs#reasonSexualUnlabeled",
332332+ DefsReasonSexualOther: "tools.ozone.report.defs#reasonSexualOther",
333333+ DefsReasonChildSafetyCSAM: "tools.ozone.report.defs#reasonChildSafetyCSAM",
334334+ DefsReasonChildSafetyGroom: "tools.ozone.report.defs#reasonChildSafetyGroom",
335335+ DefsReasonChildSafetyPrivacy:
336336+ "tools.ozone.report.defs#reasonChildSafetyPrivacy",
337337+ DefsReasonChildSafetyHarassment:
338338+ "tools.ozone.report.defs#reasonChildSafetyHarassment",
339339+ DefsReasonChildSafetyOther: "tools.ozone.report.defs#reasonChildSafetyOther",
340340+ DefsReasonHarassmentTroll: "tools.ozone.report.defs#reasonHarassmentTroll",
341341+ DefsReasonHarassmentTargeted:
342342+ "tools.ozone.report.defs#reasonHarassmentTargeted",
343343+ DefsReasonHarassmentHateSpeech:
344344+ "tools.ozone.report.defs#reasonHarassmentHateSpeech",
345345+ DefsReasonHarassmentDoxxing:
346346+ "tools.ozone.report.defs#reasonHarassmentDoxxing",
347347+ DefsReasonHarassmentOther: "tools.ozone.report.defs#reasonHarassmentOther",
348348+ DefsReasonMisleadingBot: "tools.ozone.report.defs#reasonMisleadingBot",
349349+ DefsReasonMisleadingImpersonation:
350350+ "tools.ozone.report.defs#reasonMisleadingImpersonation",
351351+ DefsReasonMisleadingSpam: "tools.ozone.report.defs#reasonMisleadingSpam",
352352+ DefsReasonMisleadingScam: "tools.ozone.report.defs#reasonMisleadingScam",
353353+ DefsReasonMisleadingElections:
354354+ "tools.ozone.report.defs#reasonMisleadingElections",
355355+ DefsReasonMisleadingOther: "tools.ozone.report.defs#reasonMisleadingOther",
356356+ DefsReasonRuleSiteSecurity: "tools.ozone.report.defs#reasonRuleSiteSecurity",
357357+ DefsReasonRuleProhibitedSales:
358358+ "tools.ozone.report.defs#reasonRuleProhibitedSales",
359359+ DefsReasonRuleBanEvasion: "tools.ozone.report.defs#reasonRuleBanEvasion",
360360+ DefsReasonRuleOther: "tools.ozone.report.defs#reasonRuleOther",
361361+ DefsReasonSelfHarmContent: "tools.ozone.report.defs#reasonSelfHarmContent",
362362+ DefsReasonSelfHarmED: "tools.ozone.report.defs#reasonSelfHarmED",
363363+ DefsReasonSelfHarmStunts: "tools.ozone.report.defs#reasonSelfHarmStunts",
364364+ DefsReasonSelfHarmSubstances:
365365+ "tools.ozone.report.defs#reasonSelfHarmSubstances",
366366+ DefsReasonSelfHarmOther: "tools.ozone.report.defs#reasonSelfHarmOther",
257367};
258368export const TOOLS_OZONE_MODERATION = {
259369 DefsReviewOpen: "tools.ozone.moderation.defs#reviewOpen",
260370 DefsReviewEscalated: "tools.ozone.moderation.defs#reviewEscalated",
261371 DefsReviewClosed: "tools.ozone.moderation.defs#reviewClosed",
262372 DefsReviewNone: "tools.ozone.moderation.defs#reviewNone",
373373+ DefsTimelineEventPlcCreate:
374374+ "tools.ozone.moderation.defs#timelineEventPlcCreate",
375375+ DefsTimelineEventPlcOperation:
376376+ "tools.ozone.moderation.defs#timelineEventPlcOperation",
377377+ DefsTimelineEventPlcTombstone:
378378+ "tools.ozone.moderation.defs#timelineEventPlcTombstone",
263379};
264380export const APP_BSKY_GRAPH = {
265381 DefsModlist: "app.bsky.graph.defs#modlist",
···281397 DefsInteractionReply: "app.bsky.feed.defs#interactionReply",
282398 DefsInteractionQuote: "app.bsky.feed.defs#interactionQuote",
283399 DefsInteractionShare: "app.bsky.feed.defs#interactionShare",
400400+};
401401+export const APP_BSKY_ACTOR = {
402402+ StatusLive: "app.bsky.actor.status#live",
284403};
285404export const SO_SPRK_FEED = {
286405 DefsRequestLess: "so.sprk.feed.defs#requestLess",
···341460 _server: Server;
342461 signature: ToolsOzoneSignatureNS;
343462 server: ToolsOzoneServerNS;
463463+ verification: ToolsOzoneVerificationNS;
464464+ safelink: ToolsOzoneSafelinkNS;
344465 team: ToolsOzoneTeamNS;
466466+ hosting: ToolsOzoneHostingNS;
345467 communication: ToolsOzoneCommunicationNS;
346468 set: ToolsOzoneSetNS;
347469 setting: ToolsOzoneSettingNS;
···351473 this._server = server;
352474 this.signature = new ToolsOzoneSignatureNS(server);
353475 this.server = new ToolsOzoneServerNS(server);
476476+ this.verification = new ToolsOzoneVerificationNS(server);
477477+ this.safelink = new ToolsOzoneSafelinkNS(server);
354478 this.team = new ToolsOzoneTeamNS(server);
479479+ this.hosting = new ToolsOzoneHostingNS(server);
355480 this.communication = new ToolsOzoneCommunicationNS(server);
356481 this.set = new ToolsOzoneSetNS(server);
357482 this.setting = new ToolsOzoneSettingNS(server);
···423548 }
424549}
425550551551+export class ToolsOzoneVerificationNS {
552552+ _server: Server;
553553+554554+ constructor(server: Server) {
555555+ this._server = server;
556556+ }
557557+558558+ revokeVerifications<A extends Auth = void>(
559559+ cfg: MethodConfigOrHandler<
560560+ A,
561561+ ToolsOzoneVerificationRevokeVerifications.QueryParams,
562562+ ToolsOzoneVerificationRevokeVerifications.HandlerInput,
563563+ ToolsOzoneVerificationRevokeVerifications.HandlerOutput
564564+ >,
565565+ ) {
566566+ const nsid = "tools.ozone.verification.revokeVerifications"; // @ts-ignore - dynamically generated
567567+ return this._server.xrpc.method(nsid, cfg);
568568+ }
569569+570570+ grantVerifications<A extends Auth = void>(
571571+ cfg: MethodConfigOrHandler<
572572+ A,
573573+ ToolsOzoneVerificationGrantVerifications.QueryParams,
574574+ ToolsOzoneVerificationGrantVerifications.HandlerInput,
575575+ ToolsOzoneVerificationGrantVerifications.HandlerOutput
576576+ >,
577577+ ) {
578578+ const nsid = "tools.ozone.verification.grantVerifications"; // @ts-ignore - dynamically generated
579579+ return this._server.xrpc.method(nsid, cfg);
580580+ }
581581+582582+ listVerifications<A extends Auth = void>(
583583+ cfg: MethodConfigOrHandler<
584584+ A,
585585+ ToolsOzoneVerificationListVerifications.QueryParams,
586586+ ToolsOzoneVerificationListVerifications.HandlerInput,
587587+ ToolsOzoneVerificationListVerifications.HandlerOutput
588588+ >,
589589+ ) {
590590+ const nsid = "tools.ozone.verification.listVerifications"; // @ts-ignore - dynamically generated
591591+ return this._server.xrpc.method(nsid, cfg);
592592+ }
593593+}
594594+595595+export class ToolsOzoneSafelinkNS {
596596+ _server: Server;
597597+598598+ constructor(server: Server) {
599599+ this._server = server;
600600+ }
601601+602602+ addRule<A extends Auth = void>(
603603+ cfg: MethodConfigOrHandler<
604604+ A,
605605+ ToolsOzoneSafelinkAddRule.QueryParams,
606606+ ToolsOzoneSafelinkAddRule.HandlerInput,
607607+ ToolsOzoneSafelinkAddRule.HandlerOutput
608608+ >,
609609+ ) {
610610+ const nsid = "tools.ozone.safelink.addRule"; // @ts-ignore - dynamically generated
611611+ return this._server.xrpc.method(nsid, cfg);
612612+ }
613613+614614+ removeRule<A extends Auth = void>(
615615+ cfg: MethodConfigOrHandler<
616616+ A,
617617+ ToolsOzoneSafelinkRemoveRule.QueryParams,
618618+ ToolsOzoneSafelinkRemoveRule.HandlerInput,
619619+ ToolsOzoneSafelinkRemoveRule.HandlerOutput
620620+ >,
621621+ ) {
622622+ const nsid = "tools.ozone.safelink.removeRule"; // @ts-ignore - dynamically generated
623623+ return this._server.xrpc.method(nsid, cfg);
624624+ }
625625+626626+ updateRule<A extends Auth = void>(
627627+ cfg: MethodConfigOrHandler<
628628+ A,
629629+ ToolsOzoneSafelinkUpdateRule.QueryParams,
630630+ ToolsOzoneSafelinkUpdateRule.HandlerInput,
631631+ ToolsOzoneSafelinkUpdateRule.HandlerOutput
632632+ >,
633633+ ) {
634634+ const nsid = "tools.ozone.safelink.updateRule"; // @ts-ignore - dynamically generated
635635+ return this._server.xrpc.method(nsid, cfg);
636636+ }
637637+638638+ queryEvents<A extends Auth = void>(
639639+ cfg: MethodConfigOrHandler<
640640+ A,
641641+ ToolsOzoneSafelinkQueryEvents.QueryParams,
642642+ ToolsOzoneSafelinkQueryEvents.HandlerInput,
643643+ ToolsOzoneSafelinkQueryEvents.HandlerOutput
644644+ >,
645645+ ) {
646646+ const nsid = "tools.ozone.safelink.queryEvents"; // @ts-ignore - dynamically generated
647647+ return this._server.xrpc.method(nsid, cfg);
648648+ }
649649+650650+ queryRules<A extends Auth = void>(
651651+ cfg: MethodConfigOrHandler<
652652+ A,
653653+ ToolsOzoneSafelinkQueryRules.QueryParams,
654654+ ToolsOzoneSafelinkQueryRules.HandlerInput,
655655+ ToolsOzoneSafelinkQueryRules.HandlerOutput
656656+ >,
657657+ ) {
658658+ const nsid = "tools.ozone.safelink.queryRules"; // @ts-ignore - dynamically generated
659659+ return this._server.xrpc.method(nsid, cfg);
660660+ }
661661+}
662662+426663export class ToolsOzoneTeamNS {
427664 _server: Server;
428665···479716 }
480717}
481718719719+export class ToolsOzoneHostingNS {
720720+ _server: Server;
721721+722722+ constructor(server: Server) {
723723+ this._server = server;
724724+ }
725725+726726+ getAccountHistory<A extends Auth = void>(
727727+ cfg: MethodConfigOrHandler<
728728+ A,
729729+ ToolsOzoneHostingGetAccountHistory.QueryParams,
730730+ ToolsOzoneHostingGetAccountHistory.HandlerInput,
731731+ ToolsOzoneHostingGetAccountHistory.HandlerOutput
732732+ >,
733733+ ) {
734734+ const nsid = "tools.ozone.hosting.getAccountHistory"; // @ts-ignore - dynamically generated
735735+ return this._server.xrpc.method(nsid, cfg);
736736+ }
737737+}
738738+482739export class ToolsOzoneCommunicationNS {
483740 _server: Server;
484741···678935 return this._server.xrpc.method(nsid, cfg);
679936 }
680937938938+ cancelScheduledActions<A extends Auth = void>(
939939+ cfg: MethodConfigOrHandler<
940940+ A,
941941+ ToolsOzoneModerationCancelScheduledActions.QueryParams,
942942+ ToolsOzoneModerationCancelScheduledActions.HandlerInput,
943943+ ToolsOzoneModerationCancelScheduledActions.HandlerOutput
944944+ >,
945945+ ) {
946946+ const nsid = "tools.ozone.moderation.cancelScheduledActions"; // @ts-ignore - dynamically generated
947947+ return this._server.xrpc.method(nsid, cfg);
948948+ }
949949+950950+ listScheduledActions<A extends Auth = void>(
951951+ cfg: MethodConfigOrHandler<
952952+ A,
953953+ ToolsOzoneModerationListScheduledActions.QueryParams,
954954+ ToolsOzoneModerationListScheduledActions.HandlerInput,
955955+ ToolsOzoneModerationListScheduledActions.HandlerOutput
956956+ >,
957957+ ) {
958958+ const nsid = "tools.ozone.moderation.listScheduledActions"; // @ts-ignore - dynamically generated
959959+ return this._server.xrpc.method(nsid, cfg);
960960+ }
961961+681962 queryStatuses<A extends Auth = void>(
682963 cfg: MethodConfigOrHandler<
683964 A,
···702983 return this._server.xrpc.method(nsid, cfg);
703984 }
704985986986+ getSubjects<A extends Auth = void>(
987987+ cfg: MethodConfigOrHandler<
988988+ A,
989989+ ToolsOzoneModerationGetSubjects.QueryParams,
990990+ ToolsOzoneModerationGetSubjects.HandlerInput,
991991+ ToolsOzoneModerationGetSubjects.HandlerOutput
992992+ >,
993993+ ) {
994994+ const nsid = "tools.ozone.moderation.getSubjects"; // @ts-ignore - dynamically generated
995995+ return this._server.xrpc.method(nsid, cfg);
996996+ }
997997+705998 getRecords<A extends Auth = void>(
706999 cfg: MethodConfigOrHandler<
7071000 A,
···7141007 return this._server.xrpc.method(nsid, cfg);
7151008 }
716100910101010+ scheduleAction<A extends Auth = void>(
10111011+ cfg: MethodConfigOrHandler<
10121012+ A,
10131013+ ToolsOzoneModerationScheduleAction.QueryParams,
10141014+ ToolsOzoneModerationScheduleAction.HandlerInput,
10151015+ ToolsOzoneModerationScheduleAction.HandlerOutput
10161016+ >,
10171017+ ) {
10181018+ const nsid = "tools.ozone.moderation.scheduleAction"; // @ts-ignore - dynamically generated
10191019+ return this._server.xrpc.method(nsid, cfg);
10201020+ }
10211021+7171022 getEvent<A extends Auth = void>(
7181023 cfg: MethodConfigOrHandler<
7191024 A,
···7741079 return this._server.xrpc.method(nsid, cfg);
7751080 }
776108110821082+ getAccountTimeline<A extends Auth = void>(
10831083+ cfg: MethodConfigOrHandler<
10841084+ A,
10851085+ ToolsOzoneModerationGetAccountTimeline.QueryParams,
10861086+ ToolsOzoneModerationGetAccountTimeline.HandlerInput,
10871087+ ToolsOzoneModerationGetAccountTimeline.HandlerOutput
10881088+ >,
10891089+ ) {
10901090+ const nsid = "tools.ozone.moderation.getAccountTimeline"; // @ts-ignore - dynamically generated
10911091+ return this._server.xrpc.method(nsid, cfg);
10921092+ }
10931093+7771094 getRepos<A extends Auth = void>(
7781095 cfg: MethodConfigOrHandler<
7791096 A,
···8001117export class AppBskyNS {
8011118 _server: Server;
8021119 video: AppBskyVideoNS;
11201120+ bookmark: AppBskyBookmarkNS;
8031121 embed: AppBskyEmbedNS;
8041122 notification: AppBskyNotificationNS;
8051123 unspecced: AppBskyUnspeccedNS;
8061124 graph: AppBskyGraphNS;
8071125 feed: AppBskyFeedNS;
8081126 richtext: AppBskyRichtextNS;
11271127+ ageassurance: AppBskyAgeassuranceNS;
8091128 actor: AppBskyActorNS;
8101129 labeler: AppBskyLabelerNS;
81111308121131 constructor(server: Server) {
8131132 this._server = server;
8141133 this.video = new AppBskyVideoNS(server);
11341134+ this.bookmark = new AppBskyBookmarkNS(server);
8151135 this.embed = new AppBskyEmbedNS(server);
8161136 this.notification = new AppBskyNotificationNS(server);
8171137 this.unspecced = new AppBskyUnspeccedNS(server);
8181138 this.graph = new AppBskyGraphNS(server);
8191139 this.feed = new AppBskyFeedNS(server);
8201140 this.richtext = new AppBskyRichtextNS(server);
11411141+ this.ageassurance = new AppBskyAgeassuranceNS(server);
8211142 this.actor = new AppBskyActorNS(server);
8221143 this.labeler = new AppBskyLabelerNS(server);
8231144 }
···8671188 }
8681189}
869119011911191+export class AppBskyBookmarkNS {
11921192+ _server: Server;
11931193+11941194+ constructor(server: Server) {
11951195+ this._server = server;
11961196+ }
11971197+11981198+ deleteBookmark<A extends Auth = void>(
11991199+ cfg: MethodConfigOrHandler<
12001200+ A,
12011201+ AppBskyBookmarkDeleteBookmark.QueryParams,
12021202+ AppBskyBookmarkDeleteBookmark.HandlerInput,
12031203+ AppBskyBookmarkDeleteBookmark.HandlerOutput
12041204+ >,
12051205+ ) {
12061206+ const nsid = "app.bsky.bookmark.deleteBookmark"; // @ts-ignore - dynamically generated
12071207+ return this._server.xrpc.method(nsid, cfg);
12081208+ }
12091209+12101210+ getBookmarks<A extends Auth = void>(
12111211+ cfg: MethodConfigOrHandler<
12121212+ A,
12131213+ AppBskyBookmarkGetBookmarks.QueryParams,
12141214+ AppBskyBookmarkGetBookmarks.HandlerInput,
12151215+ AppBskyBookmarkGetBookmarks.HandlerOutput
12161216+ >,
12171217+ ) {
12181218+ const nsid = "app.bsky.bookmark.getBookmarks"; // @ts-ignore - dynamically generated
12191219+ return this._server.xrpc.method(nsid, cfg);
12201220+ }
12211221+12221222+ createBookmark<A extends Auth = void>(
12231223+ cfg: MethodConfigOrHandler<
12241224+ A,
12251225+ AppBskyBookmarkCreateBookmark.QueryParams,
12261226+ AppBskyBookmarkCreateBookmark.HandlerInput,
12271227+ AppBskyBookmarkCreateBookmark.HandlerOutput
12281228+ >,
12291229+ ) {
12301230+ const nsid = "app.bsky.bookmark.createBookmark"; // @ts-ignore - dynamically generated
12311231+ return this._server.xrpc.method(nsid, cfg);
12321232+ }
12331233+}
12341234+8701235export class AppBskyEmbedNS {
8711236 _server: Server;
8721237···9061271 return this._server.xrpc.method(nsid, cfg);
9071272 }
908127312741274+ putActivitySubscription<A extends Auth = void>(
12751275+ cfg: MethodConfigOrHandler<
12761276+ A,
12771277+ AppBskyNotificationPutActivitySubscription.QueryParams,
12781278+ AppBskyNotificationPutActivitySubscription.HandlerInput,
12791279+ AppBskyNotificationPutActivitySubscription.HandlerOutput
12801280+ >,
12811281+ ) {
12821282+ const nsid = "app.bsky.notification.putActivitySubscription"; // @ts-ignore - dynamically generated
12831283+ return this._server.xrpc.method(nsid, cfg);
12841284+ }
12851285+12861286+ putPreferencesV2<A extends Auth = void>(
12871287+ cfg: MethodConfigOrHandler<
12881288+ A,
12891289+ AppBskyNotificationPutPreferencesV2.QueryParams,
12901290+ AppBskyNotificationPutPreferencesV2.HandlerInput,
12911291+ AppBskyNotificationPutPreferencesV2.HandlerOutput
12921292+ >,
12931293+ ) {
12941294+ const nsid = "app.bsky.notification.putPreferencesV2"; // @ts-ignore - dynamically generated
12951295+ return this._server.xrpc.method(nsid, cfg);
12961296+ }
12971297+9091298 updateSeen<A extends Auth = void>(
9101299 cfg: MethodConfigOrHandler<
9111300 A,
···9181307 return this._server.xrpc.method(nsid, cfg);
9191308 }
920130913101310+ listActivitySubscriptions<A extends Auth = void>(
13111311+ cfg: MethodConfigOrHandler<
13121312+ A,
13131313+ AppBskyNotificationListActivitySubscriptions.QueryParams,
13141314+ AppBskyNotificationListActivitySubscriptions.HandlerInput,
13151315+ AppBskyNotificationListActivitySubscriptions.HandlerOutput
13161316+ >,
13171317+ ) {
13181318+ const nsid = "app.bsky.notification.listActivitySubscriptions"; // @ts-ignore - dynamically generated
13191319+ return this._server.xrpc.method(nsid, cfg);
13201320+ }
13211321+13221322+ unregisterPush<A extends Auth = void>(
13231323+ cfg: MethodConfigOrHandler<
13241324+ A,
13251325+ AppBskyNotificationUnregisterPush.QueryParams,
13261326+ AppBskyNotificationUnregisterPush.HandlerInput,
13271327+ AppBskyNotificationUnregisterPush.HandlerOutput
13281328+ >,
13291329+ ) {
13301330+ const nsid = "app.bsky.notification.unregisterPush"; // @ts-ignore - dynamically generated
13311331+ return this._server.xrpc.method(nsid, cfg);
13321332+ }
13331333+13341334+ getPreferences<A extends Auth = void>(
13351335+ cfg: MethodConfigOrHandler<
13361336+ A,
13371337+ AppBskyNotificationGetPreferences.QueryParams,
13381338+ AppBskyNotificationGetPreferences.HandlerInput,
13391339+ AppBskyNotificationGetPreferences.HandlerOutput
13401340+ >,
13411341+ ) {
13421342+ const nsid = "app.bsky.notification.getPreferences"; // @ts-ignore - dynamically generated
13431343+ return this._server.xrpc.method(nsid, cfg);
13441344+ }
13451345+9211346 listNotifications<A extends Auth = void>(
9221347 cfg: MethodConfigOrHandler<
9231348 A,
···9501375 this._server = server;
9511376 }
952137713781378+ getSuggestedFeedsSkeleton<A extends Auth = void>(
13791379+ cfg: MethodConfigOrHandler<
13801380+ A,
13811381+ AppBskyUnspeccedGetSuggestedFeedsSkeleton.QueryParams,
13821382+ AppBskyUnspeccedGetSuggestedFeedsSkeleton.HandlerInput,
13831383+ AppBskyUnspeccedGetSuggestedFeedsSkeleton.HandlerOutput
13841384+ >,
13851385+ ) {
13861386+ const nsid = "app.bsky.unspecced.getSuggestedFeedsSkeleton"; // @ts-ignore - dynamically generated
13871387+ return this._server.xrpc.method(nsid, cfg);
13881388+ }
13891389+9531390 searchStarterPacksSkeleton<A extends Auth = void>(
9541391 cfg: MethodConfigOrHandler<
9551392 A,
···9621399 return this._server.xrpc.method(nsid, cfg);
9631400 }
964140114021402+ getOnboardingSuggestedStarterPacksSkeleton<A extends Auth = void>(
14031403+ cfg: MethodConfigOrHandler<
14041404+ A,
14051405+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton.QueryParams,
14061406+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton.HandlerInput,
14071407+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton.HandlerOutput
14081408+ >,
14091409+ ) {
14101410+ const nsid =
14111411+ "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton"; // @ts-ignore - dynamically generated
14121412+ return this._server.xrpc.method(nsid, cfg);
14131413+ }
14141414+14151415+ getSuggestedUsers<A extends Auth = void>(
14161416+ cfg: MethodConfigOrHandler<
14171417+ A,
14181418+ AppBskyUnspeccedGetSuggestedUsers.QueryParams,
14191419+ AppBskyUnspeccedGetSuggestedUsers.HandlerInput,
14201420+ AppBskyUnspeccedGetSuggestedUsers.HandlerOutput
14211421+ >,
14221422+ ) {
14231423+ const nsid = "app.bsky.unspecced.getSuggestedUsers"; // @ts-ignore - dynamically generated
14241424+ return this._server.xrpc.method(nsid, cfg);
14251425+ }
14261426+14271427+ getPostThreadOtherV2<A extends Auth = void>(
14281428+ cfg: MethodConfigOrHandler<
14291429+ A,
14301430+ AppBskyUnspeccedGetPostThreadOtherV2.QueryParams,
14311431+ AppBskyUnspeccedGetPostThreadOtherV2.HandlerInput,
14321432+ AppBskyUnspeccedGetPostThreadOtherV2.HandlerOutput
14331433+ >,
14341434+ ) {
14351435+ const nsid = "app.bsky.unspecced.getPostThreadOtherV2"; // @ts-ignore - dynamically generated
14361436+ return this._server.xrpc.method(nsid, cfg);
14371437+ }
14381438+14391439+ getSuggestedStarterPacks<A extends Auth = void>(
14401440+ cfg: MethodConfigOrHandler<
14411441+ A,
14421442+ AppBskyUnspeccedGetSuggestedStarterPacks.QueryParams,
14431443+ AppBskyUnspeccedGetSuggestedStarterPacks.HandlerInput,
14441444+ AppBskyUnspeccedGetSuggestedStarterPacks.HandlerOutput
14451445+ >,
14461446+ ) {
14471447+ const nsid = "app.bsky.unspecced.getSuggestedStarterPacks"; // @ts-ignore - dynamically generated
14481448+ return this._server.xrpc.method(nsid, cfg);
14491449+ }
14501450+14511451+ getSuggestedStarterPacksSkeleton<A extends Auth = void>(
14521452+ cfg: MethodConfigOrHandler<
14531453+ A,
14541454+ AppBskyUnspeccedGetSuggestedStarterPacksSkeleton.QueryParams,
14551455+ AppBskyUnspeccedGetSuggestedStarterPacksSkeleton.HandlerInput,
14561456+ AppBskyUnspeccedGetSuggestedStarterPacksSkeleton.HandlerOutput
14571457+ >,
14581458+ ) {
14591459+ const nsid = "app.bsky.unspecced.getSuggestedStarterPacksSkeleton"; // @ts-ignore - dynamically generated
14601460+ return this._server.xrpc.method(nsid, cfg);
14611461+ }
14621462+14631463+ getOnboardingSuggestedStarterPacks<A extends Auth = void>(
14641464+ cfg: MethodConfigOrHandler<
14651465+ A,
14661466+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacks.QueryParams,
14671467+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacks.HandlerInput,
14681468+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacks.HandlerOutput
14691469+ >,
14701470+ ) {
14711471+ const nsid = "app.bsky.unspecced.getOnboardingSuggestedStarterPacks"; // @ts-ignore - dynamically generated
14721472+ return this._server.xrpc.method(nsid, cfg);
14731473+ }
14741474+14751475+ getSuggestedUsersSkeleton<A extends Auth = void>(
14761476+ cfg: MethodConfigOrHandler<
14771477+ A,
14781478+ AppBskyUnspeccedGetSuggestedUsersSkeleton.QueryParams,
14791479+ AppBskyUnspeccedGetSuggestedUsersSkeleton.HandlerInput,
14801480+ AppBskyUnspeccedGetSuggestedUsersSkeleton.HandlerOutput
14811481+ >,
14821482+ ) {
14831483+ const nsid = "app.bsky.unspecced.getSuggestedUsersSkeleton"; // @ts-ignore - dynamically generated
14841484+ return this._server.xrpc.method(nsid, cfg);
14851485+ }
14861486+14871487+ getPostThreadV2<A extends Auth = void>(
14881488+ cfg: MethodConfigOrHandler<
14891489+ A,
14901490+ AppBskyUnspeccedGetPostThreadV2.QueryParams,
14911491+ AppBskyUnspeccedGetPostThreadV2.HandlerInput,
14921492+ AppBskyUnspeccedGetPostThreadV2.HandlerOutput
14931493+ >,
14941494+ ) {
14951495+ const nsid = "app.bsky.unspecced.getPostThreadV2"; // @ts-ignore - dynamically generated
14961496+ return this._server.xrpc.method(nsid, cfg);
14971497+ }
14981498+14991499+ getTrends<A extends Auth = void>(
15001500+ cfg: MethodConfigOrHandler<
15011501+ A,
15021502+ AppBskyUnspeccedGetTrends.QueryParams,
15031503+ AppBskyUnspeccedGetTrends.HandlerInput,
15041504+ AppBskyUnspeccedGetTrends.HandlerOutput
15051505+ >,
15061506+ ) {
15071507+ const nsid = "app.bsky.unspecced.getTrends"; // @ts-ignore - dynamically generated
15081508+ return this._server.xrpc.method(nsid, cfg);
15091509+ }
15101510+9651511 searchActorsSkeleton<A extends Auth = void>(
9661512 cfg: MethodConfigOrHandler<
9671513 A,
···9981544 return this._server.xrpc.method(nsid, cfg);
9991545 }
1000154615471547+ getAgeAssuranceState<A extends Auth = void>(
15481548+ cfg: MethodConfigOrHandler<
15491549+ A,
15501550+ AppBskyUnspeccedGetAgeAssuranceState.QueryParams,
15511551+ AppBskyUnspeccedGetAgeAssuranceState.HandlerInput,
15521552+ AppBskyUnspeccedGetAgeAssuranceState.HandlerOutput
15531553+ >,
15541554+ ) {
15551555+ const nsid = "app.bsky.unspecced.getAgeAssuranceState"; // @ts-ignore - dynamically generated
15561556+ return this._server.xrpc.method(nsid, cfg);
15571557+ }
15581558+10011559 getPopularFeedGenerators<A extends Auth = void>(
10021560 cfg: MethodConfigOrHandler<
10031561 A,
···10101568 return this._server.xrpc.method(nsid, cfg);
10111569 }
1012157015711571+ initAgeAssurance<A extends Auth = void>(
15721572+ cfg: MethodConfigOrHandler<
15731573+ A,
15741574+ AppBskyUnspeccedInitAgeAssurance.QueryParams,
15751575+ AppBskyUnspeccedInitAgeAssurance.HandlerInput,
15761576+ AppBskyUnspeccedInitAgeAssurance.HandlerOutput
15771577+ >,
15781578+ ) {
15791579+ const nsid = "app.bsky.unspecced.initAgeAssurance"; // @ts-ignore - dynamically generated
15801580+ return this._server.xrpc.method(nsid, cfg);
15811581+ }
15821582+10131583 getTrendingTopics<A extends Auth = void>(
10141584 cfg: MethodConfigOrHandler<
10151585 A,
···10341604 return this._server.xrpc.method(nsid, cfg);
10351605 }
1036160616071607+ getSuggestedFeeds<A extends Auth = void>(
16081608+ cfg: MethodConfigOrHandler<
16091609+ A,
16101610+ AppBskyUnspeccedGetSuggestedFeeds.QueryParams,
16111611+ AppBskyUnspeccedGetSuggestedFeeds.HandlerInput,
16121612+ AppBskyUnspeccedGetSuggestedFeeds.HandlerOutput
16131613+ >,
16141614+ ) {
16151615+ const nsid = "app.bsky.unspecced.getSuggestedFeeds"; // @ts-ignore - dynamically generated
16161616+ return this._server.xrpc.method(nsid, cfg);
16171617+ }
16181618+16191619+ getTrendsSkeleton<A extends Auth = void>(
16201620+ cfg: MethodConfigOrHandler<
16211621+ A,
16221622+ AppBskyUnspeccedGetTrendsSkeleton.QueryParams,
16231623+ AppBskyUnspeccedGetTrendsSkeleton.HandlerInput,
16241624+ AppBskyUnspeccedGetTrendsSkeleton.HandlerOutput
16251625+ >,
16261626+ ) {
16271627+ const nsid = "app.bsky.unspecced.getTrendsSkeleton"; // @ts-ignore - dynamically generated
16281628+ return this._server.xrpc.method(nsid, cfg);
16291629+ }
16301630+10371631 getConfig<A extends Auth = void>(
10381632 cfg: MethodConfigOrHandler<
10391633 A,
···10751669 >,
10761670 ) {
10771671 const nsid = "app.bsky.graph.getSuggestedFollowsByActor"; // @ts-ignore - dynamically generated
16721672+ return this._server.xrpc.method(nsid, cfg);
16731673+ }
16741674+16751675+ getStarterPacksWithMembership<A extends Auth = void>(
16761676+ cfg: MethodConfigOrHandler<
16771677+ A,
16781678+ AppBskyGraphGetStarterPacksWithMembership.QueryParams,
16791679+ AppBskyGraphGetStarterPacksWithMembership.HandlerInput,
16801680+ AppBskyGraphGetStarterPacksWithMembership.HandlerOutput
16811681+ >,
16821682+ ) {
16831683+ const nsid = "app.bsky.graph.getStarterPacksWithMembership"; // @ts-ignore - dynamically generated
16841684+ return this._server.xrpc.method(nsid, cfg);
16851685+ }
16861686+16871687+ getListsWithMembership<A extends Auth = void>(
16881688+ cfg: MethodConfigOrHandler<
16891689+ A,
16901690+ AppBskyGraphGetListsWithMembership.QueryParams,
16911691+ AppBskyGraphGetListsWithMembership.HandlerInput,
16921692+ AppBskyGraphGetListsWithMembership.HandlerOutput
16931693+ >,
16941694+ ) {
16951695+ const nsid = "app.bsky.graph.getListsWithMembership"; // @ts-ignore - dynamically generated
10781696 return this._server.xrpc.method(nsid, cfg);
10791697 }
10801698···15392157 }
15402158}
1541215921602160+export class AppBskyAgeassuranceNS {
21612161+ _server: Server;
21622162+21632163+ constructor(server: Server) {
21642164+ this._server = server;
21652165+ }
21662166+21672167+ begin<A extends Auth = void>(
21682168+ cfg: MethodConfigOrHandler<
21692169+ A,
21702170+ AppBskyAgeassuranceBegin.QueryParams,
21712171+ AppBskyAgeassuranceBegin.HandlerInput,
21722172+ AppBskyAgeassuranceBegin.HandlerOutput
21732173+ >,
21742174+ ) {
21752175+ const nsid = "app.bsky.ageassurance.begin"; // @ts-ignore - dynamically generated
21762176+ return this._server.xrpc.method(nsid, cfg);
21772177+ }
21782178+21792179+ getState<A extends Auth = void>(
21802180+ cfg: MethodConfigOrHandler<
21812181+ A,
21822182+ AppBskyAgeassuranceGetState.QueryParams,
21832183+ AppBskyAgeassuranceGetState.HandlerInput,
21842184+ AppBskyAgeassuranceGetState.HandlerOutput
21852185+ >,
21862186+ ) {
21872187+ const nsid = "app.bsky.ageassurance.getState"; // @ts-ignore - dynamically generated
21882188+ return this._server.xrpc.method(nsid, cfg);
21892189+ }
21902190+21912191+ getConfig<A extends Auth = void>(
21922192+ cfg: MethodConfigOrHandler<
21932193+ A,
21942194+ AppBskyAgeassuranceGetConfig.QueryParams,
21952195+ AppBskyAgeassuranceGetConfig.HandlerInput,
21962196+ AppBskyAgeassuranceGetConfig.HandlerOutput
21972197+ >,
21982198+ ) {
21992199+ const nsid = "app.bsky.ageassurance.getConfig"; // @ts-ignore - dynamically generated
22002200+ return this._server.xrpc.method(nsid, cfg);
22012201+ }
22022202+}
22032203+15422204export class AppBskyActorNS {
15432205 _server: Server;
15442206···17542416 return this._server.xrpc.method(nsid, cfg);
17552417 }
1756241824192419+ addReaction<A extends Auth = void>(
24202420+ cfg: MethodConfigOrHandler<
24212421+ A,
24222422+ ChatBskyConvoAddReaction.QueryParams,
24232423+ ChatBskyConvoAddReaction.HandlerInput,
24242424+ ChatBskyConvoAddReaction.HandlerOutput
24252425+ >,
24262426+ ) {
24272427+ const nsid = "chat.bsky.convo.addReaction"; // @ts-ignore - dynamically generated
24282428+ return this._server.xrpc.method(nsid, cfg);
24292429+ }
24302430+17572431 acceptConvo<A extends Auth = void>(
17582432 cfg: MethodConfigOrHandler<
17592433 A,
···17872461 >,
17882462 ) {
17892463 const nsid = "chat.bsky.convo.deleteMessageForSelf"; // @ts-ignore - dynamically generated
24642464+ return this._server.xrpc.method(nsid, cfg);
24652465+ }
24662466+24672467+ removeReaction<A extends Auth = void>(
24682468+ cfg: MethodConfigOrHandler<
24692469+ A,
24702470+ ChatBskyConvoRemoveReaction.QueryParams,
24712471+ ChatBskyConvoRemoveReaction.HandlerInput,
24722472+ ChatBskyConvoRemoveReaction.HandlerOutput
24732473+ >,
24742474+ ) {
24752475+ const nsid = "chat.bsky.convo.removeReaction"; // @ts-ignore - dynamically generated
17902476 return this._server.xrpc.method(nsid, cfg);
17912477 }
17922478···26883374 this._server = server;
26893375 }
2690337633773377+ dereferenceScope<A extends Auth = void>(
33783378+ cfg: MethodConfigOrHandler<
33793379+ A,
33803380+ ComAtprotoTempDereferenceScope.QueryParams,
33813381+ ComAtprotoTempDereferenceScope.HandlerInput,
33823382+ ComAtprotoTempDereferenceScope.HandlerOutput
33833383+ >,
33843384+ ) {
33853385+ const nsid = "com.atproto.temp.dereferenceScope"; // @ts-ignore - dynamically generated
33863386+ return this._server.xrpc.method(nsid, cfg);
33873387+ }
33883388+26913389 addReservedHandle<A extends Auth = void>(
26923390 cfg: MethodConfigOrHandler<
26933391 A,
···27123410 return this._server.xrpc.method(nsid, cfg);
27133411 }
2714341234133413+ checkHandleAvailability<A extends Auth = void>(
34143414+ cfg: MethodConfigOrHandler<
34153415+ A,
34163416+ ComAtprotoTempCheckHandleAvailability.QueryParams,
34173417+ ComAtprotoTempCheckHandleAvailability.HandlerInput,
34183418+ ComAtprotoTempCheckHandleAvailability.HandlerOutput
34193419+ >,
34203420+ ) {
34213421+ const nsid = "com.atproto.temp.checkHandleAvailability"; // @ts-ignore - dynamically generated
34223422+ return this._server.xrpc.method(nsid, cfg);
34233423+ }
34243424+27153425 requestPhoneVerification<A extends Auth = void>(
27163426 cfg: MethodConfigOrHandler<
27173427 A,
···27213431 >,
27223432 ) {
27233433 const nsid = "com.atproto.temp.requestPhoneVerification"; // @ts-ignore - dynamically generated
34343434+ return this._server.xrpc.method(nsid, cfg);
34353435+ }
34363436+34373437+ revokeAccountCredentials<A extends Auth = void>(
34383438+ cfg: MethodConfigOrHandler<
34393439+ A,
34403440+ ComAtprotoTempRevokeAccountCredentials.QueryParams,
34413441+ ComAtprotoTempRevokeAccountCredentials.HandlerInput,
34423442+ ComAtprotoTempRevokeAccountCredentials.HandlerOutput
34433443+ >,
34443444+ ) {
34453445+ const nsid = "com.atproto.temp.revokeAccountCredentials"; // @ts-ignore - dynamically generated
27243446 return this._server.xrpc.method(nsid, cfg);
27253447 }
27263448···27803502 return this._server.xrpc.method(nsid, cfg);
27813503 }
2782350435053505+ resolveIdentity<A extends Auth = void>(
35063506+ cfg: MethodConfigOrHandler<
35073507+ A,
35083508+ ComAtprotoIdentityResolveIdentity.QueryParams,
35093509+ ComAtprotoIdentityResolveIdentity.HandlerInput,
35103510+ ComAtprotoIdentityResolveIdentity.HandlerOutput
35113511+ >,
35123512+ ) {
35133513+ const nsid = "com.atproto.identity.resolveIdentity"; // @ts-ignore - dynamically generated
35143514+ return this._server.xrpc.method(nsid, cfg);
35153515+ }
35163516+35173517+ refreshIdentity<A extends Auth = void>(
35183518+ cfg: MethodConfigOrHandler<
35193519+ A,
35203520+ ComAtprotoIdentityRefreshIdentity.QueryParams,
35213521+ ComAtprotoIdentityRefreshIdentity.HandlerInput,
35223522+ ComAtprotoIdentityRefreshIdentity.HandlerOutput
35233523+ >,
35243524+ ) {
35253525+ const nsid = "com.atproto.identity.refreshIdentity"; // @ts-ignore - dynamically generated
35263526+ return this._server.xrpc.method(nsid, cfg);
35273527+ }
35283528+27833529 resolveHandle<A extends Auth = void>(
27843530 cfg: MethodConfigOrHandler<
27853531 A,
···28133559 >,
28143560 ) {
28153561 const nsid = "com.atproto.identity.getRecommendedDidCredentials"; // @ts-ignore - dynamically generated
35623562+ return this._server.xrpc.method(nsid, cfg);
35633563+ }
35643564+35653565+ resolveDid<A extends Auth = void>(
35663566+ cfg: MethodConfigOrHandler<
35673567+ A,
35683568+ ComAtprotoIdentityResolveDid.QueryParams,
35693569+ ComAtprotoIdentityResolveDid.HandlerInput,
35703570+ ComAtprotoIdentityResolveDid.HandlerOutput
35713571+ >,
35723572+ ) {
35733573+ const nsid = "com.atproto.identity.resolveDid"; // @ts-ignore - dynamically generated
28163574 return this._server.xrpc.method(nsid, cfg);
28173575 }
28183576}
···29053663 >,
29063664 ) {
29073665 const nsid = "com.atproto.admin.getInviteCodes"; // @ts-ignore - dynamically generated
36663666+ return this._server.xrpc.method(nsid, cfg);
36673667+ }
36683668+36693669+ updateAccountSigningKey<A extends Auth = void>(
36703670+ cfg: MethodConfigOrHandler<
36713671+ A,
36723672+ ComAtprotoAdminUpdateAccountSigningKey.QueryParams,
36733673+ ComAtprotoAdminUpdateAccountSigningKey.HandlerInput,
36743674+ ComAtprotoAdminUpdateAccountSigningKey.HandlerOutput
36753675+ >,
36763676+ ) {
36773677+ const nsid = "com.atproto.admin.updateAccountSigningKey"; // @ts-ignore - dynamically generated
29083678 return this._server.xrpc.method(nsid, cfg);
29093679 }
29103680···33384108 constructor(server: Server) {
33394109 this._server = server;
33404110 }
41114111+41124112+ resolveLexicon<A extends Auth = void>(
41134113+ cfg: MethodConfigOrHandler<
41144114+ A,
41154115+ ComAtprotoLexiconResolveLexicon.QueryParams,
41164116+ ComAtprotoLexiconResolveLexicon.HandlerInput,
41174117+ ComAtprotoLexiconResolveLexicon.HandlerOutput
41184118+ >,
41194119+ ) {
41204120+ const nsid = "com.atproto.lexicon.resolveLexicon"; // @ts-ignore - dynamically generated
41214121+ return this._server.xrpc.method(nsid, cfg);
41224122+ }
33414123}
3342412433434125export class ComAtprotoSyncNS {
···34664248 return this._server.xrpc.method(nsid, cfg);
34674249 }
3468425042514251+ listHosts<A extends Auth = void>(
42524252+ cfg: MethodConfigOrHandler<
42534253+ A,
42544254+ ComAtprotoSyncListHosts.QueryParams,
42554255+ ComAtprotoSyncListHosts.HandlerInput,
42564256+ ComAtprotoSyncListHosts.HandlerOutput
42574257+ >,
42584258+ ) {
42594259+ const nsid = "com.atproto.sync.listHosts"; // @ts-ignore - dynamically generated
42604260+ return this._server.xrpc.method(nsid, cfg);
42614261+ }
42624262+34694263 listRepos<A extends Auth = void>(
34704264 cfg: MethodConfigOrHandler<
34714265 A,
···34754269 >,
34764270 ) {
34774271 const nsid = "com.atproto.sync.listRepos"; // @ts-ignore - dynamically generated
42724272+ return this._server.xrpc.method(nsid, cfg);
42734273+ }
42744274+42754275+ getHostStatus<A extends Auth = void>(
42764276+ cfg: MethodConfigOrHandler<
42774277+ A,
42784278+ ComAtprotoSyncGetHostStatus.QueryParams,
42794279+ ComAtprotoSyncGetHostStatus.HandlerInput,
42804280+ ComAtprotoSyncGetHostStatus.HandlerOutput
42814281+ >,
42824282+ ) {
42834283+ const nsid = "com.atproto.sync.getHostStatus"; // @ts-ignore - dynamically generated
34784284 return this._server.xrpc.method(nsid, cfg);
34794285 }
34804286
+6019-167
lex/lexicons.ts
···235235 "type": "ref",
236236 "ref": "lex:tools.ozone.server.getConfig#viewerConfig",
237237 },
238238+ "verifierDid": {
239239+ "type": "string",
240240+ "format": "did",
241241+ "description": "The did of the verifier used for verification.",
242242+ },
238243 },
239244 },
240245 },
···257262 "tools.ozone.team.defs#roleAdmin",
258263 "tools.ozone.team.defs#roleModerator",
259264 "tools.ozone.team.defs#roleTriage",
265265+ "tools.ozone.team.defs#roleVerifier",
260266 ],
261267 },
262268 },
263269 },
264270 },
265271 },
272272+ "ToolsOzoneVerificationRevokeVerifications": {
273273+ "lexicon": 1,
274274+ "id": "tools.ozone.verification.revokeVerifications",
275275+ "defs": {
276276+ "main": {
277277+ "type": "procedure",
278278+ "description":
279279+ "Revoke previously granted verifications in batches of up to 100.",
280280+ "input": {
281281+ "encoding": "application/json",
282282+ "schema": {
283283+ "type": "object",
284284+ "required": [
285285+ "uris",
286286+ ],
287287+ "properties": {
288288+ "uris": {
289289+ "type": "array",
290290+ "description": "Array of verification record uris to revoke",
291291+ "maxLength": 100,
292292+ "items": {
293293+ "type": "string",
294294+ "description":
295295+ "The AT-URI of the verification record to revoke.",
296296+ "format": "at-uri",
297297+ },
298298+ },
299299+ "revokeReason": {
300300+ "type": "string",
301301+ "description":
302302+ "Reason for revoking the verification. This is optional and can be omitted if not needed.",
303303+ "maxLength": 1000,
304304+ },
305305+ },
306306+ },
307307+ },
308308+ "output": {
309309+ "encoding": "application/json",
310310+ "schema": {
311311+ "type": "object",
312312+ "required": [
313313+ "revokedVerifications",
314314+ "failedRevocations",
315315+ ],
316316+ "properties": {
317317+ "revokedVerifications": {
318318+ "type": "array",
319319+ "description": "List of verification uris successfully revoked",
320320+ "items": {
321321+ "type": "string",
322322+ "format": "at-uri",
323323+ },
324324+ },
325325+ "failedRevocations": {
326326+ "type": "array",
327327+ "description":
328328+ "List of verification uris that couldn't be revoked, including failure reasons",
329329+ "items": {
330330+ "type": "ref",
331331+ "ref":
332332+ "lex:tools.ozone.verification.revokeVerifications#revokeError",
333333+ },
334334+ },
335335+ },
336336+ },
337337+ },
338338+ },
339339+ "revokeError": {
340340+ "type": "object",
341341+ "description": "Error object for failed revocations",
342342+ "required": [
343343+ "uri",
344344+ "error",
345345+ ],
346346+ "properties": {
347347+ "uri": {
348348+ "type": "string",
349349+ "description":
350350+ "The AT-URI of the verification record that failed to revoke.",
351351+ "format": "at-uri",
352352+ },
353353+ "error": {
354354+ "type": "string",
355355+ "description":
356356+ "Description of the error that occurred during revocation.",
357357+ },
358358+ },
359359+ },
360360+ },
361361+ },
362362+ "ToolsOzoneVerificationDefs": {
363363+ "lexicon": 1,
364364+ "id": "tools.ozone.verification.defs",
365365+ "defs": {
366366+ "verificationView": {
367367+ "type": "object",
368368+ "description": "Verification data for the associated subject.",
369369+ "required": [
370370+ "issuer",
371371+ "uri",
372372+ "subject",
373373+ "handle",
374374+ "displayName",
375375+ "createdAt",
376376+ ],
377377+ "properties": {
378378+ "issuer": {
379379+ "type": "string",
380380+ "description": "The user who issued this verification.",
381381+ "format": "did",
382382+ },
383383+ "uri": {
384384+ "type": "string",
385385+ "description": "The AT-URI of the verification record.",
386386+ "format": "at-uri",
387387+ },
388388+ "subject": {
389389+ "type": "string",
390390+ "format": "did",
391391+ "description": "The subject of the verification.",
392392+ },
393393+ "handle": {
394394+ "type": "string",
395395+ "description":
396396+ "Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying.",
397397+ "format": "handle",
398398+ },
399399+ "displayName": {
400400+ "type": "string",
401401+ "description":
402402+ "Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying.",
403403+ },
404404+ "createdAt": {
405405+ "type": "string",
406406+ "description": "Timestamp when the verification was created.",
407407+ "format": "datetime",
408408+ },
409409+ "revokeReason": {
410410+ "type": "string",
411411+ "description":
412412+ "Describes the reason for revocation, also indicating that the verification is no longer valid.",
413413+ },
414414+ "revokedAt": {
415415+ "type": "string",
416416+ "description": "Timestamp when the verification was revoked.",
417417+ "format": "datetime",
418418+ },
419419+ "revokedBy": {
420420+ "type": "string",
421421+ "description": "The user who revoked this verification.",
422422+ "format": "did",
423423+ },
424424+ "subjectProfile": {
425425+ "type": "union",
426426+ "refs": [],
427427+ },
428428+ "issuerProfile": {
429429+ "type": "union",
430430+ "refs": [],
431431+ },
432432+ "subjectRepo": {
433433+ "type": "union",
434434+ "refs": [
435435+ "lex:tools.ozone.moderation.defs#repoViewDetail",
436436+ "lex:tools.ozone.moderation.defs#repoViewNotFound",
437437+ ],
438438+ },
439439+ "issuerRepo": {
440440+ "type": "union",
441441+ "refs": [
442442+ "lex:tools.ozone.moderation.defs#repoViewDetail",
443443+ "lex:tools.ozone.moderation.defs#repoViewNotFound",
444444+ ],
445445+ },
446446+ },
447447+ },
448448+ },
449449+ },
450450+ "ToolsOzoneVerificationGrantVerifications": {
451451+ "lexicon": 1,
452452+ "id": "tools.ozone.verification.grantVerifications",
453453+ "defs": {
454454+ "main": {
455455+ "type": "procedure",
456456+ "description":
457457+ "Grant verifications to multiple subjects. Allows batch processing of up to 100 verifications at once.",
458458+ "input": {
459459+ "encoding": "application/json",
460460+ "schema": {
461461+ "type": "object",
462462+ "required": [
463463+ "verifications",
464464+ ],
465465+ "properties": {
466466+ "verifications": {
467467+ "type": "array",
468468+ "description": "Array of verification requests to process",
469469+ "maxLength": 100,
470470+ "items": {
471471+ "type": "ref",
472472+ "ref":
473473+ "lex:tools.ozone.verification.grantVerifications#verificationInput",
474474+ },
475475+ },
476476+ },
477477+ },
478478+ },
479479+ "output": {
480480+ "encoding": "application/json",
481481+ "schema": {
482482+ "type": "object",
483483+ "required": [
484484+ "verifications",
485485+ "failedVerifications",
486486+ ],
487487+ "properties": {
488488+ "verifications": {
489489+ "type": "array",
490490+ "items": {
491491+ "type": "ref",
492492+ "ref": "lex:tools.ozone.verification.defs#verificationView",
493493+ },
494494+ },
495495+ "failedVerifications": {
496496+ "type": "array",
497497+ "items": {
498498+ "type": "ref",
499499+ "ref":
500500+ "lex:tools.ozone.verification.grantVerifications#grantError",
501501+ },
502502+ },
503503+ },
504504+ },
505505+ },
506506+ },
507507+ "verificationInput": {
508508+ "type": "object",
509509+ "required": [
510510+ "subject",
511511+ "handle",
512512+ "displayName",
513513+ ],
514514+ "properties": {
515515+ "subject": {
516516+ "type": "string",
517517+ "description": "The did of the subject being verified",
518518+ "format": "did",
519519+ },
520520+ "handle": {
521521+ "type": "string",
522522+ "description":
523523+ "Handle of the subject the verification applies to at the moment of verifying.",
524524+ "format": "handle",
525525+ },
526526+ "displayName": {
527527+ "type": "string",
528528+ "description":
529529+ "Display name of the subject the verification applies to at the moment of verifying.",
530530+ },
531531+ "createdAt": {
532532+ "type": "string",
533533+ "format": "datetime",
534534+ "description":
535535+ "Timestamp for verification record. Defaults to current time when not specified.",
536536+ },
537537+ },
538538+ },
539539+ "grantError": {
540540+ "type": "object",
541541+ "description": "Error object for failed verifications.",
542542+ "required": [
543543+ "error",
544544+ "subject",
545545+ ],
546546+ "properties": {
547547+ "error": {
548548+ "type": "string",
549549+ "description": "Error message describing the reason for failure.",
550550+ },
551551+ "subject": {
552552+ "type": "string",
553553+ "description": "The did of the subject being verified",
554554+ "format": "did",
555555+ },
556556+ },
557557+ },
558558+ },
559559+ },
560560+ "ToolsOzoneVerificationListVerifications": {
561561+ "lexicon": 1,
562562+ "id": "tools.ozone.verification.listVerifications",
563563+ "defs": {
564564+ "main": {
565565+ "type": "query",
566566+ "description": "List verifications",
567567+ "parameters": {
568568+ "type": "params",
569569+ "properties": {
570570+ "cursor": {
571571+ "type": "string",
572572+ "description": "Pagination cursor",
573573+ },
574574+ "limit": {
575575+ "type": "integer",
576576+ "description": "Maximum number of results to return",
577577+ "minimum": 1,
578578+ "maximum": 100,
579579+ "default": 50,
580580+ },
581581+ "createdAfter": {
582582+ "type": "string",
583583+ "format": "datetime",
584584+ "description":
585585+ "Filter to verifications created after this timestamp",
586586+ },
587587+ "createdBefore": {
588588+ "type": "string",
589589+ "format": "datetime",
590590+ "description":
591591+ "Filter to verifications created before this timestamp",
592592+ },
593593+ "issuers": {
594594+ "type": "array",
595595+ "maxLength": 100,
596596+ "description": "Filter to verifications from specific issuers",
597597+ "items": {
598598+ "type": "string",
599599+ "format": "did",
600600+ },
601601+ },
602602+ "subjects": {
603603+ "type": "array",
604604+ "description": "Filter to specific verified DIDs",
605605+ "maxLength": 100,
606606+ "items": {
607607+ "type": "string",
608608+ "format": "did",
609609+ },
610610+ },
611611+ "sortDirection": {
612612+ "type": "string",
613613+ "description": "Sort direction for creation date",
614614+ "enum": [
615615+ "asc",
616616+ "desc",
617617+ ],
618618+ "default": "desc",
619619+ },
620620+ "isRevoked": {
621621+ "type": "boolean",
622622+ "description":
623623+ "Filter to verifications that are revoked or not. By default, includes both.",
624624+ },
625625+ },
626626+ },
627627+ "output": {
628628+ "encoding": "application/json",
629629+ "schema": {
630630+ "type": "object",
631631+ "required": [
632632+ "verifications",
633633+ ],
634634+ "properties": {
635635+ "cursor": {
636636+ "type": "string",
637637+ },
638638+ "verifications": {
639639+ "type": "array",
640640+ "items": {
641641+ "type": "ref",
642642+ "ref": "lex:tools.ozone.verification.defs#verificationView",
643643+ },
644644+ },
645645+ },
646646+ },
647647+ },
648648+ },
649649+ },
650650+ },
651651+ "ToolsOzoneSafelinkDefs": {
652652+ "lexicon": 1,
653653+ "id": "tools.ozone.safelink.defs",
654654+ "defs": {
655655+ "event": {
656656+ "type": "object",
657657+ "description": "An event for URL safety decisions",
658658+ "required": [
659659+ "id",
660660+ "eventType",
661661+ "url",
662662+ "pattern",
663663+ "action",
664664+ "reason",
665665+ "createdBy",
666666+ "createdAt",
667667+ ],
668668+ "properties": {
669669+ "id": {
670670+ "type": "integer",
671671+ "description": "Auto-incrementing row ID",
672672+ },
673673+ "eventType": {
674674+ "type": "ref",
675675+ "ref": "lex:tools.ozone.safelink.defs#eventType",
676676+ },
677677+ "url": {
678678+ "type": "string",
679679+ "description": "The URL that this rule applies to",
680680+ },
681681+ "pattern": {
682682+ "type": "ref",
683683+ "ref": "lex:tools.ozone.safelink.defs#patternType",
684684+ },
685685+ "action": {
686686+ "type": "ref",
687687+ "ref": "lex:tools.ozone.safelink.defs#actionType",
688688+ },
689689+ "reason": {
690690+ "type": "ref",
691691+ "ref": "lex:tools.ozone.safelink.defs#reasonType",
692692+ },
693693+ "createdBy": {
694694+ "type": "string",
695695+ "format": "did",
696696+ "description": "DID of the user who created this rule",
697697+ },
698698+ "createdAt": {
699699+ "type": "string",
700700+ "format": "datetime",
701701+ },
702702+ "comment": {
703703+ "type": "string",
704704+ "description": "Optional comment about the decision",
705705+ },
706706+ },
707707+ },
708708+ "eventType": {
709709+ "type": "string",
710710+ "knownValues": [
711711+ "addRule",
712712+ "updateRule",
713713+ "removeRule",
714714+ ],
715715+ },
716716+ "patternType": {
717717+ "type": "string",
718718+ "knownValues": [
719719+ "domain",
720720+ "url",
721721+ ],
722722+ },
723723+ "actionType": {
724724+ "type": "string",
725725+ "knownValues": [
726726+ "block",
727727+ "warn",
728728+ "whitelist",
729729+ ],
730730+ },
731731+ "reasonType": {
732732+ "type": "string",
733733+ "knownValues": [
734734+ "csam",
735735+ "spam",
736736+ "phishing",
737737+ "none",
738738+ ],
739739+ },
740740+ "urlRule": {
741741+ "type": "object",
742742+ "description": "Input for creating a URL safety rule",
743743+ "required": [
744744+ "url",
745745+ "pattern",
746746+ "action",
747747+ "reason",
748748+ "createdBy",
749749+ "createdAt",
750750+ "updatedAt",
751751+ ],
752752+ "properties": {
753753+ "url": {
754754+ "type": "string",
755755+ "description": "The URL or domain to apply the rule to",
756756+ },
757757+ "pattern": {
758758+ "type": "ref",
759759+ "ref": "lex:tools.ozone.safelink.defs#patternType",
760760+ },
761761+ "action": {
762762+ "type": "ref",
763763+ "ref": "lex:tools.ozone.safelink.defs#actionType",
764764+ },
765765+ "reason": {
766766+ "type": "ref",
767767+ "ref": "lex:tools.ozone.safelink.defs#reasonType",
768768+ },
769769+ "comment": {
770770+ "type": "string",
771771+ "description": "Optional comment about the decision",
772772+ },
773773+ "createdBy": {
774774+ "type": "string",
775775+ "format": "did",
776776+ "description": "DID of the user added the rule.",
777777+ },
778778+ "createdAt": {
779779+ "type": "string",
780780+ "format": "datetime",
781781+ "description": "Timestamp when the rule was created",
782782+ },
783783+ "updatedAt": {
784784+ "type": "string",
785785+ "format": "datetime",
786786+ "description": "Timestamp when the rule was last updated",
787787+ },
788788+ },
789789+ },
790790+ },
791791+ },
792792+ "ToolsOzoneSafelinkAddRule": {
793793+ "lexicon": 1,
794794+ "id": "tools.ozone.safelink.addRule",
795795+ "defs": {
796796+ "main": {
797797+ "type": "procedure",
798798+ "description": "Add a new URL safety rule",
799799+ "input": {
800800+ "encoding": "application/json",
801801+ "schema": {
802802+ "type": "object",
803803+ "required": [
804804+ "url",
805805+ "pattern",
806806+ "action",
807807+ "reason",
808808+ ],
809809+ "properties": {
810810+ "url": {
811811+ "type": "string",
812812+ "description": "The URL or domain to apply the rule to",
813813+ },
814814+ "pattern": {
815815+ "type": "ref",
816816+ "ref": "lex:tools.ozone.safelink.defs#patternType",
817817+ },
818818+ "action": {
819819+ "type": "ref",
820820+ "ref": "lex:tools.ozone.safelink.defs#actionType",
821821+ },
822822+ "reason": {
823823+ "type": "ref",
824824+ "ref": "lex:tools.ozone.safelink.defs#reasonType",
825825+ },
826826+ "comment": {
827827+ "type": "string",
828828+ "description": "Optional comment about the decision",
829829+ },
830830+ "createdBy": {
831831+ "type": "string",
832832+ "format": "did",
833833+ "description":
834834+ "Author DID. Only respected when using admin auth",
835835+ },
836836+ },
837837+ },
838838+ },
839839+ "output": {
840840+ "encoding": "application/json",
841841+ "schema": {
842842+ "type": "ref",
843843+ "ref": "lex:tools.ozone.safelink.defs#event",
844844+ },
845845+ },
846846+ "errors": [
847847+ {
848848+ "name": "InvalidUrl",
849849+ "description": "The provided URL is invalid",
850850+ },
851851+ {
852852+ "name": "RuleAlreadyExists",
853853+ "description": "A rule for this URL/domain already exists",
854854+ },
855855+ ],
856856+ },
857857+ },
858858+ },
859859+ "ToolsOzoneSafelinkRemoveRule": {
860860+ "lexicon": 1,
861861+ "id": "tools.ozone.safelink.removeRule",
862862+ "defs": {
863863+ "main": {
864864+ "type": "procedure",
865865+ "description": "Remove an existing URL safety rule",
866866+ "input": {
867867+ "encoding": "application/json",
868868+ "schema": {
869869+ "type": "object",
870870+ "required": [
871871+ "url",
872872+ "pattern",
873873+ ],
874874+ "properties": {
875875+ "url": {
876876+ "type": "string",
877877+ "description": "The URL or domain to remove the rule for",
878878+ },
879879+ "pattern": {
880880+ "type": "ref",
881881+ "ref": "lex:tools.ozone.safelink.defs#patternType",
882882+ },
883883+ "comment": {
884884+ "type": "string",
885885+ "description":
886886+ "Optional comment about why the rule is being removed",
887887+ },
888888+ "createdBy": {
889889+ "type": "string",
890890+ "format": "did",
891891+ "description":
892892+ "Optional DID of the user. Only respected when using admin auth.",
893893+ },
894894+ },
895895+ },
896896+ },
897897+ "output": {
898898+ "encoding": "application/json",
899899+ "schema": {
900900+ "type": "ref",
901901+ "ref": "lex:tools.ozone.safelink.defs#event",
902902+ },
903903+ },
904904+ "errors": [
905905+ {
906906+ "name": "RuleNotFound",
907907+ "description": "No active rule found for this URL/domain",
908908+ },
909909+ ],
910910+ },
911911+ },
912912+ },
913913+ "ToolsOzoneSafelinkUpdateRule": {
914914+ "lexicon": 1,
915915+ "id": "tools.ozone.safelink.updateRule",
916916+ "defs": {
917917+ "main": {
918918+ "type": "procedure",
919919+ "description": "Update an existing URL safety rule",
920920+ "input": {
921921+ "encoding": "application/json",
922922+ "schema": {
923923+ "type": "object",
924924+ "required": [
925925+ "url",
926926+ "pattern",
927927+ "action",
928928+ "reason",
929929+ ],
930930+ "properties": {
931931+ "url": {
932932+ "type": "string",
933933+ "description": "The URL or domain to update the rule for",
934934+ },
935935+ "pattern": {
936936+ "type": "ref",
937937+ "ref": "lex:tools.ozone.safelink.defs#patternType",
938938+ },
939939+ "action": {
940940+ "type": "ref",
941941+ "ref": "lex:tools.ozone.safelink.defs#actionType",
942942+ },
943943+ "reason": {
944944+ "type": "ref",
945945+ "ref": "lex:tools.ozone.safelink.defs#reasonType",
946946+ },
947947+ "comment": {
948948+ "type": "string",
949949+ "description": "Optional comment about the update",
950950+ },
951951+ "createdBy": {
952952+ "type": "string",
953953+ "format": "did",
954954+ "description":
955955+ "Optional DID to credit as the creator. Only respected for admin_token authentication.",
956956+ },
957957+ },
958958+ },
959959+ },
960960+ "output": {
961961+ "encoding": "application/json",
962962+ "schema": {
963963+ "type": "ref",
964964+ "ref": "lex:tools.ozone.safelink.defs#event",
965965+ },
966966+ },
967967+ "errors": [
968968+ {
969969+ "name": "RuleNotFound",
970970+ "description": "No active rule found for this URL/domain",
971971+ },
972972+ ],
973973+ },
974974+ },
975975+ },
976976+ "ToolsOzoneSafelinkQueryEvents": {
977977+ "lexicon": 1,
978978+ "id": "tools.ozone.safelink.queryEvents",
979979+ "defs": {
980980+ "main": {
981981+ "type": "procedure",
982982+ "description": "Query URL safety audit events",
983983+ "input": {
984984+ "encoding": "application/json",
985985+ "schema": {
986986+ "type": "object",
987987+ "properties": {
988988+ "cursor": {
989989+ "type": "string",
990990+ "description": "Cursor for pagination",
991991+ },
992992+ "limit": {
993993+ "type": "integer",
994994+ "minimum": 1,
995995+ "maximum": 100,
996996+ "default": 50,
997997+ "description": "Maximum number of results to return",
998998+ },
999999+ "urls": {
10001000+ "type": "array",
10011001+ "items": {
10021002+ "type": "string",
10031003+ },
10041004+ "description": "Filter by specific URLs or domains",
10051005+ },
10061006+ "patternType": {
10071007+ "type": "string",
10081008+ "description": "Filter by pattern type",
10091009+ },
10101010+ "sortDirection": {
10111011+ "type": "string",
10121012+ "knownValues": [
10131013+ "asc",
10141014+ "desc",
10151015+ ],
10161016+ "default": "desc",
10171017+ "description": "Sort direction",
10181018+ },
10191019+ },
10201020+ },
10211021+ },
10221022+ "output": {
10231023+ "encoding": "application/json",
10241024+ "schema": {
10251025+ "type": "object",
10261026+ "required": [
10271027+ "events",
10281028+ ],
10291029+ "properties": {
10301030+ "cursor": {
10311031+ "type": "string",
10321032+ "description":
10331033+ "Next cursor for pagination. Only present if there are more results.",
10341034+ },
10351035+ "events": {
10361036+ "type": "array",
10371037+ "items": {
10381038+ "type": "ref",
10391039+ "ref": "lex:tools.ozone.safelink.defs#event",
10401040+ },
10411041+ },
10421042+ },
10431043+ },
10441044+ },
10451045+ },
10461046+ },
10471047+ },
10481048+ "ToolsOzoneSafelinkQueryRules": {
10491049+ "lexicon": 1,
10501050+ "id": "tools.ozone.safelink.queryRules",
10511051+ "defs": {
10521052+ "main": {
10531053+ "type": "procedure",
10541054+ "description": "Query URL safety rules",
10551055+ "input": {
10561056+ "encoding": "application/json",
10571057+ "schema": {
10581058+ "type": "object",
10591059+ "properties": {
10601060+ "cursor": {
10611061+ "type": "string",
10621062+ "description": "Cursor for pagination",
10631063+ },
10641064+ "limit": {
10651065+ "type": "integer",
10661066+ "minimum": 1,
10671067+ "maximum": 100,
10681068+ "default": 50,
10691069+ "description": "Maximum number of results to return",
10701070+ },
10711071+ "urls": {
10721072+ "type": "array",
10731073+ "items": {
10741074+ "type": "string",
10751075+ },
10761076+ "description": "Filter by specific URLs or domains",
10771077+ },
10781078+ "patternType": {
10791079+ "type": "string",
10801080+ "description": "Filter by pattern type",
10811081+ },
10821082+ "actions": {
10831083+ "type": "array",
10841084+ "items": {
10851085+ "type": "string",
10861086+ },
10871087+ "description": "Filter by action types",
10881088+ },
10891089+ "reason": {
10901090+ "type": "string",
10911091+ "description": "Filter by reason type",
10921092+ },
10931093+ "createdBy": {
10941094+ "type": "string",
10951095+ "format": "did",
10961096+ "description": "Filter by rule creator",
10971097+ },
10981098+ "sortDirection": {
10991099+ "type": "string",
11001100+ "knownValues": [
11011101+ "asc",
11021102+ "desc",
11031103+ ],
11041104+ "default": "desc",
11051105+ "description": "Sort direction",
11061106+ },
11071107+ },
11081108+ },
11091109+ },
11101110+ "output": {
11111111+ "encoding": "application/json",
11121112+ "schema": {
11131113+ "type": "object",
11141114+ "required": [
11151115+ "rules",
11161116+ ],
11171117+ "properties": {
11181118+ "cursor": {
11191119+ "type": "string",
11201120+ "description":
11211121+ "Next cursor for pagination. Only present if there are more results.",
11221122+ },
11231123+ "rules": {
11241124+ "type": "array",
11251125+ "items": {
11261126+ "type": "ref",
11271127+ "ref": "lex:tools.ozone.safelink.defs#urlRule",
11281128+ },
11291129+ },
11301130+ },
11311131+ },
11321132+ },
11331133+ },
11341134+ },
11351135+ },
2661136 "ToolsOzoneTeamListMembers": {
2671137 "lexicon": 1,
2681138 "id": "tools.ozone.team.listMembers",
···2731143 "parameters": {
2741144 "type": "params",
2751145 "properties": {
11461146+ "q": {
11471147+ "type": "string",
11481148+ },
2761149 "disabled": {
2771150 "type": "boolean",
2781151 },
···3531226 "role": {
3541227 "type": "string",
3551228 "knownValues": [
356356- "lex:tools.ozone.team.defs#roleAdmin",
357357- "lex:tools.ozone.team.defs#roleModerator",
358358- "lex:tools.ozone.team.defs#roleTriage",
12291229+ "tools.ozone.team.defs#roleAdmin",
12301230+ "tools.ozone.team.defs#roleModerator",
12311231+ "tools.ozone.team.defs#roleTriage",
12321232+ "tools.ozone.team.defs#roleVerifier",
3591233 ],
3601234 },
3611235 },
···3731247 "type": "token",
3741248 "description":
3751249 "Triage role. Mostly intended for monitoring and escalating issues.",
12501250+ },
12511251+ "roleVerifier": {
12521252+ "type": "token",
12531253+ "description": "Verifier role. Only allowed to issue verifications.",
3761254 },
3771255 },
3781256 },
···4391317 "knownValues": [
4401318 "tools.ozone.team.defs#roleAdmin",
4411319 "tools.ozone.team.defs#roleModerator",
13201320+ "tools.ozone.team.defs#roleVerifier",
4421321 "tools.ozone.team.defs#roleTriage",
4431322 ],
4441323 },
···4871366 "knownValues": [
4881367 "tools.ozone.team.defs#roleAdmin",
4891368 "tools.ozone.team.defs#roleModerator",
13691369+ "tools.ozone.team.defs#roleVerifier",
4901370 "tools.ozone.team.defs#roleTriage",
4911371 ],
4921372 },
···5091389 },
5101390 },
5111391 },
13921392+ "ToolsOzoneHostingGetAccountHistory": {
13931393+ "lexicon": 1,
13941394+ "id": "tools.ozone.hosting.getAccountHistory",
13951395+ "defs": {
13961396+ "main": {
13971397+ "type": "query",
13981398+ "description":
13991399+ "Get account history, e.g. log of updated email addresses or other identity information.",
14001400+ "parameters": {
14011401+ "type": "params",
14021402+ "required": [
14031403+ "did",
14041404+ ],
14051405+ "properties": {
14061406+ "did": {
14071407+ "type": "string",
14081408+ "format": "did",
14091409+ },
14101410+ "events": {
14111411+ "type": "array",
14121412+ "items": {
14131413+ "type": "string",
14141414+ "knownValues": [
14151415+ "accountCreated",
14161416+ "emailUpdated",
14171417+ "emailConfirmed",
14181418+ "passwordUpdated",
14191419+ "handleUpdated",
14201420+ ],
14211421+ },
14221422+ },
14231423+ "cursor": {
14241424+ "type": "string",
14251425+ },
14261426+ "limit": {
14271427+ "type": "integer",
14281428+ "minimum": 1,
14291429+ "maximum": 100,
14301430+ "default": 50,
14311431+ },
14321432+ },
14331433+ },
14341434+ "output": {
14351435+ "encoding": "application/json",
14361436+ "schema": {
14371437+ "type": "object",
14381438+ "required": [
14391439+ "events",
14401440+ ],
14411441+ "properties": {
14421442+ "cursor": {
14431443+ "type": "string",
14441444+ },
14451445+ "events": {
14461446+ "type": "array",
14471447+ "items": {
14481448+ "type": "ref",
14491449+ "ref": "lex:tools.ozone.hosting.getAccountHistory#event",
14501450+ },
14511451+ },
14521452+ },
14531453+ },
14541454+ },
14551455+ },
14561456+ "event": {
14571457+ "type": "object",
14581458+ "required": [
14591459+ "details",
14601460+ "createdBy",
14611461+ "createdAt",
14621462+ ],
14631463+ "properties": {
14641464+ "details": {
14651465+ "type": "union",
14661466+ "refs": [
14671467+ "lex:tools.ozone.hosting.getAccountHistory#accountCreated",
14681468+ "lex:tools.ozone.hosting.getAccountHistory#emailUpdated",
14691469+ "lex:tools.ozone.hosting.getAccountHistory#emailConfirmed",
14701470+ "lex:tools.ozone.hosting.getAccountHistory#passwordUpdated",
14711471+ "lex:tools.ozone.hosting.getAccountHistory#handleUpdated",
14721472+ ],
14731473+ },
14741474+ "createdBy": {
14751475+ "type": "string",
14761476+ },
14771477+ "createdAt": {
14781478+ "type": "string",
14791479+ "format": "datetime",
14801480+ },
14811481+ },
14821482+ },
14831483+ "accountCreated": {
14841484+ "type": "object",
14851485+ "required": [],
14861486+ "properties": {
14871487+ "email": {
14881488+ "type": "string",
14891489+ },
14901490+ "handle": {
14911491+ "type": "string",
14921492+ "format": "handle",
14931493+ },
14941494+ },
14951495+ },
14961496+ "emailUpdated": {
14971497+ "type": "object",
14981498+ "required": [
14991499+ "email",
15001500+ ],
15011501+ "properties": {
15021502+ "email": {
15031503+ "type": "string",
15041504+ },
15051505+ },
15061506+ },
15071507+ "emailConfirmed": {
15081508+ "type": "object",
15091509+ "required": [
15101510+ "email",
15111511+ ],
15121512+ "properties": {
15131513+ "email": {
15141514+ "type": "string",
15151515+ },
15161516+ },
15171517+ },
15181518+ "passwordUpdated": {
15191519+ "type": "object",
15201520+ "required": [],
15211521+ "properties": {},
15221522+ },
15231523+ "handleUpdated": {
15241524+ "type": "object",
15251525+ "required": [
15261526+ "handle",
15271527+ ],
15281528+ "properties": {
15291529+ "handle": {
15301530+ "type": "string",
15311531+ "format": "handle",
15321532+ },
15331533+ },
15341534+ },
15351535+ },
15361536+ },
15371537+ "ToolsOzoneReportDefs": {
15381538+ "lexicon": 1,
15391539+ "id": "tools.ozone.report.defs",
15401540+ "defs": {
15411541+ "reasonType": {
15421542+ "type": "string",
15431543+ "knownValues": [
15441544+ "tools.ozone.report.defs#reasonAppeal",
15451545+ "tools.ozone.report.defs#reasonOther",
15461546+ "tools.ozone.report.defs#reasonViolenceAnimal",
15471547+ "tools.ozone.report.defs#reasonViolenceThreats",
15481548+ "tools.ozone.report.defs#reasonViolenceGraphicContent",
15491549+ "tools.ozone.report.defs#reasonViolenceGlorification",
15501550+ "tools.ozone.report.defs#reasonViolenceExtremistContent",
15511551+ "tools.ozone.report.defs#reasonViolenceTrafficking",
15521552+ "tools.ozone.report.defs#reasonViolenceOther",
15531553+ "tools.ozone.report.defs#reasonSexualAbuseContent",
15541554+ "tools.ozone.report.defs#reasonSexualNCII",
15551555+ "tools.ozone.report.defs#reasonSexualDeepfake",
15561556+ "tools.ozone.report.defs#reasonSexualAnimal",
15571557+ "tools.ozone.report.defs#reasonSexualUnlabeled",
15581558+ "tools.ozone.report.defs#reasonSexualOther",
15591559+ "tools.ozone.report.defs#reasonChildSafetyCSAM",
15601560+ "tools.ozone.report.defs#reasonChildSafetyGroom",
15611561+ "tools.ozone.report.defs#reasonChildSafetyPrivacy",
15621562+ "tools.ozone.report.defs#reasonChildSafetyHarassment",
15631563+ "tools.ozone.report.defs#reasonChildSafetyOther",
15641564+ "tools.ozone.report.defs#reasonHarassmentTroll",
15651565+ "tools.ozone.report.defs#reasonHarassmentTargeted",
15661566+ "tools.ozone.report.defs#reasonHarassmentHateSpeech",
15671567+ "tools.ozone.report.defs#reasonHarassmentDoxxing",
15681568+ "tools.ozone.report.defs#reasonHarassmentOther",
15691569+ "tools.ozone.report.defs#reasonMisleadingBot",
15701570+ "tools.ozone.report.defs#reasonMisleadingImpersonation",
15711571+ "tools.ozone.report.defs#reasonMisleadingSpam",
15721572+ "tools.ozone.report.defs#reasonMisleadingScam",
15731573+ "tools.ozone.report.defs#reasonMisleadingElections",
15741574+ "tools.ozone.report.defs#reasonMisleadingOther",
15751575+ "tools.ozone.report.defs#reasonRuleSiteSecurity",
15761576+ "tools.ozone.report.defs#reasonRuleProhibitedSales",
15771577+ "tools.ozone.report.defs#reasonRuleBanEvasion",
15781578+ "tools.ozone.report.defs#reasonRuleOther",
15791579+ "tools.ozone.report.defs#reasonSelfHarmContent",
15801580+ "tools.ozone.report.defs#reasonSelfHarmED",
15811581+ "tools.ozone.report.defs#reasonSelfHarmStunts",
15821582+ "tools.ozone.report.defs#reasonSelfHarmSubstances",
15831583+ "tools.ozone.report.defs#reasonSelfHarmOther",
15841584+ ],
15851585+ },
15861586+ "reasonAppeal": {
15871587+ "type": "token",
15881588+ "description": "Appeal a previously taken moderation action",
15891589+ },
15901590+ "reasonOther": {
15911591+ "type": "token",
15921592+ "description": "An issue not included in these options",
15931593+ },
15941594+ "reasonViolenceAnimal": {
15951595+ "type": "token",
15961596+ "description": "Animal welfare violations",
15971597+ },
15981598+ "reasonViolenceThreats": {
15991599+ "type": "token",
16001600+ "description": "Threats or incitement",
16011601+ },
16021602+ "reasonViolenceGraphicContent": {
16031603+ "type": "token",
16041604+ "description": "Graphic violent content",
16051605+ },
16061606+ "reasonViolenceGlorification": {
16071607+ "type": "token",
16081608+ "description": "Glorification of violence",
16091609+ },
16101610+ "reasonViolenceExtremistContent": {
16111611+ "type": "token",
16121612+ "description":
16131613+ "Extremist content. These reports will be sent only be sent to the application's Moderation Authority.",
16141614+ },
16151615+ "reasonViolenceTrafficking": {
16161616+ "type": "token",
16171617+ "description": "Human trafficking",
16181618+ },
16191619+ "reasonViolenceOther": {
16201620+ "type": "token",
16211621+ "description": "Other violent content",
16221622+ },
16231623+ "reasonSexualAbuseContent": {
16241624+ "type": "token",
16251625+ "description": "Adult sexual abuse content",
16261626+ },
16271627+ "reasonSexualNCII": {
16281628+ "type": "token",
16291629+ "description": "Non-consensual intimate imagery",
16301630+ },
16311631+ "reasonSexualDeepfake": {
16321632+ "type": "token",
16331633+ "description": "Deepfake adult content",
16341634+ },
16351635+ "reasonSexualAnimal": {
16361636+ "type": "token",
16371637+ "description": "Animal sexual abuse",
16381638+ },
16391639+ "reasonSexualUnlabeled": {
16401640+ "type": "token",
16411641+ "description": "Unlabelled adult content",
16421642+ },
16431643+ "reasonSexualOther": {
16441644+ "type": "token",
16451645+ "description": "Other sexual violence content",
16461646+ },
16471647+ "reasonChildSafetyCSAM": {
16481648+ "type": "token",
16491649+ "description":
16501650+ "Child sexual abuse material (CSAM). These reports will be sent only be sent to the application's Moderation Authority.",
16511651+ },
16521652+ "reasonChildSafetyGroom": {
16531653+ "type": "token",
16541654+ "description":
16551655+ "Grooming or predatory behavior. These reports will be sent only be sent to the application's Moderation Authority.",
16561656+ },
16571657+ "reasonChildSafetyPrivacy": {
16581658+ "type": "token",
16591659+ "description": "Privacy violation involving a minor",
16601660+ },
16611661+ "reasonChildSafetyHarassment": {
16621662+ "type": "token",
16631663+ "description": "Harassment or bullying of minors",
16641664+ },
16651665+ "reasonChildSafetyOther": {
16661666+ "type": "token",
16671667+ "description":
16681668+ "Other child safety. These reports will be sent only be sent to the application's Moderation Authority.",
16691669+ },
16701670+ "reasonHarassmentTroll": {
16711671+ "type": "token",
16721672+ "description": "Trolling",
16731673+ },
16741674+ "reasonHarassmentTargeted": {
16751675+ "type": "token",
16761676+ "description": "Targeted harassment",
16771677+ },
16781678+ "reasonHarassmentHateSpeech": {
16791679+ "type": "token",
16801680+ "description": "Hate speech",
16811681+ },
16821682+ "reasonHarassmentDoxxing": {
16831683+ "type": "token",
16841684+ "description": "Doxxing",
16851685+ },
16861686+ "reasonHarassmentOther": {
16871687+ "type": "token",
16881688+ "description": "Other harassing or hateful content",
16891689+ },
16901690+ "reasonMisleadingBot": {
16911691+ "type": "token",
16921692+ "description": "Fake account or bot",
16931693+ },
16941694+ "reasonMisleadingImpersonation": {
16951695+ "type": "token",
16961696+ "description": "Impersonation",
16971697+ },
16981698+ "reasonMisleadingSpam": {
16991699+ "type": "token",
17001700+ "description": "Spam",
17011701+ },
17021702+ "reasonMisleadingScam": {
17031703+ "type": "token",
17041704+ "description": "Scam",
17051705+ },
17061706+ "reasonMisleadingElections": {
17071707+ "type": "token",
17081708+ "description": "False information about elections",
17091709+ },
17101710+ "reasonMisleadingOther": {
17111711+ "type": "token",
17121712+ "description": "Other misleading content",
17131713+ },
17141714+ "reasonRuleSiteSecurity": {
17151715+ "type": "token",
17161716+ "description": "Hacking or system attacks",
17171717+ },
17181718+ "reasonRuleProhibitedSales": {
17191719+ "type": "token",
17201720+ "description": "Promoting or selling prohibited items or services",
17211721+ },
17221722+ "reasonRuleBanEvasion": {
17231723+ "type": "token",
17241724+ "description": "Banned user returning",
17251725+ },
17261726+ "reasonRuleOther": {
17271727+ "type": "token",
17281728+ "description": "Other",
17291729+ },
17301730+ "reasonSelfHarmContent": {
17311731+ "type": "token",
17321732+ "description": "Content promoting or depicting self-harm",
17331733+ },
17341734+ "reasonSelfHarmED": {
17351735+ "type": "token",
17361736+ "description": "Eating disorders",
17371737+ },
17381738+ "reasonSelfHarmStunts": {
17391739+ "type": "token",
17401740+ "description": "Dangerous challenges or activities",
17411741+ },
17421742+ "reasonSelfHarmSubstances": {
17431743+ "type": "token",
17441744+ "description": "Dangerous substances or drug abuse",
17451745+ },
17461746+ "reasonSelfHarmOther": {
17471747+ "type": "token",
17481748+ "description": "Other dangerous content",
17491749+ },
17501750+ },
17511751+ },
5121752 "ToolsOzoneCommunicationDefs": {
5131753 "lexicon": 1,
5141754 "id": "tools.ozone.communication.defs",
···11092349 "tools.ozone.team.defs#roleModerator",
11102350 "tools.ozone.team.defs#roleTriage",
11112351 "tools.ozone.team.defs#roleAdmin",
23522352+ "tools.ozone.team.defs#roleVerifier",
11122353 ],
11132354 },
11142355 "scope": {
···12822523 "knownValues": [
12832524 "tools.ozone.team.defs#roleModerator",
12842525 "tools.ozone.team.defs#roleTriage",
25262526+ "tools.ozone.team.defs#roleVerifier",
12852527 "tools.ozone.team.defs#roleAdmin",
12862528 ],
12872529 },
···13502592 },
13512593 },
13522594 },
25952595+ "ToolsOzoneModerationCancelScheduledActions": {
25962596+ "lexicon": 1,
25972597+ "id": "tools.ozone.moderation.cancelScheduledActions",
25982598+ "defs": {
25992599+ "main": {
26002600+ "type": "procedure",
26012601+ "description":
26022602+ "Cancel all pending scheduled moderation actions for specified subjects",
26032603+ "input": {
26042604+ "encoding": "application/json",
26052605+ "schema": {
26062606+ "type": "object",
26072607+ "required": [
26082608+ "subjects",
26092609+ ],
26102610+ "properties": {
26112611+ "subjects": {
26122612+ "type": "array",
26132613+ "maxLength": 100,
26142614+ "items": {
26152615+ "type": "string",
26162616+ "format": "did",
26172617+ },
26182618+ "description":
26192619+ "Array of DID subjects to cancel scheduled actions for",
26202620+ },
26212621+ "comment": {
26222622+ "type": "string",
26232623+ "description":
26242624+ "Optional comment describing the reason for cancellation",
26252625+ },
26262626+ },
26272627+ },
26282628+ },
26292629+ "output": {
26302630+ "encoding": "application/json",
26312631+ "schema": {
26322632+ "type": "ref",
26332633+ "ref":
26342634+ "lex:tools.ozone.moderation.cancelScheduledActions#cancellationResults",
26352635+ },
26362636+ },
26372637+ },
26382638+ "cancellationResults": {
26392639+ "type": "object",
26402640+ "required": [
26412641+ "succeeded",
26422642+ "failed",
26432643+ ],
26442644+ "properties": {
26452645+ "succeeded": {
26462646+ "type": "array",
26472647+ "items": {
26482648+ "type": "string",
26492649+ "format": "did",
26502650+ },
26512651+ "description":
26522652+ "DIDs for which all pending scheduled actions were successfully cancelled",
26532653+ },
26542654+ "failed": {
26552655+ "type": "array",
26562656+ "items": {
26572657+ "type": "ref",
26582658+ "ref":
26592659+ "lex:tools.ozone.moderation.cancelScheduledActions#failedCancellation",
26602660+ },
26612661+ "description":
26622662+ "DIDs for which cancellation failed with error details",
26632663+ },
26642664+ },
26652665+ },
26662666+ "failedCancellation": {
26672667+ "type": "object",
26682668+ "required": [
26692669+ "did",
26702670+ "error",
26712671+ ],
26722672+ "properties": {
26732673+ "did": {
26742674+ "type": "string",
26752675+ "format": "did",
26762676+ },
26772677+ "error": {
26782678+ "type": "string",
26792679+ },
26802680+ "errorCode": {
26812681+ "type": "string",
26822682+ },
26832683+ },
26842684+ },
26852685+ },
26862686+ },
26872687+ "ToolsOzoneModerationListScheduledActions": {
26882688+ "lexicon": 1,
26892689+ "id": "tools.ozone.moderation.listScheduledActions",
26902690+ "defs": {
26912691+ "main": {
26922692+ "type": "procedure",
26932693+ "description":
26942694+ "List scheduled moderation actions with optional filtering",
26952695+ "input": {
26962696+ "encoding": "application/json",
26972697+ "schema": {
26982698+ "type": "object",
26992699+ "required": [
27002700+ "statuses",
27012701+ ],
27022702+ "properties": {
27032703+ "startsAfter": {
27042704+ "type": "string",
27052705+ "format": "datetime",
27062706+ "description":
27072707+ "Filter actions scheduled to execute after this time",
27082708+ },
27092709+ "endsBefore": {
27102710+ "type": "string",
27112711+ "format": "datetime",
27122712+ "description":
27132713+ "Filter actions scheduled to execute before this time",
27142714+ },
27152715+ "subjects": {
27162716+ "type": "array",
27172717+ "maxLength": 100,
27182718+ "items": {
27192719+ "type": "string",
27202720+ "format": "did",
27212721+ },
27222722+ "description": "Filter actions for specific DID subjects",
27232723+ },
27242724+ "statuses": {
27252725+ "type": "array",
27262726+ "minLength": 1,
27272727+ "items": {
27282728+ "type": "string",
27292729+ "knownValues": [
27302730+ "pending",
27312731+ "executed",
27322732+ "cancelled",
27332733+ "failed",
27342734+ ],
27352735+ },
27362736+ "description": "Filter actions by status",
27372737+ },
27382738+ "limit": {
27392739+ "type": "integer",
27402740+ "minimum": 1,
27412741+ "maximum": 100,
27422742+ "default": 50,
27432743+ "description": "Maximum number of results to return",
27442744+ },
27452745+ "cursor": {
27462746+ "type": "string",
27472747+ "description": "Cursor for pagination",
27482748+ },
27492749+ },
27502750+ },
27512751+ },
27522752+ "output": {
27532753+ "encoding": "application/json",
27542754+ "schema": {
27552755+ "type": "object",
27562756+ "required": [
27572757+ "actions",
27582758+ ],
27592759+ "properties": {
27602760+ "actions": {
27612761+ "type": "array",
27622762+ "items": {
27632763+ "type": "ref",
27642764+ "ref": "lex:tools.ozone.moderation.defs#scheduledActionView",
27652765+ },
27662766+ },
27672767+ "cursor": {
27682768+ "type": "string",
27692769+ "description": "Cursor for next page of results",
27702770+ },
27712771+ },
27722772+ },
27732773+ },
27742774+ },
27752775+ },
27762776+ },
13532777 "ToolsOzoneModerationQueryStatuses": {
13542778 "lexicon": 1,
13552779 "id": "tools.ozone.moderation.queryStatuses",
···14562880 "type": "string",
14572881 "description":
14582882 "Specify when fetching subjects in a certain state",
28832883+ "knownValues": [
28842884+ "tools.ozone.moderation.defs#reviewOpen",
28852885+ "tools.ozone.moderation.defs#reviewClosed",
28862886+ "tools.ozone.moderation.defs#reviewEscalated",
28872887+ "tools.ozone.moderation.defs#reviewNone",
28882888+ ],
14592889 },
14602890 "ignoreSubjects": {
14612891 "type": "array",
···15622992 "description":
15632993 "If specified, only subjects that have priority score value above the given value will be returned.",
15642994 },
29952995+ "minStrikeCount": {
29962996+ "type": "integer",
29972997+ "minimum": 1,
29982998+ "description":
29992999+ "If specified, only subjects that belong to an account that has at least this many active strikes will be returned.",
30003000+ },
30013001+ "ageAssuranceState": {
30023002+ "type": "string",
30033003+ "description":
30043004+ "If specified, only subjects with the given age assurance state will be returned.",
30053005+ "knownValues": [
30063006+ "pending",
30073007+ "assured",
30083008+ "unknown",
30093009+ "reset",
30103010+ "blocked",
30113011+ ],
30123012+ },
15653013 },
15663014 },
15673015 "output": {
···16623110 "lex:tools.ozone.moderation.defs#identityEvent",
16633111 "lex:tools.ozone.moderation.defs#recordEvent",
16643112 "lex:tools.ozone.moderation.defs#modEventPriorityScore",
31133113+ "lex:tools.ozone.moderation.defs#ageAssuranceEvent",
31143114+ "lex:tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
31153115+ "lex:tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
31163116+ "lex:tools.ozone.moderation.defs#scheduleTakedownEvent",
31173117+ "lex:tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
16653118 ],
16663119 },
16673120 "subject": {
···16913144 },
16923145 "subjectHandle": {
16933146 "type": "string",
31473147+ },
31483148+ "modTool": {
31493149+ "type": "ref",
31503150+ "ref": "lex:tools.ozone.moderation.defs#modTool",
16943151 },
16953152 },
16963153 },
···17303187 "lex:tools.ozone.moderation.defs#identityEvent",
17313188 "lex:tools.ozone.moderation.defs#recordEvent",
17323189 "lex:tools.ozone.moderation.defs#modEventPriorityScore",
31903190+ "lex:tools.ozone.moderation.defs#ageAssuranceEvent",
31913191+ "lex:tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
31923192+ "lex:tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
31933193+ "lex:tools.ozone.moderation.defs#scheduleTakedownEvent",
31943194+ "lex:tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
17333195 ],
17343196 },
17353197 "subject": {
···17563218 "type": "string",
17573219 "format": "datetime",
17583220 },
32213221+ "modTool": {
32223222+ "type": "ref",
32233223+ "ref": "lex:tools.ozone.moderation.defs#modTool",
32243224+ },
17593225 },
17603226 },
17613227 "subjectStatusView": {
···17763242 "refs": [
17773243 "lex:com.atproto.admin.defs#repoRef",
17783244 "lex:com.atproto.repo.strongRef",
32453245+ "lex:chat.bsky.convo.defs#messageRef",
17793246 ],
17803247 },
17813248 "hosting": {
···18763343 "Statistics related to the record subjects authored by the subject's account",
18773344 "type": "ref",
18783345 "ref": "lex:tools.ozone.moderation.defs#recordsStats",
33463346+ },
33473347+ "accountStrike": {
33483348+ "description":
33493349+ "Strike information for the account (account-level only)",
33503350+ "type": "ref",
33513351+ "ref": "lex:tools.ozone.moderation.defs#accountStrike",
33523352+ },
33533353+ "ageAssuranceState": {
33543354+ "type": "string",
33553355+ "description": "Current age assurance state of the subject.",
33563356+ "knownValues": [
33573357+ "pending",
33583358+ "assured",
33593359+ "unknown",
33603360+ "reset",
33613361+ "blocked",
33623362+ ],
33633363+ },
33643364+ "ageAssuranceUpdatedBy": {
33653365+ "type": "string",
33663366+ "description":
33673367+ "Whether or not the last successful update to age assurance was made by the user or admin.",
33683368+ "knownValues": [
33693369+ "admin",
33703370+ "user",
33713371+ ],
33723372+ },
33733373+ },
33743374+ },
33753375+ "subjectView": {
33763376+ "description":
33773377+ "Detailed view of a subject. For record subjects, the author's repo and profile will be returned.",
33783378+ "type": "object",
33793379+ "required": [
33803380+ "type",
33813381+ "subject",
33823382+ ],
33833383+ "properties": {
33843384+ "type": {
33853385+ "type": "ref",
33863386+ "ref": "lex:com.atproto.moderation.defs#subjectType",
33873387+ },
33883388+ "subject": {
33893389+ "type": "string",
33903390+ },
33913391+ "status": {
33923392+ "type": "ref",
33933393+ "ref": "lex:tools.ozone.moderation.defs#subjectStatusView",
33943394+ },
33953395+ "repo": {
33963396+ "type": "ref",
33973397+ "ref": "lex:tools.ozone.moderation.defs#repoViewDetail",
33983398+ },
33993399+ "profile": {
34003400+ "type": "union",
34013401+ "refs": [],
34023402+ },
34033403+ "record": {
34043404+ "type": "ref",
34053405+ "ref": "lex:tools.ozone.moderation.defs#recordViewDetail",
18793406 },
18803407 },
18813408 },
···19473474 },
19483475 },
19493476 },
34773477+ "accountStrike": {
34783478+ "description": "Strike information for an account",
34793479+ "type": "object",
34803480+ "properties": {
34813481+ "activeStrikeCount": {
34823482+ "description":
34833483+ "Current number of active strikes (excluding expired strikes)",
34843484+ "type": "integer",
34853485+ },
34863486+ "totalStrikeCount": {
34873487+ "description":
34883488+ "Total number of strikes ever received (including expired strikes)",
34893489+ "type": "integer",
34903490+ },
34913491+ "firstStrikeAt": {
34923492+ "description": "Timestamp of the first strike received",
34933493+ "type": "string",
34943494+ "format": "datetime",
34953495+ },
34963496+ "lastStrikeAt": {
34973497+ "description": "Timestamp of the most recent strike received",
34983498+ "type": "string",
34993499+ "format": "datetime",
35003500+ },
35013501+ },
35023502+ },
19503503 "subjectReviewState": {
19513504 "type": "string",
19523505 "knownValues": [
19531953- "lex:tools.ozone.moderation.defs#reviewOpen",
19541954- "lex:tools.ozone.moderation.defs#reviewEscalated",
19551955- "lex:tools.ozone.moderation.defs#reviewClosed",
19561956- "lex:tools.ozone.moderation.defs#reviewNone",
35063506+ "tools.ozone.moderation.defs#reviewOpen",
35073507+ "tools.ozone.moderation.defs#reviewEscalated",
35083508+ "tools.ozone.moderation.defs#reviewClosed",
35093509+ "tools.ozone.moderation.defs#reviewNone",
19573510 ],
19583511 },
19593512 "reviewOpen": {
···20023555 "description":
20033556 "Names/Keywords of the policies that drove the decision.",
20043557 },
35583558+ "severityLevel": {
35593559+ "type": "string",
35603560+ "description":
35613561+ "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).",
35623562+ },
35633563+ "targetServices": {
35643564+ "type": "array",
35653565+ "items": {
35663566+ "type": "string",
35673567+ "knownValues": [
35683568+ "appview",
35693569+ "pds",
35703570+ ],
35713571+ },
35723572+ "description":
35733573+ "List of services where the takedown should be applied. If empty or not provided, takedown is applied on all configured services.",
35743574+ },
35753575+ "strikeCount": {
35763576+ "type": "integer",
35773577+ "description":
35783578+ "Number of strikes to assign to the user for this violation.",
35793579+ },
35803580+ "strikeExpiresAt": {
35813581+ "type": "string",
35823582+ "format": "datetime",
35833583+ "description":
35843584+ "When the strike should expire. If not provided, the strike never expires.",
35853585+ },
20053586 },
20063587 },
20073588 "modEventReverseTakedown": {
···20123593 "type": "string",
20133594 "description": "Describe reasoning behind the reversal.",
20143595 },
35963596+ "policies": {
35973597+ "type": "array",
35983598+ "maxLength": 5,
35993599+ "items": {
36003600+ "type": "string",
36013601+ },
36023602+ "description":
36033603+ "Names/Keywords of the policy infraction for which takedown is being reversed.",
36043604+ },
36053605+ "severityLevel": {
36063606+ "type": "string",
36073607+ "description":
36083608+ "Severity level of the violation. Usually set from the last policy infraction's severity.",
36093609+ },
36103610+ "strikeCount": {
36113611+ "type": "integer",
36123612+ "description":
36133613+ "Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity.",
36143614+ },
20153615 },
20163616 },
20173617 "modEventResolveAppeal": {
···21073707 },
21083708 },
21093709 },
37103710+ "ageAssuranceEvent": {
37113711+ "type": "object",
37123712+ "description":
37133713+ "Age assurance info coming directly from users. Only works on DID subjects.",
37143714+ "required": [
37153715+ "createdAt",
37163716+ "status",
37173717+ "attemptId",
37183718+ ],
37193719+ "properties": {
37203720+ "createdAt": {
37213721+ "type": "string",
37223722+ "format": "datetime",
37233723+ "description": "The date and time of this write operation.",
37243724+ },
37253725+ "attemptId": {
37263726+ "type": "string",
37273727+ "description":
37283728+ "The unique identifier for this instance of the age assurance flow, in UUID format.",
37293729+ },
37303730+ "status": {
37313731+ "type": "string",
37323732+ "description": "The status of the Age Assurance process.",
37333733+ "knownValues": [
37343734+ "unknown",
37353735+ "pending",
37363736+ "assured",
37373737+ ],
37383738+ },
37393739+ "access": {
37403740+ "type": "ref",
37413741+ "ref": "lex:app.bsky.ageassurance.defs#access",
37423742+ },
37433743+ "countryCode": {
37443744+ "type": "string",
37453745+ "description":
37463746+ "The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow.",
37473747+ },
37483748+ "regionCode": {
37493749+ "type": "string",
37503750+ "description":
37513751+ "The ISO 3166-2 region code provided when beginning the Age Assurance flow.",
37523752+ },
37533753+ "initIp": {
37543754+ "type": "string",
37553755+ "description": "The IP address used when initiating the AA flow.",
37563756+ },
37573757+ "initUa": {
37583758+ "type": "string",
37593759+ "description": "The user agent used when initiating the AA flow.",
37603760+ },
37613761+ "completeIp": {
37623762+ "type": "string",
37633763+ "description": "The IP address used when completing the AA flow.",
37643764+ },
37653765+ "completeUa": {
37663766+ "type": "string",
37673767+ "description": "The user agent used when completing the AA flow.",
37683768+ },
37693769+ },
37703770+ },
37713771+ "ageAssuranceOverrideEvent": {
37723772+ "type": "object",
37733773+ "description":
37743774+ "Age assurance status override by moderators. Only works on DID subjects.",
37753775+ "required": [
37763776+ "comment",
37773777+ "status",
37783778+ ],
37793779+ "properties": {
37803780+ "status": {
37813781+ "type": "string",
37823782+ "description":
37833783+ "The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state.",
37843784+ "knownValues": [
37853785+ "assured",
37863786+ "reset",
37873787+ "blocked",
37883788+ ],
37893789+ },
37903790+ "access": {
37913791+ "type": "ref",
37923792+ "ref": "lex:app.bsky.ageassurance.defs#access",
37933793+ },
37943794+ "comment": {
37953795+ "type": "string",
37963796+ "description": "Comment describing the reason for the override.",
37973797+ },
37983798+ },
37993799+ },
38003800+ "revokeAccountCredentialsEvent": {
38013801+ "type": "object",
38023802+ "description":
38033803+ "Account credentials revocation by moderators. Only works on DID subjects.",
38043804+ "required": [
38053805+ "comment",
38063806+ ],
38073807+ "properties": {
38083808+ "comment": {
38093809+ "type": "string",
38103810+ "description": "Comment describing the reason for the revocation.",
38113811+ },
38123812+ },
38133813+ },
21103814 "modEventAcknowledge": {
21113815 "type": "object",
21123816 "properties": {
···21983902 "type": "string",
21993903 "description": "Additional comment about the outgoing comm.",
22003904 },
39053905+ "policies": {
39063906+ "type": "array",
39073907+ "maxLength": 5,
39083908+ "items": {
39093909+ "type": "string",
39103910+ },
39113911+ "description":
39123912+ "Names/Keywords of the policies that necessitated the email.",
39133913+ },
39143914+ "severityLevel": {
39153915+ "type": "string",
39163916+ "description":
39173917+ "Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense",
39183918+ },
39193919+ "strikeCount": {
39203920+ "type": "integer",
39213921+ "description":
39223922+ "Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense.",
39233923+ },
39243924+ "strikeExpiresAt": {
39253925+ "type": "string",
39263926+ "format": "datetime",
39273927+ "description":
39283928+ "When the strike should expire. If not provided, the strike never expires.",
39293929+ },
39303930+ "isDelivered": {
39313931+ "type": "boolean",
39323932+ "description":
39333933+ "Indicates whether the email was successfully delivered to the user's inbox.",
39343934+ },
22013935 },
22023936 },
22033937 "modEventDivert": {
···23294063 "timestamp": {
23304064 "type": "string",
23314065 "format": "datetime",
40664066+ },
40674067+ },
40684068+ },
40694069+ "scheduleTakedownEvent": {
40704070+ "type": "object",
40714071+ "description": "Logs a scheduled takedown action for an account.",
40724072+ "properties": {
40734073+ "comment": {
40744074+ "type": "string",
40754075+ },
40764076+ "executeAt": {
40774077+ "type": "string",
40784078+ "format": "datetime",
40794079+ },
40804080+ "executeAfter": {
40814081+ "type": "string",
40824082+ "format": "datetime",
40834083+ },
40844084+ "executeUntil": {
40854085+ "type": "string",
40864086+ "format": "datetime",
40874087+ },
40884088+ },
40894089+ },
40904090+ "cancelScheduledTakedownEvent": {
40914091+ "type": "object",
40924092+ "description":
40934093+ "Logs cancellation of a scheduled takedown action for an account.",
40944094+ "properties": {
40954095+ "comment": {
40964096+ "type": "string",
23324097 },
23334098 },
23344099 },
···27964561 },
27974562 },
27984563 },
45644564+ "modTool": {
45654565+ "type": "object",
45664566+ "description":
45674567+ "Moderation tool information for tracing the source of the action",
45684568+ "required": [
45694569+ "name",
45704570+ ],
45714571+ "properties": {
45724572+ "name": {
45734573+ "type": "string",
45744574+ "description":
45754575+ "Name/identifier of the source (e.g., 'automod', 'ozone/workspace')",
45764576+ },
45774577+ "meta": {
45784578+ "type": "unknown",
45794579+ "description": "Additional arbitrary metadata about the source",
45804580+ },
45814581+ },
45824582+ },
45834583+ "timelineEventPlcCreate": {
45844584+ "type": "token",
45854585+ "description":
45864586+ "Moderation event timeline event for a PLC create operation",
45874587+ },
45884588+ "timelineEventPlcOperation": {
45894589+ "type": "token",
45904590+ "description":
45914591+ "Moderation event timeline event for generic PLC operation",
45924592+ },
45934593+ "timelineEventPlcTombstone": {
45944594+ "type": "token",
45954595+ "description":
45964596+ "Moderation event timeline event for a PLC tombstone operation",
45974597+ },
45984598+ "scheduledActionView": {
45994599+ "type": "object",
46004600+ "description": "View of a scheduled moderation action",
46014601+ "required": [
46024602+ "id",
46034603+ "action",
46044604+ "did",
46054605+ "createdBy",
46064606+ "createdAt",
46074607+ "status",
46084608+ ],
46094609+ "properties": {
46104610+ "id": {
46114611+ "type": "integer",
46124612+ "description": "Auto-incrementing row ID",
46134613+ },
46144614+ "action": {
46154615+ "type": "string",
46164616+ "knownValues": [
46174617+ "takedown",
46184618+ ],
46194619+ "description": "Type of action to be executed",
46204620+ },
46214621+ "eventData": {
46224622+ "type": "unknown",
46234623+ "description":
46244624+ "Serialized event object that will be propagated to the event when performed",
46254625+ },
46264626+ "did": {
46274627+ "type": "string",
46284628+ "format": "did",
46294629+ "description": "Subject DID for the action",
46304630+ },
46314631+ "executeAt": {
46324632+ "type": "string",
46334633+ "format": "datetime",
46344634+ "description": "Exact time to execute the action",
46354635+ },
46364636+ "executeAfter": {
46374637+ "type": "string",
46384638+ "format": "datetime",
46394639+ "description":
46404640+ "Earliest time to execute the action (for randomized scheduling)",
46414641+ },
46424642+ "executeUntil": {
46434643+ "type": "string",
46444644+ "format": "datetime",
46454645+ "description":
46464646+ "Latest time to execute the action (for randomized scheduling)",
46474647+ },
46484648+ "randomizeExecution": {
46494649+ "type": "boolean",
46504650+ "description":
46514651+ "Whether execution time should be randomized within the specified range",
46524652+ },
46534653+ "createdBy": {
46544654+ "type": "string",
46554655+ "format": "did",
46564656+ "description": "DID of the user who created this scheduled action",
46574657+ },
46584658+ "createdAt": {
46594659+ "type": "string",
46604660+ "format": "datetime",
46614661+ "description": "When the scheduled action was created",
46624662+ },
46634663+ "updatedAt": {
46644664+ "type": "string",
46654665+ "format": "datetime",
46664666+ "description": "When the scheduled action was last updated",
46674667+ },
46684668+ "status": {
46694669+ "type": "string",
46704670+ "knownValues": [
46714671+ "pending",
46724672+ "executed",
46734673+ "cancelled",
46744674+ "failed",
46754675+ ],
46764676+ "description": "Current status of the scheduled action",
46774677+ },
46784678+ "lastExecutedAt": {
46794679+ "type": "string",
46804680+ "format": "datetime",
46814681+ "description": "When the action was last attempted to be executed",
46824682+ },
46834683+ "lastFailureReason": {
46844684+ "type": "string",
46854685+ "description": "Reason for the last execution failure",
46864686+ },
46874687+ "executionEventId": {
46884688+ "type": "integer",
46894689+ "description":
46904690+ "ID of the moderation event created when action was successfully executed",
46914691+ },
46924692+ },
46934693+ },
46944694+ },
46954695+ },
46964696+ "ToolsOzoneModerationGetSubjects": {
46974697+ "lexicon": 1,
46984698+ "id": "tools.ozone.moderation.getSubjects",
46994699+ "defs": {
47004700+ "main": {
47014701+ "type": "query",
47024702+ "description": "Get details about subjects.",
47034703+ "parameters": {
47044704+ "type": "params",
47054705+ "required": [
47064706+ "subjects",
47074707+ ],
47084708+ "properties": {
47094709+ "subjects": {
47104710+ "type": "array",
47114711+ "maxLength": 100,
47124712+ "minLength": 1,
47134713+ "items": {
47144714+ "type": "string",
47154715+ },
47164716+ },
47174717+ },
47184718+ },
47194719+ "output": {
47204720+ "encoding": "application/json",
47214721+ "schema": {
47224722+ "type": "object",
47234723+ "required": [
47244724+ "subjects",
47254725+ ],
47264726+ "properties": {
47274727+ "subjects": {
47284728+ "type": "array",
47294729+ "items": {
47304730+ "type": "ref",
47314731+ "ref": "lex:tools.ozone.moderation.defs#subjectView",
47324732+ },
47334733+ },
47344734+ },
47354735+ },
47364736+ },
47374737+ },
27994738 },
28004739 },
28014740 "ToolsOzoneModerationGetRecords": {
···28454784 },
28464785 },
28474786 },
47874787+ "ToolsOzoneModerationScheduleAction": {
47884788+ "lexicon": 1,
47894789+ "id": "tools.ozone.moderation.scheduleAction",
47904790+ "defs": {
47914791+ "main": {
47924792+ "type": "procedure",
47934793+ "description":
47944794+ "Schedule a moderation action to be executed at a future time",
47954795+ "input": {
47964796+ "encoding": "application/json",
47974797+ "schema": {
47984798+ "type": "object",
47994799+ "required": [
48004800+ "action",
48014801+ "subjects",
48024802+ "createdBy",
48034803+ "scheduling",
48044804+ ],
48054805+ "properties": {
48064806+ "action": {
48074807+ "type": "union",
48084808+ "refs": [
48094809+ "lex:tools.ozone.moderation.scheduleAction#takedown",
48104810+ ],
48114811+ },
48124812+ "subjects": {
48134813+ "type": "array",
48144814+ "maxLength": 100,
48154815+ "items": {
48164816+ "type": "string",
48174817+ "format": "did",
48184818+ },
48194819+ "description":
48204820+ "Array of DID subjects to schedule the action for",
48214821+ },
48224822+ "createdBy": {
48234823+ "type": "string",
48244824+ "format": "did",
48254825+ },
48264826+ "scheduling": {
48274827+ "type": "ref",
48284828+ "ref":
48294829+ "lex:tools.ozone.moderation.scheduleAction#schedulingConfig",
48304830+ },
48314831+ "modTool": {
48324832+ "type": "ref",
48334833+ "ref": "lex:tools.ozone.moderation.defs#modTool",
48344834+ "description":
48354835+ "This will be propagated to the moderation event when it is applied",
48364836+ },
48374837+ },
48384838+ },
48394839+ },
48404840+ "output": {
48414841+ "encoding": "application/json",
48424842+ "schema": {
48434843+ "type": "ref",
48444844+ "ref":
48454845+ "lex:tools.ozone.moderation.scheduleAction#scheduledActionResults",
48464846+ },
48474847+ },
48484848+ },
48494849+ "takedown": {
48504850+ "type": "object",
48514851+ "description": "Schedule a takedown action",
48524852+ "properties": {
48534853+ "comment": {
48544854+ "type": "string",
48554855+ },
48564856+ "durationInHours": {
48574857+ "type": "integer",
48584858+ "description":
48594859+ "Indicates how long the takedown should be in effect before automatically expiring.",
48604860+ },
48614861+ "acknowledgeAccountSubjects": {
48624862+ "type": "boolean",
48634863+ "description":
48644864+ "If true, all other reports on content authored by this account will be resolved (acknowledged).",
48654865+ },
48664866+ "policies": {
48674867+ "type": "array",
48684868+ "maxLength": 5,
48694869+ "items": {
48704870+ "type": "string",
48714871+ },
48724872+ "description":
48734873+ "Names/Keywords of the policies that drove the decision.",
48744874+ },
48754875+ "severityLevel": {
48764876+ "type": "string",
48774877+ "description":
48784878+ "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).",
48794879+ },
48804880+ "strikeCount": {
48814881+ "type": "integer",
48824882+ "description":
48834883+ "Number of strikes to assign to the user when takedown is applied.",
48844884+ },
48854885+ "strikeExpiresAt": {
48864886+ "type": "string",
48874887+ "format": "datetime",
48884888+ "description":
48894889+ "When the strike should expire. If not provided, the strike never expires.",
48904890+ },
48914891+ "emailContent": {
48924892+ "type": "string",
48934893+ "description":
48944894+ "Email content to be sent to the user upon takedown.",
48954895+ },
48964896+ "emailSubject": {
48974897+ "type": "string",
48984898+ "description":
48994899+ "Subject of the email to be sent to the user upon takedown.",
49004900+ },
49014901+ },
49024902+ },
49034903+ "schedulingConfig": {
49044904+ "type": "object",
49054905+ "description": "Configuration for when the action should be executed",
49064906+ "properties": {
49074907+ "executeAt": {
49084908+ "type": "string",
49094909+ "format": "datetime",
49104910+ "description": "Exact time to execute the action",
49114911+ },
49124912+ "executeAfter": {
49134913+ "type": "string",
49144914+ "format": "datetime",
49154915+ "description":
49164916+ "Earliest time to execute the action (for randomized scheduling)",
49174917+ },
49184918+ "executeUntil": {
49194919+ "type": "string",
49204920+ "format": "datetime",
49214921+ "description":
49224922+ "Latest time to execute the action (for randomized scheduling)",
49234923+ },
49244924+ },
49254925+ },
49264926+ "scheduledActionResults": {
49274927+ "type": "object",
49284928+ "required": [
49294929+ "succeeded",
49304930+ "failed",
49314931+ ],
49324932+ "properties": {
49334933+ "succeeded": {
49344934+ "type": "array",
49354935+ "items": {
49364936+ "type": "string",
49374937+ "format": "did",
49384938+ },
49394939+ },
49404940+ "failed": {
49414941+ "type": "array",
49424942+ "items": {
49434943+ "type": "ref",
49444944+ "ref":
49454945+ "lex:tools.ozone.moderation.scheduleAction#failedScheduling",
49464946+ },
49474947+ },
49484948+ },
49494949+ },
49504950+ "failedScheduling": {
49514951+ "type": "object",
49524952+ "required": [
49534953+ "subject",
49544954+ "error",
49554955+ ],
49564956+ "properties": {
49574957+ "subject": {
49584958+ "type": "string",
49594959+ "format": "did",
49604960+ },
49614961+ "error": {
49624962+ "type": "string",
49634963+ },
49644964+ "errorCode": {
49654965+ "type": "string",
49664966+ },
49674967+ },
49684968+ },
49694969+ },
49704970+ },
28484971 "ToolsOzoneModerationGetEvent": {
28494972 "lexicon": 1,
28504973 "id": "tools.ozone.moderation.getEvent",
···30055128 "If specified, only events where the action policies match any of the given policies are returned",
30065129 },
30075130 },
51315131+ "modTool": {
51325132+ "type": "array",
51335133+ "items": {
51345134+ "type": "string",
51355135+ },
51365136+ "description":
51375137+ "If specified, only events where the modTool name matches any of the given values are returned",
51385138+ },
51395139+ "batchId": {
51405140+ "type": "string",
51415141+ "description":
51425142+ "If specified, only events where the batchId matches the given value are returned",
51435143+ },
51445144+ "ageAssuranceState": {
51455145+ "type": "string",
51465146+ "description":
51475147+ "If specified, only events where the age assurance state matches the given value are returned",
51485148+ "knownValues": [
51495149+ "pending",
51505150+ "assured",
51515151+ "unknown",
51525152+ "reset",
51535153+ "blocked",
51545154+ ],
51555155+ },
51565156+ "withStrike": {
51575157+ "type": "boolean",
51585158+ "description":
51595159+ "If specified, only events where strikeCount value is set are returned.",
51605160+ },
30085161 "cursor": {
30095162 "type": "string",
30105163 },
···31115264 "lex:tools.ozone.moderation.defs#identityEvent",
31125265 "lex:tools.ozone.moderation.defs#recordEvent",
31135266 "lex:tools.ozone.moderation.defs#modEventPriorityScore",
52675267+ "lex:tools.ozone.moderation.defs#ageAssuranceEvent",
52685268+ "lex:tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
52695269+ "lex:tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
52705270+ "lex:tools.ozone.moderation.defs#scheduleTakedownEvent",
52715271+ "lex:tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
31145272 ],
31155273 },
31165274 "subject": {
···31315289 "type": "string",
31325290 "format": "did",
31335291 },
52925292+ "modTool": {
52935293+ "type": "ref",
52945294+ "ref": "lex:tools.ozone.moderation.defs#modTool",
52955295+ },
52965296+ "externalId": {
52975297+ "type": "string",
52985298+ "description":
52995299+ "An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject.",
53005300+ },
31345301 },
31355302 },
31365303 },
···31445311 "errors": [
31455312 {
31465313 "name": "SubjectHasAction",
53145314+ },
53155315+ {
53165316+ "name": "DuplicateExternalId",
53175317+ "description":
53185318+ "An event with the same external ID already exists for the subject.",
31475319 },
31485320 ],
31495321 },
···32015373 },
32025374 },
32035375 },
53765376+ "ToolsOzoneModerationGetAccountTimeline": {
53775377+ "lexicon": 1,
53785378+ "id": "tools.ozone.moderation.getAccountTimeline",
53795379+ "defs": {
53805380+ "main": {
53815381+ "type": "query",
53825382+ "description":
53835383+ "Get timeline of all available events of an account. This includes moderation events, account history and did history.",
53845384+ "parameters": {
53855385+ "type": "params",
53865386+ "required": [
53875387+ "did",
53885388+ ],
53895389+ "properties": {
53905390+ "did": {
53915391+ "type": "string",
53925392+ "format": "did",
53935393+ },
53945394+ },
53955395+ },
53965396+ "output": {
53975397+ "encoding": "application/json",
53985398+ "schema": {
53995399+ "type": "object",
54005400+ "required": [
54015401+ "timeline",
54025402+ ],
54035403+ "properties": {
54045404+ "timeline": {
54055405+ "type": "array",
54065406+ "items": {
54075407+ "type": "ref",
54085408+ "ref":
54095409+ "lex:tools.ozone.moderation.getAccountTimeline#timelineItem",
54105410+ },
54115411+ },
54125412+ },
54135413+ },
54145414+ },
54155415+ "errors": [
54165416+ {
54175417+ "name": "RepoNotFound",
54185418+ },
54195419+ ],
54205420+ },
54215421+ "timelineItem": {
54225422+ "type": "object",
54235423+ "required": [
54245424+ "day",
54255425+ "summary",
54265426+ ],
54275427+ "properties": {
54285428+ "day": {
54295429+ "type": "string",
54305430+ },
54315431+ "summary": {
54325432+ "type": "array",
54335433+ "items": {
54345434+ "type": "ref",
54355435+ "ref":
54365436+ "lex:tools.ozone.moderation.getAccountTimeline#timelineItemSummary",
54375437+ },
54385438+ },
54395439+ },
54405440+ },
54415441+ "timelineItemSummary": {
54425442+ "type": "object",
54435443+ "required": [
54445444+ "eventSubjectType",
54455445+ "eventType",
54465446+ "count",
54475447+ ],
54485448+ "properties": {
54495449+ "eventSubjectType": {
54505450+ "type": "string",
54515451+ "knownValues": [
54525452+ "account",
54535453+ "record",
54545454+ "chat",
54555455+ ],
54565456+ },
54575457+ "eventType": {
54585458+ "type": "string",
54595459+ "knownValues": [
54605460+ "tools.ozone.moderation.defs#modEventTakedown",
54615461+ "tools.ozone.moderation.defs#modEventReverseTakedown",
54625462+ "tools.ozone.moderation.defs#modEventComment",
54635463+ "tools.ozone.moderation.defs#modEventReport",
54645464+ "tools.ozone.moderation.defs#modEventLabel",
54655465+ "tools.ozone.moderation.defs#modEventAcknowledge",
54665466+ "tools.ozone.moderation.defs#modEventEscalate",
54675467+ "tools.ozone.moderation.defs#modEventMute",
54685468+ "tools.ozone.moderation.defs#modEventUnmute",
54695469+ "tools.ozone.moderation.defs#modEventMuteReporter",
54705470+ "tools.ozone.moderation.defs#modEventUnmuteReporter",
54715471+ "tools.ozone.moderation.defs#modEventEmail",
54725472+ "tools.ozone.moderation.defs#modEventResolveAppeal",
54735473+ "tools.ozone.moderation.defs#modEventDivert",
54745474+ "tools.ozone.moderation.defs#modEventTag",
54755475+ "tools.ozone.moderation.defs#accountEvent",
54765476+ "tools.ozone.moderation.defs#identityEvent",
54775477+ "tools.ozone.moderation.defs#recordEvent",
54785478+ "tools.ozone.moderation.defs#modEventPriorityScore",
54795479+ "tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
54805480+ "tools.ozone.moderation.defs#ageAssuranceEvent",
54815481+ "tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
54825482+ "tools.ozone.moderation.defs#timelineEventPlcCreate",
54835483+ "tools.ozone.moderation.defs#timelineEventPlcOperation",
54845484+ "tools.ozone.moderation.defs#timelineEventPlcTombstone",
54855485+ "tools.ozone.hosting.getAccountHistory#accountCreated",
54865486+ "tools.ozone.hosting.getAccountHistory#emailConfirmed",
54875487+ "tools.ozone.hosting.getAccountHistory#passwordUpdated",
54885488+ "tools.ozone.hosting.getAccountHistory#handleUpdated",
54895489+ "tools.ozone.moderation.defs#scheduleTakedownEvent",
54905490+ "tools.ozone.moderation.defs#cancelScheduledTakedownEvent",
54915491+ ],
54925492+ },
54935493+ "count": {
54945494+ "type": "integer",
54955495+ },
54965496+ },
54975497+ },
54985498+ },
54995499+ },
32045500 "ToolsOzoneModerationGetRepos": {
32055501 "lexicon": 1,
32065502 "id": "tools.ozone.moderation.getRepos",
···33955691 },
33965692 },
33975693 },
56945694+ "AppBskyBookmarkDefs": {
56955695+ "lexicon": 1,
56965696+ "id": "app.bsky.bookmark.defs",
56975697+ "defs": {
56985698+ "bookmark": {
56995699+ "description": "Object used to store bookmark data in stash.",
57005700+ "type": "object",
57015701+ "required": [
57025702+ "subject",
57035703+ ],
57045704+ "properties": {
57055705+ "subject": {
57065706+ "description":
57075707+ "A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported.",
57085708+ "type": "ref",
57095709+ "ref": "lex:com.atproto.repo.strongRef",
57105710+ },
57115711+ },
57125712+ },
57135713+ "bookmarkView": {
57145714+ "type": "object",
57155715+ "required": [
57165716+ "subject",
57175717+ "item",
57185718+ ],
57195719+ "properties": {
57205720+ "subject": {
57215721+ "description": "A strong ref to the bookmarked record.",
57225722+ "type": "ref",
57235723+ "ref": "lex:com.atproto.repo.strongRef",
57245724+ },
57255725+ "createdAt": {
57265726+ "type": "string",
57275727+ "format": "datetime",
57285728+ },
57295729+ "item": {
57305730+ "type": "union",
57315731+ "refs": [
57325732+ "lex:app.bsky.feed.defs#blockedPost",
57335733+ "lex:app.bsky.feed.defs#notFoundPost",
57345734+ "lex:app.bsky.feed.defs#postView",
57355735+ ],
57365736+ },
57375737+ },
57385738+ },
57395739+ },
57405740+ },
57415741+ "AppBskyBookmarkDeleteBookmark": {
57425742+ "lexicon": 1,
57435743+ "id": "app.bsky.bookmark.deleteBookmark",
57445744+ "defs": {
57455745+ "main": {
57465746+ "type": "procedure",
57475747+ "description":
57485748+ "Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.",
57495749+ "input": {
57505750+ "encoding": "application/json",
57515751+ "schema": {
57525752+ "type": "object",
57535753+ "required": [
57545754+ "uri",
57555755+ ],
57565756+ "properties": {
57575757+ "uri": {
57585758+ "type": "string",
57595759+ "format": "at-uri",
57605760+ },
57615761+ },
57625762+ },
57635763+ },
57645764+ "errors": [
57655765+ {
57665766+ "name": "UnsupportedCollection",
57675767+ "description":
57685768+ "The URI to be bookmarked is for an unsupported collection.",
57695769+ },
57705770+ ],
57715771+ },
57725772+ },
57735773+ },
57745774+ "AppBskyBookmarkGetBookmarks": {
57755775+ "lexicon": 1,
57765776+ "id": "app.bsky.bookmark.getBookmarks",
57775777+ "defs": {
57785778+ "main": {
57795779+ "type": "query",
57805780+ "description":
57815781+ "Gets views of records bookmarked by the authenticated user. Requires authentication.",
57825782+ "parameters": {
57835783+ "type": "params",
57845784+ "properties": {
57855785+ "limit": {
57865786+ "type": "integer",
57875787+ "minimum": 1,
57885788+ "maximum": 100,
57895789+ "default": 50,
57905790+ },
57915791+ "cursor": {
57925792+ "type": "string",
57935793+ },
57945794+ },
57955795+ },
57965796+ "output": {
57975797+ "encoding": "application/json",
57985798+ "schema": {
57995799+ "type": "object",
58005800+ "required": [
58015801+ "bookmarks",
58025802+ ],
58035803+ "properties": {
58045804+ "cursor": {
58055805+ "type": "string",
58065806+ },
58075807+ "bookmarks": {
58085808+ "type": "array",
58095809+ "items": {
58105810+ "type": "ref",
58115811+ "ref": "lex:app.bsky.bookmark.defs#bookmarkView",
58125812+ },
58135813+ },
58145814+ },
58155815+ },
58165816+ },
58175817+ },
58185818+ },
58195819+ },
58205820+ "AppBskyBookmarkCreateBookmark": {
58215821+ "lexicon": 1,
58225822+ "id": "app.bsky.bookmark.createBookmark",
58235823+ "defs": {
58245824+ "main": {
58255825+ "type": "procedure",
58265826+ "description":
58275827+ "Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.",
58285828+ "input": {
58295829+ "encoding": "application/json",
58305830+ "schema": {
58315831+ "type": "object",
58325832+ "required": [
58335833+ "uri",
58345834+ "cid",
58355835+ ],
58365836+ "properties": {
58375837+ "uri": {
58385838+ "type": "string",
58395839+ "format": "at-uri",
58405840+ },
58415841+ "cid": {
58425842+ "type": "string",
58435843+ "format": "cid",
58445844+ },
58455845+ },
58465846+ },
58475847+ },
58485848+ "errors": [
58495849+ {
58505850+ "name": "UnsupportedCollection",
58515851+ "description":
58525852+ "The URI to be bookmarked is for an unsupported collection.",
58535853+ },
58545854+ ],
58555855+ },
58565856+ },
58575857+ },
33985858 "AppBskyEmbedDefs": {
33995859 "lexicon": 1,
34005860 "id": "app.bsky.embed.defs",
···37396199 "properties": {
37406200 "video": {
37416201 "type": "blob",
62026202+ "description":
62036203+ "The mp4 video file. May be up to 100mb, formerly limited to 50mb.",
37426204 "accept": [
37436205 "video/mp4",
37446206 ],
37453745- "maxSize": 50000000,
62076207+ "maxSize": 100000000,
37466208 },
37476209 "captions": {
37486210 "type": "array",
···39006362 },
39016363 },
39026364 },
63656365+ "AppBskyNotificationDefs": {
63666366+ "lexicon": 1,
63676367+ "id": "app.bsky.notification.defs",
63686368+ "defs": {
63696369+ "recordDeleted": {
63706370+ "type": "object",
63716371+ "properties": {},
63726372+ },
63736373+ "chatPreference": {
63746374+ "type": "object",
63756375+ "required": [
63766376+ "include",
63776377+ "push",
63786378+ ],
63796379+ "properties": {
63806380+ "include": {
63816381+ "type": "string",
63826382+ "knownValues": [
63836383+ "all",
63846384+ "accepted",
63856385+ ],
63866386+ },
63876387+ "push": {
63886388+ "type": "boolean",
63896389+ },
63906390+ },
63916391+ },
63926392+ "filterablePreference": {
63936393+ "type": "object",
63946394+ "required": [
63956395+ "include",
63966396+ "list",
63976397+ "push",
63986398+ ],
63996399+ "properties": {
64006400+ "include": {
64016401+ "type": "string",
64026402+ "knownValues": [
64036403+ "all",
64046404+ "follows",
64056405+ ],
64066406+ },
64076407+ "list": {
64086408+ "type": "boolean",
64096409+ },
64106410+ "push": {
64116411+ "type": "boolean",
64126412+ },
64136413+ },
64146414+ },
64156415+ "preference": {
64166416+ "type": "object",
64176417+ "required": [
64186418+ "list",
64196419+ "push",
64206420+ ],
64216421+ "properties": {
64226422+ "list": {
64236423+ "type": "boolean",
64246424+ },
64256425+ "push": {
64266426+ "type": "boolean",
64276427+ },
64286428+ },
64296429+ },
64306430+ "preferences": {
64316431+ "type": "object",
64326432+ "required": [
64336433+ "chat",
64346434+ "follow",
64356435+ "like",
64366436+ "likeViaRepost",
64376437+ "mention",
64386438+ "quote",
64396439+ "reply",
64406440+ "repost",
64416441+ "repostViaRepost",
64426442+ "starterpackJoined",
64436443+ "subscribedPost",
64446444+ "unverified",
64456445+ "verified",
64466446+ ],
64476447+ "properties": {
64486448+ "chat": {
64496449+ "type": "ref",
64506450+ "ref": "lex:app.bsky.notification.defs#chatPreference",
64516451+ },
64526452+ "follow": {
64536453+ "type": "ref",
64546454+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64556455+ },
64566456+ "like": {
64576457+ "type": "ref",
64586458+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64596459+ },
64606460+ "likeViaRepost": {
64616461+ "type": "ref",
64626462+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64636463+ },
64646464+ "mention": {
64656465+ "type": "ref",
64666466+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64676467+ },
64686468+ "quote": {
64696469+ "type": "ref",
64706470+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64716471+ },
64726472+ "reply": {
64736473+ "type": "ref",
64746474+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64756475+ },
64766476+ "repost": {
64776477+ "type": "ref",
64786478+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64796479+ },
64806480+ "repostViaRepost": {
64816481+ "type": "ref",
64826482+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
64836483+ },
64846484+ "starterpackJoined": {
64856485+ "type": "ref",
64866486+ "ref": "lex:app.bsky.notification.defs#preference",
64876487+ },
64886488+ "subscribedPost": {
64896489+ "type": "ref",
64906490+ "ref": "lex:app.bsky.notification.defs#preference",
64916491+ },
64926492+ "unverified": {
64936493+ "type": "ref",
64946494+ "ref": "lex:app.bsky.notification.defs#preference",
64956495+ },
64966496+ "verified": {
64976497+ "type": "ref",
64986498+ "ref": "lex:app.bsky.notification.defs#preference",
64996499+ },
65006500+ },
65016501+ },
65026502+ "activitySubscription": {
65036503+ "type": "object",
65046504+ "required": [
65056505+ "post",
65066506+ "reply",
65076507+ ],
65086508+ "properties": {
65096509+ "post": {
65106510+ "type": "boolean",
65116511+ },
65126512+ "reply": {
65136513+ "type": "boolean",
65146514+ },
65156515+ },
65166516+ },
65176517+ "subjectActivitySubscription": {
65186518+ "description":
65196519+ "Object used to store activity subscription data in stash.",
65206520+ "type": "object",
65216521+ "required": [
65226522+ "subject",
65236523+ "activitySubscription",
65246524+ ],
65256525+ "properties": {
65266526+ "subject": {
65276527+ "type": "string",
65286528+ "format": "did",
65296529+ },
65306530+ "activitySubscription": {
65316531+ "type": "ref",
65326532+ "ref": "lex:app.bsky.notification.defs#activitySubscription",
65336533+ },
65346534+ },
65356535+ },
65366536+ },
65376537+ },
39036538 "AppBskyNotificationRegisterPush": {
39046539 "lexicon": 1,
39056540 "id": "app.bsky.notification.registerPush",
···39376572 "appId": {
39386573 "type": "string",
39396574 },
65756575+ "ageRestricted": {
65766576+ "type": "boolean",
65776577+ "description": "Set to true when the actor is age restricted",
65786578+ },
39406579 },
39416580 },
39426581 },
···39686607 },
39696608 },
39706609 },
66106610+ "AppBskyNotificationPutActivitySubscription": {
66116611+ "lexicon": 1,
66126612+ "id": "app.bsky.notification.putActivitySubscription",
66136613+ "defs": {
66146614+ "main": {
66156615+ "type": "procedure",
66166616+ "description":
66176617+ "Puts an activity subscription entry. The key should be omitted for creation and provided for updates. Requires auth.",
66186618+ "input": {
66196619+ "encoding": "application/json",
66206620+ "schema": {
66216621+ "type": "object",
66226622+ "required": [
66236623+ "subject",
66246624+ "activitySubscription",
66256625+ ],
66266626+ "properties": {
66276627+ "subject": {
66286628+ "type": "string",
66296629+ "format": "did",
66306630+ },
66316631+ "activitySubscription": {
66326632+ "type": "ref",
66336633+ "ref": "lex:app.bsky.notification.defs#activitySubscription",
66346634+ },
66356635+ },
66366636+ },
66376637+ },
66386638+ "output": {
66396639+ "encoding": "application/json",
66406640+ "schema": {
66416641+ "type": "object",
66426642+ "required": [
66436643+ "subject",
66446644+ ],
66456645+ "properties": {
66466646+ "subject": {
66476647+ "type": "string",
66486648+ "format": "did",
66496649+ },
66506650+ "activitySubscription": {
66516651+ "type": "ref",
66526652+ "ref": "lex:app.bsky.notification.defs#activitySubscription",
66536653+ },
66546654+ },
66556655+ },
66566656+ },
66576657+ },
66586658+ },
66596659+ },
66606660+ "AppBskyNotificationDeclaration": {
66616661+ "lexicon": 1,
66626662+ "id": "app.bsky.notification.declaration",
66636663+ "defs": {
66646664+ "main": {
66656665+ "type": "record",
66666666+ "description":
66676667+ "A declaration of the user's choices related to notifications that can be produced by them.",
66686668+ "key": "literal:self",
66696669+ "record": {
66706670+ "type": "object",
66716671+ "required": [
66726672+ "allowSubscriptions",
66736673+ ],
66746674+ "properties": {
66756675+ "allowSubscriptions": {
66766676+ "type": "string",
66776677+ "description":
66786678+ "A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'.",
66796679+ "knownValues": [
66806680+ "followers",
66816681+ "mutuals",
66826682+ "none",
66836683+ ],
66846684+ },
66856685+ },
66866686+ },
66876687+ },
66886688+ },
66896689+ },
66906690+ "AppBskyNotificationPutPreferencesV2": {
66916691+ "lexicon": 1,
66926692+ "id": "app.bsky.notification.putPreferencesV2",
66936693+ "defs": {
66946694+ "main": {
66956695+ "type": "procedure",
66966696+ "description":
66976697+ "Set notification-related preferences for an account. Requires auth.",
66986698+ "input": {
66996699+ "encoding": "application/json",
67006700+ "schema": {
67016701+ "type": "object",
67026702+ "properties": {
67036703+ "chat": {
67046704+ "type": "ref",
67056705+ "ref": "lex:app.bsky.notification.defs#chatPreference",
67066706+ },
67076707+ "follow": {
67086708+ "type": "ref",
67096709+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67106710+ },
67116711+ "like": {
67126712+ "type": "ref",
67136713+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67146714+ },
67156715+ "likeViaRepost": {
67166716+ "type": "ref",
67176717+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67186718+ },
67196719+ "mention": {
67206720+ "type": "ref",
67216721+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67226722+ },
67236723+ "quote": {
67246724+ "type": "ref",
67256725+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67266726+ },
67276727+ "reply": {
67286728+ "type": "ref",
67296729+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67306730+ },
67316731+ "repost": {
67326732+ "type": "ref",
67336733+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67346734+ },
67356735+ "repostViaRepost": {
67366736+ "type": "ref",
67376737+ "ref": "lex:app.bsky.notification.defs#filterablePreference",
67386738+ },
67396739+ "starterpackJoined": {
67406740+ "type": "ref",
67416741+ "ref": "lex:app.bsky.notification.defs#preference",
67426742+ },
67436743+ "subscribedPost": {
67446744+ "type": "ref",
67456745+ "ref": "lex:app.bsky.notification.defs#preference",
67466746+ },
67476747+ "unverified": {
67486748+ "type": "ref",
67496749+ "ref": "lex:app.bsky.notification.defs#preference",
67506750+ },
67516751+ "verified": {
67526752+ "type": "ref",
67536753+ "ref": "lex:app.bsky.notification.defs#preference",
67546754+ },
67556755+ },
67566756+ },
67576757+ },
67586758+ "output": {
67596759+ "encoding": "application/json",
67606760+ "schema": {
67616761+ "type": "object",
67626762+ "required": [
67636763+ "preferences",
67646764+ ],
67656765+ "properties": {
67666766+ "preferences": {
67676767+ "type": "ref",
67686768+ "ref": "lex:app.bsky.notification.defs#preferences",
67696769+ },
67706770+ },
67716771+ },
67726772+ },
67736773+ },
67746774+ },
67756775+ },
39716776 "AppBskyNotificationUpdateSeen": {
39726777 "lexicon": 1,
39736778 "id": "app.bsky.notification.updateSeen",
···39946799 },
39956800 },
39966801 },
68026802+ "AppBskyNotificationListActivitySubscriptions": {
68036803+ "lexicon": 1,
68046804+ "id": "app.bsky.notification.listActivitySubscriptions",
68056805+ "defs": {
68066806+ "main": {
68076807+ "type": "query",
68086808+ "description":
68096809+ "Enumerate all accounts to which the requesting account is subscribed to receive notifications for. Requires auth.",
68106810+ "parameters": {
68116811+ "type": "params",
68126812+ "properties": {
68136813+ "limit": {
68146814+ "type": "integer",
68156815+ "minimum": 1,
68166816+ "maximum": 100,
68176817+ "default": 50,
68186818+ },
68196819+ "cursor": {
68206820+ "type": "string",
68216821+ },
68226822+ },
68236823+ },
68246824+ "output": {
68256825+ "encoding": "application/json",
68266826+ "schema": {
68276827+ "type": "object",
68286828+ "required": [
68296829+ "subscriptions",
68306830+ ],
68316831+ "properties": {
68326832+ "cursor": {
68336833+ "type": "string",
68346834+ },
68356835+ "subscriptions": {
68366836+ "type": "array",
68376837+ "items": {
68386838+ "type": "ref",
68396839+ "ref": "lex:app.bsky.actor.defs#profileView",
68406840+ },
68416841+ },
68426842+ },
68436843+ },
68446844+ },
68456845+ },
68466846+ },
68476847+ },
68486848+ "AppBskyNotificationUnregisterPush": {
68496849+ "lexicon": 1,
68506850+ "id": "app.bsky.notification.unregisterPush",
68516851+ "defs": {
68526852+ "main": {
68536853+ "type": "procedure",
68546854+ "description":
68556855+ "The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth.",
68566856+ "input": {
68576857+ "encoding": "application/json",
68586858+ "schema": {
68596859+ "type": "object",
68606860+ "required": [
68616861+ "serviceDid",
68626862+ "token",
68636863+ "platform",
68646864+ "appId",
68656865+ ],
68666866+ "properties": {
68676867+ "serviceDid": {
68686868+ "type": "string",
68696869+ "format": "did",
68706870+ },
68716871+ "token": {
68726872+ "type": "string",
68736873+ },
68746874+ "platform": {
68756875+ "type": "string",
68766876+ "knownValues": [
68776877+ "ios",
68786878+ "android",
68796879+ "web",
68806880+ ],
68816881+ },
68826882+ "appId": {
68836883+ "type": "string",
68846884+ },
68856885+ },
68866886+ },
68876887+ },
68886888+ },
68896889+ },
68906890+ },
68916891+ "AppBskyNotificationGetPreferences": {
68926892+ "lexicon": 1,
68936893+ "id": "app.bsky.notification.getPreferences",
68946894+ "defs": {
68956895+ "main": {
68966896+ "type": "query",
68976897+ "description":
68986898+ "Get notification-related preferences for an account. Requires auth.",
68996899+ "parameters": {
69006900+ "type": "params",
69016901+ "properties": {},
69026902+ },
69036903+ "output": {
69046904+ "encoding": "application/json",
69056905+ "schema": {
69066906+ "type": "object",
69076907+ "required": [
69086908+ "preferences",
69096909+ ],
69106910+ "properties": {
69116911+ "preferences": {
69126912+ "type": "ref",
69136913+ "ref": "lex:app.bsky.notification.defs#preferences",
69146914+ },
69156915+ },
69166916+ },
69176917+ },
69186918+ },
69196919+ },
69206920+ },
39976921 "AppBskyNotificationListNotifications": {
39986922 "lexicon": 1,
39996923 "id": "app.bsky.notification.listNotifications",
···40897013 "reason": {
40907014 "type": "string",
40917015 "description":
40924092- "Expected values are 'like', 'repost', 'follow', 'mention', 'reply', 'quote', and 'starterpack-joined'.",
70167016+ "The reason why this notification was delivered - e.g. your post was liked, or you received a new follower.",
40937017 "knownValues": [
40947018 "like",
40957019 "repost",
···40987022 "reply",
40997023 "quote",
41007024 "starterpack-joined",
70257025+ "verified",
70267026+ "unverified",
70277027+ "like-via-repost",
70287028+ "repost-via-repost",
70297029+ "subscribed-post",
41017030 ],
41027031 },
41037032 "reasonSubject": {
···41627091 },
41637092 },
41647093 },
70947094+ "AppBskyUnspeccedGetSuggestedFeedsSkeleton": {
70957095+ "lexicon": 1,
70967096+ "id": "app.bsky.unspecced.getSuggestedFeedsSkeleton",
70977097+ "defs": {
70987098+ "main": {
70997099+ "type": "query",
71007100+ "description":
71017101+ "Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds",
71027102+ "parameters": {
71037103+ "type": "params",
71047104+ "properties": {
71057105+ "viewer": {
71067106+ "type": "string",
71077107+ "format": "did",
71087108+ "description":
71097109+ "DID of the account making the request (not included for public/unauthenticated queries).",
71107110+ },
71117111+ "limit": {
71127112+ "type": "integer",
71137113+ "minimum": 1,
71147114+ "maximum": 25,
71157115+ "default": 10,
71167116+ },
71177117+ },
71187118+ },
71197119+ "output": {
71207120+ "encoding": "application/json",
71217121+ "schema": {
71227122+ "type": "object",
71237123+ "required": [
71247124+ "feeds",
71257125+ ],
71267126+ "properties": {
71277127+ "feeds": {
71287128+ "type": "array",
71297129+ "items": {
71307130+ "type": "string",
71317131+ "format": "at-uri",
71327132+ },
71337133+ },
71347134+ },
71357135+ },
71367136+ },
71377137+ },
71387138+ },
71397139+ },
41657140 "AppBskyUnspeccedSearchStarterPacksSkeleton": {
41667141 "lexicon": 1,
41677142 "id": "app.bsky.unspecced.searchStarterPacksSkeleton",
···42957270 },
42967271 },
42977272 },
72737273+ "skeletonTrend": {
72747274+ "type": "object",
72757275+ "required": [
72767276+ "topic",
72777277+ "displayName",
72787278+ "link",
72797279+ "startedAt",
72807280+ "postCount",
72817281+ "dids",
72827282+ ],
72837283+ "properties": {
72847284+ "topic": {
72857285+ "type": "string",
72867286+ },
72877287+ "displayName": {
72887288+ "type": "string",
72897289+ },
72907290+ "link": {
72917291+ "type": "string",
72927292+ },
72937293+ "startedAt": {
72947294+ "type": "string",
72957295+ "format": "datetime",
72967296+ },
72977297+ "postCount": {
72987298+ "type": "integer",
72997299+ },
73007300+ "status": {
73017301+ "type": "string",
73027302+ "knownValues": [
73037303+ "hot",
73047304+ ],
73057305+ },
73067306+ "category": {
73077307+ "type": "string",
73087308+ },
73097309+ "dids": {
73107310+ "type": "array",
73117311+ "items": {
73127312+ "type": "string",
73137313+ "format": "did",
73147314+ },
73157315+ },
73167316+ },
73177317+ },
73187318+ "trendView": {
73197319+ "type": "object",
73207320+ "required": [
73217321+ "topic",
73227322+ "displayName",
73237323+ "link",
73247324+ "startedAt",
73257325+ "postCount",
73267326+ "actors",
73277327+ ],
73287328+ "properties": {
73297329+ "topic": {
73307330+ "type": "string",
73317331+ },
73327332+ "displayName": {
73337333+ "type": "string",
73347334+ },
73357335+ "link": {
73367336+ "type": "string",
73377337+ },
73387338+ "startedAt": {
73397339+ "type": "string",
73407340+ "format": "datetime",
73417341+ },
73427342+ "postCount": {
73437343+ "type": "integer",
73447344+ },
73457345+ "status": {
73467346+ "type": "string",
73477347+ "knownValues": [
73487348+ "hot",
73497349+ ],
73507350+ },
73517351+ "category": {
73527352+ "type": "string",
73537353+ },
73547354+ "actors": {
73557355+ "type": "array",
73567356+ "items": {
73577357+ "type": "ref",
73587358+ "ref": "lex:app.bsky.actor.defs#profileViewBasic",
73597359+ },
73607360+ },
73617361+ },
73627362+ },
73637363+ "threadItemPost": {
73647364+ "type": "object",
73657365+ "required": [
73667366+ "post",
73677367+ "moreParents",
73687368+ "moreReplies",
73697369+ "opThread",
73707370+ "hiddenByThreadgate",
73717371+ "mutedByViewer",
73727372+ ],
73737373+ "properties": {
73747374+ "post": {
73757375+ "type": "ref",
73767376+ "ref": "lex:app.bsky.feed.defs#postView",
73777377+ },
73787378+ "moreParents": {
73797379+ "type": "boolean",
73807380+ "description":
73817381+ "This post has more parents that were not present in the response. This is just a boolean, without the number of parents.",
73827382+ },
73837383+ "moreReplies": {
73847384+ "type": "integer",
73857385+ "description":
73867386+ "This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate.",
73877387+ },
73887388+ "opThread": {
73897389+ "type": "boolean",
73907390+ "description":
73917391+ "This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread.",
73927392+ },
73937393+ "hiddenByThreadgate": {
73947394+ "type": "boolean",
73957395+ "description":
73967396+ "The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread.",
73977397+ },
73987398+ "mutedByViewer": {
73997399+ "type": "boolean",
74007400+ "description":
74017401+ "This is by an account muted by the viewer requesting it.",
74027402+ },
74037403+ },
74047404+ },
74057405+ "threadItemNoUnauthenticated": {
74067406+ "type": "object",
74077407+ "properties": {},
74087408+ },
74097409+ "threadItemNotFound": {
74107410+ "type": "object",
74117411+ "properties": {},
74127412+ },
74137413+ "threadItemBlocked": {
74147414+ "type": "object",
74157415+ "required": [
74167416+ "author",
74177417+ ],
74187418+ "properties": {
74197419+ "author": {
74207420+ "type": "ref",
74217421+ "ref": "lex:app.bsky.feed.defs#blockedAuthor",
74227422+ },
74237423+ },
74247424+ },
74257425+ "ageAssuranceState": {
74267426+ "type": "object",
74277427+ "description":
74287428+ "The computed state of the age assurance process, returned to the user in question on certain authenticated requests.",
74297429+ "required": [
74307430+ "status",
74317431+ ],
74327432+ "properties": {
74337433+ "lastInitiatedAt": {
74347434+ "type": "string",
74357435+ "format": "datetime",
74367436+ "description": "The timestamp when this state was last updated.",
74377437+ },
74387438+ "status": {
74397439+ "type": "string",
74407440+ "description": "The status of the age assurance process.",
74417441+ "knownValues": [
74427442+ "unknown",
74437443+ "pending",
74447444+ "assured",
74457445+ "blocked",
74467446+ ],
74477447+ },
74487448+ },
74497449+ },
74507450+ "ageAssuranceEvent": {
74517451+ "type": "object",
74527452+ "description": "Object used to store age assurance data in stash.",
74537453+ "required": [
74547454+ "createdAt",
74557455+ "status",
74567456+ "attemptId",
74577457+ ],
74587458+ "properties": {
74597459+ "createdAt": {
74607460+ "type": "string",
74617461+ "format": "datetime",
74627462+ "description": "The date and time of this write operation.",
74637463+ },
74647464+ "status": {
74657465+ "type": "string",
74667466+ "description": "The status of the age assurance process.",
74677467+ "knownValues": [
74687468+ "unknown",
74697469+ "pending",
74707470+ "assured",
74717471+ ],
74727472+ },
74737473+ "attemptId": {
74747474+ "type": "string",
74757475+ "description":
74767476+ "The unique identifier for this instance of the age assurance flow, in UUID format.",
74777477+ },
74787478+ "email": {
74797479+ "type": "string",
74807480+ "description": "The email used for AA.",
74817481+ },
74827482+ "initIp": {
74837483+ "type": "string",
74847484+ "description": "The IP address used when initiating the AA flow.",
74857485+ },
74867486+ "initUa": {
74877487+ "type": "string",
74887488+ "description": "The user agent used when initiating the AA flow.",
74897489+ },
74907490+ "completeIp": {
74917491+ "type": "string",
74927492+ "description": "The IP address used when completing the AA flow.",
74937493+ },
74947494+ "completeUa": {
74957495+ "type": "string",
74967496+ "description": "The user agent used when completing the AA flow.",
74977497+ },
74987498+ },
74997499+ },
75007500+ },
75017501+ },
75027502+ "AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton": {
75037503+ "lexicon": 1,
75047504+ "id": "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton",
75057505+ "defs": {
75067506+ "main": {
75077507+ "type": "query",
75087508+ "description":
75097509+ "Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
75107510+ "parameters": {
75117511+ "type": "params",
75127512+ "properties": {
75137513+ "viewer": {
75147514+ "type": "string",
75157515+ "format": "did",
75167516+ "description":
75177517+ "DID of the account making the request (not included for public/unauthenticated queries).",
75187518+ },
75197519+ "limit": {
75207520+ "type": "integer",
75217521+ "minimum": 1,
75227522+ "maximum": 25,
75237523+ "default": 10,
75247524+ },
75257525+ },
75267526+ },
75277527+ "output": {
75287528+ "encoding": "application/json",
75297529+ "schema": {
75307530+ "type": "object",
75317531+ "required": [
75327532+ "starterPacks",
75337533+ ],
75347534+ "properties": {
75357535+ "starterPacks": {
75367536+ "type": "array",
75377537+ "items": {
75387538+ "type": "string",
75397539+ "format": "at-uri",
75407540+ },
75417541+ },
75427542+ },
75437543+ },
75447544+ },
75457545+ },
75467546+ },
75477547+ },
75487548+ "AppBskyUnspeccedGetSuggestedUsers": {
75497549+ "lexicon": 1,
75507550+ "id": "app.bsky.unspecced.getSuggestedUsers",
75517551+ "defs": {
75527552+ "main": {
75537553+ "type": "query",
75547554+ "description": "Get a list of suggested users",
75557555+ "parameters": {
75567556+ "type": "params",
75577557+ "properties": {
75587558+ "category": {
75597559+ "type": "string",
75607560+ "description": "Category of users to get suggestions for.",
75617561+ },
75627562+ "limit": {
75637563+ "type": "integer",
75647564+ "minimum": 1,
75657565+ "maximum": 50,
75667566+ "default": 25,
75677567+ },
75687568+ },
75697569+ },
75707570+ "output": {
75717571+ "encoding": "application/json",
75727572+ "schema": {
75737573+ "type": "object",
75747574+ "required": [
75757575+ "actors",
75767576+ ],
75777577+ "properties": {
75787578+ "actors": {
75797579+ "type": "array",
75807580+ "items": {
75817581+ "type": "ref",
75827582+ "ref": "lex:app.bsky.actor.defs#profileView",
75837583+ },
75847584+ },
75857585+ },
75867586+ },
75877587+ },
75887588+ },
75897589+ },
75907590+ },
75917591+ "AppBskyUnspeccedGetPostThreadOtherV2": {
75927592+ "lexicon": 1,
75937593+ "id": "app.bsky.unspecced.getPostThreadOtherV2",
75947594+ "defs": {
75957595+ "main": {
75967596+ "type": "query",
75977597+ "description":
75987598+ "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get additional posts under a thread e.g. replies hidden by threadgate. Based on an anchor post at any depth of the tree, returns top-level replies below that anchor. It does not include ancestors nor the anchor itself. This should be called after exhausting `app.bsky.unspecced.getPostThreadV2`. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
75997599+ "parameters": {
76007600+ "type": "params",
76017601+ "required": [
76027602+ "anchor",
76037603+ ],
76047604+ "properties": {
76057605+ "anchor": {
76067606+ "type": "string",
76077607+ "format": "at-uri",
76087608+ "description":
76097609+ "Reference (AT-URI) to post record. This is the anchor post.",
76107610+ },
76117611+ },
76127612+ },
76137613+ "output": {
76147614+ "encoding": "application/json",
76157615+ "schema": {
76167616+ "type": "object",
76177617+ "required": [
76187618+ "thread",
76197619+ ],
76207620+ "properties": {
76217621+ "thread": {
76227622+ "type": "array",
76237623+ "description":
76247624+ "A flat list of other thread items. The depth of each item is indicated by the depth property inside the item.",
76257625+ "items": {
76267626+ "type": "ref",
76277627+ "ref":
76287628+ "lex:app.bsky.unspecced.getPostThreadOtherV2#threadItem",
76297629+ },
76307630+ },
76317631+ },
76327632+ },
76337633+ },
76347634+ },
76357635+ "threadItem": {
76367636+ "type": "object",
76377637+ "required": [
76387638+ "uri",
76397639+ "depth",
76407640+ "value",
76417641+ ],
76427642+ "properties": {
76437643+ "uri": {
76447644+ "type": "string",
76457645+ "format": "at-uri",
76467646+ },
76477647+ "depth": {
76487648+ "type": "integer",
76497649+ "description":
76507650+ "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths.",
76517651+ },
76527652+ "value": {
76537653+ "type": "union",
76547654+ "refs": [
76557655+ "lex:app.bsky.unspecced.defs#threadItemPost",
76567656+ ],
76577657+ },
76587658+ },
76597659+ },
76607660+ },
76617661+ },
76627662+ "AppBskyUnspeccedGetSuggestedStarterPacks": {
76637663+ "lexicon": 1,
76647664+ "id": "app.bsky.unspecced.getSuggestedStarterPacks",
76657665+ "defs": {
76667666+ "main": {
76677667+ "type": "query",
76687668+ "description": "Get a list of suggested starterpacks",
76697669+ "parameters": {
76707670+ "type": "params",
76717671+ "properties": {
76727672+ "limit": {
76737673+ "type": "integer",
76747674+ "minimum": 1,
76757675+ "maximum": 25,
76767676+ "default": 10,
76777677+ },
76787678+ },
76797679+ },
76807680+ "output": {
76817681+ "encoding": "application/json",
76827682+ "schema": {
76837683+ "type": "object",
76847684+ "required": [
76857685+ "starterPacks",
76867686+ ],
76877687+ "properties": {
76887688+ "starterPacks": {
76897689+ "type": "array",
76907690+ "items": {
76917691+ "type": "ref",
76927692+ "ref": "lex:app.bsky.graph.defs#starterPackView",
76937693+ },
76947694+ },
76957695+ },
76967696+ },
76977697+ },
76987698+ },
76997699+ },
77007700+ },
77017701+ "AppBskyUnspeccedGetSuggestedStarterPacksSkeleton": {
77027702+ "lexicon": 1,
77037703+ "id": "app.bsky.unspecced.getSuggestedStarterPacksSkeleton",
77047704+ "defs": {
77057705+ "main": {
77067706+ "type": "query",
77077707+ "description":
77087708+ "Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks",
77097709+ "parameters": {
77107710+ "type": "params",
77117711+ "properties": {
77127712+ "viewer": {
77137713+ "type": "string",
77147714+ "format": "did",
77157715+ "description":
77167716+ "DID of the account making the request (not included for public/unauthenticated queries).",
77177717+ },
77187718+ "limit": {
77197719+ "type": "integer",
77207720+ "minimum": 1,
77217721+ "maximum": 25,
77227722+ "default": 10,
77237723+ },
77247724+ },
77257725+ },
77267726+ "output": {
77277727+ "encoding": "application/json",
77287728+ "schema": {
77297729+ "type": "object",
77307730+ "required": [
77317731+ "starterPacks",
77327732+ ],
77337733+ "properties": {
77347734+ "starterPacks": {
77357735+ "type": "array",
77367736+ "items": {
77377737+ "type": "string",
77387738+ "format": "at-uri",
77397739+ },
77407740+ },
77417741+ },
77427742+ },
77437743+ },
77447744+ },
77457745+ },
77467746+ },
77477747+ "AppBskyUnspeccedGetOnboardingSuggestedStarterPacks": {
77487748+ "lexicon": 1,
77497749+ "id": "app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
77507750+ "defs": {
77517751+ "main": {
77527752+ "type": "query",
77537753+ "description": "Get a list of suggested starterpacks for onboarding",
77547754+ "parameters": {
77557755+ "type": "params",
77567756+ "properties": {
77577757+ "limit": {
77587758+ "type": "integer",
77597759+ "minimum": 1,
77607760+ "maximum": 25,
77617761+ "default": 10,
77627762+ },
77637763+ },
77647764+ },
77657765+ "output": {
77667766+ "encoding": "application/json",
77677767+ "schema": {
77687768+ "type": "object",
77697769+ "required": [
77707770+ "starterPacks",
77717771+ ],
77727772+ "properties": {
77737773+ "starterPacks": {
77747774+ "type": "array",
77757775+ "items": {
77767776+ "type": "ref",
77777777+ "ref": "lex:app.bsky.graph.defs#starterPackView",
77787778+ },
77797779+ },
77807780+ },
77817781+ },
77827782+ },
77837783+ },
77847784+ },
77857785+ },
77867786+ "AppBskyUnspeccedGetSuggestedUsersSkeleton": {
77877787+ "lexicon": 1,
77887788+ "id": "app.bsky.unspecced.getSuggestedUsersSkeleton",
77897789+ "defs": {
77907790+ "main": {
77917791+ "type": "query",
77927792+ "description":
77937793+ "Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers",
77947794+ "parameters": {
77957795+ "type": "params",
77967796+ "properties": {
77977797+ "viewer": {
77987798+ "type": "string",
77997799+ "format": "did",
78007800+ "description":
78017801+ "DID of the account making the request (not included for public/unauthenticated queries).",
78027802+ },
78037803+ "category": {
78047804+ "type": "string",
78057805+ "description": "Category of users to get suggestions for.",
78067806+ },
78077807+ "limit": {
78087808+ "type": "integer",
78097809+ "minimum": 1,
78107810+ "maximum": 50,
78117811+ "default": 25,
78127812+ },
78137813+ },
78147814+ },
78157815+ "output": {
78167816+ "encoding": "application/json",
78177817+ "schema": {
78187818+ "type": "object",
78197819+ "required": [
78207820+ "dids",
78217821+ ],
78227822+ "properties": {
78237823+ "dids": {
78247824+ "type": "array",
78257825+ "items": {
78267826+ "type": "string",
78277827+ "format": "did",
78287828+ },
78297829+ },
78307830+ },
78317831+ },
78327832+ },
78337833+ },
78347834+ },
78357835+ },
78367836+ "AppBskyUnspeccedGetPostThreadV2": {
78377837+ "lexicon": 1,
78387838+ "id": "app.bsky.unspecced.getPostThreadV2",
78397839+ "defs": {
78407840+ "main": {
78417841+ "type": "query",
78427842+ "description":
78437843+ "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests.",
78447844+ "parameters": {
78457845+ "type": "params",
78467846+ "required": [
78477847+ "anchor",
78487848+ ],
78497849+ "properties": {
78507850+ "anchor": {
78517851+ "type": "string",
78527852+ "format": "at-uri",
78537853+ "description":
78547854+ "Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post.",
78557855+ },
78567856+ "above": {
78577857+ "type": "boolean",
78587858+ "description": "Whether to include parents above the anchor.",
78597859+ "default": true,
78607860+ },
78617861+ "below": {
78627862+ "type": "integer",
78637863+ "description":
78647864+ "How many levels of replies to include below the anchor.",
78657865+ "default": 6,
78667866+ "minimum": 0,
78677867+ "maximum": 20,
78687868+ },
78697869+ "branchingFactor": {
78707870+ "type": "integer",
78717871+ "description":
78727872+ "Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated).",
78737873+ "default": 10,
78747874+ "minimum": 0,
78757875+ "maximum": 100,
78767876+ },
78777877+ "sort": {
78787878+ "type": "string",
78797879+ "description": "Sorting for the thread replies.",
78807880+ "knownValues": [
78817881+ "newest",
78827882+ "oldest",
78837883+ "top",
78847884+ ],
78857885+ "default": "oldest",
78867886+ },
78877887+ },
78887888+ },
78897889+ "output": {
78907890+ "encoding": "application/json",
78917891+ "schema": {
78927892+ "type": "object",
78937893+ "required": [
78947894+ "thread",
78957895+ "hasOtherReplies",
78967896+ ],
78977897+ "properties": {
78987898+ "thread": {
78997899+ "type": "array",
79007900+ "description":
79017901+ "A flat list of thread items. The depth of each item is indicated by the depth property inside the item.",
79027902+ "items": {
79037903+ "type": "ref",
79047904+ "ref": "lex:app.bsky.unspecced.getPostThreadV2#threadItem",
79057905+ },
79067906+ },
79077907+ "threadgate": {
79087908+ "type": "ref",
79097909+ "ref": "lex:app.bsky.feed.defs#threadgateView",
79107910+ },
79117911+ "hasOtherReplies": {
79127912+ "type": "boolean",
79137913+ "description":
79147914+ "Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them.",
79157915+ },
79167916+ },
79177917+ },
79187918+ },
79197919+ },
79207920+ "threadItem": {
79217921+ "type": "object",
79227922+ "required": [
79237923+ "uri",
79247924+ "depth",
79257925+ "value",
79267926+ ],
79277927+ "properties": {
79287928+ "uri": {
79297929+ "type": "string",
79307930+ "format": "at-uri",
79317931+ },
79327932+ "depth": {
79337933+ "type": "integer",
79347934+ "description":
79357935+ "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths.",
79367936+ },
79377937+ "value": {
79387938+ "type": "union",
79397939+ "refs": [
79407940+ "lex:app.bsky.unspecced.defs#threadItemPost",
79417941+ "lex:app.bsky.unspecced.defs#threadItemNoUnauthenticated",
79427942+ "lex:app.bsky.unspecced.defs#threadItemNotFound",
79437943+ "lex:app.bsky.unspecced.defs#threadItemBlocked",
79447944+ ],
79457945+ },
79467946+ },
79477947+ },
79487948+ },
79497949+ },
79507950+ "AppBskyUnspeccedGetTrends": {
79517951+ "lexicon": 1,
79527952+ "id": "app.bsky.unspecced.getTrends",
79537953+ "defs": {
79547954+ "main": {
79557955+ "type": "query",
79567956+ "description": "Get the current trends on the network",
79577957+ "parameters": {
79587958+ "type": "params",
79597959+ "properties": {
79607960+ "limit": {
79617961+ "type": "integer",
79627962+ "minimum": 1,
79637963+ "maximum": 25,
79647964+ "default": 10,
79657965+ },
79667966+ },
79677967+ },
79687968+ "output": {
79697969+ "encoding": "application/json",
79707970+ "schema": {
79717971+ "type": "object",
79727972+ "required": [
79737973+ "trends",
79747974+ ],
79757975+ "properties": {
79767976+ "trends": {
79777977+ "type": "array",
79787978+ "items": {
79797979+ "type": "ref",
79807980+ "ref": "lex:app.bsky.unspecced.defs#trendView",
79817981+ },
79827982+ },
79837983+ },
79847984+ },
79857985+ },
79867986+ },
42987987 },
42997988 },
43007989 "AppBskyUnspeccedSearchActorsSkeleton": {
···45718260 },
45728261 },
45738262 },
82638263+ "AppBskyUnspeccedGetAgeAssuranceState": {
82648264+ "lexicon": 1,
82658265+ "id": "app.bsky.unspecced.getAgeAssuranceState",
82668266+ "defs": {
82678267+ "main": {
82688268+ "type": "query",
82698269+ "description":
82708270+ "Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required.",
82718271+ "output": {
82728272+ "encoding": "application/json",
82738273+ "schema": {
82748274+ "type": "ref",
82758275+ "ref": "lex:app.bsky.unspecced.defs#ageAssuranceState",
82768276+ },
82778277+ },
82788278+ },
82798279+ },
82808280+ },
45748281 "AppBskyUnspeccedGetPopularFeedGenerators": {
45758282 "lexicon": 1,
45768283 "id": "app.bsky.unspecced.getPopularFeedGenerators",
···46198326 },
46208327 },
46218328 },
83298329+ "AppBskyUnspeccedInitAgeAssurance": {
83308330+ "lexicon": 1,
83318331+ "id": "app.bsky.unspecced.initAgeAssurance",
83328332+ "defs": {
83338333+ "main": {
83348334+ "type": "procedure",
83358335+ "description":
83368336+ "Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age.",
83378337+ "input": {
83388338+ "encoding": "application/json",
83398339+ "schema": {
83408340+ "type": "object",
83418341+ "required": [
83428342+ "email",
83438343+ "language",
83448344+ "countryCode",
83458345+ ],
83468346+ "properties": {
83478347+ "email": {
83488348+ "type": "string",
83498349+ "description":
83508350+ "The user's email address to receive assurance instructions.",
83518351+ },
83528352+ "language": {
83538353+ "type": "string",
83548354+ "description":
83558355+ "The user's preferred language for communication during the assurance process.",
83568356+ },
83578357+ "countryCode": {
83588358+ "type": "string",
83598359+ "description":
83608360+ "An ISO 3166-1 alpha-2 code of the user's location.",
83618361+ },
83628362+ },
83638363+ },
83648364+ },
83658365+ "output": {
83668366+ "encoding": "application/json",
83678367+ "schema": {
83688368+ "type": "ref",
83698369+ "ref": "lex:app.bsky.unspecced.defs#ageAssuranceState",
83708370+ },
83718371+ },
83728372+ "errors": [
83738373+ {
83748374+ "name": "InvalidEmail",
83758375+ },
83768376+ {
83778377+ "name": "DidTooLong",
83788378+ },
83798379+ {
83808380+ "name": "InvalidInitiation",
83818381+ },
83828382+ ],
83838383+ },
83848384+ },
83858385+ },
46228386 "AppBskyUnspeccedGetTrendingTopics": {
46238387 "lexicon": 1,
46248388 "id": "app.bsky.unspecced.getTrendingTopics",
···47258489 "subject": {
47268490 "type": "string",
47278491 "format": "uri",
84928492+ },
84938493+ },
84948494+ },
84958495+ },
84968496+ },
84978497+ "AppBskyUnspeccedGetSuggestedFeeds": {
84988498+ "lexicon": 1,
84998499+ "id": "app.bsky.unspecced.getSuggestedFeeds",
85008500+ "defs": {
85018501+ "main": {
85028502+ "type": "query",
85038503+ "description": "Get a list of suggested feeds",
85048504+ "parameters": {
85058505+ "type": "params",
85068506+ "properties": {
85078507+ "limit": {
85088508+ "type": "integer",
85098509+ "minimum": 1,
85108510+ "maximum": 25,
85118511+ "default": 10,
85128512+ },
85138513+ },
85148514+ },
85158515+ "output": {
85168516+ "encoding": "application/json",
85178517+ "schema": {
85188518+ "type": "object",
85198519+ "required": [
85208520+ "feeds",
85218521+ ],
85228522+ "properties": {
85238523+ "feeds": {
85248524+ "type": "array",
85258525+ "items": {
85268526+ "type": "ref",
85278527+ "ref": "lex:app.bsky.feed.defs#generatorView",
85288528+ },
85298529+ },
85308530+ },
85318531+ },
85328532+ },
85338533+ },
85348534+ },
85358535+ },
85368536+ "AppBskyUnspeccedGetTrendsSkeleton": {
85378537+ "lexicon": 1,
85388538+ "id": "app.bsky.unspecced.getTrendsSkeleton",
85398539+ "defs": {
85408540+ "main": {
85418541+ "type": "query",
85428542+ "description":
85438543+ "Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends",
85448544+ "parameters": {
85458545+ "type": "params",
85468546+ "properties": {
85478547+ "viewer": {
85488548+ "type": "string",
85498549+ "format": "did",
85508550+ "description":
85518551+ "DID of the account making the request (not included for public/unauthenticated queries).",
85528552+ },
85538553+ "limit": {
85548554+ "type": "integer",
85558555+ "minimum": 1,
85568556+ "maximum": 25,
85578557+ "default": 10,
85588558+ },
85598559+ },
85608560+ },
85618561+ "output": {
85628562+ "encoding": "application/json",
85638563+ "schema": {
85648564+ "type": "object",
85658565+ "required": [
85668566+ "trends",
85678567+ ],
85688568+ "properties": {
85698569+ "trends": {
85708570+ "type": "array",
85718571+ "items": {
85728572+ "type": "ref",
85738573+ "ref": "lex:app.bsky.unspecced.defs#skeletonTrend",
85748574+ },
85758575+ },
85768576+ },
47288577 },
47298578 },
47308579 },
···47468595 "checkEmailConfirmed": {
47478596 "type": "boolean",
47488597 },
85988598+ "liveNow": {
85998599+ "type": "array",
86008600+ "items": {
86018601+ "type": "ref",
86028602+ "ref": "lex:app.bsky.unspecced.getConfig#liveNowConfig",
86038603+ },
86048604+ },
86058605+ },
86068606+ },
86078607+ },
86088608+ },
86098609+ "liveNowConfig": {
86108610+ "type": "object",
86118611+ "required": [
86128612+ "did",
86138613+ "domains",
86148614+ ],
86158615+ "properties": {
86168616+ "did": {
86178617+ "type": "string",
86188618+ "format": "did",
86198619+ },
86208620+ "domains": {
86218621+ "type": "array",
86228622+ "items": {
86238623+ "type": "string",
47498624 },
47508625 },
47518626 },
···48788753 },
48798754 },
48808755 },
87568756+ "AppBskyGraphGetStarterPacksWithMembership": {
87578757+ "lexicon": 1,
87588758+ "id": "app.bsky.graph.getStarterPacksWithMembership",
87598759+ "defs": {
87608760+ "main": {
87618761+ "type": "query",
87628762+ "description":
87638763+ "Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth.",
87648764+ "parameters": {
87658765+ "type": "params",
87668766+ "required": [
87678767+ "actor",
87688768+ ],
87698769+ "properties": {
87708770+ "actor": {
87718771+ "type": "string",
87728772+ "format": "at-identifier",
87738773+ "description": "The account (actor) to check for membership.",
87748774+ },
87758775+ "limit": {
87768776+ "type": "integer",
87778777+ "minimum": 1,
87788778+ "maximum": 100,
87798779+ "default": 50,
87808780+ },
87818781+ "cursor": {
87828782+ "type": "string",
87838783+ },
87848784+ },
87858785+ },
87868786+ "output": {
87878787+ "encoding": "application/json",
87888788+ "schema": {
87898789+ "type": "object",
87908790+ "required": [
87918791+ "starterPacksWithMembership",
87928792+ ],
87938793+ "properties": {
87948794+ "cursor": {
87958795+ "type": "string",
87968796+ },
87978797+ "starterPacksWithMembership": {
87988798+ "type": "array",
87998799+ "items": {
88008800+ "type": "ref",
88018801+ "ref":
88028802+ "lex:app.bsky.graph.getStarterPacksWithMembership#starterPackWithMembership",
88038803+ },
88048804+ },
88058805+ },
88068806+ },
88078807+ },
88088808+ },
88098809+ "starterPackWithMembership": {
88108810+ "description":
88118811+ "A starter pack and an optional list item indicating membership of a target user to that starter pack.",
88128812+ "type": "object",
88138813+ "required": [
88148814+ "starterPack",
88158815+ ],
88168816+ "properties": {
88178817+ "starterPack": {
88188818+ "type": "ref",
88198819+ "ref": "lex:app.bsky.graph.defs#starterPackView",
88208820+ },
88218821+ "listItem": {
88228822+ "type": "ref",
88238823+ "ref": "lex:app.bsky.graph.defs#listItemView",
88248824+ },
88258825+ },
88268826+ },
88278827+ },
88288828+ },
48818829 "AppBskyGraphFollow": {
48828830 "lexicon": 1,
48838831 "id": "app.bsky.graph.follow",
···49018849 "createdAt": {
49028850 "type": "string",
49038851 "format": "datetime",
88528852+ },
88538853+ "via": {
88548854+ "type": "ref",
88558855+ "ref": "lex:com.atproto.repo.strongRef",
49048856 },
49058857 },
49068858 },
···52459197 },
52469198 },
52479199 },
92009200+ "AppBskyGraphGetListsWithMembership": {
92019201+ "lexicon": 1,
92029202+ "id": "app.bsky.graph.getListsWithMembership",
92039203+ "defs": {
92049204+ "main": {
92059205+ "type": "query",
92069206+ "description":
92079207+ "Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth.",
92089208+ "parameters": {
92099209+ "type": "params",
92109210+ "required": [
92119211+ "actor",
92129212+ ],
92139213+ "properties": {
92149214+ "actor": {
92159215+ "type": "string",
92169216+ "format": "at-identifier",
92179217+ "description": "The account (actor) to check for membership.",
92189218+ },
92199219+ "limit": {
92209220+ "type": "integer",
92219221+ "minimum": 1,
92229222+ "maximum": 100,
92239223+ "default": 50,
92249224+ },
92259225+ "cursor": {
92269226+ "type": "string",
92279227+ },
92289228+ "purposes": {
92299229+ "type": "array",
92309230+ "description":
92319231+ "Optional filter by list purpose. If not specified, all supported types are returned.",
92329232+ "items": {
92339233+ "type": "string",
92349234+ "knownValues": [
92359235+ "modlist",
92369236+ "curatelist",
92379237+ ],
92389238+ },
92399239+ },
92409240+ },
92419241+ },
92429242+ "output": {
92439243+ "encoding": "application/json",
92449244+ "schema": {
92459245+ "type": "object",
92469246+ "required": [
92479247+ "listsWithMembership",
92489248+ ],
92499249+ "properties": {
92509250+ "cursor": {
92519251+ "type": "string",
92529252+ },
92539253+ "listsWithMembership": {
92549254+ "type": "array",
92559255+ "items": {
92569256+ "type": "ref",
92579257+ "ref":
92589258+ "lex:app.bsky.graph.getListsWithMembership#listWithMembership",
92599259+ },
92609260+ },
92619261+ },
92629262+ },
92639263+ },
92649264+ },
92659265+ "listWithMembership": {
92669266+ "description":
92679267+ "A list and an optional list item indicating membership of a target user to that list.",
92689268+ "type": "object",
92699269+ "required": [
92709270+ "list",
92719271+ ],
92729272+ "properties": {
92739273+ "list": {
92749274+ "type": "ref",
92759275+ "ref": "lex:app.bsky.graph.defs#listView",
92769276+ },
92779277+ "listItem": {
92789278+ "type": "ref",
92799279+ "ref": "lex:app.bsky.graph.defs#listItemView",
92809280+ },
92819281+ },
92829282+ },
92839283+ },
92849284+ },
52489285 "AppBskyGraphUnmuteActorList": {
52499286 "lexicon": 1,
52509287 "id": "app.bsky.graph.unmuteActorList",
···56409677 "cursor": {
56419678 "type": "string",
56429679 },
96809680+ "purposes": {
96819681+ "type": "array",
96829682+ "description":
96839683+ "Optional filter by list purpose. If not specified, all supported types are returned.",
96849684+ "items": {
96859685+ "type": "string",
96869686+ "knownValues": [
96879687+ "modlist",
96889688+ "curatelist",
96899689+ ],
96909690+ },
96919691+ },
56439692 },
56449693 },
56459694 "output": {
···598010029 },
598110030 },
598210031 },
1003210032+ "AppBskyGraphVerification": {
1003310033+ "lexicon": 1,
1003410034+ "id": "app.bsky.graph.verification",
1003510035+ "defs": {
1003610036+ "main": {
1003710037+ "type": "record",
1003810038+ "description":
1003910039+ "Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted.",
1004010040+ "key": "tid",
1004110041+ "record": {
1004210042+ "type": "object",
1004310043+ "required": [
1004410044+ "subject",
1004510045+ "handle",
1004610046+ "displayName",
1004710047+ "createdAt",
1004810048+ ],
1004910049+ "properties": {
1005010050+ "subject": {
1005110051+ "description": "DID of the subject the verification applies to.",
1005210052+ "type": "string",
1005310053+ "format": "did",
1005410054+ },
1005510055+ "handle": {
1005610056+ "description":
1005710057+ "Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying.",
1005810058+ "type": "string",
1005910059+ "format": "handle",
1006010060+ },
1006110061+ "displayName": {
1006210062+ "description":
1006310063+ "Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying.",
1006410064+ "type": "string",
1006510065+ },
1006610066+ "createdAt": {
1006710067+ "description": "Date of when the verification was created.",
1006810068+ "type": "string",
1006910069+ "format": "datetime",
1007010070+ },
1007110071+ },
1007210072+ },
1007310073+ },
1007410074+ },
1007510075+ },
598310076 "AppBskyGraphGetListMutes": {
598410077 "lexicon": 1,
598510078 "id": "app.bsky.graph.getListMutes",
···643010523 "lex:app.bsky.embed.recordWithMedia#view",
643110524 ],
643210525 },
1052610526+ "bookmarkCount": {
1052710527+ "type": "integer",
1052810528+ },
643310529 "replyCount": {
643410530 "type": "integer",
643510531 },
···646110557 "type": "ref",
646210558 "ref": "lex:app.bsky.feed.defs#threadgateView",
646310559 },
1056010560+ "debug": {
1056110561+ "type": "unknown",
1056210562+ "description": "Debug information for internal development",
1056310563+ },
646410564 },
646510565 },
646610566 "viewerState": {
···647510575 "like": {
647610576 "type": "string",
647710577 "format": "at-uri",
1057810578+ },
1057910579+ "bookmarked": {
1058010580+ "type": "boolean",
647810581 },
647910582 "threadMuted": {
648010583 "type": "boolean",
···652810631 "Context provided by feed generator that may be passed back alongside interactions.",
652910632 "maxLength": 2000,
653010633 },
1063410634+ "reqId": {
1063510635+ "type": "string",
1063610636+ "description":
1063710637+ "Unique identifier per request that may be passed back alongside interactions.",
1063810638+ "maxLength": 100,
1063910639+ },
653110640 },
653210641 },
653310642 "replyRef": {
···657210681 "type": "ref",
657310682 "ref": "lex:app.bsky.actor.defs#profileViewBasic",
657410683 },
1068410684+ "uri": {
1068510685+ "type": "string",
1068610686+ "format": "at-uri",
1068710687+ },
1068810688+ "cid": {
1068910689+ "type": "string",
1069010690+ "format": "cid",
1069110691+ },
657510692 "indexedAt": {
657610693 "type": "string",
657710694 "format": "datetime",
···685210969 "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton.",
685310970 "maxLength": 2000,
685410971 },
1097210972+ "reqId": {
1097310973+ "type": "string",
1097410974+ "description":
1097510975+ "Unique identifier per request that may be passed back alongside interactions.",
1097610976+ "maxLength": 100,
1097710977+ },
685510978 },
685610979 },
685710980 "requestLess": {
···733011453 },
733111454 "hiddenReplies": {
733211455 "type": "array",
73337333- "maxLength": 50,
1145611456+ "maxLength": 300,
733411457 "items": {
733511458 "type": "string",
733611459 "format": "at-uri",
···770111824 "main": {
770211825 "type": "query",
770311826 "description":
77047704- "Find posts matching search criteria, returning views of those posts.",
1182711827+ "Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.",
770511828 "parameters": {
770611829 "type": "params",
770711830 "required": [
···804012163 "ref": "lex:app.bsky.feed.defs#skeletonFeedPost",
804112164 },
804212165 },
1216612166+ "reqId": {
1216712167+ "type": "string",
1216812168+ "description":
1216912169+ "Unique identifier per request that may be passed back alongside interactions.",
1217012170+ "maxLength": 100,
1217112171+ },
804312172 },
804412173 },
804512174 },
···845312582 },
845412583 },
845512584 },
1258512585+ "AppBskyAgeassuranceBegin": {
1258612586+ "lexicon": 1,
1258712587+ "id": "app.bsky.ageassurance.begin",
1258812588+ "defs": {
1258912589+ "main": {
1259012590+ "type": "procedure",
1259112591+ "description": "Initiate Age Assurance for an account.",
1259212592+ "input": {
1259312593+ "encoding": "application/json",
1259412594+ "schema": {
1259512595+ "type": "object",
1259612596+ "required": [
1259712597+ "email",
1259812598+ "language",
1259912599+ "countryCode",
1260012600+ ],
1260112601+ "properties": {
1260212602+ "email": {
1260312603+ "type": "string",
1260412604+ "description":
1260512605+ "The user's email address to receive Age Assurance instructions.",
1260612606+ },
1260712607+ "language": {
1260812608+ "type": "string",
1260912609+ "description":
1261012610+ "The user's preferred language for communication during the Age Assurance process.",
1261112611+ },
1261212612+ "countryCode": {
1261312613+ "type": "string",
1261412614+ "description":
1261512615+ "An ISO 3166-1 alpha-2 code of the user's location.",
1261612616+ },
1261712617+ "regionCode": {
1261812618+ "type": "string",
1261912619+ "description":
1262012620+ "An optional ISO 3166-2 code of the user's region or state within the country.",
1262112621+ },
1262212622+ },
1262312623+ },
1262412624+ },
1262512625+ "output": {
1262612626+ "encoding": "application/json",
1262712627+ "schema": {
1262812628+ "type": "ref",
1262912629+ "ref": "lex:app.bsky.ageassurance.defs#state",
1263012630+ },
1263112631+ },
1263212632+ "errors": [
1263312633+ {
1263412634+ "name": "InvalidEmail",
1263512635+ },
1263612636+ {
1263712637+ "name": "DidTooLong",
1263812638+ },
1263912639+ {
1264012640+ "name": "InvalidInitiation",
1264112641+ },
1264212642+ {
1264312643+ "name": "RegionNotSupported",
1264412644+ },
1264512645+ ],
1264612646+ },
1264712647+ },
1264812648+ },
1264912649+ "AppBskyAgeassuranceDefs": {
1265012650+ "lexicon": 1,
1265112651+ "id": "app.bsky.ageassurance.defs",
1265212652+ "defs": {
1265312653+ "access": {
1265412654+ "description":
1265512655+ "The access level granted based on Age Assurance data we've processed.",
1265612656+ "type": "string",
1265712657+ "knownValues": [
1265812658+ "unknown",
1265912659+ "none",
1266012660+ "safe",
1266112661+ "full",
1266212662+ ],
1266312663+ },
1266412664+ "status": {
1266512665+ "type": "string",
1266612666+ "description": "The status of the Age Assurance process.",
1266712667+ "knownValues": [
1266812668+ "unknown",
1266912669+ "pending",
1267012670+ "assured",
1267112671+ "blocked",
1267212672+ ],
1267312673+ },
1267412674+ "state": {
1267512675+ "type": "object",
1267612676+ "description": "The user's computed Age Assurance state.",
1267712677+ "required": [
1267812678+ "status",
1267912679+ "access",
1268012680+ ],
1268112681+ "properties": {
1268212682+ "lastInitiatedAt": {
1268312683+ "type": "string",
1268412684+ "format": "datetime",
1268512685+ "description": "The timestamp when this state was last updated.",
1268612686+ },
1268712687+ "status": {
1268812688+ "type": "ref",
1268912689+ "ref": "lex:app.bsky.ageassurance.defs#status",
1269012690+ },
1269112691+ "access": {
1269212692+ "type": "ref",
1269312693+ "ref": "lex:app.bsky.ageassurance.defs#access",
1269412694+ },
1269512695+ },
1269612696+ },
1269712697+ "stateMetadata": {
1269812698+ "type": "object",
1269912699+ "description":
1270012700+ "Additional metadata needed to compute Age Assurance state client-side.",
1270112701+ "required": [],
1270212702+ "properties": {
1270312703+ "accountCreatedAt": {
1270412704+ "type": "string",
1270512705+ "format": "datetime",
1270612706+ "description": "The account creation timestamp.",
1270712707+ },
1270812708+ },
1270912709+ },
1271012710+ "config": {
1271112711+ "type": "object",
1271212712+ "description": "",
1271312713+ "required": [
1271412714+ "regions",
1271512715+ ],
1271612716+ "properties": {
1271712717+ "regions": {
1271812718+ "type": "array",
1271912719+ "description": "The per-region Age Assurance configuration.",
1272012720+ "items": {
1272112721+ "type": "ref",
1272212722+ "ref": "lex:app.bsky.ageassurance.defs#configRegion",
1272312723+ },
1272412724+ },
1272512725+ },
1272612726+ },
1272712727+ "configRegion": {
1272812728+ "type": "object",
1272912729+ "description": "The Age Assurance configuration for a specific region.",
1273012730+ "required": [
1273112731+ "countryCode",
1273212732+ "rules",
1273312733+ ],
1273412734+ "properties": {
1273512735+ "countryCode": {
1273612736+ "type": "string",
1273712737+ "description":
1273812738+ "The ISO 3166-1 alpha-2 country code this configuration applies to.",
1273912739+ },
1274012740+ "regionCode": {
1274112741+ "type": "string",
1274212742+ "description":
1274312743+ "The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country.",
1274412744+ },
1274512745+ "rules": {
1274612746+ "type": "array",
1274712747+ "description":
1274812748+ "The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item.",
1274912749+ "items": {
1275012750+ "type": "union",
1275112751+ "refs": [
1275212752+ "lex:app.bsky.ageassurance.defs#configRegionRuleDefault",
1275312753+ "lex:app.bsky.ageassurance.defs#configRegionRuleIfDeclaredOverAge",
1275412754+ "lex:app.bsky.ageassurance.defs#configRegionRuleIfDeclaredUnderAge",
1275512755+ "lex:app.bsky.ageassurance.defs#configRegionRuleIfAssuredOverAge",
1275612756+ "lex:app.bsky.ageassurance.defs#configRegionRuleIfAssuredUnderAge",
1275712757+ "lex:app.bsky.ageassurance.defs#configRegionRuleIfAccountNewerThan",
1275812758+ "lex:app.bsky.ageassurance.defs#configRegionRuleIfAccountOlderThan",
1275912759+ ],
1276012760+ },
1276112761+ },
1276212762+ },
1276312763+ },
1276412764+ "configRegionRuleDefault": {
1276512765+ "type": "object",
1276612766+ "description": "Age Assurance rule that applies by default.",
1276712767+ "required": [
1276812768+ "access",
1276912769+ ],
1277012770+ "properties": {
1277112771+ "access": {
1277212772+ "type": "ref",
1277312773+ "ref": "lex:app.bsky.ageassurance.defs#access",
1277412774+ },
1277512775+ },
1277612776+ },
1277712777+ "configRegionRuleIfDeclaredOverAge": {
1277812778+ "type": "object",
1277912779+ "description":
1278012780+ "Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age.",
1278112781+ "required": [
1278212782+ "age",
1278312783+ "access",
1278412784+ ],
1278512785+ "properties": {
1278612786+ "age": {
1278712787+ "type": "integer",
1278812788+ "description": "The age threshold as a whole integer.",
1278912789+ },
1279012790+ "access": {
1279112791+ "type": "ref",
1279212792+ "ref": "lex:app.bsky.ageassurance.defs#access",
1279312793+ },
1279412794+ },
1279512795+ },
1279612796+ "configRegionRuleIfDeclaredUnderAge": {
1279712797+ "type": "object",
1279812798+ "description":
1279912799+ "Age Assurance rule that applies if the user has declared themselves under a certain age.",
1280012800+ "required": [
1280112801+ "age",
1280212802+ "access",
1280312803+ ],
1280412804+ "properties": {
1280512805+ "age": {
1280612806+ "type": "integer",
1280712807+ "description": "The age threshold as a whole integer.",
1280812808+ },
1280912809+ "access": {
1281012810+ "type": "ref",
1281112811+ "ref": "lex:app.bsky.ageassurance.defs#access",
1281212812+ },
1281312813+ },
1281412814+ },
1281512815+ "configRegionRuleIfAssuredOverAge": {
1281612816+ "type": "object",
1281712817+ "description":
1281812818+ "Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age.",
1281912819+ "required": [
1282012820+ "age",
1282112821+ "access",
1282212822+ ],
1282312823+ "properties": {
1282412824+ "age": {
1282512825+ "type": "integer",
1282612826+ "description": "The age threshold as a whole integer.",
1282712827+ },
1282812828+ "access": {
1282912829+ "type": "ref",
1283012830+ "ref": "lex:app.bsky.ageassurance.defs#access",
1283112831+ },
1283212832+ },
1283312833+ },
1283412834+ "configRegionRuleIfAssuredUnderAge": {
1283512835+ "type": "object",
1283612836+ "description":
1283712837+ "Age Assurance rule that applies if the user has been assured to be under a certain age.",
1283812838+ "required": [
1283912839+ "age",
1284012840+ "access",
1284112841+ ],
1284212842+ "properties": {
1284312843+ "age": {
1284412844+ "type": "integer",
1284512845+ "description": "The age threshold as a whole integer.",
1284612846+ },
1284712847+ "access": {
1284812848+ "type": "ref",
1284912849+ "ref": "lex:app.bsky.ageassurance.defs#access",
1285012850+ },
1285112851+ },
1285212852+ },
1285312853+ "configRegionRuleIfAccountNewerThan": {
1285412854+ "type": "object",
1285512855+ "description":
1285612856+ "Age Assurance rule that applies if the account is equal-to or newer than a certain date.",
1285712857+ "required": [
1285812858+ "date",
1285912859+ "access",
1286012860+ ],
1286112861+ "properties": {
1286212862+ "date": {
1286312863+ "type": "string",
1286412864+ "format": "datetime",
1286512865+ "description": "The date threshold as a datetime string.",
1286612866+ },
1286712867+ "access": {
1286812868+ "type": "ref",
1286912869+ "ref": "lex:app.bsky.ageassurance.defs#access",
1287012870+ },
1287112871+ },
1287212872+ },
1287312873+ "configRegionRuleIfAccountOlderThan": {
1287412874+ "type": "object",
1287512875+ "description":
1287612876+ "Age Assurance rule that applies if the account is older than a certain date.",
1287712877+ "required": [
1287812878+ "date",
1287912879+ "access",
1288012880+ ],
1288112881+ "properties": {
1288212882+ "date": {
1288312883+ "type": "string",
1288412884+ "format": "datetime",
1288512885+ "description": "The date threshold as a datetime string.",
1288612886+ },
1288712887+ "access": {
1288812888+ "type": "ref",
1288912889+ "ref": "lex:app.bsky.ageassurance.defs#access",
1289012890+ },
1289112891+ },
1289212892+ },
1289312893+ "event": {
1289412894+ "type": "object",
1289512895+ "description": "Object used to store Age Assurance data in stash.",
1289612896+ "required": [
1289712897+ "createdAt",
1289812898+ "status",
1289912899+ "access",
1290012900+ "attemptId",
1290112901+ "countryCode",
1290212902+ ],
1290312903+ "properties": {
1290412904+ "createdAt": {
1290512905+ "type": "string",
1290612906+ "format": "datetime",
1290712907+ "description": "The date and time of this write operation.",
1290812908+ },
1290912909+ "attemptId": {
1291012910+ "type": "string",
1291112911+ "description":
1291212912+ "The unique identifier for this instance of the Age Assurance flow, in UUID format.",
1291312913+ },
1291412914+ "status": {
1291512915+ "type": "string",
1291612916+ "description": "The status of the Age Assurance process.",
1291712917+ "knownValues": [
1291812918+ "unknown",
1291912919+ "pending",
1292012920+ "assured",
1292112921+ "blocked",
1292212922+ ],
1292312923+ },
1292412924+ "access": {
1292512925+ "description":
1292612926+ "The access level granted based on Age Assurance data we've processed.",
1292712927+ "type": "string",
1292812928+ "knownValues": [
1292912929+ "unknown",
1293012930+ "none",
1293112931+ "safe",
1293212932+ "full",
1293312933+ ],
1293412934+ },
1293512935+ "countryCode": {
1293612936+ "type": "string",
1293712937+ "description":
1293812938+ "The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow.",
1293912939+ },
1294012940+ "regionCode": {
1294112941+ "type": "string",
1294212942+ "description":
1294312943+ "The ISO 3166-2 region code provided when beginning the Age Assurance flow.",
1294412944+ },
1294512945+ "email": {
1294612946+ "type": "string",
1294712947+ "description": "The email used for Age Assurance.",
1294812948+ },
1294912949+ "initIp": {
1295012950+ "type": "string",
1295112951+ "description":
1295212952+ "The IP address used when initiating the Age Assurance flow.",
1295312953+ },
1295412954+ "initUa": {
1295512955+ "type": "string",
1295612956+ "description":
1295712957+ "The user agent used when initiating the Age Assurance flow.",
1295812958+ },
1295912959+ "completeIp": {
1296012960+ "type": "string",
1296112961+ "description":
1296212962+ "The IP address used when completing the Age Assurance flow.",
1296312963+ },
1296412964+ "completeUa": {
1296512965+ "type": "string",
1296612966+ "description":
1296712967+ "The user agent used when completing the Age Assurance flow.",
1296812968+ },
1296912969+ },
1297012970+ },
1297112971+ },
1297212972+ },
1297312973+ "AppBskyAgeassuranceGetState": {
1297412974+ "lexicon": 1,
1297512975+ "id": "app.bsky.ageassurance.getState",
1297612976+ "defs": {
1297712977+ "main": {
1297812978+ "type": "query",
1297912979+ "description":
1298012980+ "Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side.",
1298112981+ "parameters": {
1298212982+ "type": "params",
1298312983+ "required": [
1298412984+ "countryCode",
1298512985+ ],
1298612986+ "properties": {
1298712987+ "countryCode": {
1298812988+ "type": "string",
1298912989+ },
1299012990+ "regionCode": {
1299112991+ "type": "string",
1299212992+ },
1299312993+ },
1299412994+ },
1299512995+ "output": {
1299612996+ "encoding": "application/json",
1299712997+ "schema": {
1299812998+ "type": "object",
1299912999+ "required": [
1300013000+ "state",
1300113001+ "metadata",
1300213002+ ],
1300313003+ "properties": {
1300413004+ "state": {
1300513005+ "type": "ref",
1300613006+ "ref": "lex:app.bsky.ageassurance.defs#state",
1300713007+ },
1300813008+ "metadata": {
1300913009+ "type": "ref",
1301013010+ "ref": "lex:app.bsky.ageassurance.defs#stateMetadata",
1301113011+ },
1301213012+ },
1301313013+ },
1301413014+ },
1301513015+ },
1301613016+ },
1301713017+ },
1301813018+ "AppBskyAgeassuranceGetConfig": {
1301913019+ "lexicon": 1,
1302013020+ "id": "app.bsky.ageassurance.getConfig",
1302113021+ "defs": {
1302213022+ "main": {
1302313023+ "type": "query",
1302413024+ "description":
1302513025+ "Returns Age Assurance configuration for use on the client.",
1302613026+ "output": {
1302713027+ "encoding": "application/json",
1302813028+ "schema": {
1302913029+ "type": "ref",
1303013030+ "ref": "lex:app.bsky.ageassurance.defs#config",
1303113031+ },
1303213032+ },
1303313033+ },
1303413034+ },
1303513035+ },
845613036 "AppBskyActorSearchActorsTypeahead": {
845713037 "lexicon": 1,
845813038 "id": "app.bsky.actor.searchActorsTypeahead",
···852513105 "maxGraphemes": 64,
852613106 "maxLength": 640,
852713107 },
1310813108+ "pronouns": {
1310913109+ "type": "string",
1311013110+ },
852813111 "avatar": {
852913112 "type": "string",
853013113 "format": "uri",
···854813131 "type": "string",
854913132 "format": "datetime",
855013133 },
1313413134+ "verification": {
1313513135+ "type": "ref",
1313613136+ "ref": "lex:app.bsky.actor.defs#verificationState",
1313713137+ },
1313813138+ "status": {
1313913139+ "type": "ref",
1314013140+ "ref": "lex:app.bsky.actor.defs#statusView",
1314113141+ },
1314213142+ "debug": {
1314313143+ "type": "unknown",
1314413144+ "description": "Debug information for internal development",
1314513145+ },
855113146 },
855213147 },
855313148 "profileView": {
···856913164 "type": "string",
857013165 "maxGraphemes": 64,
857113166 "maxLength": 640,
1316713167+ },
1316813168+ "pronouns": {
1316913169+ "type": "string",
857213170 },
857313171 "description": {
857413172 "type": "string",
···860213200 "ref": "lex:com.atproto.label.defs#label",
860313201 },
860413202 },
1320313203+ "verification": {
1320413204+ "type": "ref",
1320513205+ "ref": "lex:app.bsky.actor.defs#verificationState",
1320613206+ },
1320713207+ "status": {
1320813208+ "type": "ref",
1320913209+ "ref": "lex:app.bsky.actor.defs#statusView",
1321013210+ },
1321113211+ "debug": {
1321213212+ "type": "unknown",
1321313213+ "description": "Debug information for internal development",
1321413214+ },
860513215 },
860613216 },
860713217 "profileViewDetailed": {
···862813238 "type": "string",
862913239 "maxGraphemes": 256,
863013240 "maxLength": 2560,
1324113241+ },
1324213242+ "pronouns": {
1324313243+ "type": "string",
1324413244+ },
1324513245+ "website": {
1324613246+ "type": "string",
1324713247+ "format": "uri",
863113248 },
863213249 "avatar": {
863313250 "type": "string",
···867713294 "type": "ref",
867813295 "ref": "lex:com.atproto.repo.strongRef",
867913296 },
1329713297+ "verification": {
1329813298+ "type": "ref",
1329913299+ "ref": "lex:app.bsky.actor.defs#verificationState",
1330013300+ },
1330113301+ "status": {
1330213302+ "type": "ref",
1330313303+ "ref": "lex:app.bsky.actor.defs#statusView",
1330413304+ },
1330513305+ "debug": {
1330613306+ "type": "unknown",
1330713307+ "description": "Debug information for internal development",
1330813308+ },
868013309 },
868113310 },
868213311 "profileAssociated": {
···869813327 "type": "ref",
869913328 "ref": "lex:app.bsky.actor.defs#profileAssociatedChat",
870013329 },
1333013330+ "activitySubscription": {
1333113331+ "type": "ref",
1333213332+ "ref":
1333313333+ "lex:app.bsky.actor.defs#profileAssociatedActivitySubscription",
1333413334+ },
870113335 },
870213336 },
870313337 "profileAssociatedChat": {
···871613350 },
871713351 },
871813352 },
1335313353+ "profileAssociatedActivitySubscription": {
1335413354+ "type": "object",
1335513355+ "required": [
1335613356+ "allowSubscriptions",
1335713357+ ],
1335813358+ "properties": {
1335913359+ "allowSubscriptions": {
1336013360+ "type": "string",
1336113361+ "knownValues": [
1336213362+ "followers",
1336313363+ "mutuals",
1336413364+ "none",
1336513365+ ],
1336613366+ },
1336713367+ },
1336813368+ },
871913369 "viewerState": {
872013370 "type": "object",
872113371 "description":
···874813398 "format": "at-uri",
874913399 },
875013400 "knownFollowers": {
1340113401+ "description":
1340213402+ "This property is present only in selected cases, as an optimization.",
875113403 "type": "ref",
875213404 "ref": "lex:app.bsky.actor.defs#knownFollowers",
875313405 },
1340613406+ "activitySubscription": {
1340713407+ "description":
1340813408+ "This property is present only in selected cases, as an optimization.",
1340913409+ "type": "ref",
1341013410+ "ref": "lex:app.bsky.notification.defs#activitySubscription",
1341113411+ },
875413412 },
875513413 },
875613414 "knownFollowers": {
···877513433 },
877613434 },
877713435 },
1343613436+ "verificationState": {
1343713437+ "type": "object",
1343813438+ "description":
1343913439+ "Represents the verification information about the user this object is attached to.",
1344013440+ "required": [
1344113441+ "verifications",
1344213442+ "verifiedStatus",
1344313443+ "trustedVerifierStatus",
1344413444+ ],
1344513445+ "properties": {
1344613446+ "verifications": {
1344713447+ "type": "array",
1344813448+ "description":
1344913449+ "All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.",
1345013450+ "items": {
1345113451+ "type": "ref",
1345213452+ "ref": "lex:app.bsky.actor.defs#verificationView",
1345313453+ },
1345413454+ },
1345513455+ "verifiedStatus": {
1345613456+ "type": "string",
1345713457+ "description": "The user's status as a verified account.",
1345813458+ "knownValues": [
1345913459+ "valid",
1346013460+ "invalid",
1346113461+ "none",
1346213462+ ],
1346313463+ },
1346413464+ "trustedVerifierStatus": {
1346513465+ "type": "string",
1346613466+ "description": "The user's status as a trusted verifier.",
1346713467+ "knownValues": [
1346813468+ "valid",
1346913469+ "invalid",
1347013470+ "none",
1347113471+ ],
1347213472+ },
1347313473+ },
1347413474+ },
1347513475+ "verificationView": {
1347613476+ "type": "object",
1347713477+ "description": "An individual verification for an associated subject.",
1347813478+ "required": [
1347913479+ "issuer",
1348013480+ "uri",
1348113481+ "isValid",
1348213482+ "createdAt",
1348313483+ ],
1348413484+ "properties": {
1348513485+ "issuer": {
1348613486+ "type": "string",
1348713487+ "description": "The user who issued this verification.",
1348813488+ "format": "did",
1348913489+ },
1349013490+ "uri": {
1349113491+ "type": "string",
1349213492+ "description": "The AT-URI of the verification record.",
1349313493+ "format": "at-uri",
1349413494+ },
1349513495+ "isValid": {
1349613496+ "type": "boolean",
1349713497+ "description":
1349813498+ "True if the verification passes validation, otherwise false.",
1349913499+ },
1350013500+ "createdAt": {
1350113501+ "type": "string",
1350213502+ "description": "Timestamp when the verification was created.",
1350313503+ "format": "datetime",
1350413504+ },
1350513505+ },
1350613506+ },
877813507 "preferences": {
877913508 "type": "array",
878013509 "items": {
···879313522 "lex:app.bsky.actor.defs#bskyAppStatePref",
879413523 "lex:app.bsky.actor.defs#labelersPref",
879513524 "lex:app.bsky.actor.defs#postInteractionSettingsPref",
1352513525+ "lex:app.bsky.actor.defs#verificationPrefs",
879613526 ],
879713527 },
879813528 },
···896313693 "random",
896413694 "hotness",
896513695 ],
89668966- },
89678967- "prioritizeFollowedUsers": {
89688968- "type": "boolean",
89698969- "description": "Show followed users at the top of all replies.",
897013696 },
897113697 },
897213698 },
···917613902 },
917713903 },
917813904 },
1390513905+ "verificationPrefs": {
1390613906+ "type": "object",
1390713907+ "description":
1390813908+ "Preferences for how verified accounts appear in the app.",
1390913909+ "required": [],
1391013910+ "properties": {
1391113911+ "hideBadges": {
1391213912+ "description":
1391313913+ "Hide the blue check badges for verified accounts and trusted verifiers.",
1391413914+ "type": "boolean",
1391513915+ "default": false,
1391613916+ },
1391713917+ },
1391813918+ },
917913919 "postInteractionSettingsPref": {
918013920 "type": "object",
918113921 "description":
···921113951 },
921213952 },
921313953 },
1395413954+ "statusView": {
1395513955+ "type": "object",
1395613956+ "required": [
1395713957+ "status",
1395813958+ "record",
1395913959+ ],
1396013960+ "properties": {
1396113961+ "status": {
1396213962+ "type": "string",
1396313963+ "description": "The status for the account.",
1396413964+ "knownValues": [
1396513965+ "app.bsky.actor.status#live",
1396613966+ ],
1396713967+ },
1396813968+ "record": {
1396913969+ "type": "unknown",
1397013970+ },
1397113971+ "embed": {
1397213972+ "type": "union",
1397313973+ "description": "An optional embed associated with the status.",
1397413974+ "refs": [
1397513975+ "lex:app.bsky.embed.external#view",
1397613976+ ],
1397713977+ },
1397813978+ "expiresAt": {
1397913979+ "type": "string",
1398013980+ "description":
1398113981+ "The date when this status will expire. The application might choose to no longer return the status after expiration.",
1398213982+ "format": "datetime",
1398313983+ },
1398413984+ "isActive": {
1398513985+ "type": "boolean",
1398613986+ "description":
1398713987+ "True if the status is not expired, false if it is expired. Only present if expiration was set.",
1398813988+ },
1398913989+ },
1399013990+ },
921413991 },
921513992 },
921613993 "AppBskyActorPutPreferences": {
···941914196 },
942014197 },
942114198 },
1419914199+ "AppBskyActorStatus": {
1420014200+ "lexicon": 1,
1420114201+ "id": "app.bsky.actor.status",
1420214202+ "defs": {
1420314203+ "main": {
1420414204+ "type": "record",
1420514205+ "description": "A declaration of a Bluesky account status.",
1420614206+ "key": "literal:self",
1420714207+ "record": {
1420814208+ "type": "object",
1420914209+ "required": [
1421014210+ "status",
1421114211+ "createdAt",
1421214212+ ],
1421314213+ "properties": {
1421414214+ "status": {
1421514215+ "type": "string",
1421614216+ "description": "The status for the account.",
1421714217+ "knownValues": [
1421814218+ "app.bsky.actor.status#live",
1421914219+ ],
1422014220+ },
1422114221+ "embed": {
1422214222+ "type": "union",
1422314223+ "description": "An optional embed associated with the status.",
1422414224+ "refs": [
1422514225+ "lex:app.bsky.embed.external",
1422614226+ ],
1422714227+ },
1422814228+ "durationMinutes": {
1422914229+ "type": "integer",
1423014230+ "description":
1423114231+ "The duration of the status in minutes. Applications can choose to impose minimum and maximum limits.",
1423214232+ "minimum": 1,
1423314233+ },
1423414234+ "createdAt": {
1423514235+ "type": "string",
1423614236+ "format": "datetime",
1423714237+ },
1423814238+ },
1423914239+ },
1424014240+ },
1424114241+ "live": {
1424214242+ "type": "token",
1424314243+ "description":
1424414244+ "Advertises an account as currently offering live content.",
1424514245+ },
1424614246+ },
1424714247+ },
942214248 "AppBskyActorGetPreferences": {
942314249 "lexicon": 1,
942414250 "id": "app.bsky.actor.getPreferences",
···947014296 "description": "Free-form profile description text.",
947114297 "maxGraphemes": 256,
947214298 "maxLength": 2560,
1429914299+ },
1430014300+ "pronouns": {
1430114301+ "type": "string",
1430214302+ "description": "Free-form pronouns text.",
1430314303+ "maxGraphemes": 20,
1430414304+ "maxLength": 200,
1430514305+ },
1430614306+ "website": {
1430714307+ "type": "string",
1430814308+ "format": "uri",
947314309 },
947414310 "avatar": {
947514311 "type": "blob",
···996714803 "lex:app.bsky.embed.record#view",
996814804 ],
996914805 },
1480614806+ "reactions": {
1480714807+ "type": "array",
1480814808+ "description":
1480914809+ "Reactions to this message, in ascending order of creation time.",
1481014810+ "items": {
1481114811+ "type": "ref",
1481214812+ "ref": "lex:chat.bsky.convo.defs#reactionView",
1481314813+ },
1481414814+ },
997014815 "sender": {
997114816 "type": "ref",
997214817 "ref": "lex:chat.bsky.convo.defs#messageViewSender",
···1001414859 },
1001514860 },
1001614861 },
1486214862+ "reactionView": {
1486314863+ "type": "object",
1486414864+ "required": [
1486514865+ "value",
1486614866+ "sender",
1486714867+ "createdAt",
1486814868+ ],
1486914869+ "properties": {
1487014870+ "value": {
1487114871+ "type": "string",
1487214872+ },
1487314873+ "sender": {
1487414874+ "type": "ref",
1487514875+ "ref": "lex:chat.bsky.convo.defs#reactionViewSender",
1487614876+ },
1487714877+ "createdAt": {
1487814878+ "type": "string",
1487914879+ "format": "datetime",
1488014880+ },
1488114881+ },
1488214882+ },
1488314883+ "reactionViewSender": {
1488414884+ "type": "object",
1488514885+ "required": [
1488614886+ "did",
1488714887+ ],
1488814888+ "properties": {
1488914889+ "did": {
1489014890+ "type": "string",
1489114891+ "format": "did",
1489214892+ },
1489314893+ },
1489414894+ },
1489514895+ "messageAndReactionView": {
1489614896+ "type": "object",
1489714897+ "required": [
1489814898+ "message",
1489914899+ "reaction",
1490014900+ ],
1490114901+ "properties": {
1490214902+ "message": {
1490314903+ "type": "ref",
1490414904+ "ref": "lex:chat.bsky.convo.defs#messageView",
1490514905+ },
1490614906+ "reaction": {
1490714907+ "type": "ref",
1490814908+ "ref": "lex:chat.bsky.convo.defs#reactionView",
1490914909+ },
1491014910+ },
1491114911+ },
1001714912 "convoView": {
1001814913 "type": "object",
1001914914 "required": [
···1004214937 "refs": [
1004314938 "lex:chat.bsky.convo.defs#messageView",
1004414939 "lex:chat.bsky.convo.defs#deletedMessageView",
1494014940+ ],
1494114941+ },
1494214942+ "lastReaction": {
1494314943+ "type": "union",
1494414944+ "refs": [
1494514945+ "lex:chat.bsky.convo.defs#messageAndReactionView",
1004514946 ],
1004614947 },
1004714948 "muted": {
···1020315104 },
1020415105 },
1020515106 },
1510715107+ "logAddReaction": {
1510815108+ "type": "object",
1510915109+ "required": [
1511015110+ "rev",
1511115111+ "convoId",
1511215112+ "message",
1511315113+ "reaction",
1511415114+ ],
1511515115+ "properties": {
1511615116+ "rev": {
1511715117+ "type": "string",
1511815118+ },
1511915119+ "convoId": {
1512015120+ "type": "string",
1512115121+ },
1512215122+ "message": {
1512315123+ "type": "union",
1512415124+ "refs": [
1512515125+ "lex:chat.bsky.convo.defs#messageView",
1512615126+ "lex:chat.bsky.convo.defs#deletedMessageView",
1512715127+ ],
1512815128+ },
1512915129+ "reaction": {
1513015130+ "type": "ref",
1513115131+ "ref": "lex:chat.bsky.convo.defs#reactionView",
1513215132+ },
1513315133+ },
1513415134+ },
1513515135+ "logRemoveReaction": {
1513615136+ "type": "object",
1513715137+ "required": [
1513815138+ "rev",
1513915139+ "convoId",
1514015140+ "message",
1514115141+ "reaction",
1514215142+ ],
1514315143+ "properties": {
1514415144+ "rev": {
1514515145+ "type": "string",
1514615146+ },
1514715147+ "convoId": {
1514815148+ "type": "string",
1514915149+ },
1515015150+ "message": {
1515115151+ "type": "union",
1515215152+ "refs": [
1515315153+ "lex:chat.bsky.convo.defs#messageView",
1515415154+ "lex:chat.bsky.convo.defs#deletedMessageView",
1515515155+ ],
1515615156+ },
1515715157+ "reaction": {
1515815158+ "type": "ref",
1515915159+ "ref": "lex:chat.bsky.convo.defs#reactionView",
1516015160+ },
1516115161+ },
1516215162+ },
1020615163 },
1020715164 },
1020815165 "ChatBskyConvoGetConvoAvailability": {
···1028515242 "lex:chat.bsky.convo.defs#logBeginConvo",
1028615243 "lex:chat.bsky.convo.defs#logAcceptConvo",
1028715244 "lex:chat.bsky.convo.defs#logLeaveConvo",
1524515245+ "lex:chat.bsky.convo.defs#logMuteConvo",
1524615246+ "lex:chat.bsky.convo.defs#logUnmuteConvo",
1028815247 "lex:chat.bsky.convo.defs#logCreateMessage",
1028915248 "lex:chat.bsky.convo.defs#logDeleteMessage",
1524915249+ "lex:chat.bsky.convo.defs#logReadMessage",
1525015250+ "lex:chat.bsky.convo.defs#logAddReaction",
1525115251+ "lex:chat.bsky.convo.defs#logRemoveReaction",
1029015252 ],
1029115253 },
1029215254 },
···1037215334 },
1037315335 },
1037415336 },
1533715337+ "ChatBskyConvoAddReaction": {
1533815338+ "lexicon": 1,
1533915339+ "id": "chat.bsky.convo.addReaction",
1534015340+ "defs": {
1534115341+ "main": {
1534215342+ "type": "procedure",
1534315343+ "description":
1534415344+ "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.",
1534515345+ "input": {
1534615346+ "encoding": "application/json",
1534715347+ "schema": {
1534815348+ "type": "object",
1534915349+ "required": [
1535015350+ "convoId",
1535115351+ "messageId",
1535215352+ "value",
1535315353+ ],
1535415354+ "properties": {
1535515355+ "convoId": {
1535615356+ "type": "string",
1535715357+ },
1535815358+ "messageId": {
1535915359+ "type": "string",
1536015360+ },
1536115361+ "value": {
1536215362+ "type": "string",
1536315363+ "minLength": 1,
1536415364+ "maxLength": 64,
1536515365+ "minGraphemes": 1,
1536615366+ "maxGraphemes": 1,
1536715367+ },
1536815368+ },
1536915369+ },
1537015370+ },
1537115371+ "output": {
1537215372+ "encoding": "application/json",
1537315373+ "schema": {
1537415374+ "type": "object",
1537515375+ "required": [
1537615376+ "message",
1537715377+ ],
1537815378+ "properties": {
1537915379+ "message": {
1538015380+ "type": "ref",
1538115381+ "ref": "lex:chat.bsky.convo.defs#messageView",
1538215382+ },
1538315383+ },
1538415384+ },
1538515385+ },
1538615386+ "errors": [
1538715387+ {
1538815388+ "name": "ReactionMessageDeleted",
1538915389+ "description":
1539015390+ "Indicates that the message has been deleted and reactions can no longer be added/removed.",
1539115391+ },
1539215392+ {
1539315393+ "name": "ReactionLimitReached",
1539415394+ "description":
1539515395+ "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.",
1539615396+ },
1539715397+ {
1539815398+ "name": "ReactionInvalidValue",
1539915399+ "description":
1540015400+ "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji.",
1540115401+ },
1540215402+ ],
1540315403+ },
1540415404+ },
1540515405+ },
1037515406 "ChatBskyConvoAcceptConvo": {
1037615407 "lexicon": 1,
1037715408 "id": "chat.bsky.convo.acceptConvo",
···1048015511 },
1048115512 },
1048215513 },
1551415514+ "ChatBskyConvoRemoveReaction": {
1551515515+ "lexicon": 1,
1551615516+ "id": "chat.bsky.convo.removeReaction",
1551715517+ "defs": {
1551815518+ "main": {
1551915519+ "type": "procedure",
1552015520+ "description":
1552115521+ "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.",
1552215522+ "input": {
1552315523+ "encoding": "application/json",
1552415524+ "schema": {
1552515525+ "type": "object",
1552615526+ "required": [
1552715527+ "convoId",
1552815528+ "messageId",
1552915529+ "value",
1553015530+ ],
1553115531+ "properties": {
1553215532+ "convoId": {
1553315533+ "type": "string",
1553415534+ },
1553515535+ "messageId": {
1553615536+ "type": "string",
1553715537+ },
1553815538+ "value": {
1553915539+ "type": "string",
1554015540+ "minLength": 1,
1554115541+ "maxLength": 64,
1554215542+ "minGraphemes": 1,
1554315543+ "maxGraphemes": 1,
1554415544+ },
1554515545+ },
1554615546+ },
1554715547+ },
1554815548+ "output": {
1554915549+ "encoding": "application/json",
1555015550+ "schema": {
1555115551+ "type": "object",
1555215552+ "required": [
1555315553+ "message",
1555415554+ ],
1555515555+ "properties": {
1555615556+ "message": {
1555715557+ "type": "ref",
1555815558+ "ref": "lex:chat.bsky.convo.defs#messageView",
1555915559+ },
1556015560+ },
1556115561+ },
1556215562+ },
1556315563+ "errors": [
1556415564+ {
1556515565+ "name": "ReactionMessageDeleted",
1556615566+ "description":
1556715567+ "Indicates that the message has been deleted and reactions can no longer be added/removed.",
1556815568+ },
1556915569+ {
1557015570+ "name": "ReactionInvalidValue",
1557115571+ "description":
1557215572+ "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji.",
1557315573+ },
1557415574+ ],
1557515575+ },
1557615576+ },
1557715577+ },
1048315578 "ChatBskyConvoUpdateRead": {
1048415579 "lexicon": 1,
1048515580 "id": "chat.bsky.convo.updateRead",
···1079715892 "chatDisabled": {
1079815893 "type": "boolean",
1079915894 "description":
1080010800- "Set to true when the actor cannot actively participate in converations",
1589515895+ "Set to true when the actor cannot actively participate in conversations",
1589615896+ },
1589715897+ "verification": {
1589815898+ "type": "ref",
1589915899+ "ref": "lex:app.bsky.actor.defs#verificationState",
1080115900 },
1080215901 },
1080315902 },
···1316918268 "minimum": 0,
1317018269 "maximum": 1000,
1317118270 },
1317213172- "prioritizeFollowedUsers": {
1317313173- "type": "boolean",
1317413174- "description":
1317513175- "Whether to prioritize posts from followed users. It only has effect when the user is authenticated.",
1317613176- "default": false,
1317713177- },
1317818271 "sort": {
1317918272 "type": "string",
1318018273 "description": "Sorting for the thread replies.",
···1415219245 },
1415319246 "coverArt": {
1415419247 "type": "string",
1924819248+ "format": "uri",
1415519249 },
1415619250 "details": {
1415719251 "type": "ref",
···1416019254 "indexedAt": {
1416119255 "type": "string",
1416219256 "format": "datetime",
1925719257+ },
1925819258+ "audio": {
1925919259+ "type": "string",
1926019260+ "format": "uri",
1416319261 },
1416419262 "labels": {
1416519263 "type": "array",
···1476519863 "items": {
1476619864 "type": "union",
1476719865 "refs": [
1476814768- "lex:so.sprk.actor.defs#adultContentPref",
1476919866 "lex:so.sprk.actor.defs#contentLabelPref",
1477019867 "lex:so.sprk.actor.defs#savedFeedsPref",
1477119868 "lex:so.sprk.actor.defs#personalDetailsPref",
···1477919876 ],
1478019877 },
1478119878 },
1478214782- "adultContentPref": {
1478314783- "type": "object",
1478414784- "required": [
1478514785- "enabled",
1478614786- ],
1478714787- "properties": {
1478814788- "enabled": {
1478914789- "type": "boolean",
1479014790- "default": false,
1479114791- },
1479214792- },
1479314793- },
1479419879 "contentLabelPref": {
1479519880 "type": "object",
1479619881 "required": [
···1492520010 "random",
1492620011 "hotness",
1492720012 ],
1492814928- },
1492914929- "prioritizeFollowedUsers": {
1493014930- "type": "boolean",
1493114931- "description": "Show followed users at the top of all replies.",
1493220013 },
1493320014 },
1493420015 },
···1563820719 "type": "integer",
1563920720 "minimum": 0,
1564020721 },
1564115641- "lookCount": {
1564215642- "type": "integer",
1564315643- "minimum": 0,
1564415644- },
1564520722 "viewer": {
1564620723 "type": "ref",
1564720724 "ref": "lex:so.sprk.labeler.defs#labelerViewerState",
···1568920766 "type": "integer",
1569020767 "minimum": 0,
1569120768 },
1569215692- "lookCount": {
1569315693- "type": "integer",
1569415694- "minimum": 0,
1569515695- },
1569620769 "viewer": {
1569720770 "type": "ref",
1569820771 "ref": "lex:so.sprk.labeler.defs#labelerViewerState",
···1570820781 "ref": "lex:com.atproto.label.defs#label",
1570920782 },
1571020783 },
2078420784+ "reasonTypes": {
2078520785+ "description":
2078620786+ "The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed.",
2078720787+ "type": "array",
2078820788+ "items": {
2078920789+ "type": "ref",
2079020790+ "ref": "lex:com.atproto.moderation.defs#reasonType",
2079120791+ },
2079220792+ },
2079320793+ "subjectTypes": {
2079420794+ "description":
2079520795+ "The set of subject types (account, record, etc) this service accepts reports on.",
2079620796+ "type": "array",
2079720797+ "items": {
2079820798+ "type": "ref",
2079920799+ "ref": "lex:com.atproto.moderation.defs#subjectType",
2080020800+ },
2080120801+ },
2080220802+ "subjectCollections": {
2080320803+ "type": "array",
2080420804+ "description":
2080520805+ "Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type.",
2080620806+ "items": {
2080720807+ "type": "string",
2080820808+ "format": "nsid",
2080920809+ },
2081020810+ },
1571120811 },
1571220812 },
1571320813 "labelerViewerState": {
1571420814 "type": "object",
1571520815 "properties": {
1571620816 "like": {
1571715717- "type": "string",
1571815718- "format": "at-uri",
1571915719- },
1572015720- "look": {
1572120817 "type": "string",
1572220818 "format": "at-uri",
1572320819 },
···1578020876 "type": "string",
1578120877 "format": "datetime",
1578220878 },
2087920879+ "reasonTypes": {
2088020880+ "description":
2088120881+ "The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed.",
2088220882+ "type": "array",
2088320883+ "items": {
2088420884+ "type": "ref",
2088520885+ "ref": "lex:com.atproto.moderation.defs#reasonType",
2088620886+ },
2088720887+ },
2088820888+ "subjectTypes": {
2088920889+ "description":
2089020890+ "The set of subject types (account, record, etc) this service accepts reports on.",
2089120891+ "type": "array",
2089220892+ "items": {
2089320893+ "type": "ref",
2089420894+ "ref": "lex:com.atproto.moderation.defs#subjectType",
2089520895+ },
2089620896+ },
2089720897+ "subjectCollections": {
2089820898+ "type": "array",
2089920899+ "description":
2090020900+ "Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type.",
2090120901+ "items": {
2090220902+ "type": "string",
2090320903+ "format": "nsid",
2090420904+ },
2090520905+ },
1578320906 },
1578420907 },
1578520908 },
···1605321176 },
1605421177 },
1605521178 },
2117921179+ "ComAtprotoTempDereferenceScope": {
2118021180+ "lexicon": 1,
2118121181+ "id": "com.atproto.temp.dereferenceScope",
2118221182+ "defs": {
2118321183+ "main": {
2118421184+ "type": "query",
2118521185+ "description":
2118621186+ "Allows finding the oauth permission scope from a reference",
2118721187+ "parameters": {
2118821188+ "type": "params",
2118921189+ "required": [
2119021190+ "scope",
2119121191+ ],
2119221192+ "properties": {
2119321193+ "scope": {
2119421194+ "type": "string",
2119521195+ "description": "The scope reference (starts with 'ref:')",
2119621196+ },
2119721197+ },
2119821198+ },
2119921199+ "output": {
2120021200+ "encoding": "application/json",
2120121201+ "schema": {
2120221202+ "type": "object",
2120321203+ "required": [
2120421204+ "scope",
2120521205+ ],
2120621206+ "properties": {
2120721207+ "scope": {
2120821208+ "type": "string",
2120921209+ "description": "The full oauth permission scope",
2121021210+ },
2121121211+ },
2121221212+ },
2121321213+ },
2121421214+ "errors": [
2121521215+ {
2121621216+ "name": "InvalidScopeReference",
2121721217+ "description": "An invalid scope reference was provided.",
2121821218+ },
2121921219+ ],
2122021220+ },
2122121221+ },
2122221222+ },
1605621223 "ComAtprotoTempAddReservedHandle": {
1605721224 "lexicon": 1,
1605821225 "id": "com.atproto.temp.addReservedHandle",
···1611421281 },
1611521282 },
1611621283 },
2128421284+ "ComAtprotoTempCheckHandleAvailability": {
2128521285+ "lexicon": 1,
2128621286+ "id": "com.atproto.temp.checkHandleAvailability",
2128721287+ "defs": {
2128821288+ "main": {
2128921289+ "type": "query",
2129021290+ "description":
2129121291+ "Checks whether the provided handle is available. If the handle is not available, available suggestions will be returned. Optional inputs will be used to generate suggestions.",
2129221292+ "parameters": {
2129321293+ "type": "params",
2129421294+ "required": [
2129521295+ "handle",
2129621296+ ],
2129721297+ "properties": {
2129821298+ "handle": {
2129921299+ "type": "string",
2130021300+ "format": "handle",
2130121301+ "description":
2130221302+ "Tentative handle. Will be checked for availability or used to build handle suggestions.",
2130321303+ },
2130421304+ "email": {
2130521305+ "type": "string",
2130621306+ "description":
2130721307+ "User-provided email. Might be used to build handle suggestions.",
2130821308+ },
2130921309+ "birthDate": {
2131021310+ "type": "string",
2131121311+ "format": "datetime",
2131221312+ "description":
2131321313+ "User-provided birth date. Might be used to build handle suggestions.",
2131421314+ },
2131521315+ },
2131621316+ },
2131721317+ "output": {
2131821318+ "encoding": "application/json",
2131921319+ "schema": {
2132021320+ "type": "object",
2132121321+ "required": [
2132221322+ "handle",
2132321323+ "result",
2132421324+ ],
2132521325+ "properties": {
2132621326+ "handle": {
2132721327+ "type": "string",
2132821328+ "format": "handle",
2132921329+ "description": "Echo of the input handle.",
2133021330+ },
2133121331+ "result": {
2133221332+ "type": "union",
2133321333+ "refs": [
2133421334+ "lex:com.atproto.temp.checkHandleAvailability#resultAvailable",
2133521335+ "lex:com.atproto.temp.checkHandleAvailability#resultUnavailable",
2133621336+ ],
2133721337+ },
2133821338+ },
2133921339+ },
2134021340+ },
2134121341+ "errors": [
2134221342+ {
2134321343+ "name": "InvalidEmail",
2134421344+ "description": "An invalid email was provided.",
2134521345+ },
2134621346+ ],
2134721347+ },
2134821348+ "resultAvailable": {
2134921349+ "type": "object",
2135021350+ "description": "Indicates the provided handle is available.",
2135121351+ "properties": {},
2135221352+ },
2135321353+ "resultUnavailable": {
2135421354+ "type": "object",
2135521355+ "description":
2135621356+ "Indicates the provided handle is unavailable and gives suggestions of available handles.",
2135721357+ "required": [
2135821358+ "suggestions",
2135921359+ ],
2136021360+ "properties": {
2136121361+ "suggestions": {
2136221362+ "type": "array",
2136321363+ "description":
2136421364+ "List of suggested handles based on the provided inputs.",
2136521365+ "items": {
2136621366+ "type": "ref",
2136721367+ "ref": "lex:com.atproto.temp.checkHandleAvailability#suggestion",
2136821368+ },
2136921369+ },
2137021370+ },
2137121371+ },
2137221372+ "suggestion": {
2137321373+ "type": "object",
2137421374+ "required": [
2137521375+ "handle",
2137621376+ "method",
2137721377+ ],
2137821378+ "properties": {
2137921379+ "handle": {
2138021380+ "type": "string",
2138121381+ "format": "handle",
2138221382+ },
2138321383+ "method": {
2138421384+ "type": "string",
2138521385+ "description":
2138621386+ "Method used to build this suggestion. Should be considered opaque to clients. Can be used for metrics.",
2138721387+ },
2138821388+ },
2138921389+ },
2139021390+ },
2139121391+ },
1611721392 "ComAtprotoTempRequestPhoneVerification": {
1611821393 "lexicon": 1,
1611921394 "id": "com.atproto.temp.requestPhoneVerification",
···1613221407 "properties": {
1613321408 "phoneNumber": {
1613421409 "type": "string",
2141021410+ },
2141121411+ },
2141221412+ },
2141321413+ },
2141421414+ },
2141521415+ },
2141621416+ },
2141721417+ "ComAtprotoTempRevokeAccountCredentials": {
2141821418+ "lexicon": 1,
2141921419+ "id": "com.atproto.temp.revokeAccountCredentials",
2142021420+ "defs": {
2142121421+ "main": {
2142221422+ "type": "procedure",
2142321423+ "description":
2142421424+ "Revoke sessions, password, and app passwords associated with account. May be resolved by a password reset.",
2142521425+ "input": {
2142621426+ "encoding": "application/json",
2142721427+ "schema": {
2142821428+ "type": "object",
2142921429+ "required": [
2143021430+ "account",
2143121431+ ],
2143221432+ "properties": {
2143321433+ "account": {
2143421434+ "type": "string",
2143521435+ "format": "at-identifier",
1613521436 },
1613621437 },
1613721438 },
···1620921510 },
1621021511 },
1621121512 },
2151321513+ "ComAtprotoIdentityDefs": {
2151421514+ "lexicon": 1,
2151521515+ "id": "com.atproto.identity.defs",
2151621516+ "defs": {
2151721517+ "identityInfo": {
2151821518+ "type": "object",
2151921519+ "required": [
2152021520+ "did",
2152121521+ "handle",
2152221522+ "didDoc",
2152321523+ ],
2152421524+ "properties": {
2152521525+ "did": {
2152621526+ "type": "string",
2152721527+ "format": "did",
2152821528+ },
2152921529+ "handle": {
2153021530+ "type": "string",
2153121531+ "format": "handle",
2153221532+ "description":
2153321533+ "The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document.",
2153421534+ },
2153521535+ "didDoc": {
2153621536+ "type": "unknown",
2153721537+ "description": "The complete DID document for the identity.",
2153821538+ },
2153921539+ },
2154021540+ },
2154121541+ },
2154221542+ },
1621221543 "ComAtprotoIdentitySignPlcOperation": {
1621321544 "lexicon": 1,
1621421545 "id": "com.atproto.identity.signPlcOperation",
···1629121622 },
1629221623 },
1629321624 },
2162521625+ "ComAtprotoIdentityResolveIdentity": {
2162621626+ "lexicon": 1,
2162721627+ "id": "com.atproto.identity.resolveIdentity",
2162821628+ "defs": {
2162921629+ "main": {
2163021630+ "type": "query",
2163121631+ "description":
2163221632+ "Resolves an identity (DID or Handle) to a full identity (DID document and verified handle).",
2163321633+ "parameters": {
2163421634+ "type": "params",
2163521635+ "required": [
2163621636+ "identifier",
2163721637+ ],
2163821638+ "properties": {
2163921639+ "identifier": {
2164021640+ "type": "string",
2164121641+ "format": "at-identifier",
2164221642+ "description": "Handle or DID to resolve.",
2164321643+ },
2164421644+ },
2164521645+ },
2164621646+ "output": {
2164721647+ "encoding": "application/json",
2164821648+ "schema": {
2164921649+ "type": "ref",
2165021650+ "ref": "lex:com.atproto.identity.defs#identityInfo",
2165121651+ },
2165221652+ },
2165321653+ "errors": [
2165421654+ {
2165521655+ "name": "HandleNotFound",
2165621656+ "description":
2165721657+ "The resolution process confirmed that the handle does not resolve to any DID.",
2165821658+ },
2165921659+ {
2166021660+ "name": "DidNotFound",
2166121661+ "description":
2166221662+ "The DID resolution process confirmed that there is no current DID.",
2166321663+ },
2166421664+ {
2166521665+ "name": "DidDeactivated",
2166621666+ "description":
2166721667+ "The DID previously existed, but has been deactivated.",
2166821668+ },
2166921669+ ],
2167021670+ },
2167121671+ },
2167221672+ },
2167321673+ "ComAtprotoIdentityRefreshIdentity": {
2167421674+ "lexicon": 1,
2167521675+ "id": "com.atproto.identity.refreshIdentity",
2167621676+ "defs": {
2167721677+ "main": {
2167821678+ "type": "procedure",
2167921679+ "description":
2168021680+ "Request that the server re-resolve an identity (DID and handle). The server may ignore this request, or require authentication, depending on the role, implementation, and policy of the server.",
2168121681+ "input": {
2168221682+ "encoding": "application/json",
2168321683+ "schema": {
2168421684+ "type": "object",
2168521685+ "required": [
2168621686+ "identifier",
2168721687+ ],
2168821688+ "properties": {
2168921689+ "identifier": {
2169021690+ "type": "string",
2169121691+ "format": "at-identifier",
2169221692+ },
2169321693+ },
2169421694+ },
2169521695+ },
2169621696+ "output": {
2169721697+ "encoding": "application/json",
2169821698+ "schema": {
2169921699+ "type": "ref",
2170021700+ "ref": "lex:com.atproto.identity.defs#identityInfo",
2170121701+ },
2170221702+ },
2170321703+ "errors": [
2170421704+ {
2170521705+ "name": "HandleNotFound",
2170621706+ "description":
2170721707+ "The resolution process confirmed that the handle does not resolve to any DID.",
2170821708+ },
2170921709+ {
2171021710+ "name": "DidNotFound",
2171121711+ "description":
2171221712+ "The DID resolution process confirmed that there is no current DID.",
2171321713+ },
2171421714+ {
2171521715+ "name": "DidDeactivated",
2171621716+ "description":
2171721717+ "The DID previously existed, but has been deactivated.",
2171821718+ },
2171921719+ ],
2172021720+ },
2172121721+ },
2172221722+ },
1629421723 "ComAtprotoIdentityResolveHandle": {
1629521724 "lexicon": 1,
1629621725 "id": "com.atproto.identity.resolveHandle",
1629721726 "defs": {
1629821727 "main": {
1629921728 "type": "query",
1630016300- "description": "Resolves a handle (domain name) to a DID.",
2172921729+ "description":
2173021730+ "Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document.",
1630121731 "parameters": {
1630221732 "type": "params",
1630321733 "required": [
···1632621756 },
1632721757 },
1632821758 },
2175921759+ "errors": [
2176021760+ {
2176121761+ "name": "HandleNotFound",
2176221762+ "description":
2176321763+ "The resolution process confirmed that the handle does not resolve to any DID.",
2176421764+ },
2176521765+ ],
1632921766 },
1633021767 },
1633121768 },
···1637621813 },
1637721814 },
1637821815 },
2181621816+ },
2181721817+ },
2181821818+ },
2181921819+ "ComAtprotoIdentityResolveDid": {
2182021820+ "lexicon": 1,
2182121821+ "id": "com.atproto.identity.resolveDid",
2182221822+ "defs": {
2182321823+ "main": {
2182421824+ "type": "query",
2182521825+ "description":
2182621826+ "Resolves DID to DID document. Does not bi-directionally verify handle.",
2182721827+ "parameters": {
2182821828+ "type": "params",
2182921829+ "required": [
2183021830+ "did",
2183121831+ ],
2183221832+ "properties": {
2183321833+ "did": {
2183421834+ "type": "string",
2183521835+ "format": "did",
2183621836+ "description": "DID to resolve.",
2183721837+ },
2183821838+ },
2183921839+ },
2184021840+ "output": {
2184121841+ "encoding": "application/json",
2184221842+ "schema": {
2184321843+ "type": "object",
2184421844+ "required": [
2184521845+ "didDoc",
2184621846+ ],
2184721847+ "properties": {
2184821848+ "didDoc": {
2184921849+ "type": "unknown",
2185021850+ "description": "The complete DID document for the identity.",
2185121851+ },
2185221852+ },
2185321853+ },
2185421854+ },
2185521855+ "errors": [
2185621856+ {
2185721857+ "name": "DidNotFound",
2185821858+ "description":
2185921859+ "The DID resolution process confirmed that there is no current DID.",
2186021860+ },
2186121861+ {
2186221862+ "name": "DidDeactivated",
2186321863+ "description":
2186421864+ "The DID previously existed, but has been deactivated.",
2186521865+ },
2186621866+ ],
1637921867 },
1638021868 },
1638121869 },
···1677822266 "type": "ref",
1677922267 "ref": "lex:com.atproto.server.defs#inviteCode",
1678022268 },
2226922269+ },
2227022270+ },
2227122271+ },
2227222272+ },
2227322273+ },
2227422274+ },
2227522275+ },
2227622276+ "ComAtprotoAdminUpdateAccountSigningKey": {
2227722277+ "lexicon": 1,
2227822278+ "id": "com.atproto.admin.updateAccountSigningKey",
2227922279+ "defs": {
2228022280+ "main": {
2228122281+ "type": "procedure",
2228222282+ "description":
2228322283+ "Administrative action to update an account's signing key in their Did document.",
2228422284+ "input": {
2228522285+ "encoding": "application/json",
2228622286+ "schema": {
2228722287+ "type": "object",
2228822288+ "required": [
2228922289+ "did",
2229022290+ "signingKey",
2229122291+ ],
2229222292+ "properties": {
2229322293+ "did": {
2229422294+ "type": "string",
2229522295+ "format": "did",
2229622296+ },
2229722297+ "signingKey": {
2229822298+ "type": "string",
2229922299+ "format": "did",
2230022300+ "description": "Did-key formatted public key",
1678122301 },
1678222302 },
1678322303 },
···1861824138 },
1861924139 },
1862024140 },
2414124141+ "ComAtprotoLexiconResolveLexicon": {
2414224142+ "lexicon": 1,
2414324143+ "id": "com.atproto.lexicon.resolveLexicon",
2414424144+ "defs": {
2414524145+ "main": {
2414624146+ "type": "query",
2414724147+ "description": "Resolves an atproto lexicon (NSID) to a schema.",
2414824148+ "parameters": {
2414924149+ "type": "params",
2415024150+ "properties": {
2415124151+ "nsid": {
2415224152+ "format": "nsid",
2415324153+ "type": "string",
2415424154+ "description": "The lexicon NSID to resolve.",
2415524155+ },
2415624156+ },
2415724157+ "required": [
2415824158+ "nsid",
2415924159+ ],
2416024160+ },
2416124161+ "output": {
2416224162+ "encoding": "application/json",
2416324163+ "schema": {
2416424164+ "type": "object",
2416524165+ "properties": {
2416624166+ "cid": {
2416724167+ "type": "string",
2416824168+ "format": "cid",
2416924169+ "description": "The CID of the lexicon schema record.",
2417024170+ },
2417124171+ "schema": {
2417224172+ "type": "ref",
2417324173+ "ref": "lex:com.atproto.lexicon.schema#main",
2417424174+ "description": "The resolved lexicon schema record.",
2417524175+ },
2417624176+ "uri": {
2417724177+ "type": "string",
2417824178+ "format": "at-uri",
2417924179+ "description": "The AT-URI of the lexicon schema record.",
2418024180+ },
2418124181+ },
2418224182+ "required": [
2418324183+ "uri",
2418424184+ "cid",
2418524185+ "schema",
2418624186+ ],
2418724187+ },
2418824188+ },
2418924189+ "errors": [
2419024190+ {
2419124191+ "description": "No lexicon was resolved for the NSID.",
2419224192+ "name": "LexiconNotFound",
2419324193+ },
2419424194+ ],
2419524195+ },
2419624196+ },
2419724197+ },
1862124198 "ComAtprotoLexiconSchema": {
1862224199 "lexicon": 1,
1862324200 "id": "com.atproto.lexicon.schema",
···1875824335 },
1875924336 "since": {
1876024337 "type": "string",
2433824338+ "format": "tid",
1876124339 "description":
1876224340 "The revision ('rev') of the repo to create a diff from.",
1876324341 },
···1879024368 "main": {
1879124369 "type": "procedure",
1879224370 "description":
1879318793- "Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay.",
2437124371+ "Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay. DEPRECATED: just use com.atproto.sync.requestCrawl",
1879424372 "input": {
1879524373 "encoding": "application/json",
1879624374 "schema": {
···1881024388 },
1881124389 },
1881224390 },
2439124391+ "ComAtprotoSyncDefs": {
2439224392+ "lexicon": 1,
2439324393+ "id": "com.atproto.sync.defs",
2439424394+ "defs": {
2439524395+ "hostStatus": {
2439624396+ "type": "string",
2439724397+ "knownValues": [
2439824398+ "active",
2439924399+ "idle",
2440024400+ "offline",
2440124401+ "throttled",
2440224402+ "banned",
2440324403+ ],
2440424404+ },
2440524405+ },
2440624406+ },
1881324407 "ComAtprotoSyncRequestCrawl": {
1881424408 "lexicon": 1,
1881524409 "id": "com.atproto.sync.requestCrawl",
···1883424428 },
1883524429 },
1883624430 },
2443124431+ "errors": [
2443224432+ {
2443324433+ "name": "HostBanned",
2443424434+ },
2443524435+ ],
1883724436 },
1883824437 },
1883924438 },
···1885824457 },
1885924458 "since": {
1886024459 "type": "string",
2446024460+ "format": "tid",
1886124461 "description":
1886224462 "Optional revision of the repo to list blobs since.",
1886324463 },
···1894624546 },
1894724547 "rev": {
1894824548 "type": "string",
2454924549+ "format": "tid",
1894924550 },
1895024551 },
1895124552 },
···1899024591 "type": "union",
1899124592 "refs": [
1899224593 "lex:com.atproto.sync.subscribeRepos#commit",
2459424594+ "lex:com.atproto.sync.subscribeRepos#sync",
1899324595 "lex:com.atproto.sync.subscribeRepos#identity",
1899424596 "lex:com.atproto.sync.subscribeRepos#account",
1899518995- "lex:com.atproto.sync.subscribeRepos#handle",
1899618996- "lex:com.atproto.sync.subscribeRepos#migrate",
1899718997- "lex:com.atproto.sync.subscribeRepos#tombstone",
1899824597 "lex:com.atproto.sync.subscribeRepos#info",
1899924598 ],
1900024599 },
···1902824627 "time",
1902924628 ],
1903024629 "nullable": [
1903119031- "prev",
1903224630 "since",
1903324631 ],
1903424632 "properties": {
···1904324641 "tooBig": {
1904424642 "type": "boolean",
1904524643 "description":
1904619046- "Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data.",
2464424644+ "DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data.",
1904724645 },
1904824646 "repo": {
1904924647 "type": "string",
1905024648 "format": "did",
1905119051- "description": "The repo this event comes from.",
2464924649+ "description":
2465024650+ "The repo this event comes from. Note that all other message types name this field 'did'.",
1905224651 },
1905324652 "commit": {
1905424653 "type": "cid-link",
1905524654 "description": "Repo commit object CID.",
1905624655 },
1905719057- "prev": {
1905819058- "type": "cid-link",
1905919059- "description":
1906019060- "DEPRECATED -- unused. WARNING -- nullable and optional; stick with optional to ensure golang interoperability.",
1906119061- },
1906224656 "rev": {
1906324657 "type": "string",
2465824658+ "format": "tid",
1906424659 "description":
1906524660 "The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event.",
1906624661 },
1906724662 "since": {
1906824663 "type": "string",
2466424664+ "format": "tid",
1906924665 "description":
1907024666 "The rev of the last emitted commit from this repo (if any).",
1907124667 },
1907224668 "blocks": {
1907324669 "type": "bytes",
1907424670 "description":
1907519075- "CAR file containing relevant blocks, as a diff since the previous repo state.",
1907619076- "maxLength": 1000000,
2467124671+ "CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list.",
2467224672+ "maxLength": 2000000,
1907724673 },
1907824674 "ops": {
1907924675 "type": "array",
···1909024686 "items": {
1909124687 "type": "cid-link",
1909224688 "description":
1909319093- "List of new blobs (by CID) referenced by records in this commit.",
2468924689+ "DEPRECATED -- will soon always be empty. List of new blobs (by CID) referenced by records in this commit.",
1909424690 },
1909524691 },
2469224692+ "prevData": {
2469324693+ "type": "cid-link",
2469424694+ "description":
2469524695+ "The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose.",
2469624696+ },
1909624697 "time": {
1909724698 "type": "string",
1909824699 "format": "datetime",
···1910124702 },
1910224703 },
1910324704 },
1910419104- "identity": {
2470524705+ "sync": {
1910524706 "type": "object",
1910624707 "description":
1910719107- "Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache.",
2470824708+ "Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository.",
1910824709 "required": [
1910924710 "seq",
1911024711 "did",
2471224712+ "blocks",
2471324713+ "rev",
1911124714 "time",
1911224715 ],
1911324716 "properties": {
1911424717 "seq": {
1911524718 "type": "integer",
2471924719+ "description": "The stream sequence number of this message.",
1911624720 },
1911724721 "did": {
1911824722 "type": "string",
1911924723 "format": "did",
2472424724+ "description":
2472524725+ "The account this repo event corresponds to. Must match that in the commit object.",
1912024726 },
1912119121- "time": {
2472724727+ "blocks": {
2472824728+ "type": "bytes",
2472924729+ "description":
2473024730+ "CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'.",
2473124731+ "maxLength": 10000,
2473224732+ },
2473324733+ "rev": {
1912224734 "type": "string",
1912319123- "format": "datetime",
2473524735+ "description":
2473624736+ "The rev of the commit. This value must match that in the commit object.",
1912424737 },
1912519125- "handle": {
2473824738+ "time": {
1912624739 "type": "string",
1912719127- "format": "handle",
2474024740+ "format": "datetime",
1912824741 "description":
1912919129- "The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details.",
2474224742+ "Timestamp of when this message was originally broadcast.",
1913024743 },
1913124744 },
1913224745 },
1913319133- "account": {
2474624746+ "identity": {
1913424747 "type": "object",
1913524748 "description":
1913619136- "Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active.",
2474924749+ "Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache.",
1913724750 "required": [
1913824751 "seq",
1913924752 "did",
1914024753 "time",
1914119141- "active",
1914224754 ],
1914324755 "properties": {
1914424756 "seq": {
···1915224764 "type": "string",
1915324765 "format": "datetime",
1915424766 },
1915519155- "active": {
1915619156- "type": "boolean",
1915719157- "description":
1915819158- "Indicates that the account has a repository which can be fetched from the host that emitted this event.",
1915919159- },
1916019160- "status": {
1916119161- "type": "string",
1916219162- "description":
1916319163- "If active=false, this optional field indicates a reason for why the account is not active.",
1916419164- "knownValues": [
1916519165- "takendown",
1916619166- "suspended",
1916719167- "deleted",
1916819168- "deactivated",
1916919169- ],
1917019170- },
1917119171- },
1917219172- },
1917319173- "handle": {
1917419174- "type": "object",
1917519175- "description": "DEPRECATED -- Use #identity event instead",
1917619176- "required": [
1917719177- "seq",
1917819178- "did",
1917919179- "handle",
1918019180- "time",
1918119181- ],
1918219182- "properties": {
1918319183- "seq": {
1918419184- "type": "integer",
1918519185- },
1918619186- "did": {
1918719187- "type": "string",
1918819188- "format": "did",
1918919189- },
1919024767 "handle": {
1919124768 "type": "string",
1919224769 "format": "handle",
1919319193- },
1919419194- "time": {
1919519195- "type": "string",
1919619196- "format": "datetime",
2477024770+ "description":
2477124771+ "The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details.",
1919724772 },
1919824773 },
1919924774 },
1920019200- "migrate": {
2477524775+ "account": {
1920124776 "type": "object",
1920219202- "description": "DEPRECATED -- Use #account event instead",
2477724777+ "description":
2477824778+ "Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active.",
1920324779 "required": [
1920424780 "seq",
1920524781 "did",
1920619206- "migrateTo",
1920724782 "time",
1920819208- ],
1920919209- "nullable": [
1921019210- "migrateTo",
2478324783+ "active",
1921124784 ],
1921224785 "properties": {
1921324786 "seq": {
···1921724790 "type": "string",
1921824791 "format": "did",
1921924792 },
1922019220- "migrateTo": {
1922119221- "type": "string",
1922219222- },
1922324793 "time": {
1922424794 "type": "string",
1922524795 "format": "datetime",
1922624796 },
1922719227- },
1922819228- },
1922919229- "tombstone": {
1923019230- "type": "object",
1923119231- "description": "DEPRECATED -- Use #account event instead",
1923219232- "required": [
1923319233- "seq",
1923419234- "did",
1923519235- "time",
1923619236- ],
1923719237- "properties": {
1923819238- "seq": {
1923919239- "type": "integer",
2479724797+ "active": {
2479824798+ "type": "boolean",
2479924799+ "description":
2480024800+ "Indicates that the account has a repository which can be fetched from the host that emitted this event.",
1924024801 },
1924119241- "did": {
2480224802+ "status": {
1924224803 "type": "string",
1924319243- "format": "did",
1924419244- },
1924519245- "time": {
1924619246- "type": "string",
1924719247- "format": "datetime",
2480424804+ "description":
2480524805+ "If active=false, this optional field indicates a reason for why the account is not active.",
2480624806+ "knownValues": [
2480724807+ "takendown",
2480824808+ "suspended",
2480924809+ "deleted",
2481024810+ "deactivated",
2481124811+ "desynchronized",
2481224812+ "throttled",
2481324813+ ],
1924824814 },
1924924815 },
1925024816 },
···1929324859 "description":
1929424860 "For creates and updates, the new record CID. For deletions, null.",
1929524861 },
2486224862+ "prev": {
2486324863+ "type": "cid-link",
2486424864+ "description":
2486524865+ "For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined.",
2486624866+ },
1929624867 },
1929724868 },
1929824869 },
···1934124912 "knownValues": [
1934224913 "takendown",
1934324914 "suspended",
2491524915+ "deleted",
1934424916 "deactivated",
2491724917+ "desynchronized",
2491824918+ "throttled",
1934524919 ],
1934624920 },
1934724921 "rev": {
1934824922 "type": "string",
2492324923+ "format": "tid",
1934924924 "description":
1935024925 "Optional field, the current rev of the repo, if active=true",
1935124926 },
···1938824963 "rkey": {
1938924964 "type": "string",
1939024965 "description": "Record Key",
1939119391- },
1939219392- "commit": {
1939319393- "type": "string",
1939419394- "format": "cid",
1939519395- "description":
1939619396- "DEPRECATED: referenced a repo commit by CID, and retrieved record as of that commit",
2496624966+ "format": "record-key",
1939724967 },
1939824968 },
1939924969 },
···1942024990 },
1942124991 },
1942224992 },
2499324993+ "ComAtprotoSyncListHosts": {
2499424994+ "lexicon": 1,
2499524995+ "id": "com.atproto.sync.listHosts",
2499624996+ "defs": {
2499724997+ "main": {
2499824998+ "type": "query",
2499924999+ "description":
2500025000+ "Enumerates upstream hosts (eg, PDS or relay instances) that this service consumes from. Implemented by relays.",
2500125001+ "parameters": {
2500225002+ "type": "params",
2500325003+ "properties": {
2500425004+ "limit": {
2500525005+ "type": "integer",
2500625006+ "minimum": 1,
2500725007+ "maximum": 1000,
2500825008+ "default": 200,
2500925009+ },
2501025010+ "cursor": {
2501125011+ "type": "string",
2501225012+ },
2501325013+ },
2501425014+ },
2501525015+ "output": {
2501625016+ "encoding": "application/json",
2501725017+ "schema": {
2501825018+ "type": "object",
2501925019+ "required": [
2502025020+ "hosts",
2502125021+ ],
2502225022+ "properties": {
2502325023+ "cursor": {
2502425024+ "type": "string",
2502525025+ },
2502625026+ "hosts": {
2502725027+ "type": "array",
2502825028+ "items": {
2502925029+ "type": "ref",
2503025030+ "ref": "lex:com.atproto.sync.listHosts#host",
2503125031+ },
2503225032+ "description":
2503325033+ "Sort order is not formally specified. Recommended order is by time host was first seen by the server, with oldest first.",
2503425034+ },
2503525035+ },
2503625036+ },
2503725037+ },
2503825038+ },
2503925039+ "host": {
2504025040+ "type": "object",
2504125041+ "required": [
2504225042+ "hostname",
2504325043+ ],
2504425044+ "properties": {
2504525045+ "hostname": {
2504625046+ "type": "string",
2504725047+ "description": "hostname of server; not a URL (no scheme)",
2504825048+ },
2504925049+ "seq": {
2505025050+ "type": "integer",
2505125051+ "description":
2505225052+ "Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor).",
2505325053+ },
2505425054+ "accountCount": {
2505525055+ "type": "integer",
2505625056+ },
2505725057+ "status": {
2505825058+ "type": "ref",
2505925059+ "ref": "lex:com.atproto.sync.defs#hostStatus",
2506025060+ },
2506125061+ },
2506225062+ },
2506325063+ },
2506425064+ },
1942325065 "ComAtprotoSyncListRepos": {
1942425066 "lexicon": 1,
1942525067 "id": "com.atproto.sync.listRepos",
···1948325125 },
1948425126 "rev": {
1948525127 "type": "string",
2512825128+ "format": "tid",
1948625129 },
1948725130 "active": {
1948825131 "type": "boolean",
···1949425137 "knownValues": [
1949525138 "takendown",
1949625139 "suspended",
2514025140+ "deleted",
1949725141 "deactivated",
2514225142+ "desynchronized",
2514325143+ "throttled",
1949825144 ],
1949925145 },
1950025146 },
1950125147 },
1950225148 },
1950325149 },
2515025150+ "ComAtprotoSyncGetHostStatus": {
2515125151+ "lexicon": 1,
2515225152+ "id": "com.atproto.sync.getHostStatus",
2515325153+ "defs": {
2515425154+ "main": {
2515525155+ "type": "query",
2515625156+ "description":
2515725157+ "Returns information about a specified upstream host, as consumed by the server. Implemented by relays.",
2515825158+ "parameters": {
2515925159+ "type": "params",
2516025160+ "required": [
2516125161+ "hostname",
2516225162+ ],
2516325163+ "properties": {
2516425164+ "hostname": {
2516525165+ "type": "string",
2516625166+ "description":
2516725167+ "Hostname of the host (eg, PDS or relay) being queried.",
2516825168+ },
2516925169+ },
2517025170+ },
2517125171+ "output": {
2517225172+ "encoding": "application/json",
2517325173+ "schema": {
2517425174+ "type": "object",
2517525175+ "required": [
2517625176+ "hostname",
2517725177+ ],
2517825178+ "properties": {
2517925179+ "hostname": {
2518025180+ "type": "string",
2518125181+ },
2518225182+ "seq": {
2518325183+ "type": "integer",
2518425184+ "description":
2518525185+ "Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor).",
2518625186+ },
2518725187+ "accountCount": {
2518825188+ "type": "integer",
2518925189+ "description":
2519025190+ "Number of accounts on the server which are associated with the upstream host. Note that the upstream may actually have more accounts.",
2519125191+ },
2519225192+ "status": {
2519325193+ "type": "ref",
2519425194+ "ref": "lex:com.atproto.sync.defs#hostStatus",
2519525195+ },
2519625196+ },
2519725197+ },
2519825198+ },
2519925199+ "errors": [
2520025200+ {
2520125201+ "name": "HostNotFound",
2520225202+ },
2520325203+ ],
2520425204+ },
2520525205+ },
2520625206+ },
1950425207 "ComAtprotoSyncGetBlocks": {
1950525208 "lexicon": 1,
1950625209 "id": "com.atproto.sync.getBlocks",
···1968825391 },
1968925392 "rev": {
1969025393 "type": "string",
2539425394+ "format": "tid",
1969125395 },
1969225396 },
1969325397 },
···1978725491 },
1978825492 "rkey": {
1978925493 "type": "string",
2549425494+ "format": "record-key",
1979025495 "description": "The Record Key.",
1979125496 "maxLength": 512,
1979225497 },
···1988025585 },
1988125586 "rkey": {
1988225587 "type": "string",
2558825588+ "format": "record-key",
1988325589 "description": "The Record Key.",
1988425590 },
1988525591 "swapRecord": {
···1995225658 },
1995325659 "rkey": {
1995425660 "type": "string",
2566125661+ "format": "record-key",
1995525662 "description": "The Record Key.",
1995625663 "maxLength": 512,
1995725664 },
···2029225999 "rkey": {
2029326000 "type": "string",
2029426001 "maxLength": 512,
2600226002+ "format": "record-key",
2600326003+ "description":
2600426004+ "NOTE: maxLength is redundant with record-key format. Keeping it temporarily to ensure backwards compatibility.",
2029526005 },
2029626006 "value": {
2029726007 "type": "unknown",
···2031326023 },
2031426024 "rkey": {
2031526025 "type": "string",
2602626026+ "format": "record-key",
2031626027 },
2031726028 "value": {
2031826029 "type": "unknown",
···2033326044 },
2033426045 "rkey": {
2033526046 "type": "string",
2604726047+ "format": "record-key",
2033626048 },
2033726049 },
2033826050 },
···2042626138 "cursor": {
2042726139 "type": "string",
2042826140 },
2042920429- "rkeyStart": {
2043020430- "type": "string",
2043120431- "description":
2043220432- "DEPRECATED: The lowest sort-ordered rkey to start from (exclusive)",
2043320433- },
2043420434- "rkeyEnd": {
2043520435- "type": "string",
2043620436- "description":
2043720437- "DEPRECATED: The highest sort-ordered rkey to stop at (exclusive)",
2043820438- },
2043926141 "reverse": {
2044026142 "type": "boolean",
2044126143 "description":
···2050226204 "com.atproto.moderation.defs#reasonRude",
2050326205 "com.atproto.moderation.defs#reasonOther",
2050426206 "com.atproto.moderation.defs#reasonAppeal",
2620726207+ "tools.ozone.report.defs#reasonAppeal",
2620826208+ "tools.ozone.report.defs#reasonOther",
2620926209+ "tools.ozone.report.defs#reasonViolenceAnimal",
2621026210+ "tools.ozone.report.defs#reasonViolenceThreats",
2621126211+ "tools.ozone.report.defs#reasonViolenceGraphicContent",
2621226212+ "tools.ozone.report.defs#reasonViolenceGlorification",
2621326213+ "tools.ozone.report.defs#reasonViolenceExtremistContent",
2621426214+ "tools.ozone.report.defs#reasonViolenceTrafficking",
2621526215+ "tools.ozone.report.defs#reasonViolenceOther",
2621626216+ "tools.ozone.report.defs#reasonSexualAbuseContent",
2621726217+ "tools.ozone.report.defs#reasonSexualNCII",
2621826218+ "tools.ozone.report.defs#reasonSexualDeepfake",
2621926219+ "tools.ozone.report.defs#reasonSexualAnimal",
2622026220+ "tools.ozone.report.defs#reasonSexualUnlabeled",
2622126221+ "tools.ozone.report.defs#reasonSexualOther",
2622226222+ "tools.ozone.report.defs#reasonChildSafetyCSAM",
2622326223+ "tools.ozone.report.defs#reasonChildSafetyGroom",
2622426224+ "tools.ozone.report.defs#reasonChildSafetyPrivacy",
2622526225+ "tools.ozone.report.defs#reasonChildSafetyHarassment",
2622626226+ "tools.ozone.report.defs#reasonChildSafetyOther",
2622726227+ "tools.ozone.report.defs#reasonHarassmentTroll",
2622826228+ "tools.ozone.report.defs#reasonHarassmentTargeted",
2622926229+ "tools.ozone.report.defs#reasonHarassmentHateSpeech",
2623026230+ "tools.ozone.report.defs#reasonHarassmentDoxxing",
2623126231+ "tools.ozone.report.defs#reasonHarassmentOther",
2623226232+ "tools.ozone.report.defs#reasonMisleadingBot",
2623326233+ "tools.ozone.report.defs#reasonMisleadingImpersonation",
2623426234+ "tools.ozone.report.defs#reasonMisleadingSpam",
2623526235+ "tools.ozone.report.defs#reasonMisleadingScam",
2623626236+ "tools.ozone.report.defs#reasonMisleadingElections",
2623726237+ "tools.ozone.report.defs#reasonMisleadingOther",
2623826238+ "tools.ozone.report.defs#reasonRuleSiteSecurity",
2623926239+ "tools.ozone.report.defs#reasonRuleProhibitedSales",
2624026240+ "tools.ozone.report.defs#reasonRuleBanEvasion",
2624126241+ "tools.ozone.report.defs#reasonRuleOther",
2624226242+ "tools.ozone.report.defs#reasonSelfHarmContent",
2624326243+ "tools.ozone.report.defs#reasonSelfHarmED",
2624426244+ "tools.ozone.report.defs#reasonSelfHarmStunts",
2624526245+ "tools.ozone.report.defs#reasonSelfHarmSubstances",
2624626246+ "tools.ozone.report.defs#reasonSelfHarmOther",
2050526247 ],
2050626248 },
2050726249 "reasonSpam": {
2050826250 "type": "token",
2050920509- "description": "Spam: frequent unwanted promotion, replies, mentions",
2625126251+ "description":
2625226252+ "Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`.",
2051026253 },
2051126254 "reasonViolation": {
2051226255 "type": "token",
2051326256 "description":
2051420514- "Direct violation of server rules, laws, terms of service",
2625726257+ "Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`.",
2051526258 },
2051626259 "reasonMisleading": {
2051726260 "type": "token",
2051820518- "description": "Misleading identity, affiliation, or content",
2626126261+ "description":
2626226262+ "Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`.",
2051926263 },
2052026264 "reasonSexual": {
2052126265 "type": "token",
2052220522- "description": "Unwanted or mislabeled sexual content",
2626626266+ "description":
2626726267+ "Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`.",
2052326268 },
2052426269 "reasonRude": {
2052526270 "type": "token",
2052626271 "description":
2052720527- "Rude, harassing, explicit, or otherwise unwelcoming behavior",
2627226272+ "Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`.",
2052826273 },
2052926274 "reasonOther": {
2053026275 "type": "token",
2053126276 "description":
2053220532- "Other: reports not falling under another report category",
2627726277+ "Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonOther`.",
2053326278 },
2053426279 "reasonAppeal": {
2053526280 "type": "token",
2053620536- "description": "Appeal: appeal a previously taken moderation action",
2628126281+ "description": "Appeal a previously taken moderation action",
2053726282 },
2053826283 "subjectType": {
2053926284 "type": "string",
···2058426329 "lex:com.atproto.repo.strongRef",
2058526330 ],
2058626331 },
2633226332+ "modTool": {
2633326333+ "type": "ref",
2633426334+ "ref": "lex:com.atproto.moderation.createReport#modTool",
2633526335+ },
2058726336 },
2058826337 },
2058926338 },
···2063026379 },
2063126380 },
2063226381 },
2638226382+ "modTool": {
2638326383+ "type": "object",
2638426384+ "description":
2638526385+ "Moderation tool information for tracing the source of the action",
2638626386+ "required": [
2638726387+ "name",
2638826388+ ],
2638926389+ "properties": {
2639026390+ "name": {
2639126391+ "type": "string",
2639226392+ "description":
2639326393+ "Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome')",
2639426394+ },
2639526395+ "meta": {
2639626396+ "type": "unknown",
2639726397+ "description": "Additional arbitrary metadata about the source",
2639826398+ },
2639926399+ },
2640026400+ },
2063326401 },
2063426402 },
2063526403} as Record<string, LexiconDoc>;
···2067326441 ToolsOzoneSignatureFindRelatedAccounts:
2067426442 "tools.ozone.signature.findRelatedAccounts",
2067526443 ToolsOzoneServerGetConfig: "tools.ozone.server.getConfig",
2644426444+ ToolsOzoneVerificationRevokeVerifications:
2644526445+ "tools.ozone.verification.revokeVerifications",
2644626446+ ToolsOzoneVerificationDefs: "tools.ozone.verification.defs",
2644726447+ ToolsOzoneVerificationGrantVerifications:
2644826448+ "tools.ozone.verification.grantVerifications",
2644926449+ ToolsOzoneVerificationListVerifications:
2645026450+ "tools.ozone.verification.listVerifications",
2645126451+ ToolsOzoneSafelinkDefs: "tools.ozone.safelink.defs",
2645226452+ ToolsOzoneSafelinkAddRule: "tools.ozone.safelink.addRule",
2645326453+ ToolsOzoneSafelinkRemoveRule: "tools.ozone.safelink.removeRule",
2645426454+ ToolsOzoneSafelinkUpdateRule: "tools.ozone.safelink.updateRule",
2645526455+ ToolsOzoneSafelinkQueryEvents: "tools.ozone.safelink.queryEvents",
2645626456+ ToolsOzoneSafelinkQueryRules: "tools.ozone.safelink.queryRules",
2067626457 ToolsOzoneTeamListMembers: "tools.ozone.team.listMembers",
2067726458 ToolsOzoneTeamDefs: "tools.ozone.team.defs",
2067826459 ToolsOzoneTeamDeleteMember: "tools.ozone.team.deleteMember",
2067926460 ToolsOzoneTeamUpdateMember: "tools.ozone.team.updateMember",
2068026461 ToolsOzoneTeamAddMember: "tools.ozone.team.addMember",
2646226462+ ToolsOzoneHostingGetAccountHistory: "tools.ozone.hosting.getAccountHistory",
2646326463+ ToolsOzoneReportDefs: "tools.ozone.report.defs",
2068126464 ToolsOzoneCommunicationDefs: "tools.ozone.communication.defs",
2068226465 ToolsOzoneCommunicationUpdateTemplate:
2068326466 "tools.ozone.communication.updateTemplate",
···2070026483 ToolsOzoneSettingUpsertOption: "tools.ozone.setting.upsertOption",
2070126484 ToolsOzoneModerationGetReporterStats:
2070226485 "tools.ozone.moderation.getReporterStats",
2648626486+ ToolsOzoneModerationCancelScheduledActions:
2648726487+ "tools.ozone.moderation.cancelScheduledActions",
2648826488+ ToolsOzoneModerationListScheduledActions:
2648926489+ "tools.ozone.moderation.listScheduledActions",
2070326490 ToolsOzoneModerationQueryStatuses: "tools.ozone.moderation.queryStatuses",
2070426491 ToolsOzoneModerationGetRepo: "tools.ozone.moderation.getRepo",
2070526492 ToolsOzoneModerationDefs: "tools.ozone.moderation.defs",
2649326493+ ToolsOzoneModerationGetSubjects: "tools.ozone.moderation.getSubjects",
2070626494 ToolsOzoneModerationGetRecords: "tools.ozone.moderation.getRecords",
2649526495+ ToolsOzoneModerationScheduleAction: "tools.ozone.moderation.scheduleAction",
2070726496 ToolsOzoneModerationGetEvent: "tools.ozone.moderation.getEvent",
2070826497 ToolsOzoneModerationQueryEvents: "tools.ozone.moderation.queryEvents",
2070926498 ToolsOzoneModerationGetRecord: "tools.ozone.moderation.getRecord",
2071026499 ToolsOzoneModerationEmitEvent: "tools.ozone.moderation.emitEvent",
2071126500 ToolsOzoneModerationSearchRepos: "tools.ozone.moderation.searchRepos",
2650126501+ ToolsOzoneModerationGetAccountTimeline:
2650226502+ "tools.ozone.moderation.getAccountTimeline",
2071226503 ToolsOzoneModerationGetRepos: "tools.ozone.moderation.getRepos",
2071326504 AppBskyVideoUploadVideo: "app.bsky.video.uploadVideo",
2071426505 AppBskyVideoDefs: "app.bsky.video.defs",
2071526506 AppBskyVideoGetJobStatus: "app.bsky.video.getJobStatus",
2071626507 AppBskyVideoGetUploadLimits: "app.bsky.video.getUploadLimits",
2650826508+ AppBskyBookmarkDefs: "app.bsky.bookmark.defs",
2650926509+ AppBskyBookmarkDeleteBookmark: "app.bsky.bookmark.deleteBookmark",
2651026510+ AppBskyBookmarkGetBookmarks: "app.bsky.bookmark.getBookmarks",
2651126511+ AppBskyBookmarkCreateBookmark: "app.bsky.bookmark.createBookmark",
2071726512 AppBskyEmbedDefs: "app.bsky.embed.defs",
2071826513 AppBskyEmbedRecord: "app.bsky.embed.record",
2071926514 AppBskyEmbedImages: "app.bsky.embed.images",
2072026515 AppBskyEmbedRecordWithMedia: "app.bsky.embed.recordWithMedia",
2072126516 AppBskyEmbedVideo: "app.bsky.embed.video",
2072226517 AppBskyEmbedExternal: "app.bsky.embed.external",
2651826518+ AppBskyNotificationDefs: "app.bsky.notification.defs",
2072326519 AppBskyNotificationRegisterPush: "app.bsky.notification.registerPush",
2072426520 AppBskyNotificationPutPreferences: "app.bsky.notification.putPreferences",
2652126521+ AppBskyNotificationPutActivitySubscription:
2652226522+ "app.bsky.notification.putActivitySubscription",
2652326523+ AppBskyNotificationDeclaration: "app.bsky.notification.declaration",
2652426524+ AppBskyNotificationPutPreferencesV2: "app.bsky.notification.putPreferencesV2",
2072526525 AppBskyNotificationUpdateSeen: "app.bsky.notification.updateSeen",
2652626526+ AppBskyNotificationListActivitySubscriptions:
2652726527+ "app.bsky.notification.listActivitySubscriptions",
2652826528+ AppBskyNotificationUnregisterPush: "app.bsky.notification.unregisterPush",
2652926529+ AppBskyNotificationGetPreferences: "app.bsky.notification.getPreferences",
2072626530 AppBskyNotificationListNotifications:
2072726531 "app.bsky.notification.listNotifications",
2072826532 AppBskyNotificationGetUnreadCount: "app.bsky.notification.getUnreadCount",
2653326533+ AppBskyUnspeccedGetSuggestedFeedsSkeleton:
2653426534+ "app.bsky.unspecced.getSuggestedFeedsSkeleton",
2072926535 AppBskyUnspeccedSearchStarterPacksSkeleton:
2073026536 "app.bsky.unspecced.searchStarterPacksSkeleton",
2073126537 AppBskyUnspeccedDefs: "app.bsky.unspecced.defs",
2653826538+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacksSkeleton:
2653926539+ "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton",
2654026540+ AppBskyUnspeccedGetSuggestedUsers: "app.bsky.unspecced.getSuggestedUsers",
2654126541+ AppBskyUnspeccedGetPostThreadOtherV2:
2654226542+ "app.bsky.unspecced.getPostThreadOtherV2",
2654326543+ AppBskyUnspeccedGetSuggestedStarterPacks:
2654426544+ "app.bsky.unspecced.getSuggestedStarterPacks",
2654526545+ AppBskyUnspeccedGetSuggestedStarterPacksSkeleton:
2654626546+ "app.bsky.unspecced.getSuggestedStarterPacksSkeleton",
2654726547+ AppBskyUnspeccedGetOnboardingSuggestedStarterPacks:
2654826548+ "app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
2654926549+ AppBskyUnspeccedGetSuggestedUsersSkeleton:
2655026550+ "app.bsky.unspecced.getSuggestedUsersSkeleton",
2655126551+ AppBskyUnspeccedGetPostThreadV2: "app.bsky.unspecced.getPostThreadV2",
2655226552+ AppBskyUnspeccedGetTrends: "app.bsky.unspecced.getTrends",
2073226553 AppBskyUnspeccedSearchActorsSkeleton:
2073326554 "app.bsky.unspecced.searchActorsSkeleton",
2073426555 AppBskyUnspeccedGetSuggestionsSkeleton:
2073526556 "app.bsky.unspecced.getSuggestionsSkeleton",
2073626557 AppBskyUnspeccedSearchPostsSkeleton: "app.bsky.unspecced.searchPostsSkeleton",
2655826558+ AppBskyUnspeccedGetAgeAssuranceState:
2655926559+ "app.bsky.unspecced.getAgeAssuranceState",
2073726560 AppBskyUnspeccedGetPopularFeedGenerators:
2073826561 "app.bsky.unspecced.getPopularFeedGenerators",
2656226562+ AppBskyUnspeccedInitAgeAssurance: "app.bsky.unspecced.initAgeAssurance",
2073926563 AppBskyUnspeccedGetTrendingTopics: "app.bsky.unspecced.getTrendingTopics",
2074026564 AppBskyUnspeccedGetTaggedSuggestions:
2074126565 "app.bsky.unspecced.getTaggedSuggestions",
2656626566+ AppBskyUnspeccedGetSuggestedFeeds: "app.bsky.unspecced.getSuggestedFeeds",
2656726567+ AppBskyUnspeccedGetTrendsSkeleton: "app.bsky.unspecced.getTrendsSkeleton",
2074226568 AppBskyUnspeccedGetConfig: "app.bsky.unspecced.getConfig",
2074326569 AppBskyGraphGetStarterPacks: "app.bsky.graph.getStarterPacks",
2074426570 AppBskyGraphGetSuggestedFollowsByActor:
2074526571 "app.bsky.graph.getSuggestedFollowsByActor",
2074626572 AppBskyGraphBlock: "app.bsky.graph.block",
2657326573+ AppBskyGraphGetStarterPacksWithMembership:
2657426574+ "app.bsky.graph.getStarterPacksWithMembership",
2074726575 AppBskyGraphFollow: "app.bsky.graph.follow",
2074826576 AppBskyGraphDefs: "app.bsky.graph.defs",
2657726577+ AppBskyGraphGetListsWithMembership: "app.bsky.graph.getListsWithMembership",
2074926578 AppBskyGraphUnmuteActorList: "app.bsky.graph.unmuteActorList",
2075026579 AppBskyGraphGetListBlocks: "app.bsky.graph.getListBlocks",
2075126580 AppBskyGraphListblock: "app.bsky.graph.listblock",
···2076326592 AppBskyGraphListitem: "app.bsky.graph.listitem",
2076426593 AppBskyGraphList: "app.bsky.graph.list",
2076526594 AppBskyGraphGetKnownFollowers: "app.bsky.graph.getKnownFollowers",
2659526595+ AppBskyGraphVerification: "app.bsky.graph.verification",
2076626596 AppBskyGraphGetListMutes: "app.bsky.graph.getListMutes",
2076726597 AppBskyGraphGetFollows: "app.bsky.graph.getFollows",
2076826598 AppBskyGraphGetBlocks: "app.bsky.graph.getBlocks",
···2079526625 AppBskyFeedGetActorFeeds: "app.bsky.feed.getActorFeeds",
2079626626 AppBskyFeedPost: "app.bsky.feed.post",
2079726627 AppBskyRichtextFacet: "app.bsky.richtext.facet",
2662826628+ AppBskyAgeassuranceBegin: "app.bsky.ageassurance.begin",
2662926629+ AppBskyAgeassuranceDefs: "app.bsky.ageassurance.defs",
2663026630+ AppBskyAgeassuranceGetState: "app.bsky.ageassurance.getState",
2663126631+ AppBskyAgeassuranceGetConfig: "app.bsky.ageassurance.getConfig",
2079826632 AppBskyActorSearchActorsTypeahead: "app.bsky.actor.searchActorsTypeahead",
2079926633 AppBskyActorDefs: "app.bsky.actor.defs",
2080026634 AppBskyActorPutPreferences: "app.bsky.actor.putPreferences",
···2080226636 AppBskyActorGetSuggestions: "app.bsky.actor.getSuggestions",
2080326637 AppBskyActorSearchActors: "app.bsky.actor.searchActors",
2080426638 AppBskyActorGetProfiles: "app.bsky.actor.getProfiles",
2663926639+ AppBskyActorStatus: "app.bsky.actor.status",
2080526640 AppBskyActorGetPreferences: "app.bsky.actor.getPreferences",
2080626641 AppBskyActorProfile: "app.bsky.actor.profile",
2080726642 AppBskyLabelerDefs: "app.bsky.labeler.defs",
···2081426649 ChatBskyConvoGetLog: "chat.bsky.convo.getLog",
2081526650 ChatBskyConvoSendMessage: "chat.bsky.convo.sendMessage",
2081626651 ChatBskyConvoLeaveConvo: "chat.bsky.convo.leaveConvo",
2665226652+ ChatBskyConvoAddReaction: "chat.bsky.convo.addReaction",
2081726653 ChatBskyConvoAcceptConvo: "chat.bsky.convo.acceptConvo",
2081826654 ChatBskyConvoMuteConvo: "chat.bsky.convo.muteConvo",
2081926655 ChatBskyConvoDeleteMessageForSelf: "chat.bsky.convo.deleteMessageForSelf",
2665626656+ ChatBskyConvoRemoveReaction: "chat.bsky.convo.removeReaction",
2082026657 ChatBskyConvoUpdateRead: "chat.bsky.convo.updateRead",
2082126658 ChatBskyConvoUpdateAllRead: "chat.bsky.convo.updateAllRead",
2082226659 ChatBskyConvoGetConvo: "chat.bsky.convo.getConvo",
···2090526742 SoSprkMediaImages: "so.sprk.media.images",
2090626743 SoSprkMediaVideo: "so.sprk.media.video",
2090726744 SoSprkMediaImage: "so.sprk.media.image",
2674526745+ ComAtprotoTempDereferenceScope: "com.atproto.temp.dereferenceScope",
2090826746 ComAtprotoTempAddReservedHandle: "com.atproto.temp.addReservedHandle",
2090926747 ComAtprotoTempCheckSignupQueue: "com.atproto.temp.checkSignupQueue",
2674826748+ ComAtprotoTempCheckHandleAvailability:
2674926749+ "com.atproto.temp.checkHandleAvailability",
2091026750 ComAtprotoTempRequestPhoneVerification:
2091126751 "com.atproto.temp.requestPhoneVerification",
2675226752+ ComAtprotoTempRevokeAccountCredentials:
2675326753+ "com.atproto.temp.revokeAccountCredentials",
2091226754 ComAtprotoTempFetchLabels: "com.atproto.temp.fetchLabels",
2091326755 ComAtprotoIdentityUpdateHandle: "com.atproto.identity.updateHandle",
2675626756+ ComAtprotoIdentityDefs: "com.atproto.identity.defs",
2091426757 ComAtprotoIdentitySignPlcOperation: "com.atproto.identity.signPlcOperation",
2091526758 ComAtprotoIdentitySubmitPlcOperation:
2091626759 "com.atproto.identity.submitPlcOperation",
2676026760+ ComAtprotoIdentityResolveIdentity: "com.atproto.identity.resolveIdentity",
2676126761+ ComAtprotoIdentityRefreshIdentity: "com.atproto.identity.refreshIdentity",
2091726762 ComAtprotoIdentityResolveHandle: "com.atproto.identity.resolveHandle",
2091826763 ComAtprotoIdentityRequestPlcOperationSignature:
2091926764 "com.atproto.identity.requestPlcOperationSignature",
2092026765 ComAtprotoIdentityGetRecommendedDidCredentials:
2092126766 "com.atproto.identity.getRecommendedDidCredentials",
2676726767+ ComAtprotoIdentityResolveDid: "com.atproto.identity.resolveDid",
2092226768 ComAtprotoAdminUpdateAccountEmail: "com.atproto.admin.updateAccountEmail",
2092326769 ComAtprotoAdminGetAccountInfo: "com.atproto.admin.getAccountInfo",
2092426770 ComAtprotoAdminGetSubjectStatus: "com.atproto.admin.getSubjectStatus",
···2092826774 "com.atproto.admin.updateAccountPassword",
2092926775 ComAtprotoAdminUpdateAccountHandle: "com.atproto.admin.updateAccountHandle",
2093026776 ComAtprotoAdminGetInviteCodes: "com.atproto.admin.getInviteCodes",
2677726777+ ComAtprotoAdminUpdateAccountSigningKey:
2677826778+ "com.atproto.admin.updateAccountSigningKey",
2093126779 ComAtprotoAdminEnableAccountInvites: "com.atproto.admin.enableAccountInvites",
2093226780 ComAtprotoAdminDisableAccountInvites:
2093326781 "com.atproto.admin.disableAccountInvites",
···2096926817 ComAtprotoServerCreateAccount: "com.atproto.server.createAccount",
2097026818 ComAtprotoServerDeleteAccount: "com.atproto.server.deleteAccount",
2097126819 ComAtprotoServerCreateInviteCode: "com.atproto.server.createInviteCode",
2682026820+ ComAtprotoLexiconResolveLexicon: "com.atproto.lexicon.resolveLexicon",
2097226821 ComAtprotoLexiconSchema: "com.atproto.lexicon.schema",
2097326822 ComAtprotoSyncGetHead: "com.atproto.sync.getHead",
2097426823 ComAtprotoSyncGetBlob: "com.atproto.sync.getBlob",
2097526824 ComAtprotoSyncGetRepo: "com.atproto.sync.getRepo",
2097626825 ComAtprotoSyncNotifyOfUpdate: "com.atproto.sync.notifyOfUpdate",
2682626826+ ComAtprotoSyncDefs: "com.atproto.sync.defs",
2097726827 ComAtprotoSyncRequestCrawl: "com.atproto.sync.requestCrawl",
2097826828 ComAtprotoSyncListBlobs: "com.atproto.sync.listBlobs",
2097926829 ComAtprotoSyncGetLatestCommit: "com.atproto.sync.getLatestCommit",
2098026830 ComAtprotoSyncSubscribeRepos: "com.atproto.sync.subscribeRepos",
2098126831 ComAtprotoSyncGetRepoStatus: "com.atproto.sync.getRepoStatus",
2098226832 ComAtprotoSyncGetRecord: "com.atproto.sync.getRecord",
2683326833+ ComAtprotoSyncListHosts: "com.atproto.sync.listHosts",
2098326834 ComAtprotoSyncListRepos: "com.atproto.sync.listRepos",
2683526835+ ComAtprotoSyncGetHostStatus: "com.atproto.sync.getHostStatus",
2098426836 ComAtprotoSyncGetBlocks: "com.atproto.sync.getBlocks",
2098526837 ComAtprotoSyncListReposByCollection: "com.atproto.sync.listReposByCollection",
2098626838 ComAtprotoSyncGetCheckout: "com.atproto.sync.getCheckout",
+139-4
lex/types/app/bsky/actor/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
87import type * as AppBskyGraphDefs from "../graph/defs.ts";
98import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
99+import type * as AppBskyNotificationDefs from "../notification/defs.ts";
1010import type * as AppBskyFeedThreadgate from "../feed/threadgate.ts";
1111import type * as AppBskyFeedPostgate from "../feed/postgate.ts";
1212+import type * as AppBskyEmbedExternal from "../embed/external.ts";
12131314const is$typed = _is$typed, validate = _validate;
1415const id = "app.bsky.actor.defs";
···1819 did: string;
1920 handle: string;
2021 displayName?: string;
2222+ pronouns?: string;
2123 avatar?: string;
2224 associated?: ProfileAssociated;
2325 viewer?: ViewerState;
2426 labels?: (ComAtprotoLabelDefs.Label)[];
2527 createdAt?: string;
2828+ verification?: VerificationState;
2929+ status?: StatusView;
3030+ /** Debug information for internal development */
3131+ debug?: { [_ in string]: unknown };
2632}
27332834const hashProfileViewBasic = "profileViewBasic";
···4046 did: string;
4147 handle: string;
4248 displayName?: string;
4949+ pronouns?: string;
4350 description?: string;
4451 avatar?: string;
4552 associated?: ProfileAssociated;
···4754 createdAt?: string;
4855 viewer?: ViewerState;
4956 labels?: (ComAtprotoLabelDefs.Label)[];
5757+ verification?: VerificationState;
5858+ status?: StatusView;
5959+ /** Debug information for internal development */
6060+ debug?: { [_ in string]: unknown };
5061}
51625263const hashProfileView = "profileView";
···6576 handle: string;
6677 displayName?: string;
6778 description?: string;
7979+ pronouns?: string;
8080+ website?: string;
6881 avatar?: string;
6982 banner?: string;
7083 followersCount?: number;
···7790 viewer?: ViewerState;
7891 labels?: (ComAtprotoLabelDefs.Label)[];
7992 pinnedPost?: ComAtprotoRepoStrongRef.Main;
9393+ verification?: VerificationState;
9494+ status?: StatusView;
9595+ /** Debug information for internal development */
9696+ debug?: { [_ in string]: unknown };
8097}
81988299const hashProfileViewDetailed = "profileViewDetailed";
···96113 starterPacks?: number;
97114 labeler?: boolean;
98115 chat?: ProfileAssociatedChat;
116116+ activitySubscription?: ProfileAssociatedActivitySubscription;
99117}
100118101119const hashProfileAssociated = "profileAssociated";
···127145 return validate<ProfileAssociatedChat & V>(v, id, hashProfileAssociatedChat);
128146}
129147148148+export interface ProfileAssociatedActivitySubscription {
149149+ $type?: "app.bsky.actor.defs#profileAssociatedActivitySubscription";
150150+ allowSubscriptions:
151151+ | "followers"
152152+ | "mutuals"
153153+ | "none"
154154+ | (string & globalThis.Record<PropertyKey, never>);
155155+}
156156+157157+const hashProfileAssociatedActivitySubscription =
158158+ "profileAssociatedActivitySubscription";
159159+160160+export function isProfileAssociatedActivitySubscription<V>(v: V) {
161161+ return is$typed(v, id, hashProfileAssociatedActivitySubscription);
162162+}
163163+164164+export function validateProfileAssociatedActivitySubscription<V>(v: V) {
165165+ return validate<ProfileAssociatedActivitySubscription & V>(
166166+ v,
167167+ id,
168168+ hashProfileAssociatedActivitySubscription,
169169+ );
170170+}
171171+130172/** Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. */
131173export interface ViewerState {
132174 $type?: "app.bsky.actor.defs#viewerState";
···138180 following?: string;
139181 followedBy?: string;
140182 knownFollowers?: KnownFollowers;
183183+ activitySubscription?: AppBskyNotificationDefs.ActivitySubscription;
141184}
142185143186const hashViewerState = "viewerState";
···167210 return validate<KnownFollowers & V>(v, id, hashKnownFollowers);
168211}
169212213213+/** Represents the verification information about the user this object is attached to. */
214214+export interface VerificationState {
215215+ $type?: "app.bsky.actor.defs#verificationState";
216216+ /** All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included. */
217217+ verifications: (VerificationView)[];
218218+ /** The user's status as a verified account. */
219219+ verifiedStatus:
220220+ | "valid"
221221+ | "invalid"
222222+ | "none"
223223+ | (string & globalThis.Record<PropertyKey, never>);
224224+ /** The user's status as a trusted verifier. */
225225+ trustedVerifierStatus:
226226+ | "valid"
227227+ | "invalid"
228228+ | "none"
229229+ | (string & globalThis.Record<PropertyKey, never>);
230230+}
231231+232232+const hashVerificationState = "verificationState";
233233+234234+export function isVerificationState<V>(v: V) {
235235+ return is$typed(v, id, hashVerificationState);
236236+}
237237+238238+export function validateVerificationState<V>(v: V) {
239239+ return validate<VerificationState & V>(v, id, hashVerificationState);
240240+}
241241+242242+/** An individual verification for an associated subject. */
243243+export interface VerificationView {
244244+ $type?: "app.bsky.actor.defs#verificationView";
245245+ /** The user who issued this verification. */
246246+ issuer: string;
247247+ /** The AT-URI of the verification record. */
248248+ uri: string;
249249+ /** True if the verification passes validation, otherwise false. */
250250+ isValid: boolean;
251251+ /** Timestamp when the verification was created. */
252252+ createdAt: string;
253253+}
254254+255255+const hashVerificationView = "verificationView";
256256+257257+export function isVerificationView<V>(v: V) {
258258+ return is$typed(v, id, hashVerificationView);
259259+}
260260+261261+export function validateVerificationView<V>(v: V) {
262262+ return validate<VerificationView & V>(v, id, hashVerificationView);
263263+}
264264+170265export type Preferences = (
171266 | $Typed<AdultContentPref>
172267 | $Typed<ContentLabelPref>
···181276 | $Typed<BskyAppStatePref>
182277 | $Typed<LabelersPref>
183278 | $Typed<PostInteractionSettingsPref>
279279+ | $Typed<VerificationPrefs>
184280 | { $type: string }
185281)[];
186282···328424 | "random"
329425 | "hotness"
330426 | (string & globalThis.Record<PropertyKey, never>);
331331- /** Show followed users at the top of all replies. */
332332- prioritizeFollowedUsers?: boolean;
333427}
334428335429const hashThreadViewPref = "threadViewPref";
···509603 return validate<Nux & V>(v, id, hashNux);
510604}
511605606606+/** Preferences for how verified accounts appear in the app. */
607607+export interface VerificationPrefs {
608608+ $type?: "app.bsky.actor.defs#verificationPrefs";
609609+ /** Hide the blue check badges for verified accounts and trusted verifiers. */
610610+ hideBadges: boolean;
611611+}
612612+613613+const hashVerificationPrefs = "verificationPrefs";
614614+615615+export function isVerificationPrefs<V>(v: V) {
616616+ return is$typed(v, id, hashVerificationPrefs);
617617+}
618618+619619+export function validateVerificationPrefs<V>(v: V) {
620620+ return validate<VerificationPrefs & V>(v, id, hashVerificationPrefs);
621621+}
622622+512623/** Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly. */
513624export interface PostInteractionSettingsPref {
514625 $type?: "app.bsky.actor.defs#postInteractionSettingsPref";
···538649 hashPostInteractionSettingsPref,
539650 );
540651}
652652+653653+export interface StatusView {
654654+ $type?: "app.bsky.actor.defs#statusView";
655655+ /** The status for the account. */
656656+ status:
657657+ | "app.bsky.actor.status#live"
658658+ | (string & globalThis.Record<PropertyKey, never>);
659659+ record: { [_ in string]: unknown };
660660+ embed?: $Typed<AppBskyEmbedExternal.View> | { $type: string };
661661+ /** The date when this status will expire. The application might choose to no longer return the status after expiration. */
662662+ expiresAt?: string;
663663+ /** True if the status is not expired, false if it is expired. Only present if expiration was set. */
664664+ isActive?: boolean;
665665+}
666666+667667+const hashStatusView = "statusView";
668668+669669+export function isStatusView<V>(v: V) {
670670+ return is$typed(v, id, hashStatusView);
671671+}
672672+673673+export function validateStatusView<V>(v: V) {
674674+ return validate<StatusView & V>(v, id, hashStatusView);
675675+}
+7-3
lex/types/app/bsky/actor/profile.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
87import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
98import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
109···1615 displayName?: string;
1716 /** Free-form profile description text. */
1817 description?: string;
1818+ /** Free-form pronouns text. */
1919+ pronouns?: string;
2020+ website?: string;
1921 /** Small image to be displayed next to posts from account. AKA, 'profile picture' */
2022 avatar?: BlobRef;
2123 /** Larger horizontal image to display behind profile view. */
···3638export function validateRecord<V>(v: V) {
3739 return validate<Record & V>(v, id, hashRecord, true);
3840}
4141+4242+export type Main = Record;
+37
lex/types/app/bsky/actor/status.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
66+import type * as AppBskyEmbedExternal from "../embed/external.ts";
77+88+const is$typed = _is$typed, validate = _validate;
99+const id = "app.bsky.actor.status";
1010+1111+export interface Record {
1212+ $type: "app.bsky.actor.status";
1313+ /** The status for the account. */
1414+ status:
1515+ | "app.bsky.actor.status#live"
1616+ | (string & globalThis.Record<PropertyKey, never>);
1717+ embed?: $Typed<AppBskyEmbedExternal.Main> | { $type: string };
1818+ /** The duration of the status in minutes. Applications can choose to impose minimum and maximum limits. */
1919+ durationMinutes?: number;
2020+ createdAt: string;
2121+ [k: string]: unknown;
2222+}
2323+2424+const hashRecord = "main";
2525+2626+export function isRecord<V>(v: V) {
2727+ return is$typed(v, id, hashRecord);
2828+}
2929+3030+export function validateRecord<V>(v: V) {
3131+ return validate<Record & V>(v, id, hashRecord, true);
3232+}
3333+3434+export type Main = Record;
3535+3636+/** Advertises an account as currently offering live content. */
3737+export const LIVE = `${id}#live`;
+42
lex/types/app/bsky/ageassurance/begin.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyAgeassuranceDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+88+export interface InputSchema {
99+ /** The user's email address to receive Age Assurance instructions. */
1010+ email: string;
1111+ /** The user's preferred language for communication during the Age Assurance process. */
1212+ language: string;
1313+ /** An ISO 3166-1 alpha-2 code of the user's location. */
1414+ countryCode: string;
1515+ /** An optional ISO 3166-2 code of the user's region or state within the country. */
1616+ regionCode?: string;
1717+}
1818+1919+export type OutputSchema = AppBskyAgeassuranceDefs.State;
2020+2121+export interface HandlerInput {
2222+ encoding: "application/json";
2323+ body: InputSchema;
2424+}
2525+2626+export interface HandlerSuccess {
2727+ encoding: "application/json";
2828+ body: OutputSchema;
2929+ headers?: { [key: string]: string };
3030+}
3131+3232+export interface HandlerError {
3333+ status: number;
3434+ message?: string;
3535+ error?:
3636+ | "InvalidEmail"
3737+ | "DidTooLong"
3838+ | "InvalidInitiation"
3939+ | "RegionNotSupported";
4040+}
4141+4242+export type HandlerOutput = HandlerError | HandlerSuccess;
+309
lex/types/app/bsky/ageassurance/defs.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
66+77+const is$typed = _is$typed, validate = _validate;
88+const id = "app.bsky.ageassurance.defs";
99+1010+/** The access level granted based on Age Assurance data we've processed. */
1111+export type Access =
1212+ | "unknown"
1313+ | "none"
1414+ | "safe"
1515+ | "full"
1616+ | (string & globalThis.Record<PropertyKey, never>);
1717+/** The status of the Age Assurance process. */
1818+export type Status =
1919+ | "unknown"
2020+ | "pending"
2121+ | "assured"
2222+ | "blocked"
2323+ | (string & globalThis.Record<PropertyKey, never>);
2424+2525+/** The user's computed Age Assurance state. */
2626+export interface State {
2727+ $type?: "app.bsky.ageassurance.defs#state";
2828+ /** The timestamp when this state was last updated. */
2929+ lastInitiatedAt?: string;
3030+ status: Status;
3131+ access: Access;
3232+}
3333+3434+const hashState = "state";
3535+3636+export function isState<V>(v: V) {
3737+ return is$typed(v, id, hashState);
3838+}
3939+4040+export function validateState<V>(v: V) {
4141+ return validate<State & V>(v, id, hashState);
4242+}
4343+4444+/** Additional metadata needed to compute Age Assurance state client-side. */
4545+export interface StateMetadata {
4646+ $type?: "app.bsky.ageassurance.defs#stateMetadata";
4747+ /** The account creation timestamp. */
4848+ accountCreatedAt?: string;
4949+}
5050+5151+const hashStateMetadata = "stateMetadata";
5252+5353+export function isStateMetadata<V>(v: V) {
5454+ return is$typed(v, id, hashStateMetadata);
5555+}
5656+5757+export function validateStateMetadata<V>(v: V) {
5858+ return validate<StateMetadata & V>(v, id, hashStateMetadata);
5959+}
6060+6161+export interface Config {
6262+ $type?: "app.bsky.ageassurance.defs#config";
6363+ /** The per-region Age Assurance configuration. */
6464+ regions: (ConfigRegion)[];
6565+}
6666+6767+const hashConfig = "config";
6868+6969+export function isConfig<V>(v: V) {
7070+ return is$typed(v, id, hashConfig);
7171+}
7272+7373+export function validateConfig<V>(v: V) {
7474+ return validate<Config & V>(v, id, hashConfig);
7575+}
7676+7777+/** The Age Assurance configuration for a specific region. */
7878+export interface ConfigRegion {
7979+ $type?: "app.bsky.ageassurance.defs#configRegion";
8080+ /** The ISO 3166-1 alpha-2 country code this configuration applies to. */
8181+ countryCode: string;
8282+ /** The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country. */
8383+ regionCode?: string;
8484+ /** The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item. */
8585+ rules: (
8686+ | $Typed<ConfigRegionRuleDefault>
8787+ | $Typed<ConfigRegionRuleIfDeclaredOverAge>
8888+ | $Typed<ConfigRegionRuleIfDeclaredUnderAge>
8989+ | $Typed<ConfigRegionRuleIfAssuredOverAge>
9090+ | $Typed<ConfigRegionRuleIfAssuredUnderAge>
9191+ | $Typed<ConfigRegionRuleIfAccountNewerThan>
9292+ | $Typed<ConfigRegionRuleIfAccountOlderThan>
9393+ | { $type: string }
9494+ )[];
9595+}
9696+9797+const hashConfigRegion = "configRegion";
9898+9999+export function isConfigRegion<V>(v: V) {
100100+ return is$typed(v, id, hashConfigRegion);
101101+}
102102+103103+export function validateConfigRegion<V>(v: V) {
104104+ return validate<ConfigRegion & V>(v, id, hashConfigRegion);
105105+}
106106+107107+/** Age Assurance rule that applies by default. */
108108+export interface ConfigRegionRuleDefault {
109109+ $type?: "app.bsky.ageassurance.defs#configRegionRuleDefault";
110110+ access: Access;
111111+}
112112+113113+const hashConfigRegionRuleDefault = "configRegionRuleDefault";
114114+115115+export function isConfigRegionRuleDefault<V>(v: V) {
116116+ return is$typed(v, id, hashConfigRegionRuleDefault);
117117+}
118118+119119+export function validateConfigRegionRuleDefault<V>(v: V) {
120120+ return validate<ConfigRegionRuleDefault & V>(
121121+ v,
122122+ id,
123123+ hashConfigRegionRuleDefault,
124124+ );
125125+}
126126+127127+/** Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age. */
128128+export interface ConfigRegionRuleIfDeclaredOverAge {
129129+ $type?: "app.bsky.ageassurance.defs#configRegionRuleIfDeclaredOverAge";
130130+ /** The age threshold as a whole integer. */
131131+ age: number;
132132+ access: Access;
133133+}
134134+135135+const hashConfigRegionRuleIfDeclaredOverAge =
136136+ "configRegionRuleIfDeclaredOverAge";
137137+138138+export function isConfigRegionRuleIfDeclaredOverAge<V>(v: V) {
139139+ return is$typed(v, id, hashConfigRegionRuleIfDeclaredOverAge);
140140+}
141141+142142+export function validateConfigRegionRuleIfDeclaredOverAge<V>(v: V) {
143143+ return validate<ConfigRegionRuleIfDeclaredOverAge & V>(
144144+ v,
145145+ id,
146146+ hashConfigRegionRuleIfDeclaredOverAge,
147147+ );
148148+}
149149+150150+/** Age Assurance rule that applies if the user has declared themselves under a certain age. */
151151+export interface ConfigRegionRuleIfDeclaredUnderAge {
152152+ $type?: "app.bsky.ageassurance.defs#configRegionRuleIfDeclaredUnderAge";
153153+ /** The age threshold as a whole integer. */
154154+ age: number;
155155+ access: Access;
156156+}
157157+158158+const hashConfigRegionRuleIfDeclaredUnderAge =
159159+ "configRegionRuleIfDeclaredUnderAge";
160160+161161+export function isConfigRegionRuleIfDeclaredUnderAge<V>(v: V) {
162162+ return is$typed(v, id, hashConfigRegionRuleIfDeclaredUnderAge);
163163+}
164164+165165+export function validateConfigRegionRuleIfDeclaredUnderAge<V>(v: V) {
166166+ return validate<ConfigRegionRuleIfDeclaredUnderAge & V>(
167167+ v,
168168+ id,
169169+ hashConfigRegionRuleIfDeclaredUnderAge,
170170+ );
171171+}
172172+173173+/** Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age. */
174174+export interface ConfigRegionRuleIfAssuredOverAge {
175175+ $type?: "app.bsky.ageassurance.defs#configRegionRuleIfAssuredOverAge";
176176+ /** The age threshold as a whole integer. */
177177+ age: number;
178178+ access: Access;
179179+}
180180+181181+const hashConfigRegionRuleIfAssuredOverAge = "configRegionRuleIfAssuredOverAge";
182182+183183+export function isConfigRegionRuleIfAssuredOverAge<V>(v: V) {
184184+ return is$typed(v, id, hashConfigRegionRuleIfAssuredOverAge);
185185+}
186186+187187+export function validateConfigRegionRuleIfAssuredOverAge<V>(v: V) {
188188+ return validate<ConfigRegionRuleIfAssuredOverAge & V>(
189189+ v,
190190+ id,
191191+ hashConfigRegionRuleIfAssuredOverAge,
192192+ );
193193+}
194194+195195+/** Age Assurance rule that applies if the user has been assured to be under a certain age. */
196196+export interface ConfigRegionRuleIfAssuredUnderAge {
197197+ $type?: "app.bsky.ageassurance.defs#configRegionRuleIfAssuredUnderAge";
198198+ /** The age threshold as a whole integer. */
199199+ age: number;
200200+ access: Access;
201201+}
202202+203203+const hashConfigRegionRuleIfAssuredUnderAge =
204204+ "configRegionRuleIfAssuredUnderAge";
205205+206206+export function isConfigRegionRuleIfAssuredUnderAge<V>(v: V) {
207207+ return is$typed(v, id, hashConfigRegionRuleIfAssuredUnderAge);
208208+}
209209+210210+export function validateConfigRegionRuleIfAssuredUnderAge<V>(v: V) {
211211+ return validate<ConfigRegionRuleIfAssuredUnderAge & V>(
212212+ v,
213213+ id,
214214+ hashConfigRegionRuleIfAssuredUnderAge,
215215+ );
216216+}
217217+218218+/** Age Assurance rule that applies if the account is equal-to or newer than a certain date. */
219219+export interface ConfigRegionRuleIfAccountNewerThan {
220220+ $type?: "app.bsky.ageassurance.defs#configRegionRuleIfAccountNewerThan";
221221+ /** The date threshold as a datetime string. */
222222+ date: string;
223223+ access: Access;
224224+}
225225+226226+const hashConfigRegionRuleIfAccountNewerThan =
227227+ "configRegionRuleIfAccountNewerThan";
228228+229229+export function isConfigRegionRuleIfAccountNewerThan<V>(v: V) {
230230+ return is$typed(v, id, hashConfigRegionRuleIfAccountNewerThan);
231231+}
232232+233233+export function validateConfigRegionRuleIfAccountNewerThan<V>(v: V) {
234234+ return validate<ConfigRegionRuleIfAccountNewerThan & V>(
235235+ v,
236236+ id,
237237+ hashConfigRegionRuleIfAccountNewerThan,
238238+ );
239239+}
240240+241241+/** Age Assurance rule that applies if the account is older than a certain date. */
242242+export interface ConfigRegionRuleIfAccountOlderThan {
243243+ $type?: "app.bsky.ageassurance.defs#configRegionRuleIfAccountOlderThan";
244244+ /** The date threshold as a datetime string. */
245245+ date: string;
246246+ access: Access;
247247+}
248248+249249+const hashConfigRegionRuleIfAccountOlderThan =
250250+ "configRegionRuleIfAccountOlderThan";
251251+252252+export function isConfigRegionRuleIfAccountOlderThan<V>(v: V) {
253253+ return is$typed(v, id, hashConfigRegionRuleIfAccountOlderThan);
254254+}
255255+256256+export function validateConfigRegionRuleIfAccountOlderThan<V>(v: V) {
257257+ return validate<ConfigRegionRuleIfAccountOlderThan & V>(
258258+ v,
259259+ id,
260260+ hashConfigRegionRuleIfAccountOlderThan,
261261+ );
262262+}
263263+264264+/** Object used to store Age Assurance data in stash. */
265265+export interface Event {
266266+ $type?: "app.bsky.ageassurance.defs#event";
267267+ /** The date and time of this write operation. */
268268+ createdAt: string;
269269+ /** The unique identifier for this instance of the Age Assurance flow, in UUID format. */
270270+ attemptId: string;
271271+ /** The status of the Age Assurance process. */
272272+ status:
273273+ | "unknown"
274274+ | "pending"
275275+ | "assured"
276276+ | "blocked"
277277+ | (string & globalThis.Record<PropertyKey, never>);
278278+ /** The access level granted based on Age Assurance data we've processed. */
279279+ access:
280280+ | "unknown"
281281+ | "none"
282282+ | "safe"
283283+ | "full"
284284+ | (string & globalThis.Record<PropertyKey, never>);
285285+ /** The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow. */
286286+ countryCode: string;
287287+ /** The ISO 3166-2 region code provided when beginning the Age Assurance flow. */
288288+ regionCode?: string;
289289+ /** The email used for Age Assurance. */
290290+ email?: string;
291291+ /** The IP address used when initiating the Age Assurance flow. */
292292+ initIp?: string;
293293+ /** The user agent used when initiating the Age Assurance flow. */
294294+ initUa?: string;
295295+ /** The IP address used when completing the Age Assurance flow. */
296296+ completeIp?: string;
297297+ /** The user agent used when completing the Age Assurance flow. */
298298+ completeUa?: string;
299299+}
300300+301301+const hashEvent = "event";
302302+303303+export function isEvent<V>(v: V) {
304304+ return is$typed(v, id, hashEvent);
305305+}
306306+307307+export function validateEvent<V>(v: V) {
308308+ return validate<Event & V>(v, id, hashEvent);
309309+}
+22
lex/types/app/bsky/ageassurance/getConfig.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyAgeassuranceDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+export type InputSchema = undefined;
88+export type OutputSchema = AppBskyAgeassuranceDefs.Config;
99+export type HandlerInput = void;
1010+1111+export interface HandlerSuccess {
1212+ encoding: "application/json";
1313+ body: OutputSchema;
1414+ headers?: { [key: string]: string };
1515+}
1616+1717+export interface HandlerError {
1818+ status: number;
1919+ message?: string;
2020+}
2121+2222+export type HandlerOutput = HandlerError | HandlerSuccess;
+30
lex/types/app/bsky/ageassurance/getState.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyAgeassuranceDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ countryCode: string;
88+ regionCode?: string;
99+};
1010+export type InputSchema = undefined;
1111+1212+export interface OutputSchema {
1313+ state: AppBskyAgeassuranceDefs.State;
1414+ metadata: AppBskyAgeassuranceDefs.StateMetadata;
1515+}
1616+1717+export type HandlerInput = void;
1818+1919+export interface HandlerSuccess {
2020+ encoding: "application/json";
2121+ body: OutputSchema;
2222+ headers?: { [key: string]: string };
2323+}
2424+2525+export interface HandlerError {
2626+ status: number;
2727+ message?: string;
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyBookmarkDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ limit: number;
88+ cursor?: string;
99+};
1010+export type InputSchema = undefined;
1111+1212+export interface OutputSchema {
1313+ cursor?: string;
1414+ bookmarks: (AppBskyBookmarkDefs.BookmarkView)[];
1515+}
1616+1717+export type HandlerInput = void;
1818+1919+export interface HandlerSuccess {
2020+ encoding: "application/json";
2121+ body: OutputSchema;
2222+ headers?: { [key: string]: string };
2323+}
2424+2525+export interface HandlerError {
2626+ status: number;
2727+ message?: string;
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
+1-1
lex/types/app/bsky/embed/external.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77
+1-1
lex/types/app/bsky/embed/images.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77import type * as AppBskyEmbedDefs from "./defs.ts";
+1-2
lex/types/app/bsky/embed/record.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
87import type * as AppBskyFeedDefs from "../feed/defs.ts";
98import type * as AppBskyGraphDefs from "../graph/defs.ts";
+1-2
lex/types/app/bsky/embed/recordWithMedia.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as AppBskyEmbedRecord from "./record.ts";
87import type * as AppBskyEmbedImages from "./images.ts";
98import type * as AppBskyEmbedVideo from "./video.ts";
+2-1
lex/types/app/bsky/embed/video.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77import type * as AppBskyEmbedDefs from "./defs.ts";
···11111212export interface Main {
1313 $type?: "app.bsky.embed.video";
1414+ /** The mp4 video file. May be up to 100mb, formerly limited to 50mb. */
1415 video: BlobRef;
1516 captions?: (Caption)[];
1617 /** Alt text description of the video, for accessibility. */
+11-2
lex/types/app/bsky/feed/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as AppBskyActorDefs from "../actor/defs.ts";
87import type * as AppBskyEmbedImages from "../embed/images.ts";
98import type * as AppBskyEmbedVideo from "../embed/video.ts";
···3029 | $Typed<AppBskyEmbedRecord.View>
3130 | $Typed<AppBskyEmbedRecordWithMedia.View>
3231 | { $type: string };
3232+ bookmarkCount?: number;
3333 replyCount?: number;
3434 repostCount?: number;
3535 likeCount?: number;
···3838 viewer?: ViewerState;
3939 labels?: (ComAtprotoLabelDefs.Label)[];
4040 threadgate?: ThreadgateView;
4141+ /** Debug information for internal development */
4242+ debug?: { [_ in string]: unknown };
4143}
42444345const hashPostView = "postView";
···5557 $type?: "app.bsky.feed.defs#viewerState";
5658 repost?: string;
5759 like?: string;
6060+ bookmarked?: boolean;
5861 threadMuted?: boolean;
5962 replyDisabled?: boolean;
6063 embeddingDisabled?: boolean;
···9497 reason?: $Typed<ReasonRepost> | $Typed<ReasonPin> | { $type: string };
9598 /** Context provided by feed generator that may be passed back alongside interactions. */
9699 feedContext?: string;
100100+ /** Unique identifier per request that may be passed back alongside interactions. */
101101+ reqId?: string;
97102}
9810399104const hashFeedViewPost = "feedViewPost";
···130135export interface ReasonRepost {
131136 $type?: "app.bsky.feed.defs#reasonRepost";
132137 by: AppBskyActorDefs.ProfileViewBasic;
138138+ uri?: string;
139139+ cid?: string;
133140 indexedAt: string;
134141}
135142···363370 | (string & globalThis.Record<PropertyKey, never>);
364371 /** Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. */
365372 feedContext?: string;
373373+ /** Unique identifier per request that may be passed back alongside interactions. */
374374+ reqId?: string;
366375}
367376368377const hashInteraction = "interaction";
+4-3
lex/types/app/bsky/feed/generator.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
87import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
98import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
109···3837export function validateRecord<V>(v: V) {
3938 return validate<Record & V>(v, id, hashRecord, true);
4039}
4040+4141+export type Main = Record;
+2
lex/types/app/bsky/feed/getFeedSkeleton.ts
···1414export interface OutputSchema {
1515 cursor?: string;
1616 feed: (AppBskyFeedDefs.SkeletonFeedPost)[];
1717+ /** Unique identifier per request that may be passed back alongside interactions. */
1818+ reqId?: string;
1719}
18201921export type HandlerInput = void;
+1-1
lex/types/app/bsky/feed/getPostThread.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as AppBskyFeedDefs from "./defs.ts";
6677export type QueryParams = {
+2
lex/types/app/bsky/feed/like.ts
···2525export function validateRecord<V>(v: V) {
2626 return validate<Record & V>(v, id, hashRecord, true);
2727}
2828+2929+export type Main = Record;
+3-2
lex/types/app/bsky/feed/post.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
87import type * as AppBskyEmbedImages from "../embed/images.ts";
98import type * as AppBskyEmbedVideo from "../embed/video.ts";
···5150export function validateRecord<V>(v: V) {
5251 return validate<Record & V>(v, id, hashRecord, true);
5352}
5353+5454+export type Main = Record;
54555556export interface ReplyRef {
5657 $type?: "app.bsky.feed.post#replyRef";
+3-2
lex/types/app/bsky/feed/postgate.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
7687const is$typed = _is$typed, validate = _validate;
98const id = "app.bsky.feed.postgate";
···2928export function validateRecord<V>(v: V) {
3029 return validate<Record & V>(v, id, hashRecord, true);
3130}
3131+3232+export type Main = Record;
32333334/** Disables embedding of this post. */
3435export interface DisableRule {
+2
lex/types/app/bsky/feed/repost.ts
···2525export function validateRecord<V>(v: V) {
2626 return validate<Record & V>(v, id, hashRecord, true);
2727}
2828+2929+export type Main = Record;
+3-2
lex/types/app/bsky/feed/threadgate.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
7687const is$typed = _is$typed, validate = _validate;
98const id = "app.bsky.feed.threadgate";
···3534export function validateRecord<V>(v: V) {
3635 return validate<Record & V>(v, id, hashRecord, true);
3736}
3737+3838+export type Main = Record;
38393940/** Allow replies from actors mentioned in your post. */
4041export interface MentionRule {
+2
lex/types/app/bsky/graph/block.ts
···2424export function validateRecord<V>(v: V) {
2525 return validate<Record & V>(v, id, hashRecord, true);
2626}
2727+2828+export type Main = Record;
+4
lex/types/app/bsky/graph/follow.ts
···33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55import { is$typed as _is$typed } from "../../../../util.ts";
66+import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
6778const is$typed = _is$typed, validate = _validate;
89const id = "app.bsky.graph.follow";
···1112 $type: "app.bsky.graph.follow";
1213 subject: string;
1314 createdAt: string;
1515+ via?: ComAtprotoRepoStrongRef.Main;
1416 [k: string]: unknown;
1517}
1618···2325export function validateRecord<V>(v: V) {
2426 return validate<Record & V>(v, id, hashRecord, true);
2527}
2828+2929+export type Main = Record;
+5
lex/types/app/bsky/graph/getLists.ts
···88 actor: string;
99 limit: number;
1010 cursor?: string;
1111+ /** Optional filter by list purpose. If not specified, all supported types are returned. */
1212+ purposes?:
1313+ | "modlist"
1414+ | "curatelist"
1515+ | (string & globalThis.Record<PropertyKey, never>)[];
1116};
1217export type InputSchema = undefined;
1318
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+import type * as AppBskyGraphDefs from "./defs.ts";
77+88+const is$typed = _is$typed, validate = _validate;
99+const id = "app.bsky.graph.getListsWithMembership";
1010+1111+export type QueryParams = {
1212+ /** The account (actor) to check for membership. */
1313+ actor: string;
1414+ limit: number;
1515+ cursor?: string;
1616+ /** Optional filter by list purpose. If not specified, all supported types are returned. */
1717+ purposes?:
1818+ | "modlist"
1919+ | "curatelist"
2020+ | (string & globalThis.Record<PropertyKey, never>)[];
2121+};
2222+export type InputSchema = undefined;
2323+2424+export interface OutputSchema {
2525+ cursor?: string;
2626+ listsWithMembership: (ListWithMembership)[];
2727+}
2828+2929+export type HandlerInput = void;
3030+3131+export interface HandlerSuccess {
3232+ encoding: "application/json";
3333+ body: OutputSchema;
3434+ headers?: { [key: string]: string };
3535+}
3636+3737+export interface HandlerError {
3838+ status: number;
3939+ message?: string;
4040+}
4141+4242+export type HandlerOutput = HandlerError | HandlerSuccess;
4343+4444+/** A list and an optional list item indicating membership of a target user to that list. */
4545+export interface ListWithMembership {
4646+ $type?: "app.bsky.graph.getListsWithMembership#listWithMembership";
4747+ list: AppBskyGraphDefs.ListView;
4848+ listItem?: AppBskyGraphDefs.ListItemView;
4949+}
5050+5151+const hashListWithMembership = "listWithMembership";
5252+5353+export function isListWithMembership<V>(v: V) {
5454+ return is$typed(v, id, hashListWithMembership);
5555+}
5656+5757+export function validateListWithMembership<V>(v: V) {
5858+ return validate<ListWithMembership & V>(v, id, hashListWithMembership);
5959+}
+1-1
lex/types/app/bsky/graph/getRelationships.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as AppBskyGraphDefs from "./defs.ts";
6677export type QueryParams = {
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+import type * as AppBskyGraphDefs from "./defs.ts";
77+88+const is$typed = _is$typed, validate = _validate;
99+const id = "app.bsky.graph.getStarterPacksWithMembership";
1010+1111+export type QueryParams = {
1212+ /** The account (actor) to check for membership. */
1313+ actor: string;
1414+ limit: number;
1515+ cursor?: string;
1616+};
1717+export type InputSchema = undefined;
1818+1919+export interface OutputSchema {
2020+ cursor?: string;
2121+ starterPacksWithMembership: (StarterPackWithMembership)[];
2222+}
2323+2424+export type HandlerInput = void;
2525+2626+export interface HandlerSuccess {
2727+ encoding: "application/json";
2828+ body: OutputSchema;
2929+ headers?: { [key: string]: string };
3030+}
3131+3232+export interface HandlerError {
3333+ status: number;
3434+ message?: string;
3535+}
3636+3737+export type HandlerOutput = HandlerError | HandlerSuccess;
3838+3939+/** A starter pack and an optional list item indicating membership of a target user to that starter pack. */
4040+export interface StarterPackWithMembership {
4141+ $type?:
4242+ "app.bsky.graph.getStarterPacksWithMembership#starterPackWithMembership";
4343+ starterPack: AppBskyGraphDefs.StarterPackView;
4444+ listItem?: AppBskyGraphDefs.ListItemView;
4545+}
4646+4747+const hashStarterPackWithMembership = "starterPackWithMembership";
4848+4949+export function isStarterPackWithMembership<V>(v: V) {
5050+ return is$typed(v, id, hashStarterPackWithMembership);
5151+}
5252+5353+export function validateStarterPackWithMembership<V>(v: V) {
5454+ return validate<StarterPackWithMembership & V>(
5555+ v,
5656+ id,
5757+ hashStarterPackWithMembership,
5858+ );
5959+}
+4-3
lex/types/app/bsky/graph/list.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
87import type * as AppBskyGraphDefs from "./defs.ts";
98import type * as AppBskyRichtextFacet from "../richtext/facet.ts";
109import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···3433export function validateRecord<V>(v: V) {
3534 return validate<Record & V>(v, id, hashRecord, true);
3635}
3636+3737+export type Main = Record;
+2
lex/types/app/bsky/graph/listblock.ts
···2424export function validateRecord<V>(v: V) {
2525 return validate<Record & V>(v, id, hashRecord, true);
2626}
2727+2828+export type Main = Record;
+2
lex/types/app/bsky/graph/listitem.ts
···2626export function validateRecord<V>(v: V) {
2727 return validate<Record & V>(v, id, hashRecord, true);
2828}
2929+3030+export type Main = Record;
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+77+const is$typed = _is$typed, validate = _validate;
88+const id = "app.bsky.graph.verification";
99+1010+export interface Record {
1111+ $type: "app.bsky.graph.verification";
1212+ /** DID of the subject the verification applies to. */
1313+ subject: string;
1414+ /** Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. */
1515+ handle: string;
1616+ /** Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. */
1717+ displayName: string;
1818+ /** Date of when the verification was created. */
1919+ createdAt: string;
2020+ [k: string]: unknown;
2121+}
2222+2323+const hashRecord = "main";
2424+2525+export function isRecord<V>(v: V) {
2626+ return is$typed(v, id, hashRecord);
2727+}
2828+2929+export function validateRecord<V>(v: V) {
3030+ return validate<Record & V>(v, id, hashRecord, true);
3131+}
3232+3333+export type Main = Record;
+1-1
lex/types/app/bsky/labeler/getServices.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as AppBskyLabelerDefs from "./defs.ts";
6677export type QueryParams = {
+3-2
lex/types/app/bsky/labeler/service.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as AppBskyLabelerDefs from "./defs.ts";
87import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
98import type * as ComAtprotoModerationDefs from "../../../com/atproto/moderation/defs.ts";
···3433export function validateRecord<V>(v: V) {
3534 return validate<Record & V>(v, id, hashRecord, true);
3635}
3636+3737+export type Main = Record;
+31
lex/types/app/bsky/notification/declaration.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+77+const is$typed = _is$typed, validate = _validate;
88+const id = "app.bsky.notification.declaration";
99+1010+export interface Record {
1111+ $type: "app.bsky.notification.declaration";
1212+ /** A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'. */
1313+ allowSubscriptions:
1414+ | "followers"
1515+ | "mutuals"
1616+ | "none"
1717+ | (string & globalThis.Record<PropertyKey, never>);
1818+ [k: string]: unknown;
1919+}
2020+2121+const hashRecord = "main";
2222+2323+export function isRecord<V>(v: V) {
2424+ return is$typed(v, id, hashRecord);
2525+}
2626+2727+export function validateRecord<V>(v: V) {
2828+ return validate<Record & V>(v, id, hashRecord, true);
2929+}
3030+3131+export type Main = Record;
···1212 | "web"
1313 | (string & globalThis.Record<PropertyKey, never>);
1414 appId: string;
1515+ /** Set to true when the actor is age restricted */
1616+ ageRestricted?: boolean;
1517}
16181719export interface HandlerInput {
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
7687const is$typed = _is$typed, validate = _validate;
98const id = "app.bsky.richtext.facet";
+177
lex/types/app/bsky/unspecced/defs.ts
···33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55import { is$typed as _is$typed } from "../../../../util.ts";
66+import type * as AppBskyActorDefs from "../actor/defs.ts";
77+import type * as AppBskyFeedDefs from "../feed/defs.ts";
6879const is$typed = _is$typed, validate = _validate;
810const id = "app.bsky.unspecced.defs";
···7375export function validateTrendingTopic<V>(v: V) {
7476 return validate<TrendingTopic & V>(v, id, hashTrendingTopic);
7577}
7878+7979+export interface SkeletonTrend {
8080+ $type?: "app.bsky.unspecced.defs#skeletonTrend";
8181+ topic: string;
8282+ displayName: string;
8383+ link: string;
8484+ startedAt: string;
8585+ postCount: number;
8686+ status?: "hot" | (string & globalThis.Record<PropertyKey, never>);
8787+ category?: string;
8888+ dids: (string)[];
8989+}
9090+9191+const hashSkeletonTrend = "skeletonTrend";
9292+9393+export function isSkeletonTrend<V>(v: V) {
9494+ return is$typed(v, id, hashSkeletonTrend);
9595+}
9696+9797+export function validateSkeletonTrend<V>(v: V) {
9898+ return validate<SkeletonTrend & V>(v, id, hashSkeletonTrend);
9999+}
100100+101101+export interface TrendView {
102102+ $type?: "app.bsky.unspecced.defs#trendView";
103103+ topic: string;
104104+ displayName: string;
105105+ link: string;
106106+ startedAt: string;
107107+ postCount: number;
108108+ status?: "hot" | (string & globalThis.Record<PropertyKey, never>);
109109+ category?: string;
110110+ actors: (AppBskyActorDefs.ProfileViewBasic)[];
111111+}
112112+113113+const hashTrendView = "trendView";
114114+115115+export function isTrendView<V>(v: V) {
116116+ return is$typed(v, id, hashTrendView);
117117+}
118118+119119+export function validateTrendView<V>(v: V) {
120120+ return validate<TrendView & V>(v, id, hashTrendView);
121121+}
122122+123123+export interface ThreadItemPost {
124124+ $type?: "app.bsky.unspecced.defs#threadItemPost";
125125+ post: AppBskyFeedDefs.PostView;
126126+ /** This post has more parents that were not present in the response. This is just a boolean, without the number of parents. */
127127+ moreParents: boolean;
128128+ /** This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate. */
129129+ moreReplies: number;
130130+ /** This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread. */
131131+ opThread: boolean;
132132+ /** The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread. */
133133+ hiddenByThreadgate: boolean;
134134+ /** This is by an account muted by the viewer requesting it. */
135135+ mutedByViewer: boolean;
136136+}
137137+138138+const hashThreadItemPost = "threadItemPost";
139139+140140+export function isThreadItemPost<V>(v: V) {
141141+ return is$typed(v, id, hashThreadItemPost);
142142+}
143143+144144+export function validateThreadItemPost<V>(v: V) {
145145+ return validate<ThreadItemPost & V>(v, id, hashThreadItemPost);
146146+}
147147+148148+export interface ThreadItemNoUnauthenticated {
149149+ $type?: "app.bsky.unspecced.defs#threadItemNoUnauthenticated";
150150+}
151151+152152+const hashThreadItemNoUnauthenticated = "threadItemNoUnauthenticated";
153153+154154+export function isThreadItemNoUnauthenticated<V>(v: V) {
155155+ return is$typed(v, id, hashThreadItemNoUnauthenticated);
156156+}
157157+158158+export function validateThreadItemNoUnauthenticated<V>(v: V) {
159159+ return validate<ThreadItemNoUnauthenticated & V>(
160160+ v,
161161+ id,
162162+ hashThreadItemNoUnauthenticated,
163163+ );
164164+}
165165+166166+export interface ThreadItemNotFound {
167167+ $type?: "app.bsky.unspecced.defs#threadItemNotFound";
168168+}
169169+170170+const hashThreadItemNotFound = "threadItemNotFound";
171171+172172+export function isThreadItemNotFound<V>(v: V) {
173173+ return is$typed(v, id, hashThreadItemNotFound);
174174+}
175175+176176+export function validateThreadItemNotFound<V>(v: V) {
177177+ return validate<ThreadItemNotFound & V>(v, id, hashThreadItemNotFound);
178178+}
179179+180180+export interface ThreadItemBlocked {
181181+ $type?: "app.bsky.unspecced.defs#threadItemBlocked";
182182+ author: AppBskyFeedDefs.BlockedAuthor;
183183+}
184184+185185+const hashThreadItemBlocked = "threadItemBlocked";
186186+187187+export function isThreadItemBlocked<V>(v: V) {
188188+ return is$typed(v, id, hashThreadItemBlocked);
189189+}
190190+191191+export function validateThreadItemBlocked<V>(v: V) {
192192+ return validate<ThreadItemBlocked & V>(v, id, hashThreadItemBlocked);
193193+}
194194+195195+/** The computed state of the age assurance process, returned to the user in question on certain authenticated requests. */
196196+export interface AgeAssuranceState {
197197+ $type?: "app.bsky.unspecced.defs#ageAssuranceState";
198198+ /** The timestamp when this state was last updated. */
199199+ lastInitiatedAt?: string;
200200+ /** The status of the age assurance process. */
201201+ status:
202202+ | "unknown"
203203+ | "pending"
204204+ | "assured"
205205+ | "blocked"
206206+ | (string & globalThis.Record<PropertyKey, never>);
207207+}
208208+209209+const hashAgeAssuranceState = "ageAssuranceState";
210210+211211+export function isAgeAssuranceState<V>(v: V) {
212212+ return is$typed(v, id, hashAgeAssuranceState);
213213+}
214214+215215+export function validateAgeAssuranceState<V>(v: V) {
216216+ return validate<AgeAssuranceState & V>(v, id, hashAgeAssuranceState);
217217+}
218218+219219+/** Object used to store age assurance data in stash. */
220220+export interface AgeAssuranceEvent {
221221+ $type?: "app.bsky.unspecced.defs#ageAssuranceEvent";
222222+ /** The date and time of this write operation. */
223223+ createdAt: string;
224224+ /** The status of the age assurance process. */
225225+ status:
226226+ | "unknown"
227227+ | "pending"
228228+ | "assured"
229229+ | (string & globalThis.Record<PropertyKey, never>);
230230+ /** The unique identifier for this instance of the age assurance flow, in UUID format. */
231231+ attemptId: string;
232232+ /** The email used for AA. */
233233+ email?: string;
234234+ /** The IP address used when initiating the AA flow. */
235235+ initIp?: string;
236236+ /** The user agent used when initiating the AA flow. */
237237+ initUa?: string;
238238+ /** The IP address used when completing the AA flow. */
239239+ completeIp?: string;
240240+ /** The user agent used when completing the AA flow. */
241241+ completeUa?: string;
242242+}
243243+244244+const hashAgeAssuranceEvent = "ageAssuranceEvent";
245245+246246+export function isAgeAssuranceEvent<V>(v: V) {
247247+ return is$typed(v, id, hashAgeAssuranceEvent);
248248+}
249249+250250+export function validateAgeAssuranceEvent<V>(v: V) {
251251+ return validate<AgeAssuranceEvent & V>(v, id, hashAgeAssuranceEvent);
252252+}
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
66+import type * as AppBskyUnspeccedDefs from "./defs.ts";
77+88+const is$typed = _is$typed, validate = _validate;
99+const id = "app.bsky.unspecced.getPostThreadOtherV2";
1010+1111+export type QueryParams = {
1212+ /** Reference (AT-URI) to post record. This is the anchor post. */
1313+ anchor: string;
1414+};
1515+export type InputSchema = undefined;
1616+1717+export interface OutputSchema {
1818+ /** A flat list of other thread items. The depth of each item is indicated by the depth property inside the item. */
1919+ thread: (ThreadItem)[];
2020+}
2121+2222+export type HandlerInput = void;
2323+2424+export interface HandlerSuccess {
2525+ encoding: "application/json";
2626+ body: OutputSchema;
2727+ headers?: { [key: string]: string };
2828+}
2929+3030+export interface HandlerError {
3131+ status: number;
3232+ message?: string;
3333+}
3434+3535+export type HandlerOutput = HandlerError | HandlerSuccess;
3636+3737+export interface ThreadItem {
3838+ $type?: "app.bsky.unspecced.getPostThreadOtherV2#threadItem";
3939+ uri: string;
4040+ /** The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. */
4141+ depth: number;
4242+ value: $Typed<AppBskyUnspeccedDefs.ThreadItemPost> | { $type: string };
4343+}
4444+4545+const hashThreadItem = "threadItem";
4646+4747+export function isThreadItem<V>(v: V) {
4848+ return is$typed(v, id, hashThreadItem);
4949+}
5050+5151+export function validateThreadItem<V>(v: V) {
5252+ return validate<ThreadItem & V>(v, id, hashThreadItem);
5353+}
+74
lex/types/app/bsky/unspecced/getPostThreadV2.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
66+import type * as AppBskyFeedDefs from "../feed/defs.ts";
77+import type * as AppBskyUnspeccedDefs from "./defs.ts";
88+99+const is$typed = _is$typed, validate = _validate;
1010+const id = "app.bsky.unspecced.getPostThreadV2";
1111+1212+export type QueryParams = {
1313+ /** Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post. */
1414+ anchor: string;
1515+ /** Whether to include parents above the anchor. */
1616+ above: boolean;
1717+ /** How many levels of replies to include below the anchor. */
1818+ below: number;
1919+ /** Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated). */
2020+ branchingFactor: number;
2121+ /** Sorting for the thread replies. */
2222+ sort:
2323+ | "newest"
2424+ | "oldest"
2525+ | "top"
2626+ | (string & globalThis.Record<PropertyKey, never>);
2727+};
2828+export type InputSchema = undefined;
2929+3030+export interface OutputSchema {
3131+ /** A flat list of thread items. The depth of each item is indicated by the depth property inside the item. */
3232+ thread: (ThreadItem)[];
3333+ threadgate?: AppBskyFeedDefs.ThreadgateView;
3434+ /** Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them. */
3535+ hasOtherReplies: boolean;
3636+}
3737+3838+export type HandlerInput = void;
3939+4040+export interface HandlerSuccess {
4141+ encoding: "application/json";
4242+ body: OutputSchema;
4343+ headers?: { [key: string]: string };
4444+}
4545+4646+export interface HandlerError {
4747+ status: number;
4848+ message?: string;
4949+}
5050+5151+export type HandlerOutput = HandlerError | HandlerSuccess;
5252+5353+export interface ThreadItem {
5454+ $type?: "app.bsky.unspecced.getPostThreadV2#threadItem";
5555+ uri: string;
5656+ /** The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. */
5757+ depth: number;
5858+ value:
5959+ | $Typed<AppBskyUnspeccedDefs.ThreadItemPost>
6060+ | $Typed<AppBskyUnspeccedDefs.ThreadItemNoUnauthenticated>
6161+ | $Typed<AppBskyUnspeccedDefs.ThreadItemNotFound>
6262+ | $Typed<AppBskyUnspeccedDefs.ThreadItemBlocked>
6363+ | { $type: string };
6464+}
6565+6666+const hashThreadItem = "threadItem";
6767+6868+export function isThreadItem<V>(v: V) {
6969+ return is$typed(v, id, hashThreadItem);
7070+}
7171+7272+export function validateThreadItem<V>(v: V) {
7373+ return validate<ThreadItem & V>(v, id, hashThreadItem);
7474+}
+28
lex/types/app/bsky/unspecced/getSuggestedFeeds.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyFeedDefs from "../feed/defs.ts";
55+66+export type QueryParams = {
77+ limit: number;
88+};
99+export type InputSchema = undefined;
1010+1111+export interface OutputSchema {
1212+ feeds: (AppBskyFeedDefs.GeneratorView)[];
1313+}
1414+1515+export type HandlerInput = void;
1616+1717+export interface HandlerSuccess {
1818+ encoding: "application/json";
1919+ body: OutputSchema;
2020+ headers?: { [key: string]: string };
2121+}
2222+2323+export interface HandlerError {
2424+ status: number;
2525+ message?: string;
2626+}
2727+2828+export type HandlerOutput = HandlerError | HandlerSuccess;
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+export type QueryParams = {
55+ /** DID of the account making the request (not included for public/unauthenticated queries). */
66+ viewer?: string;
77+ /** Category of users to get suggestions for. */
88+ category?: string;
99+ limit: number;
1010+};
1111+export type InputSchema = undefined;
1212+1313+export interface OutputSchema {
1414+ dids: (string)[];
1515+}
1616+1717+export type HandlerInput = void;
1818+1919+export interface HandlerSuccess {
2020+ encoding: "application/json";
2121+ body: OutputSchema;
2222+ headers?: { [key: string]: string };
2323+}
2424+2525+export interface HandlerError {
2626+ status: number;
2727+ message?: string;
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
+28
lex/types/app/bsky/unspecced/getTrends.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyUnspeccedDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ limit: number;
88+};
99+export type InputSchema = undefined;
1010+1111+export interface OutputSchema {
1212+ trends: (AppBskyUnspeccedDefs.TrendView)[];
1313+}
1414+1515+export type HandlerInput = void;
1616+1717+export interface HandlerSuccess {
1818+ encoding: "application/json";
1919+ body: OutputSchema;
2020+ headers?: { [key: string]: string };
2121+}
2222+2323+export interface HandlerError {
2424+ status: number;
2525+ message?: string;
2626+}
2727+2828+export type HandlerOutput = HandlerError | HandlerSuccess;
+30
lex/types/app/bsky/unspecced/getTrendsSkeleton.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyUnspeccedDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ /** DID of the account making the request (not included for public/unauthenticated queries). */
88+ viewer?: string;
99+ limit: number;
1010+};
1111+export type InputSchema = undefined;
1212+1313+export interface OutputSchema {
1414+ trends: (AppBskyUnspeccedDefs.SkeletonTrend)[];
1515+}
1616+1717+export type HandlerInput = void;
1818+1919+export interface HandlerSuccess {
2020+ encoding: "application/json";
2121+ body: OutputSchema;
2222+ headers?: { [key: string]: string };
2323+}
2424+2525+export interface HandlerError {
2626+ status: number;
2727+ message?: string;
2828+}
2929+3030+export type HandlerOutput = HandlerError | HandlerSuccess;
+36
lex/types/app/bsky/unspecced/initAgeAssurance.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as AppBskyUnspeccedDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+88+export interface InputSchema {
99+ /** The user's email address to receive assurance instructions. */
1010+ email: string;
1111+ /** The user's preferred language for communication during the assurance process. */
1212+ language: string;
1313+ /** An ISO 3166-1 alpha-2 code of the user's location. */
1414+ countryCode: string;
1515+}
1616+1717+export type OutputSchema = AppBskyUnspeccedDefs.AgeAssuranceState;
1818+1919+export interface HandlerInput {
2020+ encoding: "application/json";
2121+ body: InputSchema;
2222+}
2323+2424+export interface HandlerSuccess {
2525+ encoding: "application/json";
2626+ body: OutputSchema;
2727+ headers?: { [key: string]: string };
2828+}
2929+3030+export interface HandlerError {
3131+ status: number;
3232+ message?: string;
3333+ error?: "InvalidEmail" | "DidTooLong" | "InvalidInitiation";
3434+}
3535+3636+export type HandlerOutput = HandlerError | HandlerSuccess;
+1-1
lex/types/app/bsky/video/defs.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77
+1-2
lex/types/app/bsky/video/uploadVideo.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
54import type * as AppBskyVideoDefs from "./defs.ts";
6576export type QueryParams = globalThis.Record<PropertyKey, never>;
···13121413export interface HandlerInput {
1514 encoding: "video/mp4";
1616- body: stream.Readable;
1515+ body: ReadableStream;
1716}
18171918export interface HandlerSuccess {
+2
lex/types/chat/bsky/actor/declaration.ts
···2626export function validateRecord<V>(v: V) {
2727 return validate<Record & V>(v, id, hashRecord, true);
2828}
2929+3030+export type Main = Record;
+2-1
lex/types/chat/bsky/actor/defs.ts
···1818 associated?: AppBskyActorDefs.ProfileAssociated;
1919 viewer?: AppBskyActorDefs.ViewerState;
2020 labels?: (ComAtprotoLabelDefs.Label)[];
2121- /** Set to true when the actor cannot actively participate in converations */
2121+ /** Set to true when the actor cannot actively participate in conversations */
2222 chatDisabled?: boolean;
2323+ verification?: AppBskyActorDefs.VerificationState;
2324}
24252526const hashProfileViewBasic = "profileViewBasic";
+1-3
lex/types/chat/bsky/actor/exportAccountData.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = globalThis.Record<PropertyKey, never>;
75export type InputSchema = undefined;
86export type HandlerInput = void;
97108export interface HandlerSuccess {
119 encoding: "application/jsonl";
1212- body: Uint8Array | stream.Readable;
1010+ body: Uint8Array | ReadableStream;
1311 headers?: { [key: string]: string };
1412}
1513
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ChatBskyConvoDefs from "./defs.ts";
6677export type QueryParams = {
···1515 | $Typed<ChatBskyConvoDefs.LogBeginConvo>
1616 | $Typed<ChatBskyConvoDefs.LogAcceptConvo>
1717 | $Typed<ChatBskyConvoDefs.LogLeaveConvo>
1818+ | $Typed<ChatBskyConvoDefs.LogMuteConvo>
1919+ | $Typed<ChatBskyConvoDefs.LogUnmuteConvo>
1820 | $Typed<ChatBskyConvoDefs.LogCreateMessage>
1921 | $Typed<ChatBskyConvoDefs.LogDeleteMessage>
2222+ | $Typed<ChatBskyConvoDefs.LogReadMessage>
2323+ | $Typed<ChatBskyConvoDefs.LogAddReaction>
2424+ | $Typed<ChatBskyConvoDefs.LogRemoveReaction>
2025 | { $type: string }
2126 )[];
2227}
+1-1
lex/types/chat/bsky/convo/getMessages.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ChatBskyConvoDefs from "./defs.ts";
6677export type QueryParams = {
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ChatBskyConvoDefs from "../convo/defs.ts";
6677export type QueryParams = {
+1-1
lex/types/com/atproto/admin/getSubjectStatus.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ComAtprotoAdminDefs from "./defs.ts";
66import type * as ComAtprotoRepoStrongRef from "../repo/strongRef.ts";
77
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ComAtprotoAdminDefs from "./defs.ts";
66import type * as ComAtprotoRepoStrongRef from "../repo/strongRef.ts";
77
+27
lex/types/com/atproto/identity/defs.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+77+const is$typed = _is$typed, validate = _validate;
88+const id = "com.atproto.identity.defs";
99+1010+export interface IdentityInfo {
1111+ $type?: "com.atproto.identity.defs#identityInfo";
1212+ did: string;
1313+ /** The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document. */
1414+ handle: string;
1515+ /** The complete DID document for the identity. */
1616+ didDoc: { [_ in string]: unknown };
1717+}
1818+1919+const hashIdentityInfo = "identityInfo";
2020+2121+export function isIdentityInfo<V>(v: V) {
2222+ return is$typed(v, id, hashIdentityInfo);
2323+}
2424+2525+export function validateIdentityInfo<V>(v: V) {
2626+ return validate<IdentityInfo & V>(v, id, hashIdentityInfo);
2727+}
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as ComAtprotoIdentityDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ /** Handle or DID to resolve. */
88+ identifier: string;
99+};
1010+export type InputSchema = undefined;
1111+export type OutputSchema = ComAtprotoIdentityDefs.IdentityInfo;
1212+export type HandlerInput = void;
1313+1414+export interface HandlerSuccess {
1515+ encoding: "application/json";
1616+ body: OutputSchema;
1717+ headers?: { [key: string]: string };
1818+}
1919+2020+export interface HandlerError {
2121+ status: number;
2222+ message?: string;
2323+ error?: "HandleNotFound" | "DidNotFound" | "DidDeactivated";
2424+}
2525+2626+export type HandlerOutput = HandlerError | HandlerSuccess;
+2-3
lex/types/com/atproto/label/subscribeLabels.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
77-import { ErrorFrame } from "@atp/xrpc-server";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
66+import type { ErrorFrame } from "@atp/xrpc-server";
87import type * as ComAtprotoLabelDefs from "./defs.ts";
98109const is$typed = _is$typed, validate = _validate;
+34
lex/types/com/atproto/lexicon/resolveLexicon.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as ComAtprotoLexiconSchema from "./schema.ts";
55+66+export type QueryParams = {
77+ /** The lexicon NSID to resolve. */
88+ nsid: string;
99+};
1010+export type InputSchema = undefined;
1111+1212+export interface OutputSchema {
1313+ /** The CID of the lexicon schema record. */
1414+ cid: string;
1515+ schema: ComAtprotoLexiconSchema.Main;
1616+ /** The AT-URI of the lexicon schema record. */
1717+ uri: string;
1818+}
1919+2020+export type HandlerInput = void;
2121+2222+export interface HandlerSuccess {
2323+ encoding: "application/json";
2424+ body: OutputSchema;
2525+ headers?: { [key: string]: string };
2626+}
2727+2828+export interface HandlerError {
2929+ status: number;
3030+ message?: string;
3131+ error?: "LexiconNotFound";
3232+}
3333+3434+export type HandlerOutput = HandlerError | HandlerSuccess;
+2
lex/types/com/atproto/lexicon/schema.ts
···2323export function validateRecord<V>(v: V) {
2424 return validate<Record & V>(v, id, hashRecord, true);
2525}
2626+2727+export type Main = Record;
+25-1
lex/types/com/atproto/moderation/createReport.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
56import type * as ComAtprotoModerationDefs from "./defs.ts";
67import type * as ComAtprotoAdminDefs from "../admin/defs.ts";
78import type * as ComAtprotoRepoStrongRef from "../repo/strongRef.ts";
99+1010+const is$typed = _is$typed, validate = _validate;
1111+const id = "com.atproto.moderation.createReport";
812913export type QueryParams = globalThis.Record<PropertyKey, never>;
1014···1620 | $Typed<ComAtprotoAdminDefs.RepoRef>
1721 | $Typed<ComAtprotoRepoStrongRef.Main>
1822 | { $type: string };
2323+ modTool?: ModTool;
1924}
20252126export interface OutputSchema {
···4752}
48534954export type HandlerOutput = HandlerError | HandlerSuccess;
5555+5656+/** Moderation tool information for tracing the source of the action */
5757+export interface ModTool {
5858+ $type?: "com.atproto.moderation.createReport#modTool";
5959+ /** Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome') */
6060+ name: string;
6161+ /** Additional arbitrary metadata about the source */
6262+ meta?: { [_ in string]: unknown };
6363+}
6464+6565+const hashModTool = "modTool";
6666+6767+export function isModTool<V>(v: V) {
6868+ return is$typed(v, id, hashModTool);
6969+}
7070+7171+export function validateModTool<V>(v: V) {
7272+ return validate<ModTool & V>(v, id, hashModTool);
7373+}
+47-7
lex/types/com/atproto/moderation/defs.ts
···1111 | "com.atproto.moderation.defs#reasonRude"
1212 | "com.atproto.moderation.defs#reasonOther"
1313 | "com.atproto.moderation.defs#reasonAppeal"
1414+ | "tools.ozone.report.defs#reasonAppeal"
1515+ | "tools.ozone.report.defs#reasonOther"
1616+ | "tools.ozone.report.defs#reasonViolenceAnimal"
1717+ | "tools.ozone.report.defs#reasonViolenceThreats"
1818+ | "tools.ozone.report.defs#reasonViolenceGraphicContent"
1919+ | "tools.ozone.report.defs#reasonViolenceGlorification"
2020+ | "tools.ozone.report.defs#reasonViolenceExtremistContent"
2121+ | "tools.ozone.report.defs#reasonViolenceTrafficking"
2222+ | "tools.ozone.report.defs#reasonViolenceOther"
2323+ | "tools.ozone.report.defs#reasonSexualAbuseContent"
2424+ | "tools.ozone.report.defs#reasonSexualNCII"
2525+ | "tools.ozone.report.defs#reasonSexualDeepfake"
2626+ | "tools.ozone.report.defs#reasonSexualAnimal"
2727+ | "tools.ozone.report.defs#reasonSexualUnlabeled"
2828+ | "tools.ozone.report.defs#reasonSexualOther"
2929+ | "tools.ozone.report.defs#reasonChildSafetyCSAM"
3030+ | "tools.ozone.report.defs#reasonChildSafetyGroom"
3131+ | "tools.ozone.report.defs#reasonChildSafetyPrivacy"
3232+ | "tools.ozone.report.defs#reasonChildSafetyHarassment"
3333+ | "tools.ozone.report.defs#reasonChildSafetyOther"
3434+ | "tools.ozone.report.defs#reasonHarassmentTroll"
3535+ | "tools.ozone.report.defs#reasonHarassmentTargeted"
3636+ | "tools.ozone.report.defs#reasonHarassmentHateSpeech"
3737+ | "tools.ozone.report.defs#reasonHarassmentDoxxing"
3838+ | "tools.ozone.report.defs#reasonHarassmentOther"
3939+ | "tools.ozone.report.defs#reasonMisleadingBot"
4040+ | "tools.ozone.report.defs#reasonMisleadingImpersonation"
4141+ | "tools.ozone.report.defs#reasonMisleadingSpam"
4242+ | "tools.ozone.report.defs#reasonMisleadingScam"
4343+ | "tools.ozone.report.defs#reasonMisleadingElections"
4444+ | "tools.ozone.report.defs#reasonMisleadingOther"
4545+ | "tools.ozone.report.defs#reasonRuleSiteSecurity"
4646+ | "tools.ozone.report.defs#reasonRuleProhibitedSales"
4747+ | "tools.ozone.report.defs#reasonRuleBanEvasion"
4848+ | "tools.ozone.report.defs#reasonRuleOther"
4949+ | "tools.ozone.report.defs#reasonSelfHarmContent"
5050+ | "tools.ozone.report.defs#reasonSelfHarmED"
5151+ | "tools.ozone.report.defs#reasonSelfHarmStunts"
5252+ | "tools.ozone.report.defs#reasonSelfHarmSubstances"
5353+ | "tools.ozone.report.defs#reasonSelfHarmOther"
1454 | (string & globalThis.Record<PropertyKey, never>);
15551616-/** Spam: frequent unwanted promotion, replies, mentions */
5656+/** Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`. */
1757export const REASONSPAM = `${id}#reasonSpam`;
1818-/** Direct violation of server rules, laws, terms of service */
5858+/** Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`. */
1959export const REASONVIOLATION = `${id}#reasonViolation`;
2020-/** Misleading identity, affiliation, or content */
6060+/** Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`. */
2161export const REASONMISLEADING = `${id}#reasonMisleading`;
2222-/** Unwanted or mislabeled sexual content */
6262+/** Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`. */
2363export const REASONSEXUAL = `${id}#reasonSexual`;
2424-/** Rude, harassing, explicit, or otherwise unwelcoming behavior */
6464+/** Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`. */
2565export const REASONRUDE = `${id}#reasonRude`;
2626-/** Other: reports not falling under another report category */
6666+/** Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonOther`. */
2767export const REASONOTHER = `${id}#reasonOther`;
2828-/** Appeal: appeal a previously taken moderation action */
6868+/** Appeal a previously taken moderation action */
2969export const REASONAPPEAL = `${id}#reasonAppeal`;
30703171/** Tag describing a type of subject that might be reported. */
+2-2
lex/types/com/atproto/repo/applyWrites.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as ComAtprotoRepoDefs from "./defs.ts";
8798const is$typed = _is$typed, validate = _validate;
···5049export interface Create {
5150 $type?: "com.atproto.repo.applyWrites#create";
5251 collection: string;
5252+ /** NOTE: maxLength is redundant with record-key format. Keeping it temporarily to ensure backwards compatibility. */
5353 rkey?: string;
5454 value: { [_ in string]: unknown };
5555}
+1-3
lex/types/com/atproto/repo/importRepo.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = globalThis.Record<PropertyKey, never>;
75export type InputSchema = string | Uint8Array | Blob;
8697export interface HandlerInput {
108 encoding: "application/vnd.ipld.car";
1111- body: stream.Readable;
99+ body: ReadableStream;
1210}
13111412export interface HandlerError {
-4
lex/types/com/atproto/repo/listRecords.ts
···1515 /** The number of records to return. */
1616 limit: number;
1717 cursor?: string;
1818- /** DEPRECATED: The lowest sort-ordered rkey to start from (exclusive) */
1919- rkeyStart?: string;
2020- /** DEPRECATED: The highest sort-ordered rkey to stop at (exclusive) */
2121- rkeyEnd?: string;
2218 /** Flag to reverse the order of the returned records. */
2319 reverse?: boolean;
2420};
+2-3
lex/types/com/atproto/repo/uploadBlob.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
6576export type QueryParams = globalThis.Record<PropertyKey, never>;
87export type InputSchema = string | Uint8Array | Blob;
···13121413export interface HandlerInput {
1514 encoding: "*/*";
1616- body: stream.Readable;
1515+ body: ReadableStream;
1716}
18171918export interface HandlerSuccess {
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = {
75 /** The DID of the account. */
86 did: string;
···14121513export interface HandlerSuccess {
1614 encoding: "*/*";
1717- body: Uint8Array | stream.Readable;
1515+ body: Uint8Array | ReadableStream;
1816 headers?: { [key: string]: string };
1917}
2018
+1-3
lex/types/com/atproto/sync/getBlocks.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = {
75 /** The DID of the repo. */
86 did: string;
···13111412export interface HandlerSuccess {
1513 encoding: "application/vnd.ipld.car";
1616- body: Uint8Array | stream.Readable;
1414+ body: Uint8Array | ReadableStream;
1715 headers?: { [key: string]: string };
1816}
1917
+1-3
lex/types/com/atproto/sync/getCheckout.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = {
75 /** The DID of the repo. */
86 did: string;
···12101311export interface HandlerSuccess {
1412 encoding: "application/vnd.ipld.car";
1515- body: Uint8Array | stream.Readable;
1313+ body: Uint8Array | ReadableStream;
1614 headers?: { [key: string]: string };
1715}
1816
+35
lex/types/com/atproto/sync/getHostStatus.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as ComAtprotoSyncDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ /** Hostname of the host (eg, PDS or relay) being queried. */
88+ hostname: string;
99+};
1010+export type InputSchema = undefined;
1111+1212+export interface OutputSchema {
1313+ hostname: string;
1414+ /** Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). */
1515+ seq?: number;
1616+ /** Number of accounts on the server which are associated with the upstream host. Note that the upstream may actually have more accounts. */
1717+ accountCount?: number;
1818+ status?: ComAtprotoSyncDefs.HostStatus;
1919+}
2020+2121+export type HandlerInput = void;
2222+2323+export interface HandlerSuccess {
2424+ encoding: "application/json";
2525+ body: OutputSchema;
2626+ headers?: { [key: string]: string };
2727+}
2828+2929+export interface HandlerError {
3030+ status: number;
3131+ message?: string;
3232+ error?: "HostNotFound";
3333+}
3434+3535+export type HandlerOutput = HandlerError | HandlerSuccess;
+1-5
lex/types/com/atproto/sync/getRecord.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = {
75 /** The DID of the repo. */
86 did: string;
97 collection: string;
108 /** Record Key */
119 rkey: string;
1212- /** DEPRECATED: referenced a repo commit by CID, and retrieved record as of that commit */
1313- commit?: string;
1410};
1511export type InputSchema = undefined;
1612export type HandlerInput = void;
17131814export interface HandlerSuccess {
1915 encoding: "application/vnd.ipld.car";
2020- body: Uint8Array | stream.Readable;
1616+ body: Uint8Array | ReadableStream;
2117 headers?: { [key: string]: string };
2218}
2319
+1-3
lex/types/com/atproto/sync/getRepo.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
55-64export type QueryParams = {
75 /** The DID of the repo. */
86 did: string;
···14121513export interface HandlerSuccess {
1614 encoding: "application/vnd.ipld.car";
1717- body: Uint8Array | stream.Readable;
1515+ body: Uint8Array | ReadableStream;
1816 headers?: { [key: string]: string };
1917}
2018
+3
lex/types/com/atproto/sync/getRepoStatus.ts
···1414 status?:
1515 | "takendown"
1616 | "suspended"
1717+ | "deleted"
1718 | "deactivated"
1919+ | "desynchronized"
2020+ | "throttled"
1821 | (string & globalThis.Record<PropertyKey, never>);
1922 /** Optional field, the current rev of the repo, if active=true */
2023 rev?: string;
+56
lex/types/com/atproto/sync/listHosts.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+import type * as ComAtprotoSyncDefs from "./defs.ts";
77+88+const is$typed = _is$typed, validate = _validate;
99+const id = "com.atproto.sync.listHosts";
1010+1111+export type QueryParams = {
1212+ limit: number;
1313+ cursor?: string;
1414+};
1515+export type InputSchema = undefined;
1616+1717+export interface OutputSchema {
1818+ cursor?: string;
1919+ /** Sort order is not formally specified. Recommended order is by time host was first seen by the server, with oldest first. */
2020+ hosts: (Host)[];
2121+}
2222+2323+export type HandlerInput = void;
2424+2525+export interface HandlerSuccess {
2626+ encoding: "application/json";
2727+ body: OutputSchema;
2828+ headers?: { [key: string]: string };
2929+}
3030+3131+export interface HandlerError {
3232+ status: number;
3333+ message?: string;
3434+}
3535+3636+export type HandlerOutput = HandlerError | HandlerSuccess;
3737+3838+export interface Host {
3939+ $type?: "com.atproto.sync.listHosts#host";
4040+ /** hostname of server; not a URL (no scheme) */
4141+ hostname: string;
4242+ /** Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). */
4343+ seq?: number;
4444+ accountCount?: number;
4545+ status?: ComAtprotoSyncDefs.HostStatus;
4646+}
4747+4848+const hashHost = "host";
4949+5050+export function isHost<V>(v: V) {
5151+ return is$typed(v, id, hashHost);
5252+}
5353+5454+export function validateHost<V>(v: V) {
5555+ return validate<Host & V>(v, id, hashHost);
5656+}
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { CID } from "multiformats/cid";
44+import type { CID } from "multiformats/cid";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
88-import { ErrorFrame } from "@atp/xrpc-server";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
77+import type { ErrorFrame } from "@atp/xrpc-server";
98109const is$typed = _is$typed, validate = _validate;
1110const id = "com.atproto.sync.subscribeRepos";
···1615};
1716export type OutputSchema =
1817 | $Typed<Commit>
1818+ | $Typed<Sync>
1919 | $Typed<Identity>
2020 | $Typed<Account>
2121- | $Typed<Handle>
2222- | $Typed<Migrate>
2323- | $Typed<Tombstone>
2421 | $Typed<Info>
2522 | { $type: string };
2623export type HandlerError = ErrorFrame<"FutureCursor" | "ConsumerTooSlow">;
···3330 seq: number;
3431 /** DEPRECATED -- unused */
3532 rebase: boolean;
3636- /** Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data. */
3333+ /** DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data. */
3734 tooBig: boolean;
3838- /** The repo this event comes from. */
3535+ /** The repo this event comes from. Note that all other message types name this field 'did'. */
3936 repo: string;
4037 /** Repo commit object CID. */
4138 commit: CID;
4242- /** DEPRECATED -- unused. WARNING -- nullable and optional; stick with optional to ensure golang interoperability. */
4343- prev?: CID | null;
4439 /** The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event. */
4540 rev: string;
4641 /** The rev of the last emitted commit from this repo (if any). */
4742 since: string | null;
4848- /** CAR file containing relevant blocks, as a diff since the previous repo state. */
4343+ /** CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list. */
4944 blocks: Uint8Array;
5045 ops: (RepoOp)[];
5146 blobs: (CID)[];
4747+ /** The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose. */
4848+ prevData?: CID;
5249 /** Timestamp of when this message was originally broadcast. */
5350 time: string;
5451}
···6360 return validate<Commit & V>(v, id, hashCommit);
6461}
65626363+/** Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository. */
6464+export interface Sync {
6565+ $type?: "com.atproto.sync.subscribeRepos#sync";
6666+ /** The stream sequence number of this message. */
6767+ seq: number;
6868+ /** The account this repo event corresponds to. Must match that in the commit object. */
6969+ did: string;
7070+ /** CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'. */
7171+ blocks: Uint8Array;
7272+ /** The rev of the commit. This value must match that in the commit object. */
7373+ rev: string;
7474+ /** Timestamp of when this message was originally broadcast. */
7575+ time: string;
7676+}
7777+7878+const hashSync = "sync";
7979+8080+export function isSync<V>(v: V) {
8181+ return is$typed(v, id, hashSync);
8282+}
8383+8484+export function validateSync<V>(v: V) {
8585+ return validate<Sync & V>(v, id, hashSync);
8686+}
8787+6688/** Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache. */
6789export interface Identity {
6890 $type?: "com.atproto.sync.subscribeRepos#identity";
···97119 | "suspended"
98120 | "deleted"
99121 | "deactivated"
122122+ | "desynchronized"
123123+ | "throttled"
100124 | (string & globalThis.Record<PropertyKey, never>);
101125}
102126···110134 return validate<Account & V>(v, id, hashAccount);
111135}
112136113113-/** DEPRECATED -- Use #identity event instead */
114114-export interface Handle {
115115- $type?: "com.atproto.sync.subscribeRepos#handle";
116116- seq: number;
117117- did: string;
118118- handle: string;
119119- time: string;
120120-}
121121-122122-const hashHandle = "handle";
123123-124124-export function isHandle<V>(v: V) {
125125- return is$typed(v, id, hashHandle);
126126-}
127127-128128-export function validateHandle<V>(v: V) {
129129- return validate<Handle & V>(v, id, hashHandle);
130130-}
131131-132132-/** DEPRECATED -- Use #account event instead */
133133-export interface Migrate {
134134- $type?: "com.atproto.sync.subscribeRepos#migrate";
135135- seq: number;
136136- did: string;
137137- migrateTo: string | null;
138138- time: string;
139139-}
140140-141141-const hashMigrate = "migrate";
142142-143143-export function isMigrate<V>(v: V) {
144144- return is$typed(v, id, hashMigrate);
145145-}
146146-147147-export function validateMigrate<V>(v: V) {
148148- return validate<Migrate & V>(v, id, hashMigrate);
149149-}
150150-151151-/** DEPRECATED -- Use #account event instead */
152152-export interface Tombstone {
153153- $type?: "com.atproto.sync.subscribeRepos#tombstone";
154154- seq: number;
155155- did: string;
156156- time: string;
157157-}
158158-159159-const hashTombstone = "tombstone";
160160-161161-export function isTombstone<V>(v: V) {
162162- return is$typed(v, id, hashTombstone);
163163-}
164164-165165-export function validateTombstone<V>(v: V) {
166166- return validate<Tombstone & V>(v, id, hashTombstone);
167167-}
168168-169137export interface Info {
170138 $type?: "com.atproto.sync.subscribeRepos#info";
171139 name: "OutdatedCursor" | (string & globalThis.Record<PropertyKey, never>);
···193161 path: string;
194162 /** For creates and updates, the new record CID. For deletions, null. */
195163 cid: CID | null;
164164+ /** For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined. */
165165+ prev?: CID;
196166}
197167198168const hashRepoOp = "repoOp";
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
87import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
98import type * as SoSprkFeedThreadgate from "../feed/threadgate.ts";
···165164}
166165167166export type Preferences = (
168168- | $Typed<AdultContentPref>
169167 | $Typed<ContentLabelPref>
170168 | $Typed<SavedFeedsPref>
171169 | $Typed<PersonalDetailsPref>
···178176 | $Typed<PostInteractionSettingsPref>
179177 | { $type: string }
180178)[];
181181-182182-export interface AdultContentPref {
183183- $type?: "so.sprk.actor.defs#adultContentPref";
184184- enabled: boolean;
185185-}
186186-187187-const hashAdultContentPref = "adultContentPref";
188188-189189-export function isAdultContentPref<V>(v: V) {
190190- return is$typed(v, id, hashAdultContentPref);
191191-}
192192-193193-export function validateAdultContentPref<V>(v: V) {
194194- return validate<AdultContentPref & V>(v, id, hashAdultContentPref);
195195-}
196179197180export interface ContentLabelPref {
198181 $type?: "so.sprk.actor.defs#contentLabelPref";
···305288 | "random"
306289 | "hotness"
307290 | (string & globalThis.Record<PropertyKey, never>);
308308- /** Show followed users at the top of all replies. */
309309- prioritizeFollowedUsers?: boolean;
310291}
311292312293const hashThreadViewPref = "threadViewPref";
+4-3
lex/types/so/sprk/actor/profile.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
87import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
98import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
109···3635export function validateRecord<V>(v: V) {
3736 return validate<Record & V>(v, id, hashRecord, true);
3837}
3838+3939+export type Main = Record;
+1-2
lex/types/so/sprk/feed/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkActorDefs from "../actor/defs.ts";
87import type * as SoSprkMediaImages from "../media/images.ts";
98import type * as SoSprkMediaVideo from "../media/video.ts";
+4-3
lex/types/so/sprk/feed/generator.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
87import type * as SoSprkRichtextFacet from "../richtext/facet.ts";
98import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
109···3433export function validateRecord<V>(v: V) {
3534 return validate<Record & V>(v, id, hashRecord, true);
3635}
3636+3737+export type Main = Record;
+1-4
lex/types/so/sprk/feed/getPostThread.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkFeedDefs from "./defs.ts";
8798const is$typed = _is$typed, validate = _validate;
···1817 depth: number;
1918 /** How many levels of parent (and grandparent, etc) post to include. */
2019 parentHeight: number;
2121- /** Whether to prioritize posts from followed users. It only has effect when the user is authenticated. */
2222- prioritizeFollowedUsers: boolean;
2320 /** Sorting for the thread replies. */
2421 sort:
2522 | "newest"
+2
lex/types/so/sprk/feed/like.ts
···2525export function validateRecord<V>(v: V) {
2626 return validate<Record & V>(v, id, hashRecord, true);
2727}
2828+2929+export type Main = Record;
+3-2
lex/types/so/sprk/feed/post.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkMediaImages from "../media/images.ts";
87import type * as SoSprkMediaVideo from "../media/video.ts";
98import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···3938export function validateRecord<V>(v: V) {
4039 return validate<Record & V>(v, id, hashRecord, true);
4140}
4141+4242+export type Main = Record;
42434344export interface CaptionRef {
4445 $type?: "so.sprk.feed.post#captionRef";
+3-2
lex/types/so/sprk/feed/postgate.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
7687const is$typed = _is$typed, validate = _validate;
98const id = "so.sprk.feed.postgate";
···2928export function validateRecord<V>(v: V) {
3029 return validate<Record & V>(v, id, hashRecord, true);
3130}
3131+3232+export type Main = Record;
32333334/** Disables embedding of this post. */
3435export interface DisableRule {
+3-2
lex/types/so/sprk/feed/reply.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkRichtextFacet from "../richtext/facet.ts";
87import type * as SoSprkMediaImage from "../media/image.ts";
98import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···3736export function validateRecord<V>(v: V) {
3837 return validate<Record & V>(v, id, hashRecord, true);
3938}
3939+4040+export type Main = Record;
40414142export interface ReplyRef {
4243 $type?: "so.sprk.feed.reply#replyRef";
+2
lex/types/so/sprk/feed/repost.ts
···2525export function validateRecord<V>(v: V) {
2626 return validate<Record & V>(v, id, hashRecord, true);
2727}
2828+2929+export type Main = Record;
+3-2
lex/types/so/sprk/feed/threadgate.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
7687const is$typed = _is$typed, validate = _validate;
98const id = "so.sprk.feed.threadgate";
···3231export function validateRecord<V>(v: V) {
3332 return validate<Record & V>(v, id, hashRecord, true);
3433}
3434+3535+export type Main = Record;
35363637/** Allow replies from actors mentioned in your post. */
3738export interface MentionRule {
+2
lex/types/so/sprk/graph/block.ts
···2424export function validateRecord<V>(v: V) {
2525 return validate<Record & V>(v, id, hashRecord, true);
2626}
2727+2828+export type Main = Record;
+2
lex/types/so/sprk/graph/follow.ts
···2323export function validateRecord<V>(v: V) {
2424 return validate<Record & V>(v, id, hashRecord, true);
2525}
2626+2727+export type Main = Record;
+1-1
lex/types/so/sprk/graph/getRelationships.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as SoSprkGraphDefs from "./defs.ts";
6677export type QueryParams = {
+7-3
lex/types/so/sprk/labeler/defs.ts
···55import { is$typed as _is$typed } from "../../../../util.ts";
66import type * as SoSprkActorDefs from "../actor/defs.ts";
77import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
88+import type * as ComAtprotoModerationDefs from "../../../com/atproto/moderation/defs.ts";
89910const is$typed = _is$typed, validate = _validate;
1011const id = "so.sprk.labeler.defs";
···1516 cid: string;
1617 creator: SoSprkActorDefs.ProfileView;
1718 likeCount?: number;
1818- lookCount?: number;
1919 viewer?: LabelerViewerState;
2020 indexedAt: string;
2121 labels?: (ComAtprotoLabelDefs.Label)[];
···3838 creator: SoSprkActorDefs.ProfileView;
3939 policies: LabelerPolicies;
4040 likeCount?: number;
4141- lookCount?: number;
4241 viewer?: LabelerViewerState;
4342 indexedAt: string;
4443 labels?: (ComAtprotoLabelDefs.Label)[];
4444+ /** The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. */
4545+ reasonTypes?: (ComAtprotoModerationDefs.ReasonType)[];
4646+ /** The set of subject types (account, record, etc) this service accepts reports on. */
4747+ subjectTypes?: (ComAtprotoModerationDefs.SubjectType)[];
4848+ /** Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. */
4949+ subjectCollections?: (string)[];
4550}
46514752const hashLabelerViewDetailed = "labelerViewDetailed";
···5762export interface LabelerViewerState {
5863 $type?: "so.sprk.labeler.defs#labelerViewerState";
5964 like?: string;
6060- look?: string;
6165}
62666367const hashLabelerViewerState = "labelerViewerState";
+1-1
lex/types/so/sprk/labeler/getServices.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as SoSprkLabelerDefs from "./defs.ts";
6677export type QueryParams = {
+10-2
lex/types/so/sprk/labeler/service.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkLabelerDefs from "./defs.ts";
87import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
88+import type * as ComAtprotoModerationDefs from "../../../com/atproto/moderation/defs.ts";
991010const is$typed = _is$typed, validate = _validate;
1111const id = "so.sprk.labeler.service";
···1515 policies: SoSprkLabelerDefs.LabelerPolicies;
1616 labels?: $Typed<ComAtprotoLabelDefs.SelfLabels> | { $type: string };
1717 createdAt: string;
1818+ /** The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. */
1919+ reasonTypes?: (ComAtprotoModerationDefs.ReasonType)[];
2020+ /** The set of subject types (account, record, etc) this service accepts reports on. */
2121+ subjectTypes?: (ComAtprotoModerationDefs.SubjectType)[];
2222+ /** Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. */
2323+ subjectCollections?: (string)[];
1824 [k: string]: unknown;
1925}
2026···2733export function validateRecord<V>(v: V) {
2834 return validate<Record & V>(v, id, hashRecord, true);
2935}
3636+3737+export type Main = Record;
+1-1
lex/types/so/sprk/media/image.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77import type * as SoSprkMediaDefs from "./defs.ts";
+1-1
lex/types/so/sprk/media/video.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77import type * as SoSprkMediaDefs from "./defs.ts";
+1-2
lex/types/so/sprk/richtext/facet.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
7687const is$typed = _is$typed, validate = _validate;
98const id = "so.sprk.richtext.facet";
+4-3
lex/types/so/sprk/sound/audio.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66-import { is$typed as _is$typed } from "../../../../util.ts";
77-import { type $Typed } from "../../../../util.ts";
66+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
87import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
98import type * as SoSprkSoundDefs from "./defs.ts";
109import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
···3433export function validateRecord<V>(v: V) {
3534 return validate<Record & V>(v, id, hashRecord, true);
3635}
3636+3737+export type Main = Record;
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkActorDefs from "../actor/defs.ts";
87import type * as SoSprkMediaImage from "../media/image.ts";
98import type * as SoSprkMediaVideo from "../media/video.ts";
+3-2
lex/types/so/sprk/story/post.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as SoSprkMediaImage from "../media/image.ts";
87import type * as SoSprkMediaVideo from "../media/video.ts";
98import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···3332export function validateRecord<V>(v: V) {
3433 return validate<Record & V>(v, id, hashRecord, true);
3534}
3535+3636+export type Main = Record;
+1-1
lex/types/so/sprk/video/defs.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { BlobRef } from "@atp/lexicon";
44+import type { BlobRef } from "@atp/lexicon";
55import { validate as _validate } from "../../../../lexicons.ts";
66import { is$typed as _is$typed } from "../../../../util.ts";
77import type * as SoSprkSoundDefs from "../sound/defs.ts";
+1-2
lex/types/so/sprk/video/uploadVideo.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import stream from "node:stream";
54import type * as SoSprkVideoDefs from "./defs.ts";
6576export type QueryParams = globalThis.Record<PropertyKey, never>;
···13121413export interface HandlerInput {
1514 encoding: "video/mp4";
1616- body: stream.Readable;
1515+ body: ReadableStream;
1716}
18171918export interface HandlerSuccess {
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+77+const is$typed = _is$typed, validate = _validate;
88+const id = "tools.ozone.moderation.cancelScheduledActions";
99+1010+export type QueryParams = globalThis.Record<PropertyKey, never>;
1111+1212+export interface InputSchema {
1313+ /** Array of DID subjects to cancel scheduled actions for */
1414+ subjects: (string)[];
1515+ /** Optional comment describing the reason for cancellation */
1616+ comment?: string;
1717+}
1818+1919+export type OutputSchema = CancellationResults;
2020+2121+export interface HandlerInput {
2222+ encoding: "application/json";
2323+ body: InputSchema;
2424+}
2525+2626+export interface HandlerSuccess {
2727+ encoding: "application/json";
2828+ body: OutputSchema;
2929+ headers?: { [key: string]: string };
3030+}
3131+3232+export interface HandlerError {
3333+ status: number;
3434+ message?: string;
3535+}
3636+3737+export type HandlerOutput = HandlerError | HandlerSuccess;
3838+3939+export interface CancellationResults {
4040+ $type?: "tools.ozone.moderation.cancelScheduledActions#cancellationResults";
4141+ /** DIDs for which all pending scheduled actions were successfully cancelled */
4242+ succeeded: (string)[];
4343+ /** DIDs for which cancellation failed with error details */
4444+ failed: (FailedCancellation)[];
4545+}
4646+4747+const hashCancellationResults = "cancellationResults";
4848+4949+export function isCancellationResults<V>(v: V) {
5050+ return is$typed(v, id, hashCancellationResults);
5151+}
5252+5353+export function validateCancellationResults<V>(v: V) {
5454+ return validate<CancellationResults & V>(v, id, hashCancellationResults);
5555+}
5656+5757+export interface FailedCancellation {
5858+ $type?: "tools.ozone.moderation.cancelScheduledActions#failedCancellation";
5959+ did: string;
6060+ error: string;
6161+ errorCode?: string;
6262+}
6363+6464+const hashFailedCancellation = "failedCancellation";
6565+6666+export function isFailedCancellation<V>(v: V) {
6767+ return is$typed(v, id, hashFailedCancellation);
6868+}
6969+7070+export function validateFailedCancellation<V>(v: V) {
7171+ return validate<FailedCancellation & V>(v, id, hashFailedCancellation);
7272+}
+304-6
lex/types/tools/ozone/moderation/defs.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
44import { validate as _validate } from "../../../../lexicons.ts";
55-import { is$typed as _is$typed } from "../../../../util.ts";
66-import { type $Typed } from "../../../../util.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
76import type * as ComAtprotoAdminDefs from "../../../com/atproto/admin/defs.ts";
87import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
98import type * as ChatBskyConvoDefs from "../../../chat/bsky/convo/defs.ts";
109import type * as ComAtprotoModerationDefs from "../../../com/atproto/moderation/defs.ts";
1010+import type * as AppBskyAgeassuranceDefs from "../../../app/bsky/ageassurance/defs.ts";
1111import type * as ComAtprotoServerDefs from "../../../com/atproto/server/defs.ts";
1212import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs.ts";
1313···3737 | $Typed<IdentityEvent>
3838 | $Typed<RecordEvent>
3939 | $Typed<ModEventPriorityScore>
4040+ | $Typed<AgeAssuranceEvent>
4141+ | $Typed<AgeAssuranceOverrideEvent>
4242+ | $Typed<RevokeAccountCredentialsEvent>
4343+ | $Typed<ScheduleTakedownEvent>
4444+ | $Typed<CancelScheduledTakedownEvent>
4045 | { $type: string };
4146 subject:
4247 | $Typed<ComAtprotoAdminDefs.RepoRef>
···4853 createdAt: string;
4954 creatorHandle?: string;
5055 subjectHandle?: string;
5656+ modTool?: ModTool;
5157}
52585359const hashModEventView = "modEventView";
···8389 | $Typed<IdentityEvent>
8490 | $Typed<RecordEvent>
8591 | $Typed<ModEventPriorityScore>
9292+ | $Typed<AgeAssuranceEvent>
9393+ | $Typed<AgeAssuranceOverrideEvent>
9494+ | $Typed<RevokeAccountCredentialsEvent>
9595+ | $Typed<ScheduleTakedownEvent>
9696+ | $Typed<CancelScheduledTakedownEvent>
8697 | { $type: string };
8798 subject:
8899 | $Typed<RepoView>
···93104 subjectBlobs: (BlobView)[];
94105 createdBy: string;
95106 createdAt: string;
107107+ modTool?: ModTool;
96108}
9710998110const hashModEventViewDetail = "modEventViewDetail";
···111123 subject:
112124 | $Typed<ComAtprotoAdminDefs.RepoRef>
113125 | $Typed<ComAtprotoRepoStrongRef.Main>
126126+ | $Typed<ChatBskyConvoDefs.MessageRef>
114127 | { $type: string };
115128 hosting?: $Typed<AccountHosting> | $Typed<RecordHosting> | { $type: string };
116129 subjectBlobCids?: (string)[];
···138151 tags?: (string)[];
139152 accountStats?: AccountStats;
140153 recordsStats?: RecordsStats;
154154+ accountStrike?: AccountStrike;
155155+ /** Current age assurance state of the subject. */
156156+ ageAssuranceState?:
157157+ | "pending"
158158+ | "assured"
159159+ | "unknown"
160160+ | "reset"
161161+ | "blocked"
162162+ | (string & globalThis.Record<PropertyKey, never>);
163163+ /** Whether or not the last successful update to age assurance was made by the user or admin. */
164164+ ageAssuranceUpdatedBy?:
165165+ | "admin"
166166+ | "user"
167167+ | (string & globalThis.Record<PropertyKey, never>);
141168}
142169143170const hashSubjectStatusView = "subjectStatusView";
···150177 return validate<SubjectStatusView & V>(v, id, hashSubjectStatusView);
151178}
152179180180+/** Detailed view of a subject. For record subjects, the author's repo and profile will be returned. */
181181+export interface SubjectView {
182182+ $type?: "tools.ozone.moderation.defs#subjectView";
183183+ type: ComAtprotoModerationDefs.SubjectType;
184184+ subject: string;
185185+ status?: SubjectStatusView;
186186+ repo?: RepoViewDetail;
187187+ profile?: { $type: string };
188188+ record?: RecordViewDetail;
189189+}
190190+191191+const hashSubjectView = "subjectView";
192192+193193+export function isSubjectView<V>(v: V) {
194194+ return is$typed(v, id, hashSubjectView);
195195+}
196196+197197+export function validateSubjectView<V>(v: V) {
198198+ return validate<SubjectView & V>(v, id, hashSubjectView);
199199+}
200200+153201/** Statistics about a particular account subject */
154202export interface AccountStats {
155203 $type?: "tools.ozone.moderation.defs#accountStats";
···206254 return validate<RecordsStats & V>(v, id, hashRecordsStats);
207255}
208256257257+/** Strike information for an account */
258258+export interface AccountStrike {
259259+ $type?: "tools.ozone.moderation.defs#accountStrike";
260260+ /** Current number of active strikes (excluding expired strikes) */
261261+ activeStrikeCount?: number;
262262+ /** Total number of strikes ever received (including expired strikes) */
263263+ totalStrikeCount?: number;
264264+ /** Timestamp of the first strike received */
265265+ firstStrikeAt?: string;
266266+ /** Timestamp of the most recent strike received */
267267+ lastStrikeAt?: string;
268268+}
269269+270270+const hashAccountStrike = "accountStrike";
271271+272272+export function isAccountStrike<V>(v: V) {
273273+ return is$typed(v, id, hashAccountStrike);
274274+}
275275+276276+export function validateAccountStrike<V>(v: V) {
277277+ return validate<AccountStrike & V>(v, id, hashAccountStrike);
278278+}
279279+209280export type SubjectReviewState =
210210- | "lex:tools.ozone.moderation.defs#reviewOpen"
211211- | "lex:tools.ozone.moderation.defs#reviewEscalated"
212212- | "lex:tools.ozone.moderation.defs#reviewClosed"
213213- | "lex:tools.ozone.moderation.defs#reviewNone"
281281+ | "tools.ozone.moderation.defs#reviewOpen"
282282+ | "tools.ozone.moderation.defs#reviewEscalated"
283283+ | "tools.ozone.moderation.defs#reviewClosed"
284284+ | "tools.ozone.moderation.defs#reviewNone"
214285 | (string & globalThis.Record<PropertyKey, never>);
215286216287/** Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator */
···232303 acknowledgeAccountSubjects?: boolean;
233304 /** Names/Keywords of the policies that drove the decision. */
234305 policies?: (string)[];
306306+ /** Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.). */
307307+ severityLevel?: string;
308308+ /** List of services where the takedown should be applied. If empty or not provided, takedown is applied on all configured services. */
309309+ targetServices?:
310310+ ("appview" | "pds" | (string & globalThis.Record<PropertyKey, never>))[];
311311+ /** Number of strikes to assign to the user for this violation. */
312312+ strikeCount?: number;
313313+ /** When the strike should expire. If not provided, the strike never expires. */
314314+ strikeExpiresAt?: string;
235315}
236316237317const hashModEventTakedown = "modEventTakedown";
···249329 $type?: "tools.ozone.moderation.defs#modEventReverseTakedown";
250330 /** Describe reasoning behind the reversal. */
251331 comment?: string;
332332+ /** Names/Keywords of the policy infraction for which takedown is being reversed. */
333333+ policies?: (string)[];
334334+ /** Severity level of the violation. Usually set from the last policy infraction's severity. */
335335+ severityLevel?: string;
336336+ /** Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity. */
337337+ strikeCount?: number;
252338}
253339254340const hashModEventReverseTakedown = "modEventReverseTakedown";
···356442 return validate<ModEventPriorityScore & V>(v, id, hashModEventPriorityScore);
357443}
358444445445+/** Age assurance info coming directly from users. Only works on DID subjects. */
446446+export interface AgeAssuranceEvent {
447447+ $type?: "tools.ozone.moderation.defs#ageAssuranceEvent";
448448+ /** The date and time of this write operation. */
449449+ createdAt: string;
450450+ /** The unique identifier for this instance of the age assurance flow, in UUID format. */
451451+ attemptId: string;
452452+ /** The status of the Age Assurance process. */
453453+ status:
454454+ | "unknown"
455455+ | "pending"
456456+ | "assured"
457457+ | (string & globalThis.Record<PropertyKey, never>);
458458+ access?: AppBskyAgeassuranceDefs.Access;
459459+ /** The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow. */
460460+ countryCode?: string;
461461+ /** The ISO 3166-2 region code provided when beginning the Age Assurance flow. */
462462+ regionCode?: string;
463463+ /** The IP address used when initiating the AA flow. */
464464+ initIp?: string;
465465+ /** The user agent used when initiating the AA flow. */
466466+ initUa?: string;
467467+ /** The IP address used when completing the AA flow. */
468468+ completeIp?: string;
469469+ /** The user agent used when completing the AA flow. */
470470+ completeUa?: string;
471471+}
472472+473473+const hashAgeAssuranceEvent = "ageAssuranceEvent";
474474+475475+export function isAgeAssuranceEvent<V>(v: V) {
476476+ return is$typed(v, id, hashAgeAssuranceEvent);
477477+}
478478+479479+export function validateAgeAssuranceEvent<V>(v: V) {
480480+ return validate<AgeAssuranceEvent & V>(v, id, hashAgeAssuranceEvent);
481481+}
482482+483483+/** Age assurance status override by moderators. Only works on DID subjects. */
484484+export interface AgeAssuranceOverrideEvent {
485485+ $type?: "tools.ozone.moderation.defs#ageAssuranceOverrideEvent";
486486+ /** The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state. */
487487+ status:
488488+ | "assured"
489489+ | "reset"
490490+ | "blocked"
491491+ | (string & globalThis.Record<PropertyKey, never>);
492492+ access?: AppBskyAgeassuranceDefs.Access;
493493+ /** Comment describing the reason for the override. */
494494+ comment: string;
495495+}
496496+497497+const hashAgeAssuranceOverrideEvent = "ageAssuranceOverrideEvent";
498498+499499+export function isAgeAssuranceOverrideEvent<V>(v: V) {
500500+ return is$typed(v, id, hashAgeAssuranceOverrideEvent);
501501+}
502502+503503+export function validateAgeAssuranceOverrideEvent<V>(v: V) {
504504+ return validate<AgeAssuranceOverrideEvent & V>(
505505+ v,
506506+ id,
507507+ hashAgeAssuranceOverrideEvent,
508508+ );
509509+}
510510+511511+/** Account credentials revocation by moderators. Only works on DID subjects. */
512512+export interface RevokeAccountCredentialsEvent {
513513+ $type?: "tools.ozone.moderation.defs#revokeAccountCredentialsEvent";
514514+ /** Comment describing the reason for the revocation. */
515515+ comment: string;
516516+}
517517+518518+const hashRevokeAccountCredentialsEvent = "revokeAccountCredentialsEvent";
519519+520520+export function isRevokeAccountCredentialsEvent<V>(v: V) {
521521+ return is$typed(v, id, hashRevokeAccountCredentialsEvent);
522522+}
523523+524524+export function validateRevokeAccountCredentialsEvent<V>(v: V) {
525525+ return validate<RevokeAccountCredentialsEvent & V>(
526526+ v,
527527+ id,
528528+ hashRevokeAccountCredentialsEvent,
529529+ );
530530+}
531531+359532export interface ModEventAcknowledge {
360533 $type?: "tools.ozone.moderation.defs#modEventAcknowledge";
361534 comment?: string;
···471644 content?: string;
472645 /** Additional comment about the outgoing comm. */
473646 comment?: string;
647647+ /** Names/Keywords of the policies that necessitated the email. */
648648+ policies?: (string)[];
649649+ /** Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense */
650650+ severityLevel?: string;
651651+ /** Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense. */
652652+ strikeCount?: number;
653653+ /** When the strike should expire. If not provided, the strike never expires. */
654654+ strikeExpiresAt?: string;
655655+ /** Indicates whether the email was successfully delivered to the user's inbox. */
656656+ isDelivered?: boolean;
474657}
475658476659const hashModEventEmail = "modEventEmail";
···590773 return validate<RecordEvent & V>(v, id, hashRecordEvent);
591774}
592775776776+/** Logs a scheduled takedown action for an account. */
777777+export interface ScheduleTakedownEvent {
778778+ $type?: "tools.ozone.moderation.defs#scheduleTakedownEvent";
779779+ comment?: string;
780780+ executeAt?: string;
781781+ executeAfter?: string;
782782+ executeUntil?: string;
783783+}
784784+785785+const hashScheduleTakedownEvent = "scheduleTakedownEvent";
786786+787787+export function isScheduleTakedownEvent<V>(v: V) {
788788+ return is$typed(v, id, hashScheduleTakedownEvent);
789789+}
790790+791791+export function validateScheduleTakedownEvent<V>(v: V) {
792792+ return validate<ScheduleTakedownEvent & V>(v, id, hashScheduleTakedownEvent);
793793+}
794794+795795+/** Logs cancellation of a scheduled takedown action for an account. */
796796+export interface CancelScheduledTakedownEvent {
797797+ $type?: "tools.ozone.moderation.defs#cancelScheduledTakedownEvent";
798798+ comment?: string;
799799+}
800800+801801+const hashCancelScheduledTakedownEvent = "cancelScheduledTakedownEvent";
802802+803803+export function isCancelScheduledTakedownEvent<V>(v: V) {
804804+ return is$typed(v, id, hashCancelScheduledTakedownEvent);
805805+}
806806+807807+export function validateCancelScheduledTakedownEvent<V>(v: V) {
808808+ return validate<CancelScheduledTakedownEvent & V>(
809809+ v,
810810+ id,
811811+ hashCancelScheduledTakedownEvent,
812812+ );
813813+}
814814+593815export interface RepoView {
594816 $type?: "tools.ozone.moderation.defs#repoView";
595817 did: string;
···8761098export function validateReporterStats<V>(v: V) {
8771099 return validate<ReporterStats & V>(v, id, hashReporterStats);
8781100}
11011101+11021102+/** Moderation tool information for tracing the source of the action */
11031103+export interface ModTool {
11041104+ $type?: "tools.ozone.moderation.defs#modTool";
11051105+ /** Name/identifier of the source (e.g., 'automod', 'ozone/workspace') */
11061106+ name: string;
11071107+ /** Additional arbitrary metadata about the source */
11081108+ meta?: { [_ in string]: unknown };
11091109+}
11101110+11111111+const hashModTool = "modTool";
11121112+11131113+export function isModTool<V>(v: V) {
11141114+ return is$typed(v, id, hashModTool);
11151115+}
11161116+11171117+export function validateModTool<V>(v: V) {
11181118+ return validate<ModTool & V>(v, id, hashModTool);
11191119+}
11201120+11211121+/** Moderation event timeline event for a PLC create operation */
11221122+export const TIMELINEEVENTPLCCREATE = `${id}#timelineEventPlcCreate`;
11231123+/** Moderation event timeline event for generic PLC operation */
11241124+export const TIMELINEEVENTPLCOPERATION = `${id}#timelineEventPlcOperation`;
11251125+/** Moderation event timeline event for a PLC tombstone operation */
11261126+export const TIMELINEEVENTPLCTOMBSTONE = `${id}#timelineEventPlcTombstone`;
11271127+11281128+/** View of a scheduled moderation action */
11291129+export interface ScheduledActionView {
11301130+ $type?: "tools.ozone.moderation.defs#scheduledActionView";
11311131+ /** Auto-incrementing row ID */
11321132+ id: number;
11331133+ /** Type of action to be executed */
11341134+ action: "takedown" | (string & globalThis.Record<PropertyKey, never>);
11351135+ /** Serialized event object that will be propagated to the event when performed */
11361136+ eventData?: { [_ in string]: unknown };
11371137+ /** Subject DID for the action */
11381138+ did: string;
11391139+ /** Exact time to execute the action */
11401140+ executeAt?: string;
11411141+ /** Earliest time to execute the action (for randomized scheduling) */
11421142+ executeAfter?: string;
11431143+ /** Latest time to execute the action (for randomized scheduling) */
11441144+ executeUntil?: string;
11451145+ /** Whether execution time should be randomized within the specified range */
11461146+ randomizeExecution?: boolean;
11471147+ /** DID of the user who created this scheduled action */
11481148+ createdBy: string;
11491149+ /** When the scheduled action was created */
11501150+ createdAt: string;
11511151+ /** When the scheduled action was last updated */
11521152+ updatedAt?: string;
11531153+ /** Current status of the scheduled action */
11541154+ status:
11551155+ | "pending"
11561156+ | "executed"
11571157+ | "cancelled"
11581158+ | "failed"
11591159+ | (string & globalThis.Record<PropertyKey, never>);
11601160+ /** When the action was last attempted to be executed */
11611161+ lastExecutedAt?: string;
11621162+ /** Reason for the last execution failure */
11631163+ lastFailureReason?: string;
11641164+ /** ID of the moderation event created when action was successfully executed */
11651165+ executionEventId?: number;
11661166+}
11671167+11681168+const hashScheduledActionView = "scheduledActionView";
11691169+11701170+export function isScheduledActionView<V>(v: V) {
11711171+ return is$typed(v, id, hashScheduledActionView);
11721172+}
11731173+11741174+export function validateScheduledActionView<V>(v: V) {
11751175+ return validate<ScheduledActionView & V>(v, id, hashScheduledActionView);
11761176+}
+10-2
lex/types/tools/ozone/moderation/emitEvent.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ToolsOzoneModerationDefs from "./defs.ts";
66import type * as ComAtprotoAdminDefs from "../../../com/atproto/admin/defs.ts";
77import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef.ts";
···2929 | $Typed<ToolsOzoneModerationDefs.IdentityEvent>
3030 | $Typed<ToolsOzoneModerationDefs.RecordEvent>
3131 | $Typed<ToolsOzoneModerationDefs.ModEventPriorityScore>
3232+ | $Typed<ToolsOzoneModerationDefs.AgeAssuranceEvent>
3333+ | $Typed<ToolsOzoneModerationDefs.AgeAssuranceOverrideEvent>
3434+ | $Typed<ToolsOzoneModerationDefs.RevokeAccountCredentialsEvent>
3535+ | $Typed<ToolsOzoneModerationDefs.ScheduleTakedownEvent>
3636+ | $Typed<ToolsOzoneModerationDefs.CancelScheduledTakedownEvent>
3237 | { $type: string };
3338 subject:
3439 | $Typed<ComAtprotoAdminDefs.RepoRef>
···3641 | { $type: string };
3742 subjectBlobCids?: (string)[];
3843 createdBy: string;
4444+ modTool?: ToolsOzoneModerationDefs.ModTool;
4545+ /** An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject. */
4646+ externalId?: string;
3947}
40484149export type OutputSchema = ToolsOzoneModerationDefs.ModEventView;
···5462export interface HandlerError {
5563 status: number;
5664 message?: string;
5757- error?: "SubjectHasAction";
6565+ error?: "SubjectHasAction" | "DuplicateExternalId";
5866}
59676068export type HandlerOutput = HandlerError | HandlerSuccess;
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ToolsOzoneModerationDefs from "./defs.ts";
6677export type QueryParams = {
+1-1
lex/types/tools/ozone/moderation/getRepos.ts
···11/**
22 * GENERATED CODE - DO NOT MODIFY
33 */
44-import { type $Typed } from "../../../../util.ts";
44+import type { $Typed } from "../../../../util.ts";
55import type * as ToolsOzoneModerationDefs from "./defs.ts";
6677export type QueryParams = {
+28
lex/types/tools/ozone/moderation/getSubjects.ts
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as ToolsOzoneModerationDefs from "./defs.ts";
55+66+export type QueryParams = {
77+ subjects: string[];
88+};
99+export type InputSchema = undefined;
1010+1111+export interface OutputSchema {
1212+ subjects: (ToolsOzoneModerationDefs.SubjectView)[];
1313+}
1414+1515+export type HandlerInput = void;
1616+1717+export interface HandlerSuccess {
1818+ encoding: "application/json";
1919+ body: OutputSchema;
2020+ headers?: { [key: string]: string };
2121+}
2222+2323+export interface HandlerError {
2424+ status: number;
2525+ message?: string;
2626+}
2727+2828+export type HandlerOutput = HandlerError | HandlerSuccess;
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import type * as ToolsOzoneModerationDefs from "./defs.ts";
55+66+export type QueryParams = globalThis.Record<PropertyKey, never>;
77+88+export interface InputSchema {
99+ /** Filter actions scheduled to execute after this time */
1010+ startsAfter?: string;
1111+ /** Filter actions scheduled to execute before this time */
1212+ endsBefore?: string;
1313+ /** Filter actions for specific DID subjects */
1414+ subjects?: (string)[];
1515+ /** Filter actions by status */
1616+ statuses: (
1717+ | "pending"
1818+ | "executed"
1919+ | "cancelled"
2020+ | "failed"
2121+ | (string & globalThis.Record<PropertyKey, never>)
2222+ )[];
2323+ /** Maximum number of results to return */
2424+ limit?: number;
2525+ /** Cursor for pagination */
2626+ cursor?: string;
2727+}
2828+2929+export interface OutputSchema {
3030+ actions: (ToolsOzoneModerationDefs.ScheduledActionView)[];
3131+ /** Cursor for next page of results */
3232+ cursor?: string;
3333+}
3434+3535+export interface HandlerInput {
3636+ encoding: "application/json";
3737+ body: InputSchema;
3838+}
3939+4040+export interface HandlerSuccess {
4141+ encoding: "application/json";
4242+ body: OutputSchema;
4343+ headers?: { [key: string]: string };
4444+}
4545+4646+export interface HandlerError {
4747+ status: number;
4848+ message?: string;
4949+}
5050+5151+export type HandlerOutput = HandlerError | HandlerSuccess;
+14
lex/types/tools/ozone/moderation/queryEvents.ts
···3838 removedTags?: string[];
3939 reportTypes?: string[];
4040 policies?: string[];
4141+ /** If specified, only events where the modTool name matches any of the given values are returned */
4242+ modTool?: string[];
4343+ /** If specified, only events where the batchId matches the given value are returned */
4444+ batchId?: string;
4545+ /** If specified, only events where the age assurance state matches the given value are returned */
4646+ ageAssuranceState?:
4747+ | "pending"
4848+ | "assured"
4949+ | "unknown"
5050+ | "reset"
5151+ | "blocked"
5252+ | (string & globalThis.Record<PropertyKey, never>);
5353+ /** If specified, only events where strikeCount value is set are returned. */
5454+ withStrike?: boolean;
4155 cursor?: string;
4256};
4357export type InputSchema = undefined;
+16-1
lex/types/tools/ozone/moderation/queryStatuses.ts
···3939 /** When set to true, only muted subjects and reporters will be returned. */
4040 onlyMuted?: boolean;
4141 /** Specify when fetching subjects in a certain state */
4242- reviewState?: string;
4242+ reviewState?:
4343+ | "tools.ozone.moderation.defs#reviewOpen"
4444+ | "tools.ozone.moderation.defs#reviewClosed"
4545+ | "tools.ozone.moderation.defs#reviewEscalated"
4646+ | "tools.ozone.moderation.defs#reviewNone"
4747+ | (string & globalThis.Record<PropertyKey, never>);
4348 ignoreSubjects?: string[];
4449 /** Get all subject statuses that were reviewed by a specific moderator */
4550 lastReviewedBy?: string;
···7378 minTakendownRecordsCount?: number;
7479 /** If specified, only subjects that have priority score value above the given value will be returned. */
7580 minPriorityScore?: number;
8181+ /** If specified, only subjects that belong to an account that has at least this many active strikes will be returned. */
8282+ minStrikeCount?: number;
8383+ /** If specified, only subjects with the given age assurance state will be returned. */
8484+ ageAssuranceState?:
8585+ | "pending"
8686+ | "assured"
8787+ | "unknown"
8888+ | "reset"
8989+ | "blocked"
9090+ | (string & globalThis.Record<PropertyKey, never>);
7691};
7792export type InputSchema = undefined;
7893
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { type $Typed, is$typed as _is$typed } from "../../../../util.ts";
66+import type * as ToolsOzoneModerationDefs from "../moderation/defs.ts";
77+88+const is$typed = _is$typed, validate = _validate;
99+const id = "tools.ozone.verification.defs";
1010+1111+/** Verification data for the associated subject. */
1212+export interface VerificationView {
1313+ $type?: "tools.ozone.verification.defs#verificationView";
1414+ /** The user who issued this verification. */
1515+ issuer: string;
1616+ /** The AT-URI of the verification record. */
1717+ uri: string;
1818+ /** The subject of the verification. */
1919+ subject: string;
2020+ /** Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. */
2121+ handle: string;
2222+ /** Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. */
2323+ displayName: string;
2424+ /** Timestamp when the verification was created. */
2525+ createdAt: string;
2626+ /** Describes the reason for revocation, also indicating that the verification is no longer valid. */
2727+ revokeReason?: string;
2828+ /** Timestamp when the verification was revoked. */
2929+ revokedAt?: string;
3030+ /** The user who revoked this verification. */
3131+ revokedBy?: string;
3232+ subjectProfile?: { $type: string };
3333+ issuerProfile?: { $type: string };
3434+ subjectRepo?:
3535+ | $Typed<ToolsOzoneModerationDefs.RepoViewDetail>
3636+ | $Typed<ToolsOzoneModerationDefs.RepoViewNotFound>
3737+ | { $type: string };
3838+ issuerRepo?:
3939+ | $Typed<ToolsOzoneModerationDefs.RepoViewDetail>
4040+ | $Typed<ToolsOzoneModerationDefs.RepoViewNotFound>
4141+ | { $type: string };
4242+}
4343+4444+const hashVerificationView = "verificationView";
4545+4646+export function isVerificationView<V>(v: V) {
4747+ return is$typed(v, id, hashVerificationView);
4848+}
4949+5050+export function validateVerificationView<V>(v: V) {
5151+ return validate<VerificationView & V>(v, id, hashVerificationView);
5252+}
···11+/**
22+ * GENERATED CODE - DO NOT MODIFY
33+ */
44+import { validate as _validate } from "../../../../lexicons.ts";
55+import { is$typed as _is$typed } from "../../../../util.ts";
66+77+const is$typed = _is$typed, validate = _validate;
88+const id = "tools.ozone.verification.revokeVerifications";
99+1010+export type QueryParams = globalThis.Record<PropertyKey, never>;
1111+1212+export interface InputSchema {
1313+ /** Array of verification record uris to revoke */
1414+ uris: (string)[];
1515+ /** Reason for revoking the verification. This is optional and can be omitted if not needed. */
1616+ revokeReason?: string;
1717+}
1818+1919+export interface OutputSchema {
2020+ /** List of verification uris successfully revoked */
2121+ revokedVerifications: (string)[];
2222+ /** List of verification uris that couldn't be revoked, including failure reasons */
2323+ failedRevocations: (RevokeError)[];
2424+}
2525+2626+export interface HandlerInput {
2727+ encoding: "application/json";
2828+ body: InputSchema;
2929+}
3030+3131+export interface HandlerSuccess {
3232+ encoding: "application/json";
3333+ body: OutputSchema;
3434+ headers?: { [key: string]: string };
3535+}
3636+3737+export interface HandlerError {
3838+ status: number;
3939+ message?: string;
4040+}
4141+4242+export type HandlerOutput = HandlerError | HandlerSuccess;
4343+4444+/** Error object for failed revocations */
4545+export interface RevokeError {
4646+ $type?: "tools.ozone.verification.revokeVerifications#revokeError";
4747+ /** The AT-URI of the verification record that failed to revoke. */
4848+ uri: string;
4949+ /** Description of the error that occurred during revocation. */
5050+ error: string;
5151+}
5252+5353+const hashRevokeError = "revokeError";
5454+5555+export function isRevokeError<V>(v: V) {
5656+ return is$typed(v, id, hashRevokeError);
5757+}
5858+5959+export function validateRevokeError<V>(v: V) {
6060+ return validate<RevokeError & V>(v, id, hashRevokeError);
6161+}
+1-1
lex/util.ts
···22 * GENERATED CODE - DO NOT MODIFY
33 */
4455-import { type ValidationResult } from "@atp/lexicon";
55+import type { ValidationResult } from "@atp/lexicon";
6677export type OmitKey<T, K extends keyof T> = {
88 [K2 in keyof T as K2 extends K ? never : K2]: T[K2];
+8-6
main.ts
···991010import describeFeedGenerator from "./api/describeFeedGenerator.ts";
1111import getFeedSkeleton from "./api/getFeedSkeleton.ts";
1212-import wellKnownRouter from "./utils/well-known.ts";
1212+import wellKnown from "./api/well-known.ts";
1313+import health from "./api/health.ts";
13141415await configure({
1516 sinks: {
···31323233const logger = getLogger("feedgen");
33343434-const ownDid = `did:web:${env.FEEDGEN_DOMAIN}`;
3535+const ownDid = `did:web:${env.SPRK_FEEDGEN_DOMAIN}`;
3536const didResolver = new DidResolver({});
3637const authVerifier = new AuthVerifier(ownDid, didResolver);
3738const db = new Database();
···9394 Deno.exit(1);
9495 }
95969696- const { HOST, PORT } = env;
9797+ const { SPRK_HOST, SPRK_PORT } = env;
9798 Deno.serve({
9898- hostname: HOST,
9999- port: PORT,
9999+ hostname: SPRK_HOST,
100100+ port: SPRK_PORT,
100101 onListen: (info) => {
101102 logger.info(`Server listening on ${info.hostname}:${info.port}`);
102103 },
···114115115116 logger.info("Feed Generator service is running");
116117117117- app.route("/", wellKnownRouter());
118118+ app.route("/.well-known", wellKnown);
119119+ app.route("/", health);
118120119121 return app;
120122}