@azure/openai-assistants
Version:
An isomorphic client library for Azure OpenAI Assistants.
989 lines • 49.9 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import { __rest } from "tslib";
/**
* THIS IS AN AUTO-GENERATED FILE - DO NOT EDIT!
*
* Any changes you make here may be lost.
*
* If you need to make changes, please do so in the original source file, \{project-root\}/sources/custom
*/
import { createRestError, operationOptionsToRequestParameters, } from "@azure-rest/core-client";
import { createFile } from "@azure/core-rest-pipeline";
import { parseToolCallOutput, parseRequiredToolCallOutput } from "../models/helpers.js";
import { camelCaseKeys, unixToDate } from "./util.js";
export function _createAssistantSend(context, body, options = { requestOptions: {} }) {
return context.path("/assistants").post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
model: body["model"],
name: body["name"],
description: body["description"],
instructions: body["instructions"],
tools: body["tools"],
file_ids: body["fileIds"],
metadata: body["metadata"],
} }));
}
export async function _createAssistantDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
name: result.body["name"],
description: result.body["description"],
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
};
}
/** Creates a new assistant. */
export async function createAssistant(context, body, options = { requestOptions: {} }) {
const result = await _createAssistantSend(context, body, options);
return _createAssistantDeserialize(result);
}
export function _listAssistantsSend(context, options = { requestOptions: {} }) {
return context.path("/assistants").get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: {
limit: options === null || options === void 0 ? void 0 : options.limit,
order: options === null || options === void 0 ? void 0 : options.order,
after: options === null || options === void 0 ? void 0 : options.after,
before: options === null || options === void 0 ? void 0 : options.before,
} }));
}
export function _getAssistantSend(context, assistantId, options = { requestOptions: {} }) {
return context
.path("/assistants/{assistantId}", assistantId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _getAssistantDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
name: result.body["name"],
description: result.body["description"],
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
};
}
/** Retrieves an existing assistant. */
export async function getAssistant(context, assistantId, options = { requestOptions: {} }) {
const result = await _getAssistantSend(context, assistantId, options);
return _getAssistantDeserialize(result);
}
export function _updateAssistantSend(context, assistantId, body, options = { requestOptions: {} }) {
return context.path("/assistants/{assistantId}", assistantId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
model: body["model"],
name: body["name"],
description: body["description"],
instructions: body["instructions"],
tools: body["tools"],
file_ids: body["fileIds"],
metadata: body["metadata"],
} }));
}
export async function _updateAssistantDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
name: result.body["name"],
description: result.body["description"],
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
};
}
/** Modifies an existing assistant. */
export async function updateAssistant(context, assistantId, body, options = { requestOptions: {} }) {
const result = await _updateAssistantSend(context, assistantId, body, options);
return _updateAssistantDeserialize(result);
}
export function _deleteAssistantSend(context, assistantId, options = { requestOptions: {} }) {
return context
.path("/assistants/{assistantId}", assistantId)
.delete(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _deleteAssistantDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
deleted: result.body["deleted"],
};
}
/** Deletes an assistant. */
export async function deleteAssistant(context, assistantId, options = { requestOptions: {} }) {
const result = await _deleteAssistantSend(context, assistantId, options);
return _deleteAssistantDeserialize(result);
}
export function _createAssistantFileSend(context, assistantId, fileId, options = { requestOptions: {} }) {
return context.path("/assistants/{assistantId}/files", assistantId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: { file_id: fileId } }));
}
export async function _createAssistantFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
assistantId: result.body["assistant_id"],
};
}
/** Attaches a previously uploaded file to an assistant for use by tools that can read files. */
export async function createAssistantFile(context, assistantId, fileId, options = { requestOptions: {} }) {
const result = await _createAssistantFileSend(context, assistantId, fileId, options);
return _createAssistantFileDeserialize(result);
}
export function _listAssistantFilesSend(context, assistantId, options = { requestOptions: {} }) {
return context.path("/assistants/{assistantId}/files", assistantId).get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: {
limit: options === null || options === void 0 ? void 0 : options.limit,
order: options === null || options === void 0 ? void 0 : options.order,
after: options === null || options === void 0 ? void 0 : options.after,
before: options === null || options === void 0 ? void 0 : options.before,
} }));
}
export function _getAssistantFileSend(context, assistantId, fileId, options = { requestOptions: {} }) {
return context
.path("/assistants/{assistantId}/files/{fileId}", assistantId, fileId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _getAssistantFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
assistantId: result.body["assistant_id"],
};
}
/** Retrieves a file attached to an assistant. */
export async function getAssistantFile(context, assistantId, fileId, options = { requestOptions: {} }) {
const result = await _getAssistantFileSend(context, assistantId, fileId, options);
return _getAssistantFileDeserialize(result);
}
export function _deleteAssistantFileSend(context, assistantId, fileId, options = { requestOptions: {} }) {
return context
.path("/assistants/{assistantId}/files/{fileId}", assistantId, fileId)
.delete(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _deleteAssistantFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
deleted: result.body["deleted"],
};
}
/**
* Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read
* files.
*/
export async function deleteAssistantFile(context, assistantId, fileId, options = { requestOptions: {} }) {
const result = await _deleteAssistantFileSend(context, assistantId, fileId, options);
return _deleteAssistantFileDeserialize(result);
}
export async function _createThreadDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
metadata: result.body["metadata"],
};
}
/** Creates a new thread. Threads contain messages and can be run by assistants. */
export async function createThread(context, body, options = { requestOptions: {} }) {
const result = await _createThreadSend(context, body, options);
return _createThreadDeserialize(result);
}
export function _getThreadSend(context, threadId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}", threadId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _getThreadDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
metadata: result.body["metadata"],
};
}
/** Gets information about an existing thread. */
export async function getThread(context, threadId, options = { requestOptions: {} }) {
const result = await _getThreadSend(context, threadId, options);
return _getThreadDeserialize(result);
}
export function _updateThreadSend(context, threadId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}", threadId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: { metadata: options === null || options === void 0 ? void 0 : options.metadata } }));
}
export async function _updateThreadDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
metadata: result.body["metadata"],
};
}
/** Modifies an existing thread. */
export async function updateThread(context, threadId, options = { requestOptions: {} }) {
const result = await _updateThreadSend(context, threadId, options);
return _updateThreadDeserialize(result);
}
export function _deleteThreadSend(context, threadId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}", threadId)
.delete(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _deleteThreadDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
deleted: result.body["deleted"],
};
}
/** Deletes an existing thread. */
export async function deleteThread(context, threadId, options = { requestOptions: {} }) {
const result = await _deleteThreadSend(context, threadId, options);
return _deleteThreadDeserialize(result);
}
export function _createMessageSend(context, threadId, role, content, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/messages", threadId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
role: role,
content: content,
file_ids: options === null || options === void 0 ? void 0 : options.fileIds,
metadata: options === null || options === void 0 ? void 0 : options.metadata,
} }));
}
/** Creates a new message on a specified thread. */
export async function createMessage(context, threadId, role, content, options = { requestOptions: {} }) {
const result = await _createMessageSend(context, threadId, role, content, options);
return _createMessageDeserialize(result);
}
export function _listMessagesSend(context, threadId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/messages", threadId).get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: {
limit: options === null || options === void 0 ? void 0 : options.limit,
order: options === null || options === void 0 ? void 0 : options.order,
after: options === null || options === void 0 ? void 0 : options.after,
before: options === null || options === void 0 ? void 0 : options.before,
} }));
}
export function _updateMessageSend(context, threadId, messageId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/messages/{messageId}", threadId, messageId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: { metadata: options === null || options === void 0 ? void 0 : options.metadata } }));
}
/** Modifies an existing message on an existing thread. */
export async function updateMessage(context, threadId, messageId, options = { requestOptions: {} }) {
const result = await _updateMessageSend(context, threadId, messageId, options);
return _updateMessageDeserialize(result);
}
export function _listMessageFilesSend(context, threadId, messageId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/messages/{messageId}/files", threadId, messageId).get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: {
limit: options === null || options === void 0 ? void 0 : options.limit,
order: options === null || options === void 0 ? void 0 : options.order,
after: options === null || options === void 0 ? void 0 : options.after,
before: options === null || options === void 0 ? void 0 : options.before,
} }));
}
export function _getMessageFileSend(context, threadId, messageId, fileId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}/messages/{messageId}/files/{fileId}", threadId, messageId, fileId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _getMessageFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
messageId: result.body["message_id"],
};
}
/** Gets information about a file attachment to a message within a thread. */
export async function getMessageFile(context, threadId, messageId, fileId, options = { requestOptions: {} }) {
const result = await _getMessageFileSend(context, threadId, messageId, fileId, options);
return _getMessageFileDeserialize(result);
}
export function _createRunSend(context, threadId, createRunOptions, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/runs", threadId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
assistant_id: createRunOptions["assistantId"],
model: createRunOptions["model"],
instructions: createRunOptions["instructions"],
additional_instructions: createRunOptions["additionalInstructions"],
tools: createRunOptions["tools"],
metadata: createRunOptions["metadata"],
} }));
}
/** Creates a new run for an assistant thread. */
export async function createRun(context, threadId, createRunOptions, options = { requestOptions: {} }) {
const result = await _createRunSend(context, threadId, createRunOptions, options);
return _createRunDeserialize(result);
}
export function _listRunsSend(context, threadId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/runs", threadId).get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: {
limit: options === null || options === void 0 ? void 0 : options.limit,
order: options === null || options === void 0 ? void 0 : options.order,
after: options === null || options === void 0 ? void 0 : options.after,
before: options === null || options === void 0 ? void 0 : options.before,
} }));
}
export function _getRunSend(context, threadId, runId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}/runs/{runId}", threadId, runId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
/** Gets an existing run from an existing thread. */
export async function getRun(context, threadId, runId, options = { requestOptions: {} }) {
const result = await _getRunSend(context, threadId, runId, options);
return _getRunDeserialize(result);
}
export function _updateRunSend(context, threadId, runId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/runs/{runId}", threadId, runId).post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: { metadata: options === null || options === void 0 ? void 0 : options.metadata } }));
}
export async function _updateRunDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
threadId: result.body["thread_id"],
assistantId: result.body["assistant_id"],
status: result.body["status"],
requiredAction: result.body.required_action,
lastError: result.body.last_error,
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
createdAt: unixToDate(result.body["created_at"]),
expiresAt: result.body["expires_at"] === null ? null : unixToDate(Number(result.body["expires_at"])),
startedAt: result.body["started_at"] === null ? null : unixToDate(Number(result.body["started_at"])),
completedAt: result.body["completed_at"] === null ? null : unixToDate(Number(result.body["completed_at"])),
cancelledAt: result.body["cancelled_at"] === null ? null : unixToDate(Number(result.body["cancelled_at"])),
failedAt: result.body["failed_at"] === null ? null : unixToDate(Number(result.body["failed_at"])),
metadata: result.body["metadata"],
};
}
/** Modifies an existing thread run. */
export async function updateRun(context, threadId, runId, options = { requestOptions: {} }) {
const result = await _updateRunSend(context, threadId, runId, options);
return _updateRunDeserialize(result);
}
export function _submitToolOutputsToRunSend(context, threadId, runId, toolOutputs, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}/runs/{runId}/submit_tool_outputs", threadId, runId)
.post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
tool_outputs: toolOutputs.map((p) => ({
tool_call_id: p["toolCallId"],
output: p["output"],
})),
} }));
}
/** 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'. */
export async function submitToolOutputsToRun(context, threadId, runId, toolOutputs, options = { requestOptions: {} }) {
const result = await _submitToolOutputsToRunSend(context, threadId, runId, toolOutputs, options);
return _submitToolOutputsToRunDeserialize(result);
}
export function _cancelRunSend(context, threadId, runId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}/runs/{runId}/cancel", threadId, runId)
.post(Object.assign({}, operationOptionsToRequestParameters(options)));
}
/** Cancels a run of an in progress thread. */
export async function cancelRun(context, threadId, runId, options = { requestOptions: {} }) {
const result = await _cancelRunSend(context, threadId, runId, options);
return _cancelRunDeserialize(result);
}
/** Creates a new assistant thread and immediately starts a run using that new thread. */
export async function createThreadAndRun(context, body, options = { requestOptions: {} }) {
const result = await _createThreadAndRunSend(context, body, options);
return _createThreadAndRunDeserialize(result);
}
export function _getRunStepSend(context, threadId, runId, stepId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}/runs/{runId}/steps/{stepId}", threadId, runId, stepId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
/** Gets a single run step from a thread run. */
export async function getRunStep(context, threadId, runId, stepId, options = { requestOptions: {} }) {
const result = await _getRunStepSend(context, threadId, runId, stepId, options);
return _getRunStepDeserialize(result);
}
export function _listRunStepsSend(context, threadId, runId, options = { requestOptions: {} }) {
return context.path("/threads/{threadId}/runs/{runId}/steps", threadId, runId).get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: {
limit: options === null || options === void 0 ? void 0 : options.limit,
order: options === null || options === void 0 ? void 0 : options.order,
after: options === null || options === void 0 ? void 0 : options.after,
before: options === null || options === void 0 ? void 0 : options.before,
} }));
}
export function _listFilesSend(context, options = { requestOptions: {} }) {
return context.path("/files").get(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { queryParameters: { purpose: options === null || options === void 0 ? void 0 : options.purpose } }));
}
export async function _listFilesDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: result.body["data"].map((p) => ({
id: p["id"],
bytes: p["bytes"],
filename: p["filename"],
createdAt: unixToDate(p["created_at"]),
purpose: p["purpose"],
})),
};
}
/** Gets a list of previously uploaded files. */
export async function listFiles(context, options = { requestOptions: {} }) {
const result = await _listFilesSend(context, options);
return _listFilesDeserialize(result);
}
/** Uploads a file for use by other operations. */
export async function uploadFile(context, file, purpose, options = { requestOptions: {} }) {
const result = await _uploadFileSend(context, file, purpose, options);
return _uploadFileDeserialize(result);
}
export function _deleteFileSend(context, fileId, options = { requestOptions: {} }) {
return context
.path("/files/{fileId}", fileId)
.delete(Object.assign({}, operationOptionsToRequestParameters(options)));
}
export async function _deleteFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
deleted: result.body["deleted"],
};
}
/** Delete a previously uploaded file. */
export async function deleteFile(context, fileId, options = { requestOptions: {} }) {
const result = await _deleteFileSend(context, fileId, options);
return _deleteFileDeserialize(result);
}
export function _getFileSend(context, fileId, options = { requestOptions: {} }) {
return context
.path("/files/{fileId}", fileId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
/** Returns information about a specific file. Does not retrieve file content. */
export async function getFile(context, fileId, options = { requestOptions: {} }) {
const result = await _getFileSend(context, fileId, options);
return _getFileDeserialize(result);
}
export async function _createRunDeserialize(result) {
var _a, _b, _c;
if (result.status !== "200") {
throw createRestError(result);
}
const _d = result.body, { required_action, last_error, created_at, expires_at, started_at, completed_at, cancelled_at, failed_at } = _d, rest = __rest(_d, ["required_action", "last_error", "created_at", "expires_at", "started_at", "completed_at", "cancelled_at", "failed_at"]);
return Object.assign(Object.assign({}, camelCaseKeys(rest)), { requiredAction: !required_action
? undefined
: {
type: required_action === null || required_action === void 0 ? void 0 : required_action["type"],
submitToolOutputs: !((_a = required_action === null || required_action === void 0 ? void 0 : required_action.submit_tool_outputs) === null || _a === void 0 ? void 0 : _a["tool_calls"])
? undefined
: {
toolCalls: (_c = (_b = required_action === null || required_action === void 0 ? void 0 : required_action.submit_tool_outputs) === null || _b === void 0 ? void 0 : _b.tool_calls) === null || _c === void 0 ? void 0 : _c.map(parseRequiredToolCallOutput),
},
}, lastError: !last_error
? undefined
: {
code: last_error === null || last_error === void 0 ? void 0 : last_error["code"],
message: last_error === null || last_error === void 0 ? void 0 : last_error["message"],
}, createdAt: unixToDate(created_at), expiresAt: expires_at === null ? null : unixToDate(Number(expires_at)), startedAt: started_at === null ? null : unixToDate(Number(started_at)), completedAt: completed_at === null ? null : unixToDate(Number(completed_at)), cancelledAt: cancelled_at === null ? null : unixToDate(Number(cancelled_at)), failedAt: failed_at === null ? null : unixToDate(Number(failed_at)) });
}
export async function _listRunsDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: result.body["data"].map((p) => {
var _a, _b, _c;
return ({
id: p["id"],
threadId: p["thread_id"],
assistantId: p["assistant_id"],
status: p["status"],
requiredAction: !p.required_action ? undefined : { type: (_a = p.required_action) === null || _a === void 0 ? void 0 : _a["type"] },
lastError: !p.last_error
? undefined
: { code: (_b = p.last_error) === null || _b === void 0 ? void 0 : _b["code"], message: (_c = p.last_error) === null || _c === void 0 ? void 0 : _c["message"] },
model: p["model"],
instructions: p["instructions"],
tools: p["tools"],
fileIds: p["file_ids"],
metadata: p["metadata"],
createdAt: unixToDate(p["created_at"]),
expiresAt: p["expires_at"] === null ? null : unixToDate(Number(p["expires_at"])),
startedAt: p["started_at"] === null ? null : unixToDate(Number(p["started_at"])),
completedAt: p["completed_at"] === null ? null : unixToDate(Number(p["completed_at"])),
cancelledAt: p["cancelled_at"] === null ? null : unixToDate(Number(p["cancelled_at"])),
failedAt: p["failed_at"] === null ? null : unixToDate(Number(p["failed_at"])),
});
}),
firstId: result.body["first_id"],
lastId: result.body["last_id"],
hasMore: result.body["has_more"],
};
}
export function _createThreadAndRunSend(context, body, options = { requestOptions: {} }) {
var _a, _b, _c, _d;
return context.path("/threads/runs").post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
assistant_id: body["assistantId"],
thread: !body.thread
? undefined
: {
messages: !((_a = body.thread) === null || _a === void 0 ? void 0 : _a["messages"])
? (_b = body.thread) === null || _b === void 0 ? void 0 : _b["messages"]
: (_c = body.thread) === null || _c === void 0 ? void 0 : _c["messages"].map((p) => ({
role: p["role"],
content: p["content"],
})),
metadata: (_d = body.thread) === null || _d === void 0 ? void 0 : _d["metadata"],
},
model: body["model"],
instructions: body["instructions"],
tools: body["tools"],
metadata: body["metadata"],
} }));
}
/** Returns a list of runs associated with an assistant thread. */
export async function listRuns(context, threadId, options = { requestOptions: {} }) {
const result = await _listRunsSend(context, threadId, options);
return _listRunsDeserialize(result);
}
export async function _getRunDeserialize(result) {
var _a, _b, _c, _d, _e, _f, _g, _h;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
threadId: result.body["thread_id"],
assistantId: result.body["assistant_id"],
status: result.body["status"],
requiredAction: !result.body.required_action
? undefined
: {
type: (_a = result.body.required_action) === null || _a === void 0 ? void 0 : _a["type"],
submitToolOutputs: !((_c = (_b = result.body.required_action) === null || _b === void 0 ? void 0 : _b.submit_tool_outputs) === null || _c === void 0 ? void 0 : _c["tool_calls"])
? undefined
: {
toolCalls: (_f = (_e = (_d = result.body.required_action) === null || _d === void 0 ? void 0 : _d.submit_tool_outputs) === null || _e === void 0 ? void 0 : _e.tool_calls) === null || _f === void 0 ? void 0 : _f.map(parseRequiredToolCallOutput),
},
},
lastError: !result.body.last_error
? undefined
: {
code: (_g = result.body.last_error) === null || _g === void 0 ? void 0 : _g["code"],
message: (_h = result.body.last_error) === null || _h === void 0 ? void 0 : _h["message"],
},
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
createdAt: unixToDate(result.body["created_at"]),
expiresAt: result.body["expires_at"] === null ? null : unixToDate(Number(result.body["expires_at"])),
startedAt: result.body["started_at"] === null ? null : unixToDate(Number(result.body["started_at"])),
completedAt: result.body["completed_at"] === null ? null : unixToDate(Number(result.body["completed_at"])),
cancelledAt: result.body["cancelled_at"] === null ? null : unixToDate(Number(result.body["cancelled_at"])),
failedAt: result.body["failed_at"] === null ? null : unixToDate(Number(result.body["failed_at"])),
};
}
export async function _submitToolOutputsToRunDeserialize(result) {
var _a, _b, _c, _d, _e, _f, _g, _h;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
threadId: result.body["thread_id"],
assistantId: result.body["assistant_id"],
status: result.body["status"],
requiredAction: !result.body.required_action
? undefined
: {
type: (_a = result.body.required_action) === null || _a === void 0 ? void 0 : _a["type"],
submitToolOutputs: !((_c = (_b = result.body.required_action) === null || _b === void 0 ? void 0 : _b.submit_tool_outputs) === null || _c === void 0 ? void 0 : _c["tool_calls"])
? undefined
: {
toolCalls: (_f = (_e = (_d = result.body.required_action) === null || _d === void 0 ? void 0 : _d.submit_tool_outputs) === null || _e === void 0 ? void 0 : _e.tool_calls) === null || _f === void 0 ? void 0 : _f.map(parseRequiredToolCallOutput),
},
},
lastError: !result.body.last_error
? undefined
: {
code: (_g = result.body.last_error) === null || _g === void 0 ? void 0 : _g["code"],
message: (_h = result.body.last_error) === null || _h === void 0 ? void 0 : _h["message"],
},
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
createdAt: unixToDate(result.body["created_at"]),
expiresAt: result.body["expires_at"] === null ? null : unixToDate(Number(result.body["expires_at"])),
startedAt: result.body["started_at"] === null ? null : unixToDate(Number(result.body["started_at"])),
completedAt: result.body["completed_at"] === null ? null : unixToDate(Number(result.body["completed_at"])),
cancelledAt: result.body["cancelled_at"] === null ? null : unixToDate(Number(result.body["cancelled_at"])),
failedAt: result.body["failed_at"] === null ? null : unixToDate(Number(result.body["failed_at"])),
};
}
export async function _createThreadAndRunDeserialize(result) {
var _a, _b, _c, _d, _e, _f, _g, _h;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
threadId: result.body["thread_id"],
assistantId: result.body["assistant_id"],
status: result.body["status"],
requiredAction: !result.body.required_action
? undefined
: {
type: (_a = result.body.required_action) === null || _a === void 0 ? void 0 : _a["type"],
submitToolOutputs: !((_c = (_b = result.body.required_action) === null || _b === void 0 ? void 0 : _b.submit_tool_outputs) === null || _c === void 0 ? void 0 : _c["tool_calls"])
? undefined
: {
toolCalls: (_f = (_e = (_d = result.body.required_action) === null || _d === void 0 ? void 0 : _d.submit_tool_outputs) === null || _e === void 0 ? void 0 : _e.tool_calls) === null || _f === void 0 ? void 0 : _f.map(parseRequiredToolCallOutput),
},
},
lastError: !result.body.last_error
? undefined
: {
code: (_g = result.body.last_error) === null || _g === void 0 ? void 0 : _g["code"],
message: (_h = result.body.last_error) === null || _h === void 0 ? void 0 : _h["message"],
},
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
createdAt: unixToDate(result.body["created_at"]),
expiresAt: result.body["expires_at"] === null ? null : unixToDate(Number(result.body["expires_at"])),
startedAt: result.body["started_at"] === null ? null : unixToDate(Number(result.body["started_at"])),
completedAt: result.body["completed_at"] === null ? null : unixToDate(Number(result.body["completed_at"])),
cancelledAt: result.body["cancelled_at"] === null ? null : unixToDate(Number(result.body["cancelled_at"])),
failedAt: result.body["failed_at"] === null ? null : unixToDate(Number(result.body["failed_at"])),
};
}
export async function _cancelRunDeserialize(result) {
var _a, _b, _c, _d, _e, _f;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
threadId: result.body["thread_id"],
assistantId: result.body["assistant_id"],
status: result.body["status"],
requiredAction: !result.body.required_action
? undefined
: {
type: (_a = result.body.required_action) === null || _a === void 0 ? void 0 : _a["type"],
submitToolOutputs: !((_c = (_b = result.body.required_action) === null || _b === void 0 ? void 0 : _b.submit_tool_outputs) === null || _c === void 0 ? void 0 : _c["tool_calls"])
? undefined
: {
toolCalls: (_f = (_e = (_d = result.body.required_action) === null || _d === void 0 ? void 0 : _d.submit_tool_outputs) === null || _e === void 0 ? void 0 : _e.tool_calls) === null || _f === void 0 ? void 0 : _f.map(parseRequiredToolCallOutput),
},
},
lastError: !result.body.last_error
? undefined
: {
code: result.body.last_error["code"],
message: result.body.last_error["message"],
},
model: result.body["model"],
instructions: result.body["instructions"],
tools: result.body["tools"],
fileIds: result.body["file_ids"],
createdAt: unixToDate(result.body["created_at"]),
expiresAt: result.body["expires_at"] === null ? null : unixToDate(Number(result.body["expires_at"])),
startedAt: result.body["started_at"] === null ? null : unixToDate(Number(result.body["started_at"])),
completedAt: result.body["completed_at"] === null ? null : unixToDate(Number(result.body["completed_at"])),
cancelledAt: result.body["cancelled_at"] === null ? null : unixToDate(Number(result.body["cancelled_at"])),
failedAt: result.body["failed_at"] === null ? null : unixToDate(Number(result.body["failed_at"])),
metadata: result.body["metadata"],
};
}
export async function listMessages(context, threadId, options = { requestOptions: {} }) {
const result = await _listMessagesSend(context, threadId, options);
return _listMessagesDeserialize(result);
}
export function _getMessageSend(context, threadId, messageId, options = { requestOptions: {} }) {
return context
.path("/threads/{threadId}/messages/{messageId}", threadId, messageId)
.get(Object.assign({}, operationOptionsToRequestParameters(options)));
}
/** Retrieves a message associated with a thread. */
export async function getMessage(context, threadId, messageId, options = { requestOptions: {} }) {
const result = await _getMessageSend(context, threadId, messageId, options);
return _getMessageDeserialize(result);
}
export async function _listMessageFilesDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: result.body["data"].map((p) => ({
id: p["id"],
createdAt: unixToDate(p["created_at"]),
messageId: p["message_id"],
})),
firstId: result.body["first_id"],
lastId: result.body["last_id"],
hasMore: result.body["has_more"],
};
}
/** Returns a list of files associated with a message from a thread. */
export async function listMessageFiles(context, threadId, messageId, options = { requestOptions: {} }) {
const result = await _listMessageFilesSend(context, threadId, messageId, options);
return _listMessageFilesDeserialize(result);
}
export async function _createMessageDeserialize(result) {
var _a;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
threadId: result.body["thread_id"],
role: result.body["role"],
content: ((_a = result.body["content"]) !== null && _a !== void 0 ? _a : []).map(parseMessageContentOutput),
assistantId: result.body["assistant_id"],
runId: result.body["run_id"],
fileIds: result.body["file_ids"],
metadata: result.body["metadata"],
};
}
export async function _listMessagesDeserialize(result) {
var _a;
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: ((_a = result.body["data"]) !== null && _a !== void 0 ? _a : []).map((p) => {
var _a;
return ({
id: p["id"],
createdAt: unixToDate(p["created_at"]),
threadId: p["thread_id"],
role: p["role"],
content: ((_a = p["content"]) !== null && _a !== void 0 ? _a : []).map(parseMessageContentOutput),
assistantId: p["assistant_id"],
runId: p["run_id"],
metadata: p["metadata"],
});
}),
firstId: result.body["first_id"],
lastId: result.body["last_id"],
hasMore: result.body["has_more"],
};
}
export async function _getMessageDeserialize(result) {
var _a;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
threadId: result.body["thread_id"],
role: result.body["role"],
content: ((_a = result.body["content"]) !== null && _a !== void 0 ? _a : []).map(parseMessageContentOutput),
assistantId: result.body["assistant_id"],
runId: result.body["run_id"],
metadata: result.body["metadata"],
};
}
export async function _updateMessageDeserialize(result) {
var _a;
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
createdAt: unixToDate(result.body["created_at"]),
threadId: result.body["thread_id"],
role: result.body["role"],
content: ((_a = result.body["content"]) !== null && _a !== void 0 ? _a : []).map(parseMessageContentOutput),
assistantId: result.body["assistant_id"],
runId: result.body["run_id"],
metadata: result.body["metadata"],
};
}
export async function _listRunStepsDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: result.body["data"].map(parseRunStepOutput),
firstId: result.body["first_id"],
lastId: result.body["last_id"],
hasMore: result.body["has_more"],
};
}
export async function _getRunStepDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
const _a = result.body, { step_details, last_error, created_at, expired_at, completed_at, cancelled_at, failed_at } = _a, rest = __rest(_a, ["step_details", "last_error", "created_at", "expired_at", "completed_at", "cancelled_at", "failed_at"]);
return Object.assign(Object.assign({}, camelCaseKeys(rest)), { stepDetails: parseRunStepDetails(step_details), lastError: last_error === null
? null
: {
code: last_error["code"],
message: last_error["message"],
}, createdAt: unixToDate(created_at), expiredAt: expired_at === null ? null : unixToDate(Number(expired_at)), completedAt: completed_at === null ? null : unixToDate(Number(completed_at)), cancelledAt: cancelled_at === null ? null : unixToDate(Number(cancelled_at)), failedAt: failed_at === null ? null : unixToDate(Number(failed_at)) });
}
/** Returns a list of run steps associated an assistant thread run. */
export async function listRunSteps(context, threadId, runId, options = { requestOptions: {} }) {
const result = await _listRunStepsSend(context, threadId, runId, options);
return _listRunStepsDeserialize(result);
}
export async function _listAssistantsDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: result.body["data"].map((p) => ({
id: p["id"],
createdAt: unixToDate(p["created_at"]),
name: p["name"],
description: p["description"],
model: p["model"],
instructions: p["instructions"],
tools: p["tools"],
fileIds: p["file_ids"],
metadata: p["metadata"],
})),
firstId: result.body["first_id"],
lastId: result.body["last_id"],
hasMore: result.body["has_more"],
};
}
/** Returns a list of assistants. */
export async function listAssistants(context, options = { requestOptions: {} }) {
const result = await _listAssistantsSend(context, options);
return _listAssistantsDeserialize(result);
}
export async function _listAssistantFilesDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
data: result.body["data"].map((p) => ({
id: p["id"],
createdAt: unixToDate(p["created_at"]),
assistantId: p["assistant_id"],
})),
firstId: result.body["first_id"],
lastId: result.body["last_id"],
hasMore: result.body["has_more"],
};
}
/** Returns a list of assistant files. */
export async function listAssistantFiles(context, assistantId, options = { requestOptions: {} }) {
const result = await _listAssistantFilesSend(context, assistantId, options);
return _listAssistantFilesDeserialize(result);
}
export function _createThreadSend(context, body, options = { requestOptions: {} }) {
var _a;
return context.path("/threads").post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { body: {
messages: ((_a = body["messages"]) !== null && _a !== void 0 ? _a : []).map((p) => ({
role: p["role"],
content: p["content"],
})),
metadata: body["metadata"],
} }));
}
export function _uploadFileSend(context, file, purpose, options = { requestOptions: {} }) {
var _a;
return context.path("/files").post(Object.assign(Object.assign({}, operationOptionsToRequestParameters(options)), { contentType: (_a = options.contentType) !== null && _a !== void 0 ? _a : "multipart/form-data", body: {
file: createFile(file, (options === null || options === void 0 ? void 0 : options.filename) || "unknown.txt"),
purpose: purpose,
} }));
}
export async function _uploadFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
bytes: result.body["bytes"],
filename: result.body["filename"],
createdAt: unixToDate(result.body["created_at"]),
purpose: result.body["purpose"],
};
}
export async function _getFileDeserialize(result) {
if (result.status !== "200") {
throw createRestError(result);
}
return {
id: result.body["id"],
bytes: result.body["bytes"],
filename: result.body["filename"],
createdAt: unixToDate(result.body["created_at"]),
purpose: result.body["purpose"],
};
}
function parseMessageContentOutput(messageContentOutput) {
const messageContent = { type: "", text: {}, imageFile: {} };
switch (messageContentOutput.type) {
case "image_file":
messageContent.type = "image_file";
messageContent.imageFile = messageContentOutput.image_file;
break;
case "text":
messageContent.type = "text";
messageContent.text = messageContentOutput.text;
break;
}
return messageContent;
}
function parseRunStepDetails(runStepDetailsOutput) {
const { type } = runStepDetailsOutput;
const details = { type, messageCreation: {}, toolCalls: [] };
switch (type) {
case "message_creation":
details.messageCreation = runStepDetailsOutput["message_creation"];
break;
case "tool_calls":
details.toolCalls = runStepDetailsOutput["tool_calls"].map(parseToolCallOutput);
break;
}
return details;
}
function parseRunStepOutput(runStepOutput) {
const { step_details, last_error, created_at, expired_at, completed_at, cancelled_at, failed_at } = runStepOutput, rest = __rest(runStepOutput, ["step_details", "last_error", "created_at", "expired_at", "completed_at", "cancelled_at", "failed_at"]);
return Object.assign(Object.assign({}, camelCaseKeys(rest)), { stepDetails: parseRunStepDetails(step_details), lastError: last_error === null ? null : { code: last_error["code"], message: last_error["message"] }, createdAt: unixToDate(created_at), expiredAt: expired_at === null ? null : unixToDate(Number(expired_at)), completedAt: completed_at === null ? null : unixToDate(Number(completed_at)), cancelledAt: cancelled_at === null ? null : unixToDate(Number(cancelled_at)), failedAt: failed_at === null ? null : unixToDate(Number(failed_at)) });
}
//# sourceMappingURL=operations.js.map