{"version":3,"file":"index.cjs","sources":["../src/logger.ts","../src/rest/assistantsClient.ts","../src/api/AssistantsContext.ts","../src/api/util.ts","../src/models/helpers.ts","../src/api/operations.ts","../src/api/policies/nonAzure.ts","../src/assistantsClient.ts","../src/OpenAIKeyCredential.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"openai-assistants\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport { ClientOptions, getClient } from \"@azure-rest/core-client\";\nimport { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { logger } from \"../logger.js\";\nimport { AssistantsContext } from \"./clientDefinitions.js\";\n\n/**\n * Initialize a new instance of `AssistantsContext`\n * @param endpoint - An OpenAI endpoint supporting assistants functionality.\n * @param credentials - uniquely identify client credential\n * @param options - the parameter for all optional parameters\n */\nexport default function createClient(\n  endpoint: string,\n  credentials: TokenCredential | KeyCredential,\n  options: ClientOptions = {}\n): AssistantsContext {\n  const baseUrl = options.baseUrl ?? `${endpoint}/openai`;\n  options.apiVersion = options.apiVersion ?? \"2024-02-15-preview\";\n  const userAgentInfo = `azsdk-js-openai-assistants-rest/1.0.0-beta.6`;\n  const userAgentPrefix =\n    options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n      ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`\n      : `${userAgentInfo}`;\n  options = {\n    ...options,\n    userAgentOptions: {\n      userAgentPrefix,\n    },\n    loggingOptions: {\n      logger: options.loggingOptions?.logger ?? logger.info,\n    },\n    credentials: {\n      scopes: options.credentials?.scopes ?? [\"https://cognitiveservices.azure.com/.default\"],\n      apiKeyHeaderName: options.credentials?.apiKeyHeaderName ?? \"api-key\",\n    },\n  };\n  return getClient(baseUrl, credentials, options) as AssistantsContext;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport { TokenCredential, KeyCredential } from \"@azure/core-auth\";\nimport { ClientOptions } from \"@azure-rest/core-client\";\nimport { AssistantsContext } from \"../rest/index.js\";\nimport getClient from \"../rest/index.js\";\n\n/** The details used to create a assistant client **/\nexport interface AssistantsClientOptions extends ClientOptions {}\n\nexport { AssistantsContext } from \"../rest/index.js\";\n\n/** Azure OpenAI APIs for Assistants. */\nexport function createAssistants(\n  endpoint: string,\n  credential: KeyCredential | TokenCredential,\n  options: AssistantsClientOptions = {}\n): AssistantsContext {\n  const clientContext = getClient(endpoint, credential, options);\n  return clientContext;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\nexport type SnakeCaseKeys<T> = {\n  [K in keyof T as SnakeCase<K & string>]: MapSnakeCaseKeysOverCollections<T[K]>;\n};\ntype CamelCase<S extends string> = S extends `${infer P1}_${infer P2}`\n  ? `${Lowercase<P1>}${Capitalize<CamelCase<P2>>}`\n  : Lowercase<S>;\ntype SnakeCase<S extends string> = S extends `${infer T}${infer U}`\n  ? `${T extends Capitalize<T> ? \"_\" : \"\"}${Lowercase<T>}${SnakeCase<U>}`\n  : S;\ntype MapCamelCaseKeysOverCollections<T> = T extends Array<infer X>\n  ? Array<MapCamelCaseKeysOverCollections<X>>\n  : CamelCaseKeys<T>;\ntype MapSnakeCaseKeysOverCollections<T> = T extends Array<infer X>\n  ? Array<MapSnakeCaseKeysOverCollections<X>>\n  : // : T extends (infer X | infer Y)\n    // ? MapSnakeCaseKeysOverCollections<X> | MapSnakeCaseKeysOverCollections<Y>\n    SnakeCaseKeys<T>;\ntype CamelCaseKeys<T> = {\n  [K in keyof T as CamelCase<K & string>]: MapCamelCaseKeysOverCollections<T[K]>;\n};\n\nexport function wrapError<T>(f: () => T, message: string): T {\n  try {\n    const result = f();\n    return result;\n  } catch (cause) {\n    throw new Error(`${message}: ${cause}`);\n  }\n}\n\n/**\n * Rename keys to camel case.\n * @param obj - The object to rename keys to camel case\n * @returns The object with keys renamed to camel case\n */\nexport function renameKeysToCamelCase(obj: Record<string, any>): Record<string, any> {\n  for (const key of Object.keys(obj)) {\n    const value = obj[key];\n    const newKey = tocamelCase(key);\n    if (newKey !== key) {\n      delete obj[key];\n    }\n    obj[newKey] =\n      typeof value === \"object\"\n        ? Array.isArray(value)\n          ? value.map((v) => renameKeysToCamelCase(v))\n          : renameKeysToCamelCase(value)\n        : value;\n  }\n\n  return obj;\n}\n\nexport function camelCaseKeys<O extends Record<string, any>>(obj: O): CamelCaseKeys<O> {\n  if (typeof obj !== \"object\" || !obj) return obj;\n  if (Array.isArray(obj)) {\n    return obj.map((v) =>\n      camelCaseKeys<O extends Array<infer X> ? (X extends Record<string, any> ? X : never) : never>(\n        v\n      )\n    ) as CamelCaseKeys<O>;\n  } else {\n    for (const key of Object.keys(obj)) {\n      const value = obj[key];\n      const newKey = tocamelCase(key);\n      if (newKey !== key) {\n        delete obj[key];\n      }\n      (obj[newKey] as Record<string, any>) =\n        typeof obj[newKey] === \"object\" ? camelCaseKeys(value) : value;\n    }\n    return obj;\n  }\n}\n\nexport function snakeCaseKeys<O extends Record<string, any>>(obj: O): SnakeCaseKeys<O> {\n  if (typeof obj !== \"object\" || !obj) return obj;\n  if (Array.isArray(obj)) {\n    return obj.map((v) =>\n      snakeCaseKeys<O extends Array<infer X> ? (X extends Record<string, any> ? X : never) : never>(\n        v\n      )\n    ) as SnakeCaseKeys<O>;\n  } else {\n    for (const key of Object.keys(obj)) {\n      const value = obj[key];\n      const newKey = toSnakeCase(key);\n      if (newKey !== key) {\n        delete obj[key];\n      }\n      (obj[newKey] as Record<string, any>) =\n        typeof obj[newKey] === \"object\" ? snakeCaseKeys(value) : value;\n    }\n    return obj;\n  }\n}\n\nfunction tocamelCase<P extends string>(str: P): CamelCase<P> {\n  return str\n    .toLowerCase()\n    .replace(/([_][a-z])/g, (group) => group.toUpperCase().replace(\"_\", \"\")) as CamelCase<P>;\n}\n\nfunction toSnakeCase<P extends string>(str: P): SnakeCase<P> {\n  return str\n    .replace(/([A-Z])/g, (group) => `_${group.toLowerCase()}`)\n    .replace(/^_/, \"\") as SnakeCase<P>;\n}\n\nexport function unixToDate(unix: number): Date {\n  return new Date(unix * 1000);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\nimport {\n  CodeInterpreterToolCallDetailsOutput,\n  RequiredToolCallOutput,\n  ToolCallOutput,\n} from \"../rest/outputModels.js\";\nimport { CodeInterpreterToolCallDetails, RequiredToolCall, ToolCall } from \"./models.js\";\nimport { camelCaseKeys } from \"../api/util.js\";\n\nexport function parseRequiredToolCallOutput(\n  requiredToolCallOutput: RequiredToolCallOutput\n): RequiredToolCall {\n  return {\n    type: \"function\",\n    id: requiredToolCallOutput.id,\n    function: requiredToolCallOutput.function,\n  } as RequiredToolCall;\n}\n\nexport function parseToolCallOutput(toolCallOutput: ToolCallOutput): ToolCall {\n  const { id, type } = toolCallOutput;\n  switch (type) {\n    case \"function\":\n      return { type, id, function: toolCallOutput.function };\n    case \"retrieval\":\n      return { type, id, retrieval: toolCallOutput.retrieval };\n    case \"code_interpreter\":\n      return {\n        type,\n        id,\n        codeInterpreter: parseCodeInterpreterToolCallDetailsOutput(toolCallOutput.code_interpreter),\n      };\n    default:\n      throw new Error(`Unknown tool call type: ${type}`);\n  }\n}\n\nfunction parseCodeInterpreterToolCallDetailsOutput(\n  codeInterpreterToolCallDetailsOutput: CodeInterpreterToolCallDetailsOutput\n): CodeInterpreterToolCallDetails {\n  const { ...rest } = codeInterpreterToolCallDetailsOutput;\n  return { ...camelCaseKeys(rest) };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport {\n  StreamableMethod,\n  createRestError,\n  operationOptionsToRequestParameters,\n} from \"@azure-rest/core-client\";\nimport { createFile } from \"@azure/core-rest-pipeline\";\nimport { parseToolCallOutput, parseRequiredToolCallOutput } from \"../models/helpers.js\";\nimport {\n  Assistant,\n  AssistantFile,\n  CreateThreadOptions,\n  FilePurpose,\n  GetMessageOptions,\n  InputFile,\n  ListAssistantFilesOptions,\n  ListAssistantsOptions,\n  ListMessageFilesOptions,\n  ListMessagesOptions,\n  ListRunStepsOptions,\n  ListRunsOptions,\n  MessageFile,\n  RunStep,\n  RunStepDetails,\n  ToolCall,\n  UploadFileOptions,\n} from \"../models/index.js\";\nimport {\n  AssistantCreationOptions,\n  AssistantDeletionStatus,\n  AssistantFileDeletionStatus,\n  AssistantThread,\n  CreateAndRunThreadOptions,\n  CreateRunOptions,\n  FileDeletionStatus,\n  FileListResponse,\n  ListResponseOf,\n  MessageContent,\n  MessageRole,\n  ThreadDeletionStatus,\n  ThreadMessage,\n  ThreadRun,\n  ToolOutput,\n  UpdateAssistantOptions,\n} from \"../models/models.js\";\nimport {\n  CancelRunOptions,\n  CreateAssistantFileOptions,\n  CreateAssistantOptions,\n  CreateMessageOptions,\n  CreateRunRequestOptions,\n  CreateThreadAndRunOptions,\n  DeleteAssistantFileOptions,\n  DeleteAssistantOptions,\n  DeleteFileOptions,\n  DeleteThreadOptions,\n  GetAssistantFileOptions,\n  GetAssistantOptions,\n  GetFileOptions,\n  GetMessageFileOptions,\n  GetRunOptions,\n  GetRunStepOptions,\n  GetThreadOptions,\n  ListFilesOptions,\n  SubmitToolOutputsToRunOptions,\n  UpdateAssistantRequestOptions,\n  UpdateMessageOptions,\n  UpdateRunOptions,\n  UpdateThreadOptions,\n} from \"../models/options.js\";\nimport {\n  AssistantThreadCreationOptions,\n  CancelRun200Response,\n  AssistantsContext as Client,\n  CreateAssistant200Response,\n  CreateAssistantFile200Response,\n  CreateMessage200Response,\n  CreateRun200Response,\n  CreateThread200Response,\n  CreateThreadAndRun200Response,\n  DeleteAssistant200Response,\n  DeleteAssistantFile200Response,\n  DeleteFile200Response,\n  DeleteThread200Response,\n  GetAssistant200Response,\n  GetAssistantFile200Response,\n  GetFile200Response,\n  GetMessage200Response,\n  GetMessageFile200Response,\n  GetRun200Response,\n  GetRunStep200Response,\n  GetThread200Response,\n  ListAssistantFiles200Response,\n  ListAssistants200Response,\n  ListFiles200Response,\n  ListMessageFiles200Response,\n  ListMessages200Response,\n  ListRuns200Response,\n  RunStepDetailsOutput,\n  RunStepOutput,\n  SubmitToolOutputsToRun200Response,\n  UpdateAssistant200Response,\n  UpdateMessage200Response,\n  UpdateRun200Response,\n  UpdateThread200Response,\n  UploadFile200Response,\n} from \"../rest/index.js\";\nimport { MessageContentOutput } from \"../rest/outputModels.js\";\nimport { ListRunSteps200Response } from \"../rest/responses.js\";\nimport { camelCaseKeys, unixToDate } from \"./util.js\";\n\nexport function _createAssistantSend(\n  context: Client,\n  body: AssistantCreationOptions,\n  options: CreateAssistantOptions = { requestOptions: {} }\n): StreamableMethod<CreateAssistant200Response> {\n  return context.path(\"/assistants\").post({\n    ...operationOptionsToRequestParameters(options),\n    body: {\n      model: body[\"model\"],\n      name: body[\"name\"],\n      description: body[\"description\"],\n      instructions: body[\"instructions\"],\n      tools: body[\"tools\"],\n      file_ids: body[\"fileIds\"],\n      metadata: body[\"metadata\"],\n    },\n  });\n}\n\nexport async function _createAssistantDeserialize(\n  result: CreateAssistant200Response\n): Promise<Assistant> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    name: result.body[\"name\"],\n    description: result.body[\"description\"],\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Creates a new assistant. */\nexport async function createAssistant(\n  context: Client,\n  body: AssistantCreationOptions,\n  options: CreateAssistantOptions = { requestOptions: {} }\n): Promise<Assistant> {\n  const result = await _createAssistantSend(context, body, options);\n  return _createAssistantDeserialize(result);\n}\n\nexport function _listAssistantsSend(\n  context: Client,\n  options: ListAssistantsOptions = { requestOptions: {} }\n): StreamableMethod<ListAssistants200Response> {\n  return context.path(\"/assistants\").get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: {\n      limit: options?.limit,\n      order: options?.order,\n      after: options?.after,\n      before: options?.before,\n    },\n  });\n}\n\nexport function _getAssistantSend(\n  context: Client,\n  assistantId: string,\n  options: GetAssistantOptions = { requestOptions: {} }\n): StreamableMethod<GetAssistant200Response> {\n  return context\n    .path(\"/assistants/{assistantId}\", assistantId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _getAssistantDeserialize(\n  result: GetAssistant200Response\n): Promise<Assistant> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    name: result.body[\"name\"],\n    description: result.body[\"description\"],\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Retrieves an existing assistant. */\nexport async function getAssistant(\n  context: Client,\n  assistantId: string,\n  options: GetAssistantOptions = { requestOptions: {} }\n): Promise<Assistant> {\n  const result = await _getAssistantSend(context, assistantId, options);\n  return _getAssistantDeserialize(result);\n}\n\nexport function _updateAssistantSend(\n  context: Client,\n  assistantId: string,\n  body: UpdateAssistantOptions,\n  options: UpdateAssistantRequestOptions = { requestOptions: {} }\n): StreamableMethod<UpdateAssistant200Response> {\n  return context.path(\"/assistants/{assistantId}\", assistantId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: {\n      model: body[\"model\"],\n      name: body[\"name\"],\n      description: body[\"description\"],\n      instructions: body[\"instructions\"],\n      tools: body[\"tools\"],\n      file_ids: body[\"fileIds\"],\n      metadata: body[\"metadata\"],\n    },\n  });\n}\n\nexport async function _updateAssistantDeserialize(\n  result: UpdateAssistant200Response\n): Promise<Assistant> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    name: result.body[\"name\"],\n    description: result.body[\"description\"],\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Modifies an existing assistant. */\nexport async function updateAssistant(\n  context: Client,\n  assistantId: string,\n  body: UpdateAssistantOptions,\n  options: UpdateAssistantRequestOptions = { requestOptions: {} }\n): Promise<Assistant> {\n  const result = await _updateAssistantSend(context, assistantId, body, options);\n  return _updateAssistantDeserialize(result);\n}\n\nexport function _deleteAssistantSend(\n  context: Client,\n  assistantId: string,\n  options: DeleteAssistantOptions = { requestOptions: {} }\n): StreamableMethod<DeleteAssistant200Response> {\n  return context\n    .path(\"/assistants/{assistantId}\", assistantId)\n    .delete({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _deleteAssistantDeserialize(\n  result: DeleteAssistant200Response\n): Promise<AssistantDeletionStatus> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    deleted: result.body[\"deleted\"],\n  };\n}\n\n/** Deletes an assistant. */\nexport async function deleteAssistant(\n  context: Client,\n  assistantId: string,\n  options: DeleteAssistantOptions = { requestOptions: {} }\n): Promise<AssistantDeletionStatus> {\n  const result = await _deleteAssistantSend(context, assistantId, options);\n  return _deleteAssistantDeserialize(result);\n}\n\nexport function _createAssistantFileSend(\n  context: Client,\n  assistantId: string,\n  fileId: string,\n  options: CreateAssistantFileOptions = { requestOptions: {} }\n): StreamableMethod<CreateAssistantFile200Response> {\n  return context.path(\"/assistants/{assistantId}/files\", assistantId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: { file_id: fileId },\n  });\n}\n\nexport async function _createAssistantFileDeserialize(\n  result: CreateAssistantFile200Response\n): Promise<AssistantFile> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    assistantId: result.body[\"assistant_id\"],\n  };\n}\n\n/** Attaches a previously uploaded file to an assistant for use by tools that can read files. */\nexport async function createAssistantFile(\n  context: Client,\n  assistantId: string,\n  fileId: string,\n  options: CreateAssistantFileOptions = { requestOptions: {} }\n): Promise<AssistantFile> {\n  const result = await _createAssistantFileSend(context, assistantId, fileId, options);\n  return _createAssistantFileDeserialize(result);\n}\n\nexport function _listAssistantFilesSend(\n  context: Client,\n  assistantId: string,\n  options: ListAssistantFilesOptions = { requestOptions: {} }\n): StreamableMethod<ListAssistantFiles200Response> {\n  return context.path(\"/assistants/{assistantId}/files\", assistantId).get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: {\n      limit: options?.limit,\n      order: options?.order,\n      after: options?.after,\n      before: options?.before,\n    },\n  });\n}\n\nexport function _getAssistantFileSend(\n  context: Client,\n  assistantId: string,\n  fileId: string,\n  options: GetAssistantFileOptions = { requestOptions: {} }\n): StreamableMethod<GetAssistantFile200Response> {\n  return context\n    .path(\"/assistants/{assistantId}/files/{fileId}\", assistantId, fileId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _getAssistantFileDeserialize(\n  result: GetAssistantFile200Response\n): Promise<AssistantFile> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    assistantId: result.body[\"assistant_id\"],\n  };\n}\n\n/** Retrieves a file attached to an assistant. */\nexport async function getAssistantFile(\n  context: Client,\n  assistantId: string,\n  fileId: string,\n  options: GetAssistantFileOptions = { requestOptions: {} }\n): Promise<AssistantFile> {\n  const result = await _getAssistantFileSend(context, assistantId, fileId, options);\n  return _getAssistantFileDeserialize(result);\n}\n\nexport function _deleteAssistantFileSend(\n  context: Client,\n  assistantId: string,\n  fileId: string,\n  options: DeleteAssistantFileOptions = { requestOptions: {} }\n): StreamableMethod<DeleteAssistantFile200Response> {\n  return context\n    .path(\"/assistants/{assistantId}/files/{fileId}\", assistantId, fileId)\n    .delete({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _deleteAssistantFileDeserialize(\n  result: DeleteAssistantFile200Response\n): Promise<AssistantFileDeletionStatus> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    deleted: result.body[\"deleted\"],\n  };\n}\n\n/**\n * Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read\n * files.\n */\nexport async function deleteAssistantFile(\n  context: Client,\n  assistantId: string,\n  fileId: string,\n  options: DeleteAssistantFileOptions = { requestOptions: {} }\n): Promise<AssistantFileDeletionStatus> {\n  const result = await _deleteAssistantFileSend(context, assistantId, fileId, options);\n  return _deleteAssistantFileDeserialize(result);\n}\n\nexport async function _createThreadDeserialize(\n  result: CreateThread200Response\n): Promise<AssistantThread> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Creates a new thread. Threads contain messages and can be run by assistants. */\nexport async function createThread(\n  context: Client,\n  body: AssistantThreadCreationOptions,\n  options: CreateThreadOptions = { requestOptions: {} }\n): Promise<AssistantThread> {\n  const result = await _createThreadSend(context, body, options);\n  return _createThreadDeserialize(result);\n}\n\nexport function _getThreadSend(\n  context: Client,\n  threadId: string,\n  options: GetThreadOptions = { requestOptions: {} }\n): StreamableMethod<GetThread200Response> {\n  return context\n    .path(\"/threads/{threadId}\", threadId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _getThreadDeserialize(\n  result: GetThread200Response\n): Promise<AssistantThread> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Gets information about an existing thread. */\nexport async function getThread(\n  context: Client,\n  threadId: string,\n  options: GetThreadOptions = { requestOptions: {} }\n): Promise<AssistantThread> {\n  const result = await _getThreadSend(context, threadId, options);\n  return _getThreadDeserialize(result);\n}\n\nexport function _updateThreadSend(\n  context: Client,\n  threadId: string,\n  options: UpdateThreadOptions = { requestOptions: {} }\n): StreamableMethod<UpdateThread200Response> {\n  return context.path(\"/threads/{threadId}\", threadId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: { metadata: options?.metadata },\n  });\n}\n\nexport async function _updateThreadDeserialize(\n  result: UpdateThread200Response\n): Promise<AssistantThread> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Modifies an existing thread. */\nexport async function updateThread(\n  context: Client,\n  threadId: string,\n  options: UpdateThreadOptions = { requestOptions: {} }\n): Promise<AssistantThread> {\n  const result = await _updateThreadSend(context, threadId, options);\n  return _updateThreadDeserialize(result);\n}\n\nexport function _deleteThreadSend(\n  context: Client,\n  threadId: string,\n  options: DeleteThreadOptions = { requestOptions: {} }\n): StreamableMethod<DeleteThread200Response> {\n  return context\n    .path(\"/threads/{threadId}\", threadId)\n    .delete({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _deleteThreadDeserialize(\n  result: DeleteThread200Response\n): Promise<ThreadDeletionStatus> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    deleted: result.body[\"deleted\"],\n  };\n}\n\n/** Deletes an existing thread. */\nexport async function deleteThread(\n  context: Client,\n  threadId: string,\n  options: DeleteThreadOptions = { requestOptions: {} }\n): Promise<ThreadDeletionStatus> {\n  const result = await _deleteThreadSend(context, threadId, options);\n  return _deleteThreadDeserialize(result);\n}\n\nexport function _createMessageSend(\n  context: Client,\n  threadId: string,\n  role: MessageRole,\n  content: string,\n  options: CreateMessageOptions = { requestOptions: {} }\n): StreamableMethod<CreateMessage200Response> {\n  return context.path(\"/threads/{threadId}/messages\", threadId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: {\n      role: role,\n      content: content,\n      file_ids: options?.fileIds,\n      metadata: options?.metadata,\n    },\n  });\n}\n\n/** Creates a new message on a specified thread. */\nexport async function createMessage(\n  context: Client,\n  threadId: string,\n  role: MessageRole,\n  content: string,\n  options: CreateMessageOptions = { requestOptions: {} }\n): Promise<ThreadMessage> {\n  const result = await _createMessageSend(context, threadId, role, content, options);\n  return _createMessageDeserialize(result);\n}\n\nexport function _listMessagesSend(\n  context: Client,\n  threadId: string,\n  options: ListMessagesOptions = { requestOptions: {} }\n): StreamableMethod<ListMessages200Response> {\n  return context.path(\"/threads/{threadId}/messages\", threadId).get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: {\n      limit: options?.limit,\n      order: options?.order,\n      after: options?.after,\n      before: options?.before,\n    },\n  });\n}\n\nexport function _updateMessageSend(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  options: UpdateMessageOptions = { requestOptions: {} }\n): StreamableMethod<UpdateMessage200Response> {\n  return context.path(\"/threads/{threadId}/messages/{messageId}\", threadId, messageId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: { metadata: options?.metadata },\n  });\n}\n\n/** Modifies an existing message on an existing thread. */\nexport async function updateMessage(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  options: UpdateMessageOptions = { requestOptions: {} }\n): Promise<ThreadMessage> {\n  const result = await _updateMessageSend(context, threadId, messageId, options);\n  return _updateMessageDeserialize(result);\n}\n\nexport function _listMessageFilesSend(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  options: ListMessageFilesOptions = { requestOptions: {} }\n): StreamableMethod<ListMessageFiles200Response> {\n  return context.path(\"/threads/{threadId}/messages/{messageId}/files\", threadId, messageId).get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: {\n      limit: options?.limit,\n      order: options?.order,\n      after: options?.after,\n      before: options?.before,\n    },\n  });\n}\n\nexport function _getMessageFileSend(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  fileId: string,\n  options: GetMessageFileOptions = { requestOptions: {} }\n): StreamableMethod<GetMessageFile200Response> {\n  return context\n    .path(\"/threads/{threadId}/messages/{messageId}/files/{fileId}\", threadId, messageId, fileId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _getMessageFileDeserialize(\n  result: GetMessageFile200Response\n): Promise<MessageFile> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    messageId: result.body[\"message_id\"],\n  };\n}\n\n/** Gets information about a file attachment to a message within a thread. */\nexport async function getMessageFile(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  fileId: string,\n  options: GetMessageFileOptions = { requestOptions: {} }\n): Promise<MessageFile> {\n  const result = await _getMessageFileSend(context, threadId, messageId, fileId, options);\n  return _getMessageFileDeserialize(result);\n}\n\nexport function _createRunSend(\n  context: Client,\n  threadId: string,\n  createRunOptions: CreateRunOptions,\n  options: CreateRunRequestOptions = { requestOptions: {} }\n): StreamableMethod<CreateRun200Response> {\n  return context.path(\"/threads/{threadId}/runs\", threadId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: {\n      assistant_id: createRunOptions[\"assistantId\"],\n      model: createRunOptions[\"model\"],\n      instructions: createRunOptions[\"instructions\"],\n      additional_instructions: createRunOptions[\"additionalInstructions\"],\n      tools: createRunOptions[\"tools\"],\n      metadata: createRunOptions[\"metadata\"],\n    },\n  });\n}\n\n/** Creates a new run for an assistant thread. */\nexport async function createRun(\n  context: Client,\n  threadId: string,\n  createRunOptions: CreateRunOptions,\n  options: CreateRunRequestOptions = { requestOptions: {} }\n): Promise<ThreadRun> {\n  const result = await _createRunSend(context, threadId, createRunOptions, options);\n  return _createRunDeserialize(result);\n}\n\nexport function _listRunsSend(\n  context: Client,\n  threadId: string,\n  options: ListRunsOptions = { requestOptions: {} }\n): StreamableMethod<ListRuns200Response> {\n  return context.path(\"/threads/{threadId}/runs\", threadId).get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: {\n      limit: options?.limit,\n      order: options?.order,\n      after: options?.after,\n      before: options?.before,\n    },\n  });\n}\n\nexport function _getRunSend(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: GetRunOptions = { requestOptions: {} }\n): StreamableMethod<GetRun200Response> {\n  return context\n    .path(\"/threads/{threadId}/runs/{runId}\", threadId, runId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\n/** Gets an existing run from an existing thread. */\nexport async function getRun(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: GetRunOptions = { requestOptions: {} }\n): Promise<ThreadRun> {\n  const result = await _getRunSend(context, threadId, runId, options);\n  return _getRunDeserialize(result);\n}\n\nexport function _updateRunSend(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: UpdateRunOptions = { requestOptions: {} }\n): StreamableMethod<UpdateRun200Response> {\n  return context.path(\"/threads/{threadId}/runs/{runId}\", threadId, runId).post({\n    ...operationOptionsToRequestParameters(options),\n    body: { metadata: options?.metadata },\n  });\n}\n\nexport async function _updateRunDeserialize(result: UpdateRun200Response): Promise<ThreadRun> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    threadId: result.body[\"thread_id\"],\n    assistantId: result.body[\"assistant_id\"],\n    status: result.body[\"status\"],\n    requiredAction: result.body.required_action,\n    lastError: result.body.last_error,\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    expiresAt:\n      result.body[\"expires_at\"] === null ? null : unixToDate(Number(result.body[\"expires_at\"])),\n    startedAt:\n      result.body[\"started_at\"] === null ? null : unixToDate(Number(result.body[\"started_at\"])),\n    completedAt:\n      result.body[\"completed_at\"] === null ? null : unixToDate(Number(result.body[\"completed_at\"])),\n    cancelledAt:\n      result.body[\"cancelled_at\"] === null ? null : unixToDate(Number(result.body[\"cancelled_at\"])),\n    failedAt:\n      result.body[\"failed_at\"] === null ? null : unixToDate(Number(result.body[\"failed_at\"])),\n    metadata: result.body[\"metadata\"],\n  };\n}\n\n/** Modifies an existing thread run. */\nexport async function updateRun(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: UpdateRunOptions = { requestOptions: {} }\n): Promise<ThreadRun> {\n  const result = await _updateRunSend(context, threadId, runId, options);\n  return _updateRunDeserialize(result);\n}\n\nexport function _submitToolOutputsToRunSend(\n  context: Client,\n  threadId: string,\n  runId: string,\n  toolOutputs: ToolOutput[],\n  options: SubmitToolOutputsToRunOptions = { requestOptions: {} }\n): StreamableMethod<SubmitToolOutputsToRun200Response> {\n  return context\n    .path(\"/threads/{threadId}/runs/{runId}/submit_tool_outputs\", threadId, runId)\n    .post({\n      ...operationOptionsToRequestParameters(options),\n      body: {\n        tool_outputs: toolOutputs.map((p) => ({\n          tool_call_id: p[\"toolCallId\"],\n          output: p[\"output\"],\n        })),\n      },\n    });\n}\n\n/** Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. */\nexport async function submitToolOutputsToRun(\n  context: Client,\n  threadId: string,\n  runId: string,\n  toolOutputs: ToolOutput[],\n  options: SubmitToolOutputsToRunOptions = { requestOptions: {} }\n): Promise<ThreadRun> {\n  const result = await _submitToolOutputsToRunSend(context, threadId, runId, toolOutputs, options);\n  return _submitToolOutputsToRunDeserialize(result);\n}\n\nexport function _cancelRunSend(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: CancelRunOptions = { requestOptions: {} }\n): StreamableMethod<CancelRun200Response> {\n  return context\n    .path(\"/threads/{threadId}/runs/{runId}/cancel\", threadId, runId)\n    .post({ ...operationOptionsToRequestParameters(options) });\n}\n\n/** Cancels a run of an in progress thread. */\nexport async function cancelRun(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: CancelRunOptions = { requestOptions: {} }\n): Promise<ThreadRun> {\n  const result = await _cancelRunSend(context, threadId, runId, options);\n  return _cancelRunDeserialize(result);\n}\n\n/** Creates a new assistant thread and immediately starts a run using that new thread. */\nexport async function createThreadAndRun(\n  context: Client,\n  body: CreateAndRunThreadOptions,\n  options: CreateThreadAndRunOptions = { requestOptions: {} }\n): Promise<ThreadRun> {\n  const result = await _createThreadAndRunSend(context, body, options);\n  return _createThreadAndRunDeserialize(result);\n}\n\nexport function _getRunStepSend(\n  context: Client,\n  threadId: string,\n  runId: string,\n  stepId: string,\n  options: GetRunStepOptions = { requestOptions: {} }\n): StreamableMethod<GetRunStep200Response> {\n  return context\n    .path(\"/threads/{threadId}/runs/{runId}/steps/{stepId}\", threadId, runId, stepId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\n/** Gets a single run step from a thread run. */\nexport async function getRunStep(\n  context: Client,\n  threadId: string,\n  runId: string,\n  stepId: string,\n  options: GetRunStepOptions = { requestOptions: {} }\n): Promise<RunStep> {\n  const result = await _getRunStepSend(context, threadId, runId, stepId, options);\n  return _getRunStepDeserialize(result);\n}\n\nexport function _listRunStepsSend(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: ListRunStepsOptions = { requestOptions: {} }\n): StreamableMethod<ListRunSteps200Response> {\n  return context.path(\"/threads/{threadId}/runs/{runId}/steps\", threadId, runId).get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: {\n      limit: options?.limit,\n      order: options?.order,\n      after: options?.after,\n      before: options?.before,\n    },\n  });\n}\n\nexport function _listFilesSend(\n  context: Client,\n  options: ListFilesOptions = { requestOptions: {} }\n): StreamableMethod<ListFiles200Response> {\n  return context.path(\"/files\").get({\n    ...operationOptionsToRequestParameters(options),\n    queryParameters: { purpose: options?.purpose },\n  });\n}\n\nexport async function _listFilesDeserialize(\n  result: ListFiles200Response\n): Promise<FileListResponse> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: result.body[\"data\"].map((p) => ({\n      id: p[\"id\"],\n      bytes: p[\"bytes\"],\n      filename: p[\"filename\"],\n      createdAt: unixToDate(p[\"created_at\"]),\n      purpose: p[\"purpose\"],\n    })),\n  };\n}\n\n/** Gets a list of previously uploaded files. */\nexport async function listFiles(\n  context: Client,\n  options: ListFilesOptions = { requestOptions: {} }\n): Promise<FileListResponse> {\n  const result = await _listFilesSend(context, options);\n  return _listFilesDeserialize(result);\n}\n\n/** Uploads a file for use by other operations. */\nexport async function uploadFile(\n  context: Client,\n  file: Uint8Array,\n  purpose: FilePurpose,\n  options: UploadFileOptions = { requestOptions: {} }\n): Promise<InputFile> {\n  const result = await _uploadFileSend(context, file, purpose, options);\n  return _uploadFileDeserialize(result);\n}\n\nexport function _deleteFileSend(\n  context: Client,\n  fileId: string,\n  options: DeleteFileOptions = { requestOptions: {} }\n): StreamableMethod<DeleteFile200Response> {\n  return context\n    .path(\"/files/{fileId}\", fileId)\n    .delete({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _deleteFileDeserialize(\n  result: DeleteFile200Response\n): Promise<FileDeletionStatus> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    deleted: result.body[\"deleted\"],\n  };\n}\n\n/** Delete a previously uploaded file. */\nexport async function deleteFile(\n  context: Client,\n  fileId: string,\n  options: DeleteFileOptions = { requestOptions: {} }\n): Promise<FileDeletionStatus> {\n  const result = await _deleteFileSend(context, fileId, options);\n  return _deleteFileDeserialize(result);\n}\n\nexport function _getFileSend(\n  context: Client,\n  fileId: string,\n  options: GetFileOptions = { requestOptions: {} }\n): StreamableMethod<GetFile200Response> {\n  return context\n    .path(\"/files/{fileId}\", fileId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\n/** Returns information about a specific file. Does not retrieve file content. */\nexport async function getFile(\n  context: Client,\n  fileId: string,\n  options: GetFileOptions = { requestOptions: {} }\n): Promise<InputFile> {\n  const result = await _getFileSend(context, fileId, options);\n  return _getFileDeserialize(result);\n}\n\nexport async function _createRunDeserialize(result: CreateRun200Response): Promise<ThreadRun> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  const {\n    required_action,\n    last_error,\n    created_at,\n    expires_at,\n    started_at,\n    completed_at,\n    cancelled_at,\n    failed_at,\n    ...rest\n  } = result.body;\n  return {\n    ...camelCaseKeys(rest),\n    requiredAction: !required_action\n      ? undefined\n      : {\n          type: required_action?.[\"type\"],\n          submitToolOutputs: !required_action?.submit_tool_outputs?.[\"tool_calls\"]\n            ? undefined\n            : {\n                toolCalls: required_action?.submit_tool_outputs?.tool_calls?.map(\n                  parseRequiredToolCallOutput\n                ),\n              },\n        },\n    lastError: !last_error\n      ? undefined\n      : {\n          code: last_error?.[\"code\"],\n          message: last_error?.[\"message\"],\n        },\n    createdAt: unixToDate(created_at),\n    expiresAt: expires_at === null ? null : unixToDate(Number(expires_at)),\n    startedAt: started_at === null ? null : unixToDate(Number(started_at)),\n    completedAt: completed_at === null ? null : unixToDate(Number(completed_at)),\n    cancelledAt: cancelled_at === null ? null : unixToDate(Number(cancelled_at)),\n    failedAt: failed_at === null ? null : unixToDate(Number(failed_at)),\n  };\n}\n\nexport async function _listRunsDeserialize(\n  result: ListRuns200Response\n): Promise<ListResponseOf<ThreadRun>> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: result.body[\"data\"].map(\n      (p) =>\n        ({\n          id: p[\"id\"],\n          threadId: p[\"thread_id\"],\n          assistantId: p[\"assistant_id\"],\n          status: p[\"status\"],\n          requiredAction: !p.required_action ? undefined : { type: p.required_action?.[\"type\"] },\n          lastError: !p.last_error\n            ? undefined\n            : { code: p.last_error?.[\"code\"], message: p.last_error?.[\"message\"] },\n          model: p[\"model\"],\n          instructions: p[\"instructions\"],\n          tools: p[\"tools\"],\n          fileIds: p[\"file_ids\"],\n          metadata: p[\"metadata\"],\n          createdAt: unixToDate(p[\"created_at\"]),\n          expiresAt: p[\"expires_at\"] === null ? null : unixToDate(Number(p[\"expires_at\"])),\n          startedAt: p[\"started_at\"] === null ? null : unixToDate(Number(p[\"started_at\"])),\n          completedAt: p[\"completed_at\"] === null ? null : unixToDate(Number(p[\"completed_at\"])),\n          cancelledAt: p[\"cancelled_at\"] === null ? null : unixToDate(Number(p[\"cancelled_at\"])),\n          failedAt: p[\"failed_at\"] === null ? null : unixToDate(Number(p[\"failed_at\"])),\n        } as ThreadRun)\n    ),\n    firstId: result.body[\"first_id\"],\n    lastId: result.body[\"last_id\"],\n    hasMore: result.body[\"has_more\"],\n  };\n}\n\nexport function _createThreadAndRunSend(\n  context: Client,\n  body: CreateAndRunThreadOptions,\n  options: CreateThreadAndRunOptions = { requestOptions: {} }\n): StreamableMethod<CreateThreadAndRun200Response> {\n  return context.path(\"/threads/runs\").post({\n    ...operationOptionsToRequestParameters(options),\n    body: {\n      assistant_id: body[\"assistantId\"],\n      thread: !body.thread\n        ? undefined\n        : {\n            messages: !body.thread?.[\"messages\"]\n              ? body.thread?.[\"messages\"]\n              : body.thread?.[\"messages\"].map((p) => ({\n                  role: p[\"role\"],\n                  content: p[\"content\"],\n                })),\n            metadata: body.thread?.[\"metadata\"],\n          },\n      model: body[\"model\"],\n      instructions: body[\"instructions\"],\n      tools: body[\"tools\"],\n      metadata: body[\"metadata\"],\n    },\n  });\n}\n\n/** Returns a list of runs associated with an assistant thread. */\nexport async function listRuns(\n  context: Client,\n  threadId: string,\n  options: ListRunsOptions = { requestOptions: {} }\n): Promise<ListResponseOf<ThreadRun>> {\n  const result = await _listRunsSend(context, threadId, options);\n  return _listRunsDeserialize(result);\n}\n\nexport async function _getRunDeserialize(result: GetRun200Response): Promise<ThreadRun> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    threadId: result.body[\"thread_id\"],\n    assistantId: result.body[\"assistant_id\"],\n    status: result.body[\"status\"],\n    requiredAction: !result.body.required_action\n      ? undefined\n      : {\n          type: result.body.required_action?.[\"type\"],\n          submitToolOutputs: !result.body.required_action?.submit_tool_outputs?.[\"tool_calls\"]\n            ? undefined\n            : {\n                toolCalls: result.body.required_action?.submit_tool_outputs?.tool_calls?.map(\n                  parseRequiredToolCallOutput\n                ),\n              },\n        },\n    lastError: !result.body.last_error\n      ? undefined\n      : {\n          code: result.body.last_error?.[\"code\"],\n          message: result.body.last_error?.[\"message\"],\n        },\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    expiresAt:\n      result.body[\"expires_at\"] === null ? null : unixToDate(Number(result.body[\"expires_at\"])),\n    startedAt:\n      result.body[\"started_at\"] === null ? null : unixToDate(Number(result.body[\"started_at\"])),\n    completedAt:\n      result.body[\"completed_at\"] === null ? null : unixToDate(Number(result.body[\"completed_at\"])),\n    cancelledAt:\n      result.body[\"cancelled_at\"] === null ? null : unixToDate(Number(result.body[\"cancelled_at\"])),\n    failedAt:\n      result.body[\"failed_at\"] === null ? null : unixToDate(Number(result.body[\"failed_at\"])),\n  };\n}\n\nexport async function _submitToolOutputsToRunDeserialize(\n  result: SubmitToolOutputsToRun200Response\n): Promise<ThreadRun> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    threadId: result.body[\"thread_id\"],\n    assistantId: result.body[\"assistant_id\"],\n    status: result.body[\"status\"],\n    requiredAction: !result.body.required_action\n      ? undefined\n      : {\n          type: result.body.required_action?.[\"type\"],\n          submitToolOutputs: !result.body.required_action?.submit_tool_outputs?.[\"tool_calls\"]\n            ? undefined\n            : {\n                toolCalls: result.body.required_action?.submit_tool_outputs?.tool_calls?.map(\n                  parseRequiredToolCallOutput\n                ),\n              },\n        },\n    lastError: !result.body.last_error\n      ? undefined\n      : {\n          code: result.body.last_error?.[\"code\"],\n          message: result.body.last_error?.[\"message\"],\n        },\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    expiresAt:\n      result.body[\"expires_at\"] === null ? null : unixToDate(Number(result.body[\"expires_at\"])),\n    startedAt:\n      result.body[\"started_at\"] === null ? null : unixToDate(Number(result.body[\"started_at\"])),\n    completedAt:\n      result.body[\"completed_at\"] === null ? null : unixToDate(Number(result.body[\"completed_at\"])),\n    cancelledAt:\n      result.body[\"cancelled_at\"] === null ? null : unixToDate(Number(result.body[\"cancelled_at\"])),\n    failedAt:\n      result.body[\"failed_at\"] === null ? null : unixToDate(Number(result.body[\"failed_at\"])),\n  };\n}\n\nexport async function _createThreadAndRunDeserialize(\n  result: CreateThreadAndRun200Response\n): Promise<ThreadRun> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    threadId: result.body[\"thread_id\"],\n    assistantId: result.body[\"assistant_id\"],\n    status: result.body[\"status\"],\n    requiredAction: !result.body.required_action\n      ? undefined\n      : {\n          type: result.body.required_action?.[\"type\"],\n          submitToolOutputs: !result.body.required_action?.submit_tool_outputs?.[\"tool_calls\"]\n            ? undefined\n            : {\n                toolCalls: result.body.required_action?.submit_tool_outputs?.tool_calls?.map(\n                  parseRequiredToolCallOutput\n                ),\n              },\n        },\n    lastError: !result.body.last_error\n      ? undefined\n      : {\n          code: result.body.last_error?.[\"code\"],\n          message: result.body.last_error?.[\"message\"],\n        },\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    expiresAt:\n      result.body[\"expires_at\"] === null ? null : unixToDate(Number(result.body[\"expires_at\"])),\n    startedAt:\n      result.body[\"started_at\"] === null ? null : unixToDate(Number(result.body[\"started_at\"])),\n    completedAt:\n      result.body[\"completed_at\"] === null ? null : unixToDate(Number(result.body[\"completed_at\"])),\n    cancelledAt:\n      result.body[\"cancelled_at\"] === null ? null : unixToDate(Number(result.body[\"cancelled_at\"])),\n    failedAt:\n      result.body[\"failed_at\"] === null ? null : unixToDate(Number(result.body[\"failed_at\"])),\n  };\n}\n\nexport async function _cancelRunDeserialize(result: CancelRun200Response): Promise<ThreadRun> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    threadId: result.body[\"thread_id\"],\n    assistantId: result.body[\"assistant_id\"],\n    status: result.body[\"status\"],\n    requiredAction: !result.body.required_action\n      ? undefined\n      : {\n          type: result.body.required_action?.[\"type\"],\n          submitToolOutputs: !result.body.required_action?.submit_tool_outputs?.[\"tool_calls\"]\n            ? undefined\n            : {\n                toolCalls: result.body.required_action?.submit_tool_outputs?.tool_calls?.map(\n                  parseRequiredToolCallOutput\n                ),\n              },\n        },\n    lastError: !result.body.last_error\n      ? undefined\n      : {\n          code: result.body.last_error[\"code\"],\n          message: result.body.last_error[\"message\"],\n        },\n    model: result.body[\"model\"],\n    instructions: result.body[\"instructions\"],\n    tools: result.body[\"tools\"],\n    fileIds: result.body[\"file_ids\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    expiresAt:\n      result.body[\"expires_at\"] === null ? null : unixToDate(Number(result.body[\"expires_at\"])),\n    startedAt:\n      result.body[\"started_at\"] === null ? null : unixToDate(Number(result.body[\"started_at\"])),\n    completedAt:\n      result.body[\"completed_at\"] === null ? null : unixToDate(Number(result.body[\"completed_at\"])),\n    cancelledAt:\n      result.body[\"cancelled_at\"] === null ? null : unixToDate(Number(result.body[\"cancelled_at\"])),\n    failedAt:\n      result.body[\"failed_at\"] === null ? null : unixToDate(Number(result.body[\"failed_at\"])),\n    metadata: result.body[\"metadata\"],\n  };\n}\n\nexport async function listMessages(\n  context: Client,\n  threadId: string,\n  options: ListMessagesOptions = { requestOptions: {} }\n): Promise<ListResponseOf<ThreadMessage>> {\n  const result = await _listMessagesSend(context, threadId, options);\n  return _listMessagesDeserialize(result);\n}\n\nexport function _getMessageSend(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  options: GetMessageOptions = { requestOptions: {} }\n): StreamableMethod<GetMessage200Response> {\n  return context\n    .path(\"/threads/{threadId}/messages/{messageId}\", threadId, messageId)\n    .get({ ...operationOptionsToRequestParameters(options) });\n}\n\n/** Retrieves a message associated with a thread. */\nexport async function getMessage(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  options: GetMessageOptions = { requestOptions: {} }\n): Promise<ThreadMessage> {\n  const result = await _getMessageSend(context, threadId, messageId, options);\n  return _getMessageDeserialize(result);\n}\n\nexport async function _listMessageFilesDeserialize(\n  result: ListMessageFiles200Response\n): Promise<ListResponseOf<MessageFile>> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: result.body[\"data\"].map((p) => ({\n      id: p[\"id\"],\n      createdAt: unixToDate(p[\"created_at\"]),\n      messageId: p[\"message_id\"],\n    })),\n    firstId: result.body[\"first_id\"],\n    lastId: result.body[\"last_id\"],\n    hasMore: result.body[\"has_more\"],\n  };\n}\n\n/** Returns a list of files associated with a message from a thread. */\nexport async function listMessageFiles(\n  context: Client,\n  threadId: string,\n  messageId: string,\n  options: ListMessageFilesOptions = { requestOptions: {} }\n): Promise<ListResponseOf<MessageFile>> {\n  const result = await _listMessageFilesSend(context, threadId, messageId, options);\n  return _listMessageFilesDeserialize(result);\n}\n\nexport async function _createMessageDeserialize(\n  result: CreateMessage200Response\n): Promise<ThreadMessage> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    threadId: result.body[\"thread_id\"],\n    role: result.body[\"role\"],\n    content: (result.body[\"content\"] ?? []).map(parseMessageContentOutput),\n    assistantId: result.body[\"assistant_id\"],\n    runId: result.body[\"run_id\"],\n    fileIds: result.body[\"file_ids\"],\n    metadata: result.body[\"metadata\"],\n  };\n}\n\nexport async function _listMessagesDeserialize(\n  result: ListMessages200Response\n): Promise<ListResponseOf<ThreadMessage>> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: (result.body[\"data\"] ?? []).map((p) => ({\n      id: p[\"id\"],\n      createdAt: unixToDate(p[\"created_at\"]),\n      threadId: p[\"thread_id\"],\n      role: p[\"role\"],\n      content: (p[\"content\"] ?? []).map(parseMessageContentOutput),\n      assistantId: p[\"assistant_id\"],\n      runId: p[\"run_id\"],\n      metadata: p[\"metadata\"],\n    })),\n    firstId: result.body[\"first_id\"],\n    lastId: result.body[\"last_id\"],\n    hasMore: result.body[\"has_more\"],\n  };\n}\n\nexport async function _getMessageDeserialize(\n  result: GetMessage200Response\n): Promise<ThreadMessage> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    threadId: result.body[\"thread_id\"],\n    role: result.body[\"role\"],\n    content: (result.body[\"content\"] ?? []).map(parseMessageContentOutput),\n    assistantId: result.body[\"assistant_id\"],\n    runId: result.body[\"run_id\"],\n    metadata: result.body[\"metadata\"],\n  };\n}\n\nexport async function _updateMessageDeserialize(\n  result: UpdateMessage200Response\n): Promise<ThreadMessage> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    threadId: result.body[\"thread_id\"],\n    role: result.body[\"role\"],\n    content: (result.body[\"content\"] ?? []).map(parseMessageContentOutput),\n    assistantId: result.body[\"assistant_id\"],\n    runId: result.body[\"run_id\"],\n    metadata: result.body[\"metadata\"],\n  };\n}\n\nexport async function _listRunStepsDeserialize(\n  result: ListRunSteps200Response\n): Promise<ListResponseOf<RunStep>> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: result.body[\"data\"].map(parseRunStepOutput),\n    firstId: result.body[\"first_id\"],\n    lastId: result.body[\"last_id\"],\n    hasMore: result.body[\"has_more\"],\n  };\n}\n\nexport async function _getRunStepDeserialize(result: GetRunStep200Response): Promise<RunStep> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  const {\n    step_details,\n    last_error,\n    created_at,\n    expired_at,\n    completed_at,\n    cancelled_at,\n    failed_at,\n    ...rest\n  } = result.body;\n  return {\n    ...camelCaseKeys(rest),\n    stepDetails: parseRunStepDetails(step_details),\n    lastError:\n      last_error === null\n        ? null\n        : {\n            code: last_error[\"code\"],\n            message: last_error[\"message\"],\n          },\n    createdAt: unixToDate(created_at),\n    expiredAt: expired_at === null ? null : unixToDate(Number(expired_at)),\n    completedAt: completed_at === null ? null : unixToDate(Number(completed_at)),\n    cancelledAt: cancelled_at === null ? null : unixToDate(Number(cancelled_at)),\n    failedAt: failed_at === null ? null : unixToDate(Number(failed_at)),\n  };\n}\n\n/** Returns a list of run steps associated an assistant thread run. */\nexport async function listRunSteps(\n  context: Client,\n  threadId: string,\n  runId: string,\n  options: ListRunStepsOptions = { requestOptions: {} }\n): Promise<ListResponseOf<RunStep>> {\n  const result = await _listRunStepsSend(context, threadId, runId, options);\n  return _listRunStepsDeserialize(result);\n}\n\nexport async function _listAssistantsDeserialize(\n  result: ListAssistants200Response\n): Promise<ListResponseOf<Assistant>> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: result.body[\"data\"].map((p) => ({\n      id: p[\"id\"],\n      createdAt: unixToDate(p[\"created_at\"]),\n      name: p[\"name\"],\n      description: p[\"description\"],\n      model: p[\"model\"],\n      instructions: p[\"instructions\"],\n      tools: p[\"tools\"],\n      fileIds: p[\"file_ids\"],\n      metadata: p[\"metadata\"],\n    })),\n    firstId: result.body[\"first_id\"],\n    lastId: result.body[\"last_id\"],\n    hasMore: result.body[\"has_more\"],\n  };\n}\n\n/** Returns a list of assistants. */\nexport async function listAssistants(\n  context: Client,\n  options: ListAssistantsOptions = { requestOptions: {} }\n): Promise<ListResponseOf<Assistant>> {\n  const result = await _listAssistantsSend(context, options);\n  return _listAssistantsDeserialize(result);\n}\n\nexport async function _listAssistantFilesDeserialize(\n  result: ListAssistantFiles200Response\n): Promise<ListResponseOf<AssistantFile>> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    data: result.body[\"data\"].map((p) => ({\n      id: p[\"id\"],\n      createdAt: unixToDate(p[\"created_at\"]),\n      assistantId: p[\"assistant_id\"],\n    })),\n    firstId: result.body[\"first_id\"],\n    lastId: result.body[\"last_id\"],\n    hasMore: result.body[\"has_more\"],\n  };\n}\n\n/** Returns a list of assistant files. */\nexport async function listAssistantFiles(\n  context: Client,\n  assistantId: string,\n  options: ListAssistantFilesOptions = { requestOptions: {} }\n): Promise<ListResponseOf<AssistantFile>> {\n  const result = await _listAssistantFilesSend(context, assistantId, options);\n  return _listAssistantFilesDeserialize(result);\n}\n\nexport function _createThreadSend(\n  context: Client,\n  body: AssistantThreadCreationOptions,\n  options: CreateThreadOptions = { requestOptions: {} }\n): StreamableMethod<CreateThread200Response> {\n  return context.path(\"/threads\").post({\n    ...operationOptionsToRequestParameters(options),\n    body: {\n      messages: (body[\"messages\"] ?? []).map((p) => ({\n        role: p[\"role\"],\n        content: p[\"content\"],\n      })),\n      metadata: body[\"metadata\"],\n    },\n  });\n}\n\nexport function _uploadFileSend(\n  context: Client,\n  file: Uint8Array,\n  purpose: FilePurpose,\n  options: UploadFileOptions = { requestOptions: {} }\n): StreamableMethod<UploadFile200Response> {\n  return context.path(\"/files\").post({\n    ...operationOptionsToRequestParameters(options),\n    contentType: (options.contentType as any) ?? \"multipart/form-data\",\n    body: {\n      file: createFile(file, options?.filename || \"unknown.txt\"),\n      purpose: purpose,\n    },\n  });\n}\n\nexport async function _uploadFileDeserialize(result: UploadFile200Response): Promise<InputFile> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    bytes: result.body[\"bytes\"],\n    filename: result.body[\"filename\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    purpose: result.body[\"purpose\"],\n  };\n}\n\nexport async function _getFileDeserialize(result: GetFile200Response): Promise<InputFile> {\n  if (result.status !== \"200\") {\n    throw createRestError(result);\n  }\n\n  return {\n    id: result.body[\"id\"],\n    bytes: result.body[\"bytes\"],\n    filename: result.body[\"filename\"],\n    createdAt: unixToDate(result.body[\"created_at\"]),\n    purpose: result.body[\"purpose\"],\n  };\n}\n\nfunction parseMessageContentOutput(messageContentOutput: MessageContentOutput): MessageContent {\n  const messageContent = { type: \"\", text: {}, imageFile: {} };\n  switch (messageContentOutput.type) {\n    case \"image_file\":\n      messageContent.type = \"image_file\";\n      messageContent.imageFile = messageContentOutput.image_file;\n      break;\n    case \"text\":\n      messageContent.type = \"text\";\n      messageContent.text = messageContentOutput.text;\n      break;\n  }\n\n  return messageContent as unknown as MessageContent;\n}\n\nfunction parseRunStepDetails(runStepDetailsOutput: RunStepDetailsOutput): RunStepDetails {\n  const { type } = runStepDetailsOutput;\n  const details = { type, messageCreation: {}, toolCalls: [] as ToolCall[] };\n  switch (type) {\n    case \"message_creation\":\n      details.messageCreation = runStepDetailsOutput[\"message_creation\"];\n      break;\n    case \"tool_calls\":\n      details.toolCalls = runStepDetailsOutput[\"tool_calls\"].map(parseToolCallOutput);\n      break;\n  }\n\n  return details as RunStepDetails;\n}\n\nfunction parseRunStepOutput(runStepOutput: RunStepOutput): RunStep {\n  const {\n    step_details,\n    last_error,\n    created_at,\n    expired_at,\n    completed_at,\n    cancelled_at,\n    failed_at,\n    ...rest\n  } = runStepOutput;\n  return {\n    ...camelCaseKeys(rest),\n    stepDetails: parseRunStepDetails(step_details),\n    lastError:\n      last_error === null ? null : { code: last_error[\"code\"], message: last_error[\"message\"] },\n    createdAt: unixToDate(created_at),\n    expiredAt: expired_at === null ? null : unixToDate(Number(expired_at)),\n    completedAt: completed_at === null ? null : unixToDate(Number(completed_at)),\n    cancelledAt: cancelled_at === null ? null : unixToDate(Number(cancelled_at)),\n    failedAt: failed_at === null ? null : unixToDate(Number(failed_at)),\n  } as RunStep;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\nexport function nonAzurePolicy(): PipelinePolicy {\n  const policy: PipelinePolicy = {\n    name: \"openAiEndpoint\",\n    sendRequest: (request, next) => {\n      const obj = new URL(request.url);\n      request.headers.set(\"OpenAI-Beta\", \"assistants=v1\");\n      const parts = obj.pathname.split(\"/\");\n      switch (parts[parts.length - 1]) {\n        case \"threads\":\n          obj.pathname = `/v1/threads`;\n          break;\n        case \"assistants\":\n          obj.pathname = `/v1/assistants`;\n          break;\n      }\n      obj.searchParams.delete(\"api-version\");\n      request.url = obj.toString();\n      return next(request);\n    },\n  };\n  return policy;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport { KeyCredential, TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { Pipeline } from \"@azure/core-rest-pipeline\";\nimport { createAssistants } from \"./api/AssistantsContext.js\";\nimport {\n  cancelRun,\n  createAssistant,\n  createAssistantFile,\n  createMessage,\n  createRun,\n  createThread,\n  createThreadAndRun,\n  deleteAssistant,\n  deleteAssistantFile,\n  deleteFile,\n  deleteThread,\n  getAssistant,\n  getAssistantFile,\n  getFile,\n  getMessage,\n  getMessageFile,\n  getRun,\n  getRunStep,\n  getThread,\n  listAssistantFiles,\n  listAssistants,\n  listFiles,\n  listMessageFiles,\n  listMessages,\n  listRunSteps,\n  listRuns,\n  submitToolOutputsToRun,\n  updateAssistant,\n  updateMessage,\n  updateRun,\n  updateThread,\n  uploadFile,\n} from \"./api/index.js\";\nimport { nonAzurePolicy } from \"./api/policies/nonAzure.js\";\nimport { AssistantsClientOptions } from \"./index.js\";\nimport {\n  Assistant,\n  AssistantCreationOptions,\n  AssistantDeletionStatus,\n  AssistantFile,\n  AssistantFileDeletionStatus,\n  AssistantThread,\n  AssistantThreadCreationOptions,\n  CreateAndRunThreadOptions,\n  CreateRunOptions,\n  FileDeletionStatus,\n  FileListResponse,\n  FilePurpose,\n  InputFile,\n  MessageFile,\n  MessageRole,\n  ListResponseOf,\n  RunStep,\n  ThreadDeletionStatus,\n  ThreadMessage,\n  ThreadRun,\n  ToolOutput,\n  UpdateAssistantOptions,\n} from \"./models/models.js\";\nimport {\n  CancelRunOptions,\n  CreateAssistantFileOptions,\n  CreateAssistantOptions,\n  CreateMessageOptions,\n  CreateRunRequestOptions,\n  CreateThreadAndRunOptions,\n  CreateThreadOptions,\n  DeleteAssistantFileOptions,\n  DeleteAssistantOptions,\n  DeleteFileOptions,\n  DeleteThreadOptions,\n  GetAssistantFileOptions,\n  GetAssistantOptions,\n  GetFileOptions,\n  GetMessageFileOptions,\n  GetMessageOptions,\n  GetRunOptions,\n  GetRunStepOptions,\n  GetThreadOptions,\n  ListAssistantFilesOptions,\n  ListAssistantsOptions,\n  ListFilesOptions,\n  ListMessageFilesOptions,\n  ListMessagesOptions,\n  ListRunStepsOptions,\n  ListRunsOptions,\n  SubmitToolOutputsToRunOptions,\n  UpdateAssistantRequestOptions,\n  UpdateMessageOptions,\n  UpdateRunOptions,\n  UpdateThreadOptions,\n  UploadFileOptions,\n} from \"./models/options.js\";\nimport { AssistantsContext } from \"./rest/index.js\";\n\nexport { AssistantsClientOptions } from \"./api/AssistantsContext.js\";\n\n/**\n * Client handling assistant-related operations.\n * @deprecated The Azure OpenAI Assistants client library for JavaScript beta will be retired on January 14th, 2025. Please migrate to the stable OpenAI SDK for JavaScript using the [migration guide](https://aka.ms/oai/js/asst/migrate) before that date.\n */\nexport class AssistantsClient {\n  /** The pipeline used by this client to make requests */\n  public readonly pipeline: Pipeline;\n  private _client: AssistantsContext;\n  private _isAzure = false;\n\n  /**\n   * Initializes an instance of AssistantsClient for use with an OpenAI resource.\n   * @param endpoint - The URI for an Azure OpenAI resource, including protocol and hostname.\n   *                 For example: https://my-resource.openai.azure.com.\n   * @param credential - A key credential used to authenticate to an Azure OpenAI resource.\n   * @param options - The options for configuring the client.\n   * @remarks\n   *   This constructor initializes an AssistantsClient object that can only be used with Azure OpenAI resources.\n   *   To use AssistantsClient with a non-Azure OpenAI inference endpoint, use a constructor that accepts a non-Azure OpenAI API key instead.\n   */\n  constructor(endpoint: string, credential: KeyCredential, options?: AssistantsClientOptions);\n  /**\n   * Initializes an instance of AssistantsClient for use with an Azure OpenAI resource.\n   * @param endpoint - The URI for an Azure OpenAI resource, including protocol and hostname.\n   *                 For example: https://my-resource.openai.azure.com.\n   * @param credential - A token credential used to authenticate with an Azure OpenAI resource.\n   * @param options - The options for configuring the client.\n   */\n  constructor(endpoint: string, credential: TokenCredential, options?: AssistantsClientOptions);\n  /**\n   * Initializes an instance of AssistantsClient for use with the non-Azure OpenAI endpoint.\n   * @param openAiApiKey - The API key to use when connecting to the non-Azure OpenAI endpoint.\n   * @param options - The options for configuring the client.\n   * @remarks\n   *   AssistantsClient objects initialized with this constructor can only be used with the non-Azure OpenAI inference endpoint.\n   *   To use AssistantsClient with an Azure OpenAI resource, use a constructor that accepts a resource URI and Azure authentication credential instead.\n   */\n  constructor(openAiApiKey: KeyCredential, options?: AssistantsClientOptions);\n  constructor(\n    endpointOrOpenAiKey: string | KeyCredential,\n    credOrOptions: KeyCredential | TokenCredential | AssistantsClientOptions = {},\n    options: AssistantsClientOptions = {}\n  ) {\n    let opts: AssistantsClientOptions;\n    let endpoint: string;\n    let cred: KeyCredential | TokenCredential;\n    if (isCred(credOrOptions)) {\n      endpoint = endpointOrOpenAiKey as string;\n      cred = credOrOptions;\n      opts = options;\n      this._isAzure = true;\n    } else {\n      endpoint = createOpenAIEndpoint(1);\n      cred = endpointOrOpenAiKey as KeyCredential;\n      const { credentials, ...restOpts } = credOrOptions;\n      opts = {\n        baseUrl: endpoint,\n        credentials: {\n          apiKeyHeaderName: credentials?.apiKeyHeaderName ?? \"Authorization\",\n          scopes: credentials?.scopes,\n        },\n        ...restOpts,\n      };\n    }\n\n    this._client = createAssistants(endpoint, cred, {\n      ...opts,\n      ...(this._isAzure\n        ? {}\n        : {\n            additionalPolicies: [\n              ...(opts.additionalPolicies ?? []),\n              {\n                position: \"perCall\",\n                policy: nonAzurePolicy(),\n              },\n            ],\n          }),\n    });\n    this.pipeline = this._client.pipeline;\n  }\n\n  /** Creates a new assistant. */\n  createAssistant(\n    body: AssistantCreationOptions,\n    options: CreateAssistantOptions = { requestOptions: {} }\n  ): Promise<Assistant> {\n    return createAssistant(this._client, body, options);\n  }\n\n  /** Gets a list of assistants that were previously created. */\n  listAssistants(\n    options: ListAssistantsOptions = { requestOptions: {} }\n  ): Promise<ListResponseOf<Assistant>> {\n    return listAssistants(this._client, options);\n  }\n\n  /** Retrieves an existing assistant. */\n  getAssistant(\n    assistantId: string,\n    options: GetAssistantOptions = { requestOptions: {} }\n  ): Promise<Assistant> {\n    return getAssistant(this._client, assistantId, options);\n  }\n\n  /** Modifies an existing assistant. */\n  updateAssistant(\n    assistantId: string,\n    body: UpdateAssistantOptions,\n    options: UpdateAssistantRequestOptions = { requestOptions: {} }\n  ): Promise<Assistant> {\n    return updateAssistant(this._client, assistantId, body, options);\n  }\n\n  /** Deletes an assistant. */\n  deleteAssistant(\n    assistantId: string,\n    options: DeleteAssistantOptions = { requestOptions: {} }\n  ): Promise<AssistantDeletionStatus> {\n    return deleteAssistant(this._client, assistantId, options);\n  }\n\n  /** Attaches a previously uploaded file to an assistant for use by tools that can read files. */\n  createAssistantFile(\n    assistantId: string,\n    fileId: string,\n    options: CreateAssistantFileOptions = { requestOptions: {} }\n  ): Promise<AssistantFile> {\n    return createAssistantFile(this._client, assistantId, fileId, options);\n  }\n\n  /** Gets a list of files attached to a specific assistant, as used by tools that can read files. */\n  listAssistantFiles(\n    assistantId: string,\n    options: ListAssistantFilesOptions = { requestOptions: {} }\n  ): Promise<ListResponseOf<AssistantFile>> {\n    return listAssistantFiles(this._client, assistantId, options);\n  }\n\n  /** Retrieves a file attached to an assistant. */\n  getAssistantFile(\n    assistantId: string,\n    fileId: string,\n    options: GetAssistantFileOptions = { requestOptions: {} }\n  ): Promise<AssistantFile> {\n    return getAssistantFile(this._client, assistantId, fileId, options);\n  }\n\n  /**\n   * Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read\n   * files.\n   */\n  deleteAssistantFile(\n    assistantId: string,\n    fileId: string,\n    options: DeleteAssistantFileOptions = { requestOptions: {} }\n  ): Promise<AssistantFileDeletionStatus> {\n    return deleteAssistantFile(this._client, assistantId, fileId, options);\n  }\n\n  /** Creates a new thread. Threads contain messages and can be run by assistants. */\n  createThread(\n    body: AssistantThreadCreationOptions = {},\n    options: CreateThreadOptions = { requestOptions: {} }\n  ): Promise<AssistantThread> {\n    return createThread(this._client, body, options);\n  }\n\n  /** Gets information about an existing thread. */\n  getThread(\n    threadId: string,\n    options: GetThreadOptions = { requestOptions: {} }\n  ): Promise<AssistantThread> {\n    return getThread(this._client, threadId, options);\n  }\n\n  /** Modifies an existing thread. */\n  updateThread(\n    threadId: string,\n    options: UpdateThreadOptions = { requestOptions: {} }\n  ): Promise<AssistantThread> {\n    return updateThread(this._client, threadId, options);\n  }\n\n  /** Deletes an existing thread. */\n  deleteThread(\n    threadId: string,\n    options: DeleteThreadOptions = { requestOptions: {} }\n  ): Promise<ThreadDeletionStatus> {\n    return deleteThread(this._client, threadId, options);\n  }\n\n  /** Creates a new message on a specified thread. */\n  createMessage(\n    threadId: string,\n    role: MessageRole,\n    content: string,\n    options: CreateMessageOptions = { requestOptions: {} }\n  ): Promise<ThreadMessage> {\n    return createMessage(this._client, threadId, role, content, options);\n  }\n\n  /** Gets a list of messages that exist on a thread. */\n  listMessages(\n    threadId: string,\n    options: ListMessagesOptions = { requestOptions: {} }\n  ): Promise<ListResponseOf<ThreadMessage>> {\n    return listMessages(this._client, threadId, options);\n  }\n\n  /** Gets an existing message from an existing thread. */\n  getMessage(\n    threadId: string,\n    messageId: string,\n    options: GetMessageOptions = { requestOptions: {} }\n  ): Promise<ThreadMessage> {\n    return getMessage(this._client, threadId, messageId, options);\n  }\n\n  /** Modifies an existing message on an existing thread. */\n  updateMessage(\n    threadId: string,\n    messageId: string,\n    options: UpdateMessageOptions = { requestOptions: {} }\n  ): Promise<ThreadMessage> {\n    return updateMessage(this._client, threadId, messageId, options);\n  }\n\n  /** Gets a list of previously uploaded files associated with a message from a thread. */\n  listMessageFiles(\n    threadId: string,\n    messageId: string,\n    options: ListMessageFilesOptions = { requestOptions: {} }\n  ): Promise<ListResponseOf<MessageFile>> {\n    return listMessageFiles(this._client, threadId, messageId, options);\n  }\n\n  /** Gets information about a file attachment to a message within a thread. */\n  getMessageFile(\n    threadId: string,\n    messageId: string,\n    fileId: string,\n    options: GetMessageFileOptions = { requestOptions: {} }\n  ): Promise<MessageFile> {\n    return getMessageFile(this._client, threadId, messageId, fileId, options);\n  }\n\n  /** Creates a new run for an assistant thread. */\n  createRun(\n    threadId: string,\n    createRunOptions: CreateRunOptions,\n    options: CreateRunRequestOptions = { requestOptions: {} }\n  ): Promise<ThreadRun> {\n    return createRun(this._client, threadId, createRunOptions, options);\n  }\n\n  /** Gets a list of runs for a specified thread. */\n  listRuns(\n    threadId: string,\n    options: ListRunsOptions = { requestOptions: {} }\n  ): Promise<ListResponseOf<ThreadRun>> {\n    return listRuns(this._client, threadId, options);\n  }\n\n  /** Gets an existing run from an existing thread. */\n  getRun(\n    threadId: string,\n    runId: string,\n    options: GetRunOptions = { requestOptions: {} }\n  ): Promise<ThreadRun> {\n    return getRun(this._client, threadId, runId, options);\n  }\n\n  /** Modifies an existing thread run. */\n  updateRun(\n    threadId: string,\n    runId: string,\n    options: UpdateRunOptions = { requestOptions: {} }\n  ): Promise<ThreadRun> {\n    return updateRun(this._client, threadId, runId, options);\n  }\n\n  /** Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. */\n  submitToolOutputsToRun(\n    threadId: string,\n    runId: string,\n    toolOutputs: ToolOutput[],\n    options: SubmitToolOutputsToRunOptions = { requestOptions: {} }\n  ): Promise<ThreadRun> {\n    return submitToolOutputsToRun(this._client, threadId, runId, toolOutputs, options);\n  }\n\n  /** Cancels a run of an in progress thread. */\n  cancelRun(\n    threadId: string,\n    runId: string,\n    options: CancelRunOptions = { requestOptions: {} }\n  ): Promise<ThreadRun> {\n    return cancelRun(this._client, threadId, runId, options);\n  }\n\n  /** Creates a new assistant thread and immediately starts a run using that new thread. */\n  createThreadAndRun(\n    body: CreateAndRunThreadOptions,\n    options: CreateThreadAndRunOptions = { requestOptions: {} }\n  ): Promise<ThreadRun> {\n    return createThreadAndRun(this._client, body, options);\n  }\n\n  /** Gets a single run step from a thread run. */\n  getRunStep(\n    threadId: string,\n    runId: string,\n    stepId: string,\n    options: GetRunStepOptions = { requestOptions: {} }\n  ): Promise<RunStep> {\n    return getRunStep(this._client, threadId, runId, stepId, options);\n  }\n\n  /** Gets a list of run steps from a thread run. */\n  listRunSteps(\n    threadId: string,\n    runId: string,\n    options: ListRunStepsOptions = { requestOptions: {} }\n  ): Promise<ListResponseOf<RunStep>> {\n    return listRunSteps(this._client, threadId, runId, options);\n  }\n\n  /** Gets a list of previously uploaded files. */\n  listFiles(options: ListFilesOptions = { requestOptions: {} }): Promise<FileListResponse> {\n    return listFiles(this._client, options);\n  }\n\n  /** Uploads a file for use by other operations. */\n  uploadFile(\n    file: Uint8Array,\n    purpose: FilePurpose,\n    options: UploadFileOptions = { requestOptions: {} }\n  ): Promise<InputFile> {\n    return uploadFile(this._client, file, purpose, options);\n  }\n\n  /** Delete a previously uploaded file. */\n  deleteFile(\n    fileId: string,\n    options: DeleteFileOptions = { requestOptions: {} }\n  ): Promise<FileDeletionStatus> {\n    return deleteFile(this._client, fileId, options);\n  }\n\n  /** Returns information about a specific file. Does not retrieve file content. */\n  getFile(fileId: string, options: GetFileOptions = { requestOptions: {} }): Promise<InputFile> {\n    return getFile(this._client, fileId, options);\n  }\n}\n\nfunction createOpenAIEndpoint(version: number): string {\n  return `https://api.openai.com/v${version}`;\n}\n\nfunction isCred(cred: Record<string, any>): cred is TokenCredential | KeyCredential {\n  return isTokenCredential(cred) || cred.key !== undefined;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!\n *\n * Any changes you make here may be lost.\n *\n * If you need to make changes, please do so in the original source file, \\{project-root\\}/sources/custom\n */\n\nimport { KeyCredential } from \"@azure/core-auth\";\n\n/**\n * The OpenAIKeyCredential class represents an OpenAI API key\n * and is used to authenticate into an Assistants client for\n * an OpenAI endpoint.\n */\nexport class OpenAIKeyCredential implements KeyCredential {\n  private _key: string;\n\n  /**\n   * Create an instance of an AzureKeyCredential for use\n   * with a service client.\n   *\n   * @param key - The initial value of the key to use in authentication\n   */\n  constructor(key: string) {\n    if (!key) {\n      throw new Error(\"key must be a non-empty string\");\n    }\n\n    this._key = createKey(key);\n  }\n\n  /**\n   * The value of the key to be used in authentication\n   */\n  public get key(): string {\n    return this._key;\n  }\n\n  /**\n   * Change the value of the key.\n   *\n   * Updates will take effect upon the next request after\n   * updating the key value.\n   *\n   * @param newKey - The new key value to be used\n   */\n  public update(newKey: string): void {\n    this._key = createKey(newKey);\n  }\n}\n\nfunction createKey(key: string): string {\n  return key.startsWith(\"Bearer \") ? key : `Bearer ${key}`;\n}\n"],"names":["createClientLogger","getClient","__rest","operationOptionsToRequestParameters","createRestError","createFile","isTokenCredential"],"mappings":"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"}