From 3df9f831b804115494c42cd5ab34121012dfeb1e Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 21 Jun 2026 21:41:52 +0000 Subject: [PATCH] feat(quartz): complete KindNames registry for every supported kind Fill the KindNames registry from 145 to 280 entries so every event kind quartz defines a class for has a canonical English label + NIP. Adds the whole NIP-90 DVM request/response set, NIP-29 relay groups, NIP-60/61 Cashu wallet + nutzaps, NIP-43 relay members, WebRTC calls (NIP-AC), marketplace (NIP-15), git PRs/state (NIP-34), CLINK, NIP-51 curation sets, NIP-85 assertions, Marmot MLS events, and more. For the handful of kind numbers shared by multiple classes, the registry keeps one canonical entry (e.g. CashuToken over the deprecated nip61 TokenEvent, ExternalIdentities over GalleryList, ReleaseArtifactSet over SoftwareRelease). Kind 1 stays "Notes" rather than the bounty value-add helper that reuses it. Also point `amy nip`'s Nostr fallback at quartz's canonical NipText kind 30817 (NipTextEvent) alongside the wiki and long-form kinds. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_011SapGdtAc1j7woifoCZ9fY --- cli/ROADMAP.md | 4 +- .../amethyst/cli/commands/NipCommand.kt | 11 +- .../vitorpamplona/quartz/kinds/KindNames.kt | 270 ++++++++++++++++++ 3 files changed, 280 insertions(+), 5 deletions(-) diff --git a/cli/ROADMAP.md b/cli/ROADMAP.md index f5f0ea52c1..32ca77110e 100644 --- a/cli/ROADMAP.md +++ b/cli/ROADMAP.md @@ -93,8 +93,8 @@ vs streaming `subscribe`). Stateless verbs run with no account or network. | `outbox` | `amy outbox` | ✅ | NIP-65 read/write relays, cache-first. | | `filter` | `amy filter` | ✅ | stateless — assemble + print a filter JSON. | | `blossom` | `amy blossom` | ✅ | upload/download/list/delete/check/mirror (reuses commons `BlossomClient`). | -| `nip` | `amy nip` | ✅ | repo-first lookup + Nostr wiki/long-form fallback; `nip list`. | -| `kind` | `amy kind` | ✅ | quartz `KindNames` registry (kind → English label + NIP), ported from the Android relay view; number lookup + name search. | +| `nip` | `amy nip` | ✅ | repo-first lookup + Nostr fallback (NipText kind:30817, wiki:30818, long-form:30023); `nip list`. | +| `kind` | `amy kind` | ✅ | quartz `KindNames` registry (kind → English label + NIP) covering **every** event kind quartz defines (280 entries); number lookup + name search. | | `sync` | `amy sync` | ✅ | NIP-77 Negentropy reconcile with the local store (down/up/both). | | `git` | `amy git` | ✅ in part | NIP-34 repo announce/list/show/issue. clone/push (packfile transport) out of scope. | | `podcast` | `amy podcast` | ✅ | NIP-F4 show metadata (10154) + episode publish (54) + list. | diff --git a/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/commands/NipCommand.kt b/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/commands/NipCommand.kt index 74cac41713..515a2c17a2 100644 --- a/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/commands/NipCommand.kt +++ b/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/commands/NipCommand.kt @@ -22,6 +22,7 @@ package com.vitorpamplona.amethyst.cli.commands import com.vitorpamplona.amethyst.cli.Args import com.vitorpamplona.amethyst.cli.Output +import com.vitorpamplona.quartz.experimental.nipsOnNostr.NipTextEvent import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.relay.client.NostrClient import com.vitorpamplona.quartz.nip01Core.relay.client.reqs.SubscriptionListener @@ -42,8 +43,9 @@ import okhttp3.Request * accountless. * * Resolution order, per request: the canonical `nostr-protocol/nips` git repo - * **first**, then a fallback search on Nostr (NIP-50 over wiki kind:30818 + - * long-form kind:30023) for relays/clients that publish NIPs natively. + * **first**, then a fallback search on Nostr (NIP-50 over the NipText kind:30817, + * wiki kind:30818 and long-form kind:30023) for relays/clients that publish NIPs + * natively. * * nip 46 fetch NIP-46 from the repo (falls back to Nostr on a miss) * nip 7D hex-suffixed NIPs work too (case-insensitive) @@ -58,6 +60,9 @@ object NipCommand { .mapNotNull { RelayUrlNormalizer.normalizeOrNull(it) } .toSet() + // Quartz's canonical "NIP published on Nostr" kind (NipTextEvent), plus the + // wiki + long-form kinds clients also use to mirror NIP text. + private const val NIPTEXT_KIND = NipTextEvent.KIND private const val WIKI_KIND = 30818 private const val LONGFORM_KIND = 30023 @@ -143,7 +148,7 @@ object NipCommand { if (SEARCH_RELAYS.isEmpty()) return emptyList() val okhttp = OkHttpClient.Builder().build() val client = NostrClient(websocketBuilder = BasicOkHttpWebSocket.Builder { okhttp }) - val filter = Filter(kinds = listOf(WIKI_KIND, LONGFORM_KIND), search = "NIP-$slug", limit = 10) + val filter = Filter(kinds = listOf(NIPTEXT_KIND, WIKI_KIND, LONGFORM_KIND), search = "NIP-$slug", limit = 10) val subId = newSubId() val events = Channel(UNLIMITED) val done = Channel(UNLIMITED) diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/kinds/KindNames.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/kinds/KindNames.kt index f09a5fe5fc..3376178217 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/kinds/KindNames.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/kinds/KindNames.kt @@ -20,15 +20,22 @@ */ package com.vitorpamplona.quartz.kinds +import com.vitorpamplona.quartz.experimental.agora.FundraiserEvent import com.vitorpamplona.quartz.experimental.attestations.attestation.AttestationEvent import com.vitorpamplona.quartz.experimental.attestations.proficiency.AttestorProficiencyEvent import com.vitorpamplona.quartz.experimental.attestations.recommendation.AttestorRecommendationEvent import com.vitorpamplona.quartz.experimental.attestations.request.AttestationRequestEvent import com.vitorpamplona.quartz.experimental.audio.header.AudioHeaderEvent import com.vitorpamplona.quartz.experimental.audio.track.AudioTrackEvent +import com.vitorpamplona.quartz.experimental.birdstar.BirdexEvent +import com.vitorpamplona.quartz.experimental.clink.debits.DebitEvent +import com.vitorpamplona.quartz.experimental.clink.manage.ManageEvent +import com.vitorpamplona.quartz.experimental.clink.offers.OfferEvent +import com.vitorpamplona.quartz.experimental.decoupling.setup.EncryptionKeyListEvent import com.vitorpamplona.quartz.experimental.edits.TextNoteModificationEvent import com.vitorpamplona.quartz.experimental.ephemChat.chat.EphemeralChatEvent import com.vitorpamplona.quartz.experimental.ephemChat.list.EphemeralChatListEvent +import com.vitorpamplona.quartz.experimental.fitness.workout.ExerciseTemplateEvent import com.vitorpamplona.quartz.experimental.fitness.workout.WorkoutRecordEvent import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStoryPrologueEvent import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStoryReadingStateEvent @@ -36,6 +43,9 @@ import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStory import com.vitorpamplona.quartz.experimental.medical.FhirResourceEvent import com.vitorpamplona.quartz.experimental.music.playlist.MusicPlaylistEvent import com.vitorpamplona.quartz.experimental.music.track.MusicTrackEvent +import com.vitorpamplona.quartz.experimental.nests.admin.AdminCommandEvent +import com.vitorpamplona.quartz.experimental.nip82SoftwareApps.application.SoftwareApplicationEvent +import com.vitorpamplona.quartz.experimental.nip82SoftwareApps.asset.SoftwareAssetEvent import com.vitorpamplona.quartz.experimental.nip95.data.FileStorageEvent import com.vitorpamplona.quartz.experimental.nip95.header.FileStorageHeaderEvent import com.vitorpamplona.quartz.experimental.nipA3.PaymentTargetsEvent @@ -43,13 +53,30 @@ import com.vitorpamplona.quartz.experimental.nipsOnNostr.NipTextEvent import com.vitorpamplona.quartz.experimental.nns.NNSEvent import com.vitorpamplona.quartz.experimental.notifications.wake.WakeUpEvent import com.vitorpamplona.quartz.experimental.profileGallery.ProfileGalleryEntryEvent +import com.vitorpamplona.quartz.experimental.roadstr.confirmation.RoadEventConfirmationEvent +import com.vitorpamplona.quartz.experimental.roadstr.report.RoadEventReportEvent import com.vitorpamplona.quartz.experimental.zapPolls.ZapPollEvent +import com.vitorpamplona.quartz.feedDefinition.FeedDefinitionEvent +import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageEvent +import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRelayListEvent +import com.vitorpamplona.quartz.marmot.mip02Welcome.WelcomeEvent +import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent +import com.vitorpamplona.quartz.marmot.mip05PushNotifications.NotificationRequestEvent +import com.vitorpamplona.quartz.marmot.mip05PushNotifications.TokenListEvent +import com.vitorpamplona.quartz.marmot.mip05PushNotifications.TokenRemovalEvent +import com.vitorpamplona.quartz.marmot.mip05PushNotifications.TokenRequestEvent import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent import com.vitorpamplona.quartz.nip03Timestamp.OtsEvent import com.vitorpamplona.quartz.nip04Dm.messages.PrivateDmEvent import com.vitorpamplona.quartz.nip09Deletions.DeletionEvent import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent +import com.vitorpamplona.quartz.nip15Marketplace.auction.AuctionEvent +import com.vitorpamplona.quartz.nip15Marketplace.bid.BidEvent +import com.vitorpamplona.quartz.nip15Marketplace.bidConfirmation.BidConfirmationEvent +import com.vitorpamplona.quartz.nip15Marketplace.marketplace.MarketplaceEvent +import com.vitorpamplona.quartz.nip15Marketplace.product.ProductEvent +import com.vitorpamplona.quartz.nip15Marketplace.stall.StallEvent import com.vitorpamplona.quartz.nip17Dm.files.ChatMessageEncryptedFileHeaderEvent import com.vitorpamplona.quartz.nip17Dm.messages.ChatMessageEvent import com.vitorpamplona.quartz.nip17Dm.settings.ChatMessageRelayListEvent @@ -64,31 +91,70 @@ import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelMetadataEvent import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelMuteUserEvent import com.vitorpamplona.quartz.nip28PublicChat.list.ChannelListEvent import com.vitorpamplona.quartz.nip28PublicChat.message.ChannelMessageEvent +import com.vitorpamplona.quartz.nip29RelayGroups.metadata.GroupAdminsEvent +import com.vitorpamplona.quartz.nip29RelayGroups.metadata.GroupMembersEvent +import com.vitorpamplona.quartz.nip29RelayGroups.metadata.GroupMetadataEvent +import com.vitorpamplona.quartz.nip29RelayGroups.metadata.SupportedRolesEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.CreateGroupEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.CreateInviteEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.DeleteEventEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.DeleteGroupEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.EditMetadataEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.PutUserEvent +import com.vitorpamplona.quartz.nip29RelayGroups.moderation.RemoveUserEvent +import com.vitorpamplona.quartz.nip29RelayGroups.request.JoinRequestEvent +import com.vitorpamplona.quartz.nip29RelayGroups.request.LeaveRequestEvent import com.vitorpamplona.quartz.nip30CustomEmoji.pack.EmojiPackEvent import com.vitorpamplona.quartz.nip30CustomEmoji.selection.EmojiPackSelectionEvent +import com.vitorpamplona.quartz.nip32Labeling.LabelEvent +import com.vitorpamplona.quartz.nip34Git.grasp.UserGraspListEvent import com.vitorpamplona.quartz.nip34Git.issue.GitIssueEvent import com.vitorpamplona.quartz.nip34Git.patch.GitPatchEvent +import com.vitorpamplona.quartz.nip34Git.pr.GitPullRequestEvent +import com.vitorpamplona.quartz.nip34Git.pr.GitPullRequestUpdateEvent import com.vitorpamplona.quartz.nip34Git.reply.GitReplyEvent import com.vitorpamplona.quartz.nip34Git.repository.GitRepositoryEvent +import com.vitorpamplona.quartz.nip34Git.state.GitRepositoryStateEvent import com.vitorpamplona.quartz.nip35Torrents.TorrentCommentEvent import com.vitorpamplona.quartz.nip35Torrents.TorrentEvent import com.vitorpamplona.quartz.nip37Drafts.DraftWrapEvent import com.vitorpamplona.quartz.nip37Drafts.privateOutbox.PrivateOutboxRelayListEvent import com.vitorpamplona.quartz.nip38UserStatus.StatusEvent +import com.vitorpamplona.quartz.nip39ExtIdentities.ExternalIdentitiesEvent import com.vitorpamplona.quartz.nip42RelayAuth.RelayAuthEvent +import com.vitorpamplona.quartz.nip43RelayMembers.addMember.RelayAddMemberEvent +import com.vitorpamplona.quartz.nip43RelayMembers.inviteRequest.RelayInviteRequestEvent +import com.vitorpamplona.quartz.nip43RelayMembers.joinRequest.RelayJoinRequestEvent +import com.vitorpamplona.quartz.nip43RelayMembers.leaveRequest.RelayLeaveRequestEvent +import com.vitorpamplona.quartz.nip43RelayMembers.list.RelayMembershipListEvent +import com.vitorpamplona.quartz.nip43RelayMembers.removeMember.RelayRemoveMemberEvent import com.vitorpamplona.quartz.nip46RemoteSigner.NostrConnectEvent import com.vitorpamplona.quartz.nip47WalletConnect.events.LnZapPaymentRequestEvent import com.vitorpamplona.quartz.nip47WalletConnect.events.LnZapPaymentResponseEvent +import com.vitorpamplona.quartz.nip47WalletConnect.events.NwcInfoEvent +import com.vitorpamplona.quartz.nip47WalletConnect.events.NwcNotificationEvent import com.vitorpamplona.quartz.nip50Search.SearchRelayListEvent import com.vitorpamplona.quartz.nip51Lists.PinListEvent +import com.vitorpamplona.quartz.nip51Lists.appCurationSet.AppCurationSetEvent +import com.vitorpamplona.quartz.nip51Lists.articleCurationSet.ArticleCurationSetEvent import com.vitorpamplona.quartz.nip51Lists.bookmarkList.BookmarkListEvent import com.vitorpamplona.quartz.nip51Lists.bookmarkList.OldBookmarkListEvent +import com.vitorpamplona.quartz.nip51Lists.favoriteAlgoFeedsList.FavoriteAlgoFeedsListEvent import com.vitorpamplona.quartz.nip51Lists.followList.FollowListEvent import com.vitorpamplona.quartz.nip51Lists.geohashList.GeohashListEvent +import com.vitorpamplona.quartz.nip51Lists.gitAuthorList.GitAuthorListEvent +import com.vitorpamplona.quartz.nip51Lists.gitRepositoryList.GitRepositoryListEvent +import com.vitorpamplona.quartz.nip51Lists.goodWikiAuthorList.GoodWikiAuthorListEvent +import com.vitorpamplona.quartz.nip51Lists.goodWikiRelayList.GoodWikiRelayListEvent import com.vitorpamplona.quartz.nip51Lists.hashtagList.HashtagListEvent +import com.vitorpamplona.quartz.nip51Lists.interestSet.InterestSetEvent +import com.vitorpamplona.quartz.nip51Lists.kindMuteSet.KindMuteSetEvent import com.vitorpamplona.quartz.nip51Lists.labeledBookmarkList.LabeledBookmarkListEvent +import com.vitorpamplona.quartz.nip51Lists.mediaFollowList.MediaFollowListEvent +import com.vitorpamplona.quartz.nip51Lists.mediaStarterPack.MediaStarterPackEvent import com.vitorpamplona.quartz.nip51Lists.muteList.MuteListEvent import com.vitorpamplona.quartz.nip51Lists.peopleList.PeopleListEvent +import com.vitorpamplona.quartz.nip51Lists.pictureCurationSet.PictureCurationSetEvent import com.vitorpamplona.quartz.nip51Lists.relayLists.BlockedRelayListEvent import com.vitorpamplona.quartz.nip51Lists.relayLists.BroadcastRelayListEvent import com.vitorpamplona.quartz.nip51Lists.relayLists.IndexerRelayListEvent @@ -96,15 +162,20 @@ import com.vitorpamplona.quartz.nip51Lists.relayLists.ProxyRelayListEvent import com.vitorpamplona.quartz.nip51Lists.relayLists.RelayFeedsListEvent import com.vitorpamplona.quartz.nip51Lists.relayLists.TrustedRelayListEvent import com.vitorpamplona.quartz.nip51Lists.relaySets.RelaySetEvent +import com.vitorpamplona.quartz.nip51Lists.releaseArtifactSet.ReleaseArtifactSetEvent +import com.vitorpamplona.quartz.nip51Lists.simpleGroupList.SimpleGroupListEvent +import com.vitorpamplona.quartz.nip51Lists.videoCurationSet.VideoCurationSetEvent import com.vitorpamplona.quartz.nip52Calendar.appt.day.CalendarDateSlotEvent import com.vitorpamplona.quartz.nip52Calendar.appt.time.CalendarTimeSlotEvent import com.vitorpamplona.quartz.nip52Calendar.calendar.CalendarEvent import com.vitorpamplona.quartz.nip52Calendar.rsvp.CalendarRSVPEvent import com.vitorpamplona.quartz.nip53LiveActivities.chat.LiveActivitiesChatMessageEvent +import com.vitorpamplona.quartz.nip53LiveActivities.clip.LiveActivitiesClipEvent import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.MeetingRoomEvent import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.MeetingSpaceEvent import com.vitorpamplona.quartz.nip53LiveActivities.nestsServers.NestsServersEvent import com.vitorpamplona.quartz.nip53LiveActivities.presence.MeetingRoomPresenceEvent +import com.vitorpamplona.quartz.nip53LiveActivities.raid.LiveActivitiesRaidEvent import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent import com.vitorpamplona.quartz.nip54Wiki.WikiNoteEvent import com.vitorpamplona.quartz.nip56Reports.ReportEvent @@ -118,6 +189,17 @@ import com.vitorpamplona.quartz.nip58Badges.profile.ProfileBadgesEvent import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent import com.vitorpamplona.quartz.nip59Giftwrap.wraps.EphemeralGiftWrapEvent import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent +import com.vitorpamplona.quartz.nip5aStaticWebsites.NamedSiteEvent +import com.vitorpamplona.quartz.nip5aStaticWebsites.RootSiteEvent +import com.vitorpamplona.quartz.nip5dNapplets.NamedNappletEvent +import com.vitorpamplona.quartz.nip5dNapplets.NappletSnapshotEvent +import com.vitorpamplona.quartz.nip5dNapplets.RootNappletEvent +import com.vitorpamplona.quartz.nip60Cashu.history.CashuSpendingHistoryEvent +import com.vitorpamplona.quartz.nip60Cashu.quote.CashuMintQuoteEvent +import com.vitorpamplona.quartz.nip60Cashu.token.CashuTokenEvent +import com.vitorpamplona.quartz.nip60Cashu.wallet.CashuWalletEvent +import com.vitorpamplona.quartz.nip61Nutzaps.info.NutzapInfoEvent +import com.vitorpamplona.quartz.nip61Nutzaps.nutzap.NutzapEvent import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent @@ -130,6 +212,7 @@ import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent import com.vitorpamplona.quartz.nip66RelayMonitor.discovery.RelayDiscoveryEvent import com.vitorpamplona.quartz.nip66RelayMonitor.monitor.RelayMonitorEvent import com.vitorpamplona.quartz.nip68Picture.PictureEvent +import com.vitorpamplona.quartz.nip69P2pOrderEvents.P2POrderEvent import com.vitorpamplona.quartz.nip71Video.VideoHorizontalEvent import com.vitorpamplona.quartz.nip71Video.VideoNormalEvent import com.vitorpamplona.quartz.nip71Video.VideoShortEvent @@ -137,20 +220,63 @@ import com.vitorpamplona.quartz.nip71Video.VideoVerticalEvent import com.vitorpamplona.quartz.nip72ModCommunities.approval.CommunityPostApprovalEvent import com.vitorpamplona.quartz.nip72ModCommunities.definition.CommunityDefinitionEvent import com.vitorpamplona.quartz.nip72ModCommunities.follow.CommunityListEvent +import com.vitorpamplona.quartz.nip72ModCommunities.rules.CommunityRulesEvent import com.vitorpamplona.quartz.nip75ZapGoals.GoalEvent +import com.vitorpamplona.quartz.nip78AppData.AppDataEvent import com.vitorpamplona.quartz.nip78AppData.AppSpecificDataEvent +import com.vitorpamplona.quartz.nip7DThreads.ThreadEvent import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent +import com.vitorpamplona.quartz.nip85TrustedAssertions.addressables.AddressableAssertionEvent +import com.vitorpamplona.quartz.nip85TrustedAssertions.events.EventAssertionEvent +import com.vitorpamplona.quartz.nip85TrustedAssertions.externalIds.ExternalIdAssertionEvent import com.vitorpamplona.quartz.nip85TrustedAssertions.list.TrustProviderListEvent import com.vitorpamplona.quartz.nip85TrustedAssertions.users.ContactCardEvent +import com.vitorpamplona.quartz.nip87Ecash.cashu.CashuMintEvent +import com.vitorpamplona.quartz.nip87Ecash.fedimint.FedimintEvent +import com.vitorpamplona.quartz.nip87Ecash.recommendation.MintRecommendationEvent import com.vitorpamplona.quartz.nip88Polls.poll.PollEvent import com.vitorpamplona.quartz.nip88Polls.response.PollResponseEvent import com.vitorpamplona.quartz.nip89AppHandlers.definition.AppDefinitionEvent import com.vitorpamplona.quartz.nip89AppHandlers.recommendation.AppRecommendationEvent import com.vitorpamplona.quartz.nip90Dvms.contentDiscoveryRequest.NIP90ContentDiscoveryRequestEvent import com.vitorpamplona.quartz.nip90Dvms.contentDiscoveryResponse.NIP90ContentDiscoveryResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.contentSearch.NIP90ContentSearchRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.contentSearch.NIP90ContentSearchResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.eventCount.NIP90EventCountRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.eventCount.NIP90EventCountResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.eventPowDelegation.NIP90EventPowDelegationRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.eventPowDelegation.NIP90EventPowDelegationResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.eventPublishSchedule.NIP90EventPublishScheduleRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.eventPublishSchedule.NIP90EventPublishScheduleResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.eventTimestamping.NIP90EventTimestampingRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.eventTimestamping.NIP90EventTimestampingResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.imageGeneration.NIP90ImageGenerationRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.imageGeneration.NIP90ImageGenerationResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.imageToVideo.NIP90ImageToVideoRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.imageToVideo.NIP90ImageToVideoResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.malwareScanning.NIP90MalwareScanRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.malwareScanning.NIP90MalwareScanResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.opReturn.NIP90OpReturnRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.opReturn.NIP90OpReturnResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.peopleSearch.NIP90PeopleSearchRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.peopleSearch.NIP90PeopleSearchResponseEvent import com.vitorpamplona.quartz.nip90Dvms.status.NIP90StatusEvent +import com.vitorpamplona.quartz.nip90Dvms.summarization.NIP90SummarizationRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.summarization.NIP90SummarizationResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.textExtraction.NIP90TextExtractionRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.textExtraction.NIP90TextExtractionResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.textGeneration.NIP90TextGenerationRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.textGeneration.NIP90TextGenerationResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.textToSpeech.NIP90TextToSpeechRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.textToSpeech.NIP90TextToSpeechResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.translation.NIP90TranslationRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.translation.NIP90TranslationResponseEvent import com.vitorpamplona.quartz.nip90Dvms.userDiscoveryRequest.NIP90UserDiscoveryRequestEvent import com.vitorpamplona.quartz.nip90Dvms.userDiscoveryResponse.NIP90UserDiscoveryResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.videoConversion.NIP90VideoConversionRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.videoConversion.NIP90VideoConversionResponseEvent +import com.vitorpamplona.quartz.nip90Dvms.videoTranslation.NIP90VideoTranslationRequestEvent +import com.vitorpamplona.quartz.nip90Dvms.videoTranslation.NIP90VideoTranslationResponseEvent import com.vitorpamplona.quartz.nip94FileMetadata.FileHeaderEvent import com.vitorpamplona.quartz.nip96FileStorage.config.FileServersEvent import com.vitorpamplona.quartz.nip98HttpAuth.HTTPAuthorizationEvent @@ -158,9 +284,18 @@ import com.vitorpamplona.quartz.nip99Classifieds.ClassifiedsEvent import com.vitorpamplona.quartz.nipA0VoiceMessages.VoiceEvent import com.vitorpamplona.quartz.nipA0VoiceMessages.VoiceReplyEvent import com.vitorpamplona.quartz.nipA4PublicMessages.PublicMessageEvent +import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallAnswerEvent +import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallHangupEvent +import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallIceCandidateEvent +import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallOfferEvent +import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallRejectEvent +import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallRenegotiateEvent import com.vitorpamplona.quartz.nipB0WebBookmarks.WebBookmarkEvent import com.vitorpamplona.quartz.nipB7Blossom.BlossomAuthorizationEvent import com.vitorpamplona.quartz.nipB7Blossom.BlossomServersEvent +import com.vitorpamplona.quartz.nipBCOnchainZaps.zap.OnchainZapEvent +import com.vitorpamplona.quartz.nipC0CodeSnippets.CodeSnippetEvent +import com.vitorpamplona.quartz.nipC7Chats.ChatEvent import com.vitorpamplona.quartz.nipF4Podcasts.authored.AuthoredPodcastsEvent import com.vitorpamplona.quartz.nipF4Podcasts.episode.PodcastEpisodeEvent import com.vitorpamplona.quartz.nipF4Podcasts.favorites.FavoritePodcastsListEvent @@ -334,6 +469,141 @@ object KindNames { WakeUpEvent.KIND to KindName("WakeUp", null), WebBookmarkEvent.KIND to KindName("Web Bookmark", "B0"), WikiNoteEvent.KIND to KindName("Wiki", "54"), + ChatEvent.KIND to KindName("Relay Chat", "C7"), + ThreadEvent.KIND to KindName("Thread", "7D"), + AppDataEvent.KIND to KindName("App Data", "78"), + WelcomeEvent.KIND to KindName("MLS Welcome", null), + GroupEvent.KIND to KindName("MLS Group Message", null), + NotificationRequestEvent.KIND to KindName("MLS Notification Request", null), + TokenRequestEvent.KIND to KindName("MLS Token Request", null), + TokenListEvent.KIND to KindName("MLS Token List", null), + TokenRemovalEvent.KIND to KindName("MLS Token Removal", null), + BidEvent.KIND to KindName("Marketplace Bid", "15"), + BidConfirmationEvent.KIND to KindName("Bid Confirmation", "15"), + LiveActivitiesRaidEvent.KIND to KindName("Live Raid", "53"), + LiveActivitiesClipEvent.KIND to KindName("Live Clip", "53"), + RoadEventReportEvent.KIND to KindName("Road Report", null), + RoadEventConfirmationEvent.KIND to KindName("Road Confirmation", null), + CodeSnippetEvent.KIND to KindName("Code Snippet", "C0"), + GitPullRequestEvent.KIND to KindName("Git Pull Request", "34"), + GitPullRequestUpdateEvent.KIND to KindName("Git PR Update", "34"), + LabelEvent.KIND to KindName("Label", "32"), + SoftwareAssetEvent.KIND to KindName("Software Asset", "82"), + AdminCommandEvent.KIND to KindName("Nests Admin Command", null), + NIP90TextExtractionRequestEvent.KIND to KindName("DVM Text Extraction Req", "90"), + NIP90SummarizationRequestEvent.KIND to KindName("DVM Summarization Req", "90"), + NIP90TranslationRequestEvent.KIND to KindName("DVM Translation Req", "90"), + NIP90TextGenerationRequestEvent.KIND to KindName("DVM Text Generation Req", "90"), + NIP90ImageGenerationRequestEvent.KIND to KindName("DVM Image Generation Req", "90"), + NappletSnapshotEvent.KIND to KindName("Napplet Snapshot", "5D"), + NIP90VideoConversionRequestEvent.KIND to KindName("DVM Video Conversion Req", "90"), + NIP90VideoTranslationRequestEvent.KIND to KindName("DVM Video Translation Req", "90"), + NIP90ImageToVideoRequestEvent.KIND to KindName("DVM Image To Video Req", "90"), + NIP90TextToSpeechRequestEvent.KIND to KindName("DVM Text To Speech Req", "90"), + NIP90ContentSearchRequestEvent.KIND to KindName("DVM Content Search Req", "90"), + NIP90PeopleSearchRequestEvent.KIND to KindName("DVM People Search Req", "90"), + NIP90EventCountRequestEvent.KIND to KindName("DVM Event Count Req", "90"), + NIP90MalwareScanRequestEvent.KIND to KindName("DVM Malware Scan Req", "90"), + NIP90EventTimestampingRequestEvent.KIND to KindName("DVM Timestamping Req", "90"), + NIP90OpReturnRequestEvent.KIND to KindName("DVM OpReturn Req", "90"), + NIP90EventPublishScheduleRequestEvent.KIND to KindName("DVM Publish Schedule Req", "90"), + NIP90EventPowDelegationRequestEvent.KIND to KindName("DVM PoW Delegation Req", "90"), + NIP90TextExtractionResponseEvent.KIND to KindName("DVM Text Extraction Resp", "90"), + NIP90SummarizationResponseEvent.KIND to KindName("DVM Summarization Resp", "90"), + NIP90TranslationResponseEvent.KIND to KindName("DVM Translation Resp", "90"), + NIP90TextGenerationResponseEvent.KIND to KindName("DVM Text Generation Resp", "90"), + NIP90ImageGenerationResponseEvent.KIND to KindName("DVM Image Generation Resp", "90"), + NIP90VideoConversionResponseEvent.KIND to KindName("DVM Video Conversion Resp", "90"), + NIP90VideoTranslationResponseEvent.KIND to KindName("DVM Video Translation Resp", "90"), + NIP90ImageToVideoResponseEvent.KIND to KindName("DVM Image To Video Resp", "90"), + NIP90TextToSpeechResponseEvent.KIND to KindName("DVM Text To Speech Resp", "90"), + NIP90ContentSearchResponseEvent.KIND to KindName("DVM Content Search Resp", "90"), + NIP90PeopleSearchResponseEvent.KIND to KindName("DVM People Search Resp", "90"), + NIP90EventCountResponseEvent.KIND to KindName("DVM Event Count Resp", "90"), + NIP90MalwareScanResponseEvent.KIND to KindName("DVM Malware Scan Resp", "90"), + NIP90EventTimestampingResponseEvent.KIND to KindName("DVM Timestamping Resp", "90"), + NIP90OpReturnResponseEvent.KIND to KindName("DVM OpReturn Resp", "90"), + NIP90EventPublishScheduleResponseEvent.KIND to KindName("DVM Publish Schedule Resp", "90"), + NIP90EventPowDelegationResponseEvent.KIND to KindName("DVM PoW Delegation Resp", "90"), + CashuMintQuoteEvent.KIND to KindName("Cashu Mint Quote", "60"), + CashuTokenEvent.KIND to KindName("Cashu Token", "60"), + CashuSpendingHistoryEvent.KIND to KindName("Cashu History", "60"), + RelayAddMemberEvent.KIND to KindName("Relay Add Member", "43"), + RelayRemoveMemberEvent.KIND to KindName("Relay Remove Member", "43"), + OnchainZapEvent.KIND to KindName("Onchain Zap", "BC"), + PutUserEvent.KIND to KindName("Group Put User", "29"), + RemoveUserEvent.KIND to KindName("Group Remove User", "29"), + EditMetadataEvent.KIND to KindName("Group Edit Metadata", "29"), + DeleteEventEvent.KIND to KindName("Group Delete Event", "29"), + CreateGroupEvent.KIND to KindName("Group Create", "29"), + DeleteGroupEvent.KIND to KindName("Group Delete", "29"), + CreateInviteEvent.KIND to KindName("Group Create Invite", "29"), + JoinRequestEvent.KIND to KindName("Group Join Request", "29"), + LeaveRequestEvent.KIND to KindName("Group Leave Request", "29"), + NutzapEvent.KIND to KindName("Nutzap", "61"), + SimpleGroupListEvent.KIND to KindName("Group List", "51"), + ExternalIdentitiesEvent.KIND to KindName("External Identities", "39"), + GitAuthorListEvent.KIND to KindName("Git Authors", "51"), + GitRepositoryListEvent.KIND to KindName("Git Repos", "51"), + NutzapInfoEvent.KIND to KindName("Nutzap Info", "61"), + MediaFollowListEvent.KIND to KindName("Media Follows", "51"), + EncryptionKeyListEvent.KIND to KindName("Encryption Keys", null), + KeyPackageRelayListEvent.KIND to KindName("MLS KeyPackage Relays", null), + FavoriteAlgoFeedsListEvent.KIND to KindName("Favorite Feeds", "51"), + GoodWikiAuthorListEvent.KIND to KindName("Wiki Authors", "51"), + GoodWikiRelayListEvent.KIND to KindName("Wiki Relays", "51"), + UserGraspListEvent.KIND to KindName("GRASP Servers", "34"), + BirdexEvent.KIND to KindName("Birdex", null), + NwcInfoEvent.KIND to KindName("NWC Info", "47"), + RelayMembershipListEvent.KIND to KindName("Relay Memberships", "43"), + RootSiteEvent.KIND to KindName("Website Root", "5A"), + RootNappletEvent.KIND to KindName("Napplet Root", "5D"), + CashuWalletEvent.KIND to KindName("Cashu Wallet", "60"), + OfferEvent.KIND to KindName("CLINK Offer", null), + DebitEvent.KIND to KindName("CLINK Debit", null), + ManageEvent.KIND to KindName("CLINK Manage", null), + NwcNotificationEvent.KIND to KindName("NWC Notification", "47"), + CallOfferEvent.KIND to KindName("Call Offer", "AC"), + CallAnswerEvent.KIND to KindName("Call Answer", "AC"), + CallIceCandidateEvent.KIND to KindName("Call ICE Candidate", "AC"), + CallHangupEvent.KIND to KindName("Call Hangup", "AC"), + CallRejectEvent.KIND to KindName("Call Reject", "AC"), + CallRenegotiateEvent.KIND to KindName("Call Renegotiate", "AC"), + RelayJoinRequestEvent.KIND to KindName("Relay Join Request", "43"), + RelayInviteRequestEvent.KIND to KindName("Relay Invite Request", "43"), + RelayLeaveRequestEvent.KIND to KindName("Relay Leave Request", "43"), + ArticleCurationSetEvent.KIND to KindName("Article Sets", "51"), + VideoCurationSetEvent.KIND to KindName("Video Sets", "51"), + PictureCurationSetEvent.KIND to KindName("Picture Sets", "51"), + KindMuteSetEvent.KIND to KindName("Kind Mute Sets", "51"), + InterestSetEvent.KIND to KindName("Interest Sets", "51"), + StallEvent.KIND to KindName("Marketplace Stall", "15"), + ProductEvent.KIND to KindName("Marketplace Product", "15"), + MarketplaceEvent.KIND to KindName("Marketplace", "15"), + AuctionEvent.KIND to KindName("Marketplace Auction", "15"), + ReleaseArtifactSetEvent.KIND to KindName("Release Artifacts", "51"), + AppCurationSetEvent.KIND to KindName("App Sets", "51"), + EventAssertionEvent.KIND to KindName("Event Assertion", "85"), + AddressableAssertionEvent.KIND to KindName("Addressable Assertion", "85"), + ExternalIdAssertionEvent.KIND to KindName("External ID Assertion", "85"), + KeyPackageEvent.KIND to KindName("MLS KeyPackage", null), + GitRepositoryStateEvent.KIND to KindName("Git Repo State", "34"), + FeedDefinitionEvent.KIND to KindName("Feed Definition", null), + SoftwareApplicationEvent.KIND to KindName("Software Application", "82"), + ExerciseTemplateEvent.KIND to KindName("Exercise Template", null), + FundraiserEvent.KIND to KindName("Fundraiser", null), + CommunityRulesEvent.KIND to KindName("Community Rules", "72"), + NamedSiteEvent.KIND to KindName("Website", "5A"), + NamedNappletEvent.KIND to KindName("Napplet", "5D"), + MintRecommendationEvent.KIND to KindName("Mint Recommendation", "87"), + CashuMintEvent.KIND to KindName("Cashu Mint", "87"), + FedimintEvent.KIND to KindName("Fedimint", "87"), + P2POrderEvent.KIND to KindName("P2P Order", "69"), + GroupMetadataEvent.KIND to KindName("Group Metadata", "29"), + GroupAdminsEvent.KIND to KindName("Group Admins", "29"), + GroupMembersEvent.KIND to KindName("Group Members", "29"), + SupportedRolesEvent.KIND to KindName("Group Roles", "29"), + MediaStarterPackEvent.KIND to KindName("Media Starter Pack", "51"), ) fun infoFor(kind: Int): KindName? = names[kind]