| import type { AxiosResponse } from 'axios'; |
| import * as f from './types/files'; |
| import * as q from './types/queries'; |
| import * as m from './types/mutations'; |
| import * as a from './types/assistants'; |
| import * as r from './roles'; |
| import * as t from './types'; |
| import * as s from './schemas'; |
| import request from './request'; |
| import * as endpoints from './api-endpoints'; |
|
|
| export function abortRequestWithMessage( |
| endpoint: string, |
| abortKey: string, |
| message: string, |
| ): Promise<void> { |
| return request.post(endpoints.abortRequest(endpoint), { arg: { abortKey, message } }); |
| } |
|
|
| export function revokeUserKey(name: string): Promise<unknown> { |
| return request.delete(endpoints.revokeUserKey(name)); |
| } |
|
|
| export function revokeAllUserKeys(): Promise<unknown> { |
| return request.delete(endpoints.revokeAllUserKeys()); |
| } |
|
|
| export function deleteUser(): Promise<s.TPreset> { |
| return request.delete(endpoints.deleteUser()); |
| } |
|
|
| export function getMessagesByConvoId(conversationId: string): Promise<s.TMessage[]> { |
| if (conversationId === 'new') { |
| return Promise.resolve([]); |
| } |
| return request.get(endpoints.messages(conversationId)); |
| } |
|
|
| export function getSharedMessages(shareId: string): Promise<t.TSharedMessagesResponse> { |
| return request.get(endpoints.shareMessages(shareId)); |
| } |
|
|
| export const listSharedLinks = ( |
| params?: q.SharedLinkListParams, |
| ): Promise<q.SharedLinksResponse> => { |
| const pageNumber = params?.pageNumber || '1'; |
| const isPublic = params?.isPublic || true; |
| return request.get(endpoints.getSharedLinks(pageNumber, isPublic)); |
| }; |
|
|
| export function getSharedLink(shareId: string): Promise<t.TSharedLinkResponse> { |
| return request.get(endpoints.shareMessages(shareId)); |
| } |
|
|
| export function createSharedLink(payload: t.TSharedLinkRequest): Promise<t.TSharedLinkResponse> { |
| return request.post(endpoints.createSharedLink, payload); |
| } |
|
|
| export function updateSharedLink(payload: t.TSharedLinkRequest): Promise<t.TSharedLinkResponse> { |
| return request.patch(endpoints.updateSharedLink, payload); |
| } |
|
|
| export function deleteSharedLink(shareId: string): Promise<t.TDeleteSharedLinkResponse> { |
| return request.delete(endpoints.shareMessages(shareId)); |
| } |
|
|
| export function updateMessage(payload: t.TUpdateMessageRequest): Promise<unknown> { |
| const { conversationId, messageId, text } = payload; |
| if (!conversationId) { |
| throw new Error('conversationId is required'); |
| } |
|
|
| return request.put(endpoints.messages(conversationId, messageId), { text }); |
| } |
|
|
| export function updateUserKey(payload: t.TUpdateUserKeyRequest) { |
| const { value } = payload; |
| if (!value) { |
| throw new Error('value is required'); |
| } |
|
|
| return request.put(endpoints.keys(), payload); |
| } |
|
|
| export function getPresets(): Promise<s.TPreset[]> { |
| return request.get(endpoints.presets()); |
| } |
|
|
| export function createPreset(payload: s.TPreset): Promise<s.TPreset> { |
| return request.post(endpoints.presets(), payload); |
| } |
|
|
| export function updatePreset(payload: s.TPreset): Promise<s.TPreset> { |
| return request.post(endpoints.presets(), payload); |
| } |
|
|
| export function deletePreset(arg: s.TPreset | undefined): Promise<m.PresetDeleteResponse> { |
| return request.post(endpoints.deletePreset(), arg); |
| } |
|
|
| export function getSearchEnabled(): Promise<boolean> { |
| return request.get(endpoints.searchEnabled()); |
| } |
|
|
| export function getUser(): Promise<t.TUser> { |
| return request.get(endpoints.user()); |
| } |
|
|
| export function getUserBalance(): Promise<string> { |
| return request.get(endpoints.balance()); |
| } |
|
|
| export const updateTokenCount = (text: string) => { |
| return request.post(endpoints.tokenizer(), { arg: text }); |
| }; |
|
|
| export const login = (payload: t.TLoginUser) => { |
| return request.post(endpoints.login(), payload); |
| }; |
|
|
| export const logout = () => { |
| return request.post(endpoints.logout()); |
| }; |
|
|
| export const register = (payload: t.TRegisterUser) => { |
| return request.post(endpoints.register(), payload); |
| }; |
|
|
| export const userKeyQuery = (name: string): Promise<t.TCheckUserKeyResponse> => |
| request.get(endpoints.userKeyQuery(name)); |
|
|
| export const getLoginGoogle = () => { |
| return request.get(endpoints.loginGoogle()); |
| }; |
|
|
| export const requestPasswordReset = ( |
| payload: t.TRequestPasswordReset, |
| ): Promise<t.TRequestPasswordResetResponse> => { |
| return request.post(endpoints.requestPasswordReset(), payload); |
| }; |
|
|
| export const resetPassword = (payload: t.TResetPassword) => { |
| return request.post(endpoints.resetPassword(), payload); |
| }; |
|
|
| export const verifyEmail = (payload: t.TVerifyEmail): Promise<t.VerifyEmailResponse> => { |
| return request.post(endpoints.verifyEmail(), payload); |
| }; |
|
|
| export const resendVerificationEmail = ( |
| payload: t.TResendVerificationEmail, |
| ): Promise<t.VerifyEmailResponse> => { |
| return request.post(endpoints.resendVerificationEmail(), payload); |
| }; |
|
|
| export const getAvailablePlugins = (): Promise<s.TPlugin[]> => { |
| return request.get(endpoints.plugins()); |
| }; |
|
|
| export const updateUserPlugins = (payload: t.TUpdateUserPlugins) => { |
| return request.post(endpoints.userPlugins(), payload); |
| }; |
|
|
| |
|
|
| export const getStartupConfig = (): Promise<t.TStartupConfig> => { |
| return request.get(endpoints.config()); |
| }; |
|
|
| export const getAIEndpoints = (): Promise<t.TEndpointsConfig> => { |
| return request.get(endpoints.aiEndpoints()); |
| }; |
|
|
| export const getModels = async (): Promise<t.TModelsConfig> => { |
| return request.get(endpoints.models()); |
| }; |
|
|
| export const getEndpointsConfigOverride = (): Promise<unknown | boolean> => { |
| return request.get(endpoints.endpointsConfigOverride()); |
| }; |
|
|
| |
|
|
| export const createAssistant = ({ |
| version, |
| ...data |
| }: a.AssistantCreateParams): Promise<a.Assistant> => { |
| return request.post(endpoints.assistants({ version }), data); |
| }; |
|
|
| export const getAssistantById = ({ |
| endpoint, |
| assistant_id, |
| version, |
| }: { |
| endpoint: s.AssistantsEndpoint; |
| assistant_id: string; |
| version: number | string | number; |
| }): Promise<a.Assistant> => { |
| return request.get( |
| endpoints.assistants({ |
| path: assistant_id, |
| endpoint, |
| version, |
| }), |
| ); |
| }; |
|
|
| export const updateAssistant = ({ |
| assistant_id, |
| data, |
| version, |
| }: { |
| assistant_id: string; |
| data: a.AssistantUpdateParams; |
| version: number | string; |
| }): Promise<a.Assistant> => { |
| return request.patch( |
| endpoints.assistants({ |
| path: assistant_id, |
| version, |
| }), |
| data, |
| ); |
| }; |
|
|
| export const deleteAssistant = ({ |
| assistant_id, |
| model, |
| endpoint, |
| version, |
| }: m.DeleteAssistantBody & { version: number | string }): Promise<void> => { |
| return request.delete( |
| endpoints.assistants({ |
| path: assistant_id, |
| options: { model, endpoint }, |
| version, |
| }), |
| ); |
| }; |
|
|
| export const listAssistants = ( |
| params: a.AssistantListParams, |
| version: number | string, |
| ): Promise<a.AssistantListResponse> => { |
| return request.get( |
| endpoints.assistants({ |
| version, |
| options: params, |
| }), |
| ); |
| }; |
|
|
| export function getAssistantDocs({ |
| endpoint, |
| version, |
| }: { |
| endpoint: s.AssistantsEndpoint; |
| version: number | string; |
| }): Promise<a.AssistantDocument[]> { |
| return request.get( |
| endpoints.assistants({ |
| path: 'documents', |
| version, |
| endpoint, |
| }), |
| ); |
| } |
|
|
| |
|
|
| export const getAvailableTools = ( |
| version: number | string, |
| endpoint: s.AssistantsEndpoint, |
| ): Promise<s.TPlugin[]> => { |
| return request.get( |
| endpoints.assistants({ |
| path: 'tools', |
| endpoint, |
| version, |
| }), |
| ); |
| }; |
|
|
| |
|
|
| export const getFiles = (): Promise<f.TFile[]> => { |
| return request.get(endpoints.files()); |
| }; |
|
|
| export const getFileConfig = (): Promise<f.FileConfig> => { |
| return request.get(`${endpoints.files()}/config`); |
| }; |
|
|
| export const uploadImage = (data: FormData): Promise<f.TFileUpload> => { |
| return request.postMultiPart(endpoints.images(), data); |
| }; |
|
|
| export const uploadFile = (data: FormData): Promise<f.TFileUpload> => { |
| return request.postMultiPart(endpoints.files(), data); |
| }; |
|
|
| |
| |
| |
| |
| |
| |
| export const importConversationsFile = (data: FormData): Promise<t.TImportResponse> => { |
| return request.postMultiPart(endpoints.importConversation(), data); |
| }; |
|
|
| export const uploadAvatar = (data: FormData): Promise<f.AvatarUploadResponse> => { |
| return request.postMultiPart(endpoints.avatar(), data); |
| }; |
|
|
| export const uploadAssistantAvatar = (data: m.AssistantAvatarVariables): Promise<a.Assistant> => { |
| return request.postMultiPart( |
| endpoints.assistants({ |
| path: `avatar/${data.assistant_id}`, |
| options: { model: data.model, endpoint: data.endpoint }, |
| version: data.version, |
| }), |
| data.formData, |
| ); |
| }; |
|
|
| export const getFileDownload = async (userId: string, file_id: string): Promise<AxiosResponse> => { |
| return request.getResponse(`${endpoints.files()}/download/${userId}/${file_id}`, { |
| responseType: 'blob', |
| headers: { |
| Accept: 'application/octet-stream', |
| }, |
| }); |
| }; |
|
|
| export const deleteFiles = async ( |
| files: f.BatchFile[], |
| assistant_id?: string, |
| tool_resource?: a.EToolResources, |
| ): Promise<f.DeleteFilesResponse> => |
| request.deleteWithOptions(endpoints.files(), { |
| data: { files, assistant_id, tool_resource }, |
| }); |
|
|
| export const speechToText = (data: FormData): Promise<f.SpeechToTextResponse> => { |
| return request.postMultiPart(endpoints.speechToText(), data); |
| }; |
|
|
| export const textToSpeech = (data: FormData): Promise<ArrayBuffer> => { |
| return request.postTTS(endpoints.textToSpeechManual(), data); |
| }; |
|
|
| export const getVoices = (): Promise<f.VoiceResponse> => { |
| return request.get(endpoints.textToSpeechVoices()); |
| }; |
|
|
| |
|
|
| export const updateAction = (data: m.UpdateActionVariables): Promise<m.UpdateActionResponse> => { |
| const { assistant_id, version, ...body } = data; |
| return request.post( |
| endpoints.assistants({ |
| path: `actions/${assistant_id}`, |
| version, |
| }), |
| body, |
| ); |
| }; |
|
|
| export function getActions({ |
| endpoint, |
| version, |
| }: { |
| endpoint: s.AssistantsEndpoint; |
| version: number | string; |
| }): Promise<a.Action[]> { |
| return request.get( |
| endpoints.assistants({ |
| path: 'actions', |
| version, |
| endpoint, |
| }), |
| ); |
| } |
|
|
| export const deleteAction = async ({ |
| assistant_id, |
| action_id, |
| model, |
| version, |
| endpoint, |
| }: m.DeleteActionVariables & { version: number | string }): Promise<void> => |
| request.delete( |
| endpoints.assistants({ |
| path: `actions/${assistant_id}/${action_id}/${model}`, |
| version, |
| endpoint, |
| }), |
| ); |
|
|
| |
|
|
| export function forkConversation(payload: t.TForkConvoRequest): Promise<t.TForkConvoResponse> { |
| return request.post(endpoints.forkConversation(), payload); |
| } |
|
|
| export function deleteConversation(payload: t.TDeleteConversationRequest) { |
| |
| return request.post(endpoints.deleteConversation(), { arg: payload }); |
| } |
|
|
| export function clearAllConversations(): Promise<unknown> { |
| return request.post(endpoints.deleteConversation(), { arg: {} }); |
| } |
|
|
| export const listConversations = ( |
| params?: q.ConversationListParams, |
| ): Promise<q.ConversationListResponse> => { |
| |
| const pageNumber = params?.pageNumber || '1'; |
| const isArchived = params?.isArchived || false; |
| return request.get(endpoints.conversations(pageNumber, isArchived)); |
| }; |
|
|
| export const listConversationsByQuery = ( |
| params?: q.ConversationListParams & { searchQuery?: string }, |
| ): Promise<q.ConversationListResponse> => { |
| const pageNumber = params?.pageNumber || '1'; |
| const searchQuery = params?.searchQuery || ''; |
| |
| if (searchQuery !== '') { |
| return request.get(endpoints.search(searchQuery, pageNumber)); |
| } else { |
| return request.get(endpoints.conversations(pageNumber)); |
| } |
| }; |
|
|
| export const searchConversations = async ( |
| q: string, |
| pageNumber: string, |
| ): Promise<t.TSearchResults> => { |
| return request.get(endpoints.search(q, pageNumber)); |
| }; |
|
|
| export function getConversations(pageNumber: string): Promise<t.TGetConversationsResponse> { |
| return request.get(endpoints.conversations(pageNumber)); |
| } |
|
|
| export function getConversationById(id: string): Promise<s.TConversation> { |
| return request.get(endpoints.conversationById(id)); |
| } |
|
|
| export function updateConversation( |
| payload: t.TUpdateConversationRequest, |
| ): Promise<t.TUpdateConversationResponse> { |
| return request.post(endpoints.updateConversation(), { arg: payload }); |
| } |
|
|
| export function archiveConversation( |
| payload: t.TArchiveConversationRequest, |
| ): Promise<t.TArchiveConversationResponse> { |
| return request.post(endpoints.updateConversation(), { arg: payload }); |
| } |
|
|
| export function genTitle(payload: m.TGenTitleRequest): Promise<m.TGenTitleResponse> { |
| return request.post(endpoints.genTitle(), payload); |
| } |
|
|
| export function getPrompt(id: string): Promise<{ prompt: t.TPrompt }> { |
| return request.get(endpoints.getPrompt(id)); |
| } |
|
|
| export function getPrompts(filter: t.TPromptsWithFilterRequest): Promise<t.TPrompt[]> { |
| return request.get(endpoints.getPromptsWithFilters(filter)); |
| } |
|
|
| export function getPromptGroups( |
| filter: t.TPromptGroupsWithFilterRequest, |
| ): Promise<t.PromptGroupListResponse> { |
| return request.get(endpoints.getPromptGroupsWithFilters(filter)); |
| } |
|
|
| export function getPromptGroup(id: string): Promise<t.TPromptGroup> { |
| return request.get(endpoints.getPromptGroup(id)); |
| } |
|
|
| export function createPrompt(payload: t.TCreatePrompt): Promise<t.TCreatePromptResponse> { |
| return request.post(endpoints.postPrompt(), payload); |
| } |
|
|
| export function updatePromptGroup( |
| variables: t.TUpdatePromptGroupVariables, |
| ): Promise<t.TUpdatePromptGroupResponse> { |
| return request.patch(endpoints.updatePromptGroup(variables.id), variables.payload); |
| } |
|
|
| export function deletePrompt(payload: t.TDeletePromptVariables): Promise<t.TDeletePromptResponse> { |
| return request.delete(endpoints.deletePrompt(payload)); |
| } |
|
|
| export function makePromptProduction(id: string): Promise<t.TMakePromptProductionResponse> { |
| return request.patch(endpoints.updatePromptTag(id)); |
| } |
|
|
| export function updatePromptLabels( |
| variables: t.TUpdatePromptLabelsRequest, |
| ): Promise<t.TUpdatePromptLabelsResponse> { |
| return request.patch(endpoints.updatePromptLabels(variables.id), variables.payload); |
| } |
|
|
| export function deletePromptGroup(id: string): Promise<t.TDeletePromptGroupResponse> { |
| return request.delete(endpoints.deletePromptGroup(id)); |
| } |
|
|
| export function getCategories(): Promise<t.TGetCategoriesResponse> { |
| return request.get(endpoints.getCategories()); |
| } |
|
|
| export function getRandomPrompts( |
| variables: t.TGetRandomPromptsRequest, |
| ): Promise<t.TGetRandomPromptsResponse> { |
| return request.get(endpoints.getRandomPrompts(variables.limit, variables.skip)); |
| } |
|
|
| |
| export function getRole(roleName: string): Promise<r.TRole> { |
| return request.get(endpoints.getRole(roleName)); |
| } |
|
|
| export function updatePromptPermissions( |
| variables: m.UpdatePromptPermVars, |
| ): Promise<m.UpdatePromptPermResponse> { |
| return request.put(endpoints.updatePromptPermissions(variables.roleName), variables.updates); |
| } |
|
|