import {z} from 'zod' export type ChatDeleteTurnsRequest = {conversationId?: string | undefined, turnId?: string | undefined}; export type CreateApiV1DeleteTurnsArgs = {'customer-id': number, timeout?: string | undefined, body: ChatDeleteTurnsRequest}; export type CreateApiV1DeleteTurnsOptions = {baseUrl?: string | undefined, ApiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const vectaraStatusCode = z.enum(["OK", "FAILURE", "UNKNOWN", "INVALID_ARGUMENT", "DEADLINE_EXCEEDED", "ALREADY_EXISTS", "PERMISSION_DENIED", "RESOURCE_EXHAUSTED", "FAILED_PRECONDITION", "ABORTED", "OUT_OF_RANGE", "UNIMPLEMENTED", "INTERNAL", "UNAVAILABLE", "DATA_LOSS", "UNAUTHENTICATED", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "METHOD_NOT_ALLOWED", "CONFLICT", "UNSUPPORTED_MEDIA_TYPE", "TOO_MANY_REQUESTS", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "SERVICE_UNAVAILABLE", "INSUFFICIENT_STORAGE", "UNPARSEABLE_RESPONSE", "DISABLED_CUSTOMER", "INVALID_CUSTOMER_ID", "DISABLED_CORPUS", "INVALID_CORPUS_ID", "DISABLED_API_KEY", "EXPIRED_API_KEY", "INVALID_API_KEY", "CMK_INACCESSIBLE", "QRY__DISABLED_CORPUS", "QRY__DOCUMENT_DB_FAILURE", "QRY__ENCODER_FAILURE", "QRY__INTERRUPTED", "QRY__INVALID_CORPUS", "QRY__INVALID_START", "QRY__INVALID_NUM_RESULTS", "QRY__INVALID_CONTEXT", "QRY__MISSING_QUERY", "QRY__MISSING_CORPUS", "QRY__TIMEOUT", "QRY__TOO_MANY_CORPORA", "QRY__TOO_MANY_QUERIES", "QRY__VECTOR_INDEX_FAILURE", "QRY__INVALID_DIMENSION", "QRY__INVALID_CLIENTKEY", "QRY__DECRYPTION_FAILURE", "QRY__INVALID_RERANKER", "QRY__PARTIAL_RERANK", "QRY__RERANK_FAILURE", "QRY__TOO_MANY_RESULT_ROWS", "QRY__PARTIAL_RETRIEVAL", "QRY__SMRY__INVALID_SUMMARIZER_PROMPT", "QRY__SMRY__INVALID_SUMMARY_LANG", "QRY__SMRY__UNSUPPORTED_SUMMARY_LANG", "QRY__SMRY__PARTIAL_SUMMARY", "QRY__SMRY__NO_QUERY_RESULTS", "QRY__SMRY__EVAL_UNSUPPORTED_LANG", "QRY__SMRY__EVAL_FAILURE", "QRY__GEN__NO_QUERY_RESULTS", "QRY__GEN__UNPARSEABLE_MODEL_PARAMS", "CX_SPECS__INVALID_JSON", "CX_SPECS__UNREGISTERED_TYPE", "CX_SPECS__MISSING_SPEC", "CX_SPECS__MISSING_TYPE", "CX_SPECS__UNPARSEABLE_SPEC", "ADM__INVALID_CUSTOMER_ID", "ADM__INVALID_CORPUS_ID", "ADM__INVALID_ENCODER_ID", "ADM__INVALID_ROLE_ID", "ADM__ROLE_ALREADY_EXISTS", "ADM__ONLY_ONE_OWNER_SUPPORTED", "ADM__INVALID_PERMISSION", "ADM__ROLECREATION_FAILURE", "ADM__USER_EMAIL_NOT_AVAIALBLE", "ADM__USERNAME_NOT_AVAILABLE", "ADM__SIGNUP_MISSING_NAME", "ADM__SIGNUP_MISSING_ORG", "ADM__SIGNUP_MISSING_EMAIL", "ADM__SIGNUP_MISSING_PAYMENT", "ADM__SIGNUP_MISSING_PLAN", "ADM__SIGNUP_MISSING_PASSWORD", "ADM__SIGNUP_INVALID_NAME", "ADM__SIGNUP_INVALID_ORG", "ADM__SIGNUP_INVALID_EMAIL", "ADM__SIGNUP_INVALID_PAYMENT", "ADM__SIGNUP_INVALID_PLAN", "ADM__SIGNUP_INVALID_PASSWORD", "ADM__SIGNUP_INVALID_ACCOUNT_ALIAS", "ADM__SIGNUP_INVALID_EMAIL_VALIDATION_CODE", "ADM__SIGNUP_MISSING_COUNTRY_CODE", "ADM__SIGNUP_ROOT_EMAIL_NOT_AVAILABLE", "ADM__CUST_MARK_DELETE_FAILED", "ADM__CUST_FAISS_DEALLOC_FAILED", "ADM__CUST_ALREADY_ACTIVE", "ADM__CUST_REACTIVATE_FAILED", "ADM__CUST_ENABLEMENT_FAILED", "ADM__CORPUS_LIMIT_REACHED", "ADM__STRIPE_CARD_DECLINED", "ADM__STRIPE_PROCESSING_ERROR", "ADM__EMAIL_VALIDATION_REQUEST_NOT_FOUND", "ADM__EMAIL_NOT_VALIDATED", "ADM__CHANGE_PLAN__NO_CURRENT_PLAN", "ADM__CHANGE_PLAN__REQUIRES_MANUAL_CHANGE", "ADM__CHANGE_PLAN__INVALID_PLAN_ID", "ADM__CHANGE_PLAN__NO_PAYMENT_SOURCE", "ADM__CHANGE_PLAN__INVALID_EFFECTIVE_DATE", "ADM__CHANGE_PLAN__CONFLICTING_CHANGE", "SCM__MISCONFIGURED_CONNECTION", "STATS_DB_READ_FAILURE", "VDB__TEXT_READ_FAILURE", "REBUILD__LOW_RECALL", "REBUILD__INDEX_UPLOAD_FAILURE", "REBUILD__UPDATE_JOURNAL_FAILURE", "REBUILD__UPDATE_FAISSPARAMS_FAILURE", "REBUILD__NO_DATA", "REBUILD__EVALUATION", "IDX__TRANSIENT_PARTIAL_DELETION_FAILURE", "IDX__PERMANENT_PARTIAL_DELETION_FAILURE", "CALB__INVALID_JSON", "CALB__INVALID_SPEC", "CALB__UNREGISTERED_TYPE", "CALB__MISSING_SPEC", "CALB__MISSING_TYPE", "CALB__UNPARSABLE_SPEC"]); export const comvectaraStatus = z.object({code: vectaraStatusCode.optional(), statusDetail: z.string().optional()}); export const chatDeleteTurnsResponse = z.object({status: comvectaraStatus.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Deletes specific turns from a conversation within the chat history corpus. This enables developers to remove inaccurate or inappropriate responses from the conversation history. * * POST /v1/delete-turns * * Also accepts auth: oAuth */ export const createApiV1DeleteTurns = async (args: CreateApiV1DeleteTurnsArgs, options?: CreateApiV1DeleteTurnsOptions) => { const {baseUrl = "https://api.vectara.io", fetch: fetchFn = fetch, ApiKeyAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args['customer-id'] != null) headers.set("customer-id", String(args['customer-id'])) if (args.timeout != null) headers.set("timeout", String(args.timeout)) if (ApiKeyAuth !== undefined) headers.set("x-api-key", ApiKeyAuth) const url = `${baseUrl.replace(/\/+$/, '')}/v1/delete-turns${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(chatDeleteTurnsResponse, await res.json()) };