import { APIResource } from "../../../resource.js"; import * as Core from "../../../core.js"; import * as MessagesAPI from "./messages.js"; import * as AssistantsAPI from "../assistants.js"; import { CursorPage, type CursorPageParams } from "../../../pagination.js"; export declare class Messages extends APIResource { /** * Create a message. */ create(threadId: string, body: MessageCreateParams, options?: Core.RequestOptions): Core.APIPromise; /** * Retrieve a message. */ retrieve(threadId: string, messageId: string, options?: Core.RequestOptions): Core.APIPromise; /** * Modifies a message. */ update(threadId: string, messageId: string, body: MessageUpdateParams, options?: Core.RequestOptions): Core.APIPromise; /** * Returns a list of messages for a given thread. */ list(threadId: string, query?: MessageListParams, options?: Core.RequestOptions): Core.PagePromise; list(threadId: string, options?: Core.RequestOptions): Core.PagePromise; /** * Deletes a message. */ del(threadId: string, messageId: string, options?: Core.RequestOptions): Core.APIPromise; } export declare class MessagesPage extends CursorPage { } /** * A citation within the message that points to a specific quote from a specific * File associated with the assistant or the message. Generated when the assistant * uses the "file_search" tool to search files. */ export type Annotation = FileCitationAnnotation | FilePathAnnotation; /** * A citation within the message that points to a specific quote from a specific * File associated with the assistant or the message. Generated when the assistant * uses the "file_search" tool to search files. */ export type AnnotationDelta = FileCitationDeltaAnnotation | FilePathDeltaAnnotation; /** * A citation within the message that points to a specific quote from a specific * File associated with the assistant or the message. Generated when the assistant * uses the "file_search" tool to search files. */ export interface FileCitationAnnotation { end_index: number; file_citation: FileCitationAnnotation.FileCitation; start_index: number; /** * The text in the message content that needs to be replaced. */ text: string; /** * Always `file_citation`. */ type: 'file_citation'; } export declare namespace FileCitationAnnotation { interface FileCitation { /** * The ID of the specific File the citation is from. */ file_id: string; } } /** * A citation within the message that points to a specific quote from a specific * File associated with the assistant or the message. Generated when the assistant * uses the "file_search" tool to search files. */ export interface FileCitationDeltaAnnotation { /** * The index of the annotation in the text content part. */ index: number; /** * Always `file_citation`. */ type: 'file_citation'; end_index?: number; file_citation?: FileCitationDeltaAnnotation.FileCitation; start_index?: number; /** * The text in the message content that needs to be replaced. */ text?: string; } export declare namespace FileCitationDeltaAnnotation { interface FileCitation { /** * The ID of the specific File the citation is from. */ file_id?: string; /** * The specific quote in the file. */ quote?: string; } } /** * A URL for the file that's generated when the assistant used the * `code_interpreter` tool to generate a file. */ export interface FilePathAnnotation { end_index: number; file_path: FilePathAnnotation.FilePath; start_index: number; /** * The text in the message content that needs to be replaced. */ text: string; /** * Always `file_path`. */ type: 'file_path'; } export declare namespace FilePathAnnotation { interface FilePath { /** * The ID of the file that was generated. */ file_id: string; } } /** * A URL for the file that's generated when the assistant used the * `code_interpreter` tool to generate a file. */ export interface FilePathDeltaAnnotation { /** * The index of the annotation in the text content part. */ index: number; /** * Always `file_path`. */ type: 'file_path'; end_index?: number; file_path?: FilePathDeltaAnnotation.FilePath; start_index?: number; /** * The text in the message content that needs to be replaced. */ text?: string; } export declare namespace FilePathDeltaAnnotation { interface FilePath { /** * The ID of the file that was generated. */ file_id?: string; } } export interface ImageFile { /** * The [File](https://platform.openai.com/docs/api-reference/files) ID of the image * in the message content. Set `purpose="vision"` when uploading the File if you * need to later display the file content. */ file_id: string; /** * Specifies the detail level of the image if specified by the user. `low` uses * fewer tokens, you can opt in to high resolution using `high`. */ detail?: 'auto' | 'low' | 'high'; } /** * References an image [File](https://platform.openai.com/docs/api-reference/files) * in the content of a message. */ export interface ImageFileContentBlock { image_file: ImageFile; /** * Always `image_file`. */ type: 'image_file'; } export interface ImageFileDelta { /** * Specifies the detail level of the image if specified by the user. `low` uses * fewer tokens, you can opt in to high resolution using `high`. */ detail?: 'auto' | 'low' | 'high'; /** * The [File](https://platform.openai.com/docs/api-reference/files) ID of the image * in the message content. Set `purpose="vision"` when uploading the File if you * need to later display the file content. */ file_id?: string; } /** * References an image [File](https://platform.openai.com/docs/api-reference/files) * in the content of a message. */ export interface ImageFileDeltaBlock { /** * The index of the content part in the message. */ index: number; /** * Always `image_file`. */ type: 'image_file'; image_file?: ImageFileDelta; } export interface ImageURL { /** * The external URL of the image, must be a supported image types: jpeg, jpg, png, * gif, webp. */ url: string; /** * Specifies the detail level of the image. `low` uses fewer tokens, you can opt in * to high resolution using `high`. Default value is `auto` */ detail?: 'auto' | 'low' | 'high'; } /** * References an image URL in the content of a message. */ export interface ImageURLContentBlock { image_url: ImageURL; /** * The type of the content part. */ type: 'image_url'; } export interface ImageURLDelta { /** * Specifies the detail level of the image. `low` uses fewer tokens, you can opt in * to high resolution using `high`. */ detail?: 'auto' | 'low' | 'high'; /** * The URL of the image, must be a supported image types: jpeg, jpg, png, gif, * webp. */ url?: string; } /** * References an image URL in the content of a message. */ export interface ImageURLDeltaBlock { /** * The index of the content part in the message. */ index: number; /** * Always `image_url`. */ type: 'image_url'; image_url?: ImageURLDelta; } /** * Represents a message within a * [thread](https://platform.openai.com/docs/api-reference/threads). */ export interface Message { /** * The identifier, which can be referenced in API endpoints. */ id: string; /** * If applicable, the ID of the * [assistant](https://platform.openai.com/docs/api-reference/assistants) that * authored this message. */ assistant_id: string | null; /** * A list of files attached to the message, and the tools they were added to. */ attachments: Array | null; /** * The Unix timestamp (in seconds) for when the message was completed. */ completed_at: number | null; /** * The content of the message in array of text and/or images. */ content: Array; /** * The Unix timestamp (in seconds) for when the message was created. */ created_at: number; /** * The Unix timestamp (in seconds) for when the message was marked as incomplete. */ incomplete_at: number | null; /** * On an incomplete message, details about why the message is incomplete. */ incomplete_details: Message.IncompleteDetails | null; /** * Set of 16 key-value pairs that can be attached to an object. This can be useful * for storing additional information about the object in a structured format. Keys * can be a maximum of 64 characters long and values can be a maxium of 512 * characters long. */ metadata: unknown | null; /** * The object type, which is always `thread.message`. */ object: 'thread.message'; /** * The entity that produced the message. One of `user` or `assistant`. */ role: 'user' | 'assistant'; /** * The ID of the [run](https://platform.openai.com/docs/api-reference/runs) * associated with the creation of this message. Value is `null` when messages are * created manually using the create message or create thread endpoints. */ run_id: string | null; /** * The status of the message, which can be either `in_progress`, `incomplete`, or * `completed`. */ status: 'in_progress' | 'incomplete' | 'completed'; /** * The [thread](https://platform.openai.com/docs/api-reference/threads) ID that * this message belongs to. */ thread_id: string; } export declare namespace Message { interface Attachment { /** * The ID of the file to attach to the message. */ file_id?: string; /** * The tools to add this file to. */ tools?: Array; } namespace Attachment { interface AssistantToolsFileSearchTypeOnly { /** * The type of tool being defined: `file_search` */ type: 'file_search'; } } /** * On an incomplete message, details about why the message is incomplete. */ interface IncompleteDetails { /** * The reason the message is incomplete. */ reason: 'content_filter' | 'max_tokens' | 'run_cancelled' | 'run_expired' | 'run_failed'; } } /** * References an image [File](https://platform.openai.com/docs/api-reference/files) * in the content of a message. */ export type MessageContent = ImageFileContentBlock | ImageURLContentBlock | TextContentBlock | RefusalContentBlock; /** * References an image [File](https://platform.openai.com/docs/api-reference/files) * in the content of a message. */ export type MessageContentDelta = ImageFileDeltaBlock | TextDeltaBlock | RefusalDeltaBlock | ImageURLDeltaBlock; /** * References an image [File](https://platform.openai.com/docs/api-reference/files) * in the content of a message. */ export type MessageContentPartParam = ImageFileContentBlock | ImageURLContentBlock | TextContentBlockParam; export interface MessageDeleted { id: string; deleted: boolean; object: 'thread.message.deleted'; } /** * The delta containing the fields that have changed on the Message. */ export interface MessageDelta { /** * The content of the message in array of text and/or images. */ content?: Array; /** * The entity that produced the message. One of `user` or `assistant`. */ role?: 'user' | 'assistant'; } /** * Represents a message delta i.e. any changed fields on a message during * streaming. */ export interface MessageDeltaEvent { /** * The identifier of the message, which can be referenced in API endpoints. */ id: string; /** * The delta containing the fields that have changed on the Message. */ delta: MessageDelta; /** * The object type, which is always `thread.message.delta`. */ object: 'thread.message.delta'; } /** * The refusal content generated by the assistant. */ export interface RefusalContentBlock { refusal: string; /** * Always `refusal`. */ type: 'refusal'; } /** * The refusal content that is part of a message. */ export interface RefusalDeltaBlock { /** * The index of the refusal part in the message. */ index: number; /** * Always `refusal`. */ type: 'refusal'; refusal?: string; } export interface Text { annotations: Array; /** * The data that makes up the text. */ value: string; } /** * The text content that is part of a message. */ export interface TextContentBlock { text: Text; /** * Always `text`. */ type: 'text'; } /** * The text content that is part of a message. */ export interface TextContentBlockParam { /** * Text content to be sent to the model */ text: string; /** * Always `text`. */ type: 'text'; } export interface TextDelta { annotations?: Array; /** * The data that makes up the text. */ value?: string; } /** * The text content that is part of a message. */ export interface TextDeltaBlock { /** * The index of the content part in the message. */ index: number; /** * Always `text`. */ type: 'text'; text?: TextDelta; } export interface MessageCreateParams { /** * The text contents of the message. */ content: string | Array; /** * The role of the entity that is creating the message. Allowed values include: * * - `user`: Indicates the message is sent by an actual user and should be used in * most cases to represent user-generated messages. * - `assistant`: Indicates the message is generated by the assistant. Use this * value to insert messages from the assistant into the conversation. */ role: 'user' | 'assistant'; /** * A list of files attached to the message, and the tools they should be added to. */ attachments?: Array | null; /** * Set of 16 key-value pairs that can be attached to an object. This can be useful * for storing additional information about the object in a structured format. Keys * can be a maximum of 64 characters long and values can be a maxium of 512 * characters long. */ metadata?: unknown | null; } export declare namespace MessageCreateParams { interface Attachment { /** * The ID of the file to attach to the message. */ file_id?: string; /** * The tools to add this file to. */ tools?: Array; } namespace Attachment { interface FileSearch { /** * The type of tool being defined: `file_search` */ type: 'file_search'; } } } export interface MessageUpdateParams { /** * Set of 16 key-value pairs that can be attached to an object. This can be useful * for storing additional information about the object in a structured format. Keys * can be a maximum of 64 characters long and values can be a maxium of 512 * characters long. */ metadata?: unknown | null; } export interface MessageListParams extends CursorPageParams { /** * A cursor for use in pagination. `before` is an object ID that defines your place * in the list. For instance, if you make a list request and receive 100 objects, * ending with obj_foo, your subsequent call can include before=obj_foo in order to * fetch the previous page of the list. */ before?: string; /** * Sort order by the `created_at` timestamp of the objects. `asc` for ascending * order and `desc` for descending order. */ order?: 'asc' | 'desc'; /** * Filter messages by the run ID that generated them. */ run_id?: string; } export declare namespace Messages { export import Annotation = MessagesAPI.Annotation; export import AnnotationDelta = MessagesAPI.AnnotationDelta; export import FileCitationAnnotation = MessagesAPI.FileCitationAnnotation; export import FileCitationDeltaAnnotation = MessagesAPI.FileCitationDeltaAnnotation; export import FilePathAnnotation = MessagesAPI.FilePathAnnotation; export import FilePathDeltaAnnotation = MessagesAPI.FilePathDeltaAnnotation; export import ImageFile = MessagesAPI.ImageFile; export import ImageFileContentBlock = MessagesAPI.ImageFileContentBlock; export import ImageFileDelta = MessagesAPI.ImageFileDelta; export import ImageFileDeltaBlock = MessagesAPI.ImageFileDeltaBlock; export import ImageURL = MessagesAPI.ImageURL; export import ImageURLContentBlock = MessagesAPI.ImageURLContentBlock; export import ImageURLDelta = MessagesAPI.ImageURLDelta; export import ImageURLDeltaBlock = MessagesAPI.ImageURLDeltaBlock; export import Message = MessagesAPI.Message; export import MessageContent = MessagesAPI.MessageContent; export import MessageContentDelta = MessagesAPI.MessageContentDelta; export import MessageContentPartParam = MessagesAPI.MessageContentPartParam; export import MessageDeleted = MessagesAPI.MessageDeleted; export import MessageDelta = MessagesAPI.MessageDelta; export import MessageDeltaEvent = MessagesAPI.MessageDeltaEvent; export import RefusalContentBlock = MessagesAPI.RefusalContentBlock; export import RefusalDeltaBlock = MessagesAPI.RefusalDeltaBlock; export import Text = MessagesAPI.Text; export import TextContentBlock = MessagesAPI.TextContentBlock; export import TextContentBlockParam = MessagesAPI.TextContentBlockParam; export import TextDelta = MessagesAPI.TextDelta; export import TextDeltaBlock = MessagesAPI.TextDeltaBlock; export import MessagesPage = MessagesAPI.MessagesPage; export import MessageCreateParams = MessagesAPI.MessageCreateParams; export import MessageUpdateParams = MessagesAPI.MessageUpdateParams; export import MessageListParams = MessagesAPI.MessageListParams; } //# sourceMappingURL=messages.d.ts.map