import { Result } from "@adviser/cement"; import { VibesDiyError, ResError, VibeFile } from "./common.js"; import { ReqEnsureAppSlug, ResEnsureAppSlug, ReqListUserSlugAppSlug, ResListUserSlugAppSlug, ReqListRecentVibes, ResListRecentVibes, ReqPinRecentVibe, ResPinRecentVibe, ReqSetUnpublish, ResSetUnpublish, ReqSetVersionLock, ResSetVersionLock, ReqGetChatDetails, ResGetChatDetails, ReqGetAppByFsId, ResGetAppByFsId, ReqSetModeFs, ResSetModeFs, ReqForkApp, ResForkApp, ReqPublishApp, ResPublishApp, ReqSeedRemove, ResSeedRemove, ReqSeedRerun, ResSeedRerun, ReqListVersions, ResListVersions, ReqListHandleBindings, ResListHandleBindings, ReqCreateHandleBinding, ResCreateHandleBinding, ReqDeleteHandleBinding, ResDeleteHandleBinding, ReqSuggestHandleCandidates, ResSuggestHandleCandidates, ReqConfirmPlaceholderHandle, ResConfirmPlaceholderHandle, ReqGetApplicationChat, ResGetApplicationChat, ReqListNotifications, ResListNotifications, ReqMarkNotificationsRead, ResMarkNotificationsRead } from "./app.js"; import { ReqOpenChat, ResPromptChatSection, SectionEvent, ReqListModels, ResListModels, FSUpdate, SelectedSlotInput, ReqGetChatResponse, ResGetChatResponse, ReqGetVibeChips, ResGetVibeChips, ReqGetCachedSuggestion, ResGetCachedSuggestion, ReqSeedStarterChips, ResSeedStarterChips } from "./chat.js"; import { ReqEnsureUserSettings, ResEnsureUserSettings, ReqEnsureHandleAvatar, ResEnsureHandleAvatar, ReqListApplicationChats, ResListApplicationChats, ReqListCodegenChats, ResListCodegenChats, ReqEnsureAppSettings, ResEnsureAppSettings } from "./settings.js"; import { ReqCreateInvite, ResCreateInvite, ReqRevokeInvite, ResRevokeInvite, ReqRedeemInvite, ResRedeemInviteOK, ReqHasAccessInvite, ResHasAccessInvite, ReqInviteSetRole, ResInviteSetRole, ReqListInviteGrants, ResListInviteGrants } from "./invite-flow.js"; import { ReqListRequestGrants, ResListRequestGrants, ReqSubscribeRequestGrants, ResSubscribeRequestGrants, ReqRequestAccess, ResRequestAccess, ReqApproveRequest, ResApproveRequest, ReqRequestSetRole, ResRequestSetRole, ReqRevokeRequest, ResRevokeRequest, ReqHasAccessRequest, ResHasAccessRequest, EvtRequestGrant } from "./request-access.js"; import { ReqEnsureDeveloperGrant, ResEnsureDeveloperGrant, ReqRevokeDeveloperGrant, ResRevokeDeveloperGrant, ReqListDeveloperGrants, ResListDeveloperGrants } from "./developer-grant.js"; import { ResSubscribeUserNotifications, EvtUserNotification, ReqSubscribeUserNotificationsRaw, ReqRegisterPushTokenRaw, ReqDeregisterPushTokenRaw, ResDeregisterPushToken, ResRegisterPushToken } from "./notifications.js"; import { ReqPutDoc, ResPutDoc, ReqGetDoc, ResGetDoc, ResGetDocNotFound, ReqQueryDocs, ResQueryDocs, ReqDeleteDoc, ResDeleteDoc, ReqSubscribeDocs, ResSubscribeDocs, ReqBroadcastEphemeral, EvtDocEphemeral, ReqSubscribeViewerGrants, ResSubscribeViewerGrants, EvtViewerGrantsChanged, ReqSyncPull, ResSyncPull, ReqSyncPush, ResSyncPush, ReqListDbNames, ResListDbNames, ReqListDmThreads, ResListDmThreads, ReqMarkDmRead, ResMarkDmRead } from "./app-documents.js"; import { ReqListMembers, ResListMembers } from "./members.js"; import { ReqSocialFollow, ResSocialFollow, ReqSocialUnfollow, ResSocialUnfollow, ReqSocialApprove, ResSocialApprove, ReqSocialRemoveFollower, ResSocialRemoveFollower, ReqSocialBlock, ResSocialBlock, ReqSocialUnblock, ResSocialUnblock, ReqSocialList, ResSocialList, ReqSocialRelationship, ResSocialRelationship, ReqSocialRedeem, ResSocialRedeem, ReqSocialInvite, ResSocialInvite, ReqSocialSetPrivacy, ReqSocialImportFriendEdges, ResSocialImportFriendEdges, ResSocialSetPrivacy, ReqSubscribeSocial, ResSubscribeSocial, EvtSocialEdge } from "./social-msg.js"; import { ReqAudienceArmState, ResAudienceArmState, ReqSetAudienceArm, ResSetAudienceArm, ReqSetAudiencePolicy, ResSetAudiencePolicy, ReqListAudienceArms, ResListAudienceArms } from "./audience-arms-msg.js"; import { ReqListMemberships, ResListMemberships } from "./memberships.js"; import { ReqBillingCheckout, ResBillingCheckout, ReqBillingConfig, ResBillingConfig, ReqBillingCustomer, ResBillingCustomer } from "./billing-msg.js"; import { ReqVibeWhoAmI, ResVibeWhoAmI, ReqVibeAccessFnSource, ResVibeAccessFnSource, ReqVibeLookupHandles, ResVibeLookupHandles } from "@vibes.diy/vibe-types"; import { ReqAssetUploadGrant, ResAssetUploadGrant } from "./asset.js"; import { ReqReportGrowthMemberships, ResReportGrowthMemberships, ReqReportGrowthVibesWithData, ResReportGrowthVibesWithData, ReqReportActiveMembers, ResReportActiveMembers, ReqReportTopVibesByMembers, ResReportTopVibesByMembers, ReqReportAttributionReferrers, ResReportAttributionReferrers, ReqReportCampaignHealth, ResReportCampaignHealth } from "./report.js"; import { ReqHomeLeaderboard, ResHomeLeaderboard, ReqCuratedNewVibes, ResCuratedNewVibes, ReqCurateApprove, ResCurateApprove } from "./home-feed.js"; import { ReqRelatedVibes, ResRelatedVibes } from "./related-vibes.js"; import { ReqSharedMint, ResSharedMint } from "./shared-mint.js"; import { LLMRequest } from "@vibes.diy/call-ai-v2"; import { DashAuthType, ReqCertFromCsr, ResCertFromCsr, VerifiedClaimsResult, ClerkClaim } from "@vibes.diy/identity"; import type { ShardKind, ReqType, SHARD_POLICY } from "./shard-policy.js"; export declare const LLMChatEntry: import("arktype/internal/variants/object.ts").ObjectType<{ tid: string; chatId: string; ownerHandle: string; appSlug: string; }, {}>; export type LLMChatEntry = typeof LLMChatEntry.infer; export type OnResponseTypes = ResError | SectionEvent; export interface LLMChat extends LLMChatEntry { readonly firstTurnFired?: boolean; prompt(req: LLMRequest, opts?: { inputImageBase64?: string; dryRun?: boolean; dryRunPreAllocate?: boolean; focusPath?: string; selected?: SelectedSlotInput; apiKey?: string; imgTarget?: { dbName: string; docId: string; regen?: boolean; sourceKey?: string; }; variant?: "access-wizard" | "upgrade-backend" | "discuss"; }): Promise>; promptFS(req: FSUpdate | VibeFile[], opts?: { refFsId?: string; }): Promise>; readonly sectionStream: ReadableStream; close(force?: boolean): Promise; } export interface OptionalAuth { readonly auth?: DashAuthType; } export type Req = T extends unknown ? Omit & OptionalAuth & { readonly __reqType?: T extends { type: infer Ty; } ? Ty : never; } : never; export type MethodReqType = M extends (req: infer R) => unknown ? (R extends { __reqType?: infer Ty; } ? Ty : never) : never; export interface VibesDiyApiIface<_T = unknown> { close(): Promise; rollCodegenShard(): boolean; currentCodegenShard(): string | undefined; ensureAppSlug(req: Req): Promise>; listUserSlugAppSlug(req: Req): Promise>; listRecentVibes(req: Req): Promise>; pinRecentVibe(req: Req): Promise>; setUnpublish(req: Req): Promise>; setVersionLock(req: Req): Promise>; getChatDetails(req: Req): Promise>; getChatResponse(req: Req): Promise>; getVibeChips(req: Req): Promise>; getCachedSuggestion(req: Req): Promise>; seedStarterChips(req: Req): Promise>; getAppByFsId(req: Req): Promise>; openChat(req: Req): Promise>; ensureUserSettings(req: Req): Promise>; ensureHandleAvatar(req: Req): Promise>; curateApprove(req: Req): Promise>; ensureAppSettings(req: Req): Promise>; listApplicationChats(req: Req): Promise>; listCodegenChats(req: Req): Promise>; getApplicationChat(req: Req): Promise>; getTokenClaims(): Promise>; setSetModeFs(req: Req): Promise>; forkApp(req: Req): Promise>; publishApp(req: Req): Promise>; seedRemove(req: Req): Promise>; seedRerun(req: Req): Promise>; listVersions(req: Req): Promise>; getCertFromCsr(req: Req): Promise>; createInvite(req: Req): Promise>; revokeInvite(req: Req): Promise>; redeemInvite(req: Req): Promise>; hasAccessInvite(req: Req): Promise>; inviteSetRole(req: Req): Promise>; listInviteGrants(req: Req): Promise>; requestAccess(req: Req): Promise>; approveRequest(req: Req): Promise>; requestSetRole(req: Req): Promise>; revokeRequest(req: Req): Promise>; listRequestGrants(req: Req): Promise>; subscribeRequestGrants(req: Req): Promise>; hasAccessRequest(req: Req): Promise>; ensureDeveloperGrant(req: Req): Promise>; revokeDeveloperGrant(req: Req): Promise>; listDeveloperGrants(req: Req): Promise>; listHandleBindings(req: Req): Promise>; createHandleBinding(req: Req): Promise>; deleteHandleBinding(req: Req): Promise>; suggestHandleCandidates(req: Req): Promise>; confirmPlaceholderHandle(req: Req): Promise>; listNotifications(req: Req): Promise>; markNotificationsRead(req: Req): Promise>; listModels(req: Req): Promise>; putDoc(req: Req): Promise>; getDoc(req: Req): Promise>; queryDocs(req: Req): Promise>; deleteDoc(req: Req): Promise>; subscribeDocs(req: Req): Promise>; broadcastEphemeral(req: Req): void; subscribeViewerGrants(req: Req): Promise>; syncPull(req: Req): Promise>; syncPush(req: Req): Promise>; listDbNames(req: Req): Promise>; listDmThreads(req: Req): Promise>; markDmRead(req: Req): Promise>; listMembers(req: Req): Promise>; socialFollow(req: Req): Promise>; socialUnfollow(req: Req): Promise>; socialApprove(req: Req): Promise>; socialRemoveFollower(req: Req): Promise>; socialBlock(req: Req): Promise>; socialUnblock(req: Req): Promise>; socialList(req: Req): Promise>; socialRelationship(req: Req): Promise>; socialRedeem(req: Req): Promise>; socialInvite(req: Req): Promise>; socialSetPrivacy(req: Req): Promise>; socialImportFriendEdges(req: Req): Promise>; audienceArmState(req: Req): Promise>; setAudienceArm(req: Req): Promise>; setAudiencePolicy(req: Req): Promise>; listAudienceArms(req: Req): Promise>; subscribeSocial(req: Req): Promise>; listMemberships(req: Req): Promise>; billingCustomer(req: Req): Promise>; billingCheckout(req: Req): Promise>; billingConfig(req: Req): Promise>; whoAmI(req: Req): Promise>; accessFnSource(req: Req): Promise>; lookupHandles(req: Req): Promise>; requestAssetUploadGrant(req: Req): Promise>; reportGrowthMemberships(req: Req): Promise>; reportGrowthVibesWithData(req: Req): Promise>; reportActiveMembers(req: Req): Promise>; reportTopVibesByMembers(req: Req): Promise>; reportAttributionReferrers(req: Req): Promise>; reportCampaignHealth(req: Req): Promise>; homeLeaderboard(req: Req): Promise>; curatedNewVibes(req: Req): Promise>; relatedVibes(req: Req): Promise>; sharedMint(req: Req): Promise>; onDocChanged(fn: (ownerHandle: string, appSlug: string, dbName: string, docId: string) => void): () => void; onReconnect(fn: () => void): () => void; onDocEphemeral(fn: (evt: EvtDocEphemeral) => void): () => void; onDocEphemeralDrop(fn: (originPeer: string) => void): () => void; onRequestGrant(fn: (evt: EvtRequestGrant) => void): () => void; onViewerGrantsChanged(fn: (evt: EvtViewerGrantsChanged) => void): () => void; onSocialEdge(fn: (evt: EvtSocialEdge) => void): () => void; subscribeUserNotifications(req: Req): Promise>; onUserNotification(fn: (evt: EvtUserNotification) => void): () => void; registerPushToken(req: Req): Promise>; deregisterPushToken(req: Req): Promise>; } type StaticShards = (typeof SHARD_POLICY)[T] extends readonly ShardKind[] ? (typeof SHARD_POLICY)[T][number] : never; type AvailableMethods = { [M in keyof VibesDiyApiIface as [MethodReqType] extends [never] ? M : MethodReqType extends ReqType ? K extends StaticShards> ? M : never : M]: VibesDiyApiIface[M]; }; type ChatOverrides = K extends "vibe" ? { openChat(req: Req & { mode: "img"; }): ReturnType; } : Pick; export type Conn = Omit, "openChat"> & ChatOverrides; export {};