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]