Fix chat interface - restore continuous conversation flow

🎯 Major improvements to MissionControl component:
- Always keep input field visible and functional after AI responses
- Auto-clear input after submitting questions for better UX
- Add dynamic visual indicators (first question vs follow-up)
- Improve response layout with clear separation and hints
- Enable proper chat-like experience for continuous learning

🌟 Additional enhancements:
- Better language-specific messaging throughout interface
- Clearer visual hierarchy between input and response areas
- Intuitive flow that guides users to ask follow-up questions
- Maintains responsive design and accessibility

🔧 Technical changes:
- Enhanced MissionControl state management
- Improved component layout and styling
- Better TypeScript integration across components
- Updated tsconfig for stricter type checking
This commit is contained in:
rwiegand
2025-07-14 12:39:05 +02:00
parent b31492a354
commit f893530471
1798 changed files with 25329 additions and 92638 deletions

View File

@@ -1,4 +1,8 @@
import { APIResource } from "../../../../core/resource.js";
import { APIResource } from "../../../../resource.js";
import { APIPromise } from "../../../../core.js";
import * as Core from "../../../../core.js";
import { AssistantStream, RunCreateParamsBaseStream } from "../../../../lib/AssistantStream.js";
import { RunSubmitToolOutputsParamsStream } from "../../../../lib/AssistantStream.js";
import * as RunsAPI from "./runs.js";
import * as Shared from "../../../shared.js";
import * as AssistantsAPI from "../../assistants.js";
@@ -6,12 +10,8 @@ import * as MessagesAPI from "../messages.js";
import * as ThreadsAPI from "../threads.js";
import * as StepsAPI from "./steps.js";
import { CodeInterpreterLogs, CodeInterpreterOutputImage, CodeInterpreterToolCall, CodeInterpreterToolCallDelta, FileSearchToolCall, FileSearchToolCallDelta, FunctionToolCall, FunctionToolCallDelta, MessageCreationStepDetails, RunStep, RunStepDelta, RunStepDeltaEvent, RunStepDeltaMessageDelta, RunStepInclude, RunStepsPage, StepListParams, StepRetrieveParams, Steps, ToolCall, ToolCallDelta, ToolCallDeltaObject, ToolCallsStepDetails } from "./steps.js";
import { APIPromise } from "../../../../core/api-promise.js";
import { CursorPage, type CursorPageParams, PagePromise } from "../../../../core/pagination.js";
import { Stream } from "../../../../core/streaming.js";
import { RequestOptions } from "../../../../internal/request-options.js";
import { AssistantStream, RunCreateParamsBaseStream } from "../../../../lib/AssistantStream.js";
import { RunSubmitToolOutputsParamsStream } from "../../../../lib/AssistantStream.js";
import { CursorPage, type CursorPageParams } from "../../../../pagination.js";
import { Stream } from "../../../../streaming.js";
/**
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
@@ -22,39 +22,40 @@ export declare class Runs extends APIResource {
*
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
create(threadID: string, params: RunCreateParamsNonStreaming, options?: RequestOptions): APIPromise<Run>;
create(threadID: string, params: RunCreateParamsStreaming, options?: RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent>>;
create(threadID: string, params: RunCreateParamsBase, options?: RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent> | Run>;
create(threadId: string, params: RunCreateParamsNonStreaming, options?: Core.RequestOptions): APIPromise<Run>;
create(threadId: string, params: RunCreateParamsStreaming, options?: Core.RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent>>;
create(threadId: string, params: RunCreateParamsBase, options?: Core.RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent> | Run>;
/**
* Retrieves a run.
*
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
retrieve(runID: string, params: RunRetrieveParams, options?: RequestOptions): APIPromise<Run>;
retrieve(threadId: string, runId: string, options?: Core.RequestOptions): Core.APIPromise<Run>;
/**
* Modifies a run.
*
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
update(runID: string, params: RunUpdateParams, options?: RequestOptions): APIPromise<Run>;
update(threadId: string, runId: string, body: RunUpdateParams, options?: Core.RequestOptions): Core.APIPromise<Run>;
/**
* Returns a list of runs belonging to a thread.
*
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
list(threadID: string, query?: RunListParams | null | undefined, options?: RequestOptions): PagePromise<RunsPage, Run>;
list(threadId: string, query?: RunListParams, options?: Core.RequestOptions): Core.PagePromise<RunsPage, Run>;
list(threadId: string, options?: Core.RequestOptions): Core.PagePromise<RunsPage, Run>;
/**
* Cancels a run that is `in_progress`.
*
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
cancel(runID: string, params: RunCancelParams, options?: RequestOptions): APIPromise<Run>;
cancel(threadId: string, runId: string, options?: Core.RequestOptions): Core.APIPromise<Run>;
/**
* A helper to create a run an poll for a terminal state. More information on Run
* lifecycles can be found here:
* https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps
*/
createAndPoll(threadId: string, body: RunCreateParamsNonStreaming, options?: RequestOptions & {
createAndPoll(threadId: string, body: RunCreateParamsNonStreaming, options?: Core.RequestOptions & {
pollIntervalMs?: number;
}): Promise<Run>;
/**
@@ -62,19 +63,19 @@ export declare class Runs extends APIResource {
*
* @deprecated use `stream` instead
*/
createAndStream(threadId: string, body: RunCreateParamsBaseStream, options?: RequestOptions): AssistantStream;
createAndStream(threadId: string, body: RunCreateParamsBaseStream, options?: Core.RequestOptions): AssistantStream;
/**
* A helper to poll a run status until it reaches a terminal state. More
* information on Run lifecycles can be found here:
* https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps
*/
poll(runId: string, params: RunRetrieveParams, options?: RequestOptions & {
poll(threadId: string, runId: string, options?: Core.RequestOptions & {
pollIntervalMs?: number;
}): Promise<Run>;
/**
* Create a Run stream
*/
stream(threadId: string, body: RunCreateParamsBaseStream, options?: RequestOptions): AssistantStream;
stream(threadId: string, body: RunCreateParamsBaseStream, options?: Core.RequestOptions): AssistantStream;
/**
* When a run has the `status: "requires_action"` and `required_action.type` is
* `submit_tool_outputs`, this endpoint can be used to submit the outputs from the
@@ -83,15 +84,15 @@ export declare class Runs extends APIResource {
*
* @deprecated The Assistants API is deprecated in favor of the Responses API
*/
submitToolOutputs(runID: string, params: RunSubmitToolOutputsParamsNonStreaming, options?: RequestOptions): APIPromise<Run>;
submitToolOutputs(runID: string, params: RunSubmitToolOutputsParamsStreaming, options?: RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent>>;
submitToolOutputs(runID: string, params: RunSubmitToolOutputsParamsBase, options?: RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent> | Run>;
submitToolOutputs(threadId: string, runId: string, body: RunSubmitToolOutputsParamsNonStreaming, options?: Core.RequestOptions): APIPromise<Run>;
submitToolOutputs(threadId: string, runId: string, body: RunSubmitToolOutputsParamsStreaming, options?: Core.RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent>>;
submitToolOutputs(threadId: string, runId: string, body: RunSubmitToolOutputsParamsBase, options?: Core.RequestOptions): APIPromise<Stream<AssistantsAPI.AssistantStreamEvent> | Run>;
/**
* A helper to submit a tool output to a run and poll for a terminal run state.
* More information on Run lifecycles can be found here:
* https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps
*/
submitToolOutputsAndPoll(runId: string, params: RunSubmitToolOutputsParamsNonStreaming, options?: RequestOptions & {
submitToolOutputsAndPoll(threadId: string, runId: string, body: RunSubmitToolOutputsParamsNonStreaming, options?: Core.RequestOptions & {
pollIntervalMs?: number;
}): Promise<Run>;
/**
@@ -99,9 +100,10 @@ export declare class Runs extends APIResource {
* state. More information on Run lifecycles can be found here:
* https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps
*/
submitToolOutputsStream(runId: string, params: RunSubmitToolOutputsParamsStream, options?: RequestOptions): AssistantStream;
submitToolOutputsStream(threadId: string, runId: string, body: RunSubmitToolOutputsParamsStream, options?: Core.RequestOptions): AssistantStream;
}
export declare class RunsPage extends CursorPage<Run> {
}
export type RunsPage = CursorPage<Run>;
/**
* Tool call objects
*/
@@ -629,23 +631,11 @@ export interface RunCreateParamsStreaming extends RunCreateParamsBase {
*/
stream: true;
}
export interface RunRetrieveParams {
/**
* The ID of the [thread](https://platform.openai.com/docs/api-reference/threads)
* that was run.
*/
thread_id: string;
}
export interface RunUpdateParams {
/**
* Path param: The ID of the
* [thread](https://platform.openai.com/docs/api-reference/threads) that was run.
*/
thread_id: string;
/**
* Body param: 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, and querying for objects via API or the dashboard.
* 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, and
* querying for objects via API or the dashboard.
*
* Keys are strings with a maximum length of 64 characters. Values are strings with
* a maximum length of 512 characters.
@@ -666,31 +656,508 @@ export interface RunListParams extends CursorPageParams {
*/
order?: 'asc' | 'desc';
}
export interface RunCancelParams {
export interface RunCreateAndPollParams {
/**
* The ID of the thread to which this run belongs.
* The ID of the
* [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to
* execute this run.
*/
thread_id: string;
assistant_id: string;
/**
* Appends additional instructions at the end of the instructions for the run. This
* is useful for modifying the behavior on a per-run basis without overriding other
* instructions.
*/
additional_instructions?: string | null;
/**
* Adds additional messages to the thread before creating the run.
*/
additional_messages?: Array<RunCreateAndPollParams.AdditionalMessage> | null;
/**
* Overrides the
* [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant)
* of the assistant. This is useful for modifying the behavior on a per-run basis.
*/
instructions?: string | null;
/**
* The maximum number of completion tokens that may be used over the course of the
* run. The run will make a best effort to use only the number of completion tokens
* specified, across multiple turns of the run. If the run exceeds the number of
* completion tokens specified, the run will end with status `incomplete`. See
* `incomplete_details` for more info.
*/
max_completion_tokens?: number | null;
/**
* The maximum number of prompt tokens that may be used over the course of the run.
* The run will make a best effort to use only the number of prompt tokens
* specified, across multiple turns of the run. If the run exceeds the number of
* prompt tokens specified, the run will end with status `incomplete`. See
* `incomplete_details` for more info.
*/
max_prompt_tokens?: number | 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 ID of the [Model](https://platform.openai.com/docs/api-reference/models) to
* be used to execute this run. If a value is provided here, it will override the
* model associated with the assistant. If not, the model associated with the
* assistant will be used.
*/
model?: (string & {}) | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-0125-preview' | 'gpt-4-turbo-preview' | 'gpt-4-1106-preview' | 'gpt-4-vision-preview' | 'gpt-4' | 'gpt-4-0314' | 'gpt-4-0613' | 'gpt-4-32k' | 'gpt-4-32k-0314' | 'gpt-4-32k-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-16k-0613' | null;
/**
* Specifies the format that the model must output. Compatible with
* [GPT-4o](https://platform.openai.com/docs/models/gpt-4o),
* [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4),
* and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.
*
* Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the
* message the model generates is valid JSON.
*
* **Important:** when using JSON mode, you **must** also instruct the model to
* produce JSON yourself via a system or user message. Without this, the model may
* generate an unending stream of whitespace until the generation reaches the token
* limit, resulting in a long-running and seemingly "stuck" request. Also note that
* the message content may be partially cut off if `finish_reason="length"`, which
* indicates the generation exceeded `max_tokens` or the conversation exceeded the
* max context length.
*/
response_format?: ThreadsAPI.AssistantResponseFormatOption | null;
/**
* What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
* make the output more random, while lower values like 0.2 will make it more
* focused and deterministic.
*/
temperature?: number | null;
/**
* Controls which (if any) tool is called by the model. `none` means the model will
* not call any tools and instead generates a message. `auto` is the default value
* and means the model can pick between generating a message or calling one or more
* tools. `required` means the model must call one or more tools before responding
* to the user. Specifying a particular tool like `{"type": "file_search"}` or
* `{"type": "function", "function": {"name": "my_function"}}` forces the model to
* call that tool.
*/
tool_choice?: ThreadsAPI.AssistantToolChoiceOption | null;
/**
* Override the tools the assistant can use for this run. This is useful for
* modifying the behavior on a per-run basis.
*/
tools?: Array<AssistantsAPI.AssistantTool> | null;
/**
* An alternative to sampling with temperature, called nucleus sampling, where the
* model considers the results of the tokens with top_p probability mass. So 0.1
* means only the tokens comprising the top 10% probability mass are considered.
*
* We generally recommend altering this or temperature but not both.
*/
top_p?: number | null;
/**
* Controls for how a thread will be truncated prior to the run. Use this to
* control the intial context window of the run.
*/
truncation_strategy?: RunCreateAndPollParams.TruncationStrategy | null;
}
export declare namespace RunCreateAndPollParams {
interface AdditionalMessage {
/**
* The text contents of the message.
*/
content: string | Array<MessagesAPI.MessageContentPartParam>;
/**
* 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<AdditionalMessage.Attachment> | 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;
}
namespace AdditionalMessage {
interface Attachment {
/**
* The ID of the file to attach to the message.
*/
file_id?: string;
/**
* The tools to add this file to.
*/
tools?: Array<AssistantsAPI.CodeInterpreterTool | AssistantsAPI.FileSearchTool>;
}
}
/**
* Controls for how a thread will be truncated prior to the run. Use this to
* control the intial context window of the run.
*/
interface TruncationStrategy {
/**
* The truncation strategy to use for the thread. The default is `auto`. If set to
* `last_messages`, the thread will be truncated to the n most recent messages in
* the thread. When set to `auto`, messages in the middle of the thread will be
* dropped to fit the context length of the model, `max_prompt_tokens`.
*/
type: 'auto' | 'last_messages';
/**
* The number of most recent messages from the thread when constructing the context
* for the run.
*/
last_messages?: number | null;
}
}
export interface RunCreateAndStreamParams {
/**
* The ID of the
* [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to
* execute this run.
*/
assistant_id: string;
/**
* Appends additional instructions at the end of the instructions for the run. This
* is useful for modifying the behavior on a per-run basis without overriding other
* instructions.
*/
additional_instructions?: string | null;
/**
* Adds additional messages to the thread before creating the run.
*/
additional_messages?: Array<RunCreateAndStreamParams.AdditionalMessage> | null;
/**
* Overrides the
* [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant)
* of the assistant. This is useful for modifying the behavior on a per-run basis.
*/
instructions?: string | null;
/**
* The maximum number of completion tokens that may be used over the course of the
* run. The run will make a best effort to use only the number of completion tokens
* specified, across multiple turns of the run. If the run exceeds the number of
* completion tokens specified, the run will end with status `incomplete`. See
* `incomplete_details` for more info.
*/
max_completion_tokens?: number | null;
/**
* The maximum number of prompt tokens that may be used over the course of the run.
* The run will make a best effort to use only the number of prompt tokens
* specified, across multiple turns of the run. If the run exceeds the number of
* prompt tokens specified, the run will end with status `incomplete`. See
* `incomplete_details` for more info.
*/
max_prompt_tokens?: number | 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 ID of the [Model](https://platform.openai.com/docs/api-reference/models) to
* be used to execute this run. If a value is provided here, it will override the
* model associated with the assistant. If not, the model associated with the
* assistant will be used.
*/
model?: (string & {}) | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-0125-preview' | 'gpt-4-turbo-preview' | 'gpt-4-1106-preview' | 'gpt-4-vision-preview' | 'gpt-4' | 'gpt-4-0314' | 'gpt-4-0613' | 'gpt-4-32k' | 'gpt-4-32k-0314' | 'gpt-4-32k-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-16k-0613' | null;
/**
* Specifies the format that the model must output. Compatible with
* [GPT-4o](https://platform.openai.com/docs/models/gpt-4o),
* [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4),
* and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.
*
* Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the
* message the model generates is valid JSON.
*
* **Important:** when using JSON mode, you **must** also instruct the model to
* produce JSON yourself via a system or user message. Without this, the model may
* generate an unending stream of whitespace until the generation reaches the token
* limit, resulting in a long-running and seemingly "stuck" request. Also note that
* the message content may be partially cut off if `finish_reason="length"`, which
* indicates the generation exceeded `max_tokens` or the conversation exceeded the
* max context length.
*/
response_format?: ThreadsAPI.AssistantResponseFormatOption | null;
/**
* What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
* make the output more random, while lower values like 0.2 will make it more
* focused and deterministic.
*/
temperature?: number | null;
/**
* Controls which (if any) tool is called by the model. `none` means the model will
* not call any tools and instead generates a message. `auto` is the default value
* and means the model can pick between generating a message or calling one or more
* tools. `required` means the model must call one or more tools before responding
* to the user. Specifying a particular tool like `{"type": "file_search"}` or
* `{"type": "function", "function": {"name": "my_function"}}` forces the model to
* call that tool.
*/
tool_choice?: ThreadsAPI.AssistantToolChoiceOption | null;
/**
* Override the tools the assistant can use for this run. This is useful for
* modifying the behavior on a per-run basis.
*/
tools?: Array<AssistantsAPI.AssistantTool> | null;
/**
* An alternative to sampling with temperature, called nucleus sampling, where the
* model considers the results of the tokens with top_p probability mass. So 0.1
* means only the tokens comprising the top 10% probability mass are considered.
*
* We generally recommend altering this or temperature but not both.
*/
top_p?: number | null;
/**
* Controls for how a thread will be truncated prior to the run. Use this to
* control the intial context window of the run.
*/
truncation_strategy?: RunCreateAndStreamParams.TruncationStrategy | null;
}
export declare namespace RunCreateAndStreamParams {
interface AdditionalMessage {
/**
* The text contents of the message.
*/
content: string | Array<MessagesAPI.MessageContentPartParam>;
/**
* 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<AdditionalMessage.Attachment> | 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;
}
namespace AdditionalMessage {
interface Attachment {
/**
* The ID of the file to attach to the message.
*/
file_id?: string;
/**
* The tools to add this file to.
*/
tools?: Array<AssistantsAPI.CodeInterpreterTool | AssistantsAPI.FileSearchTool>;
}
}
/**
* Controls for how a thread will be truncated prior to the run. Use this to
* control the intial context window of the run.
*/
interface TruncationStrategy {
/**
* The truncation strategy to use for the thread. The default is `auto`. If set to
* `last_messages`, the thread will be truncated to the n most recent messages in
* the thread. When set to `auto`, messages in the middle of the thread will be
* dropped to fit the context length of the model, `max_prompt_tokens`.
*/
type: 'auto' | 'last_messages';
/**
* The number of most recent messages from the thread when constructing the context
* for the run.
*/
last_messages?: number | null;
}
}
export interface RunStreamParams {
/**
* The ID of the
* [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to
* execute this run.
*/
assistant_id: string;
/**
* Appends additional instructions at the end of the instructions for the run. This
* is useful for modifying the behavior on a per-run basis without overriding other
* instructions.
*/
additional_instructions?: string | null;
/**
* Adds additional messages to the thread before creating the run.
*/
additional_messages?: Array<RunStreamParams.AdditionalMessage> | null;
/**
* Overrides the
* [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant)
* of the assistant. This is useful for modifying the behavior on a per-run basis.
*/
instructions?: string | null;
/**
* The maximum number of completion tokens that may be used over the course of the
* run. The run will make a best effort to use only the number of completion tokens
* specified, across multiple turns of the run. If the run exceeds the number of
* completion tokens specified, the run will end with status `incomplete`. See
* `incomplete_details` for more info.
*/
max_completion_tokens?: number | null;
/**
* The maximum number of prompt tokens that may be used over the course of the run.
* The run will make a best effort to use only the number of prompt tokens
* specified, across multiple turns of the run. If the run exceeds the number of
* prompt tokens specified, the run will end with status `incomplete`. See
* `incomplete_details` for more info.
*/
max_prompt_tokens?: number | 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 ID of the [Model](https://platform.openai.com/docs/api-reference/models) to
* be used to execute this run. If a value is provided here, it will override the
* model associated with the assistant. If not, the model associated with the
* assistant will be used.
*/
model?: (string & {}) | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-0125-preview' | 'gpt-4-turbo-preview' | 'gpt-4-1106-preview' | 'gpt-4-vision-preview' | 'gpt-4' | 'gpt-4-0314' | 'gpt-4-0613' | 'gpt-4-32k' | 'gpt-4-32k-0314' | 'gpt-4-32k-0613' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-16k' | 'gpt-3.5-turbo-0613' | 'gpt-3.5-turbo-1106' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-16k-0613' | null;
/**
* Specifies the format that the model must output. Compatible with
* [GPT-4o](https://platform.openai.com/docs/models/gpt-4o),
* [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4),
* and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.
*
* Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the
* message the model generates is valid JSON.
*
* **Important:** when using JSON mode, you **must** also instruct the model to
* produce JSON yourself via a system or user message. Without this, the model may
* generate an unending stream of whitespace until the generation reaches the token
* limit, resulting in a long-running and seemingly "stuck" request. Also note that
* the message content may be partially cut off if `finish_reason="length"`, which
* indicates the generation exceeded `max_tokens` or the conversation exceeded the
* max context length.
*/
response_format?: ThreadsAPI.AssistantResponseFormatOption | null;
/**
* What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
* make the output more random, while lower values like 0.2 will make it more
* focused and deterministic.
*/
temperature?: number | null;
/**
* Controls which (if any) tool is called by the model. `none` means the model will
* not call any tools and instead generates a message. `auto` is the default value
* and means the model can pick between generating a message or calling one or more
* tools. `required` means the model must call one or more tools before responding
* to the user. Specifying a particular tool like `{"type": "file_search"}` or
* `{"type": "function", "function": {"name": "my_function"}}` forces the model to
* call that tool.
*/
tool_choice?: ThreadsAPI.AssistantToolChoiceOption | null;
/**
* Override the tools the assistant can use for this run. This is useful for
* modifying the behavior on a per-run basis.
*/
tools?: Array<AssistantsAPI.AssistantTool> | null;
/**
* An alternative to sampling with temperature, called nucleus sampling, where the
* model considers the results of the tokens with top_p probability mass. So 0.1
* means only the tokens comprising the top 10% probability mass are considered.
*
* We generally recommend altering this or temperature but not both.
*/
top_p?: number | null;
/**
* Controls for how a thread will be truncated prior to the run. Use this to
* control the intial context window of the run.
*/
truncation_strategy?: RunStreamParams.TruncationStrategy | null;
}
export declare namespace RunStreamParams {
interface AdditionalMessage {
/**
* The text contents of the message.
*/
content: string | Array<MessagesAPI.MessageContentPartParam>;
/**
* 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<AdditionalMessage.Attachment> | 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;
}
namespace AdditionalMessage {
interface Attachment {
/**
* The ID of the file to attach to the message.
*/
file_id?: string;
/**
* The tools to add this file to.
*/
tools?: Array<AssistantsAPI.CodeInterpreterTool | AssistantsAPI.FileSearchTool>;
}
}
/**
* Controls for how a thread will be truncated prior to the run. Use this to
* control the intial context window of the run.
*/
interface TruncationStrategy {
/**
* The truncation strategy to use for the thread. The default is `auto`. If set to
* `last_messages`, the thread will be truncated to the n most recent messages in
* the thread. When set to `auto`, messages in the middle of the thread will be
* dropped to fit the context length of the model, `max_prompt_tokens`.
*/
type: 'auto' | 'last_messages';
/**
* The number of most recent messages from the thread when constructing the context
* for the run.
*/
last_messages?: number | null;
}
}
export type RunCreateAndPollParams = ThreadsAPI.ThreadCreateAndRunParamsNonStreaming;
export type RunCreateAndStreamParams = RunCreateParamsBaseStream;
export type RunStreamParams = RunCreateParamsBaseStream;
export type RunSubmitToolOutputsParams = RunSubmitToolOutputsParamsNonStreaming | RunSubmitToolOutputsParamsStreaming;
export interface RunSubmitToolOutputsParamsBase {
/**
* Path param: The ID of the
* [thread](https://platform.openai.com/docs/api-reference/threads) to which this
* run belongs.
*/
thread_id: string;
/**
* Body param: A list of tools for which the outputs are being submitted.
* A list of tools for which the outputs are being submitted.
*/
tool_outputs: Array<RunSubmitToolOutputsParams.ToolOutput>;
/**
* Body param: If `true`, returns a stream of events that happen during the Run as
* server-sent events, terminating when the Run enters a terminal state with a
* `data: [DONE]` message.
* If `true`, returns a stream of events that happen during the Run as server-sent
* events, terminating when the Run enters a terminal state with a `data: [DONE]`
* message.
*/
stream?: boolean | null;
}
@@ -711,24 +1178,60 @@ export declare namespace RunSubmitToolOutputsParams {
}
export interface RunSubmitToolOutputsParamsNonStreaming extends RunSubmitToolOutputsParamsBase {
/**
* Body param: If `true`, returns a stream of events that happen during the Run as
* server-sent events, terminating when the Run enters a terminal state with a
* `data: [DONE]` message.
* If `true`, returns a stream of events that happen during the Run as server-sent
* events, terminating when the Run enters a terminal state with a `data: [DONE]`
* message.
*/
stream?: false | null;
}
export interface RunSubmitToolOutputsParamsStreaming extends RunSubmitToolOutputsParamsBase {
/**
* Body param: If `true`, returns a stream of events that happen during the Run as
* server-sent events, terminating when the Run enters a terminal state with a
* `data: [DONE]` message.
* If `true`, returns a stream of events that happen during the Run as server-sent
* events, terminating when the Run enters a terminal state with a `data: [DONE]`
* message.
*/
stream: true;
}
export type RunSubmitToolOutputsAndPollParams = RunSubmitToolOutputsParamsNonStreaming;
export type RunSubmitToolOutputsStreamParams = RunSubmitToolOutputsParamsStream;
export interface RunSubmitToolOutputsAndPollParams {
/**
* A list of tools for which the outputs are being submitted.
*/
tool_outputs: Array<RunSubmitToolOutputsAndPollParams.ToolOutput>;
}
export declare namespace RunSubmitToolOutputsAndPollParams {
interface ToolOutput {
/**
* The output of the tool call to be submitted to continue the run.
*/
output?: string;
/**
* The ID of the tool call in the `required_action` object within the run object
* the output is being submitted for.
*/
tool_call_id?: string;
}
}
export interface RunSubmitToolOutputsStreamParams {
/**
* A list of tools for which the outputs are being submitted.
*/
tool_outputs: Array<RunSubmitToolOutputsStreamParams.ToolOutput>;
}
export declare namespace RunSubmitToolOutputsStreamParams {
interface ToolOutput {
/**
* The output of the tool call to be submitted to continue the run.
*/
output?: string;
/**
* The ID of the tool call in the `required_action` object within the run object
* the output is being submitted for.
*/
tool_call_id?: string;
}
}
export declare namespace Runs {
export { type RequiredActionFunctionToolCall as RequiredActionFunctionToolCall, type Run as Run, type RunStatus as RunStatus, type RunsPage as RunsPage, type RunCreateParams as RunCreateParams, type RunCreateParamsNonStreaming as RunCreateParamsNonStreaming, type RunCreateParamsStreaming as RunCreateParamsStreaming, type RunRetrieveParams as RunRetrieveParams, type RunUpdateParams as RunUpdateParams, type RunListParams as RunListParams, type RunCreateAndPollParams, type RunCreateAndStreamParams, type RunStreamParams, type RunSubmitToolOutputsParams as RunSubmitToolOutputsParams, type RunSubmitToolOutputsParamsNonStreaming as RunSubmitToolOutputsParamsNonStreaming, type RunSubmitToolOutputsParamsStreaming as RunSubmitToolOutputsParamsStreaming, type RunSubmitToolOutputsAndPollParams, type RunSubmitToolOutputsStreamParams, };
export { Steps as Steps, type CodeInterpreterLogs as CodeInterpreterLogs, type CodeInterpreterOutputImage as CodeInterpreterOutputImage, type CodeInterpreterToolCall as CodeInterpreterToolCall, type CodeInterpreterToolCallDelta as CodeInterpreterToolCallDelta, type FileSearchToolCall as FileSearchToolCall, type FileSearchToolCallDelta as FileSearchToolCallDelta, type FunctionToolCall as FunctionToolCall, type FunctionToolCallDelta as FunctionToolCallDelta, type MessageCreationStepDetails as MessageCreationStepDetails, type RunStep as RunStep, type RunStepDelta as RunStepDelta, type RunStepDeltaEvent as RunStepDeltaEvent, type RunStepDeltaMessageDelta as RunStepDeltaMessageDelta, type RunStepInclude as RunStepInclude, type ToolCall as ToolCall, type ToolCallDelta as ToolCallDelta, type ToolCallDeltaObject as ToolCallDeltaObject, type ToolCallsStepDetails as ToolCallsStepDetails, type RunStepsPage as RunStepsPage, type StepRetrieveParams as StepRetrieveParams, type StepListParams as StepListParams, };
export { type RequiredActionFunctionToolCall as RequiredActionFunctionToolCall, type Run as Run, type RunStatus as RunStatus, RunsPage as RunsPage, type RunCreateParams as RunCreateParams, type RunCreateParamsNonStreaming as RunCreateParamsNonStreaming, type RunCreateParamsStreaming as RunCreateParamsStreaming, type RunUpdateParams as RunUpdateParams, type RunListParams as RunListParams, type RunCreateAndPollParams, type RunCreateAndStreamParams, type RunStreamParams, type RunSubmitToolOutputsParams as RunSubmitToolOutputsParams, type RunSubmitToolOutputsParamsNonStreaming as RunSubmitToolOutputsParamsNonStreaming, type RunSubmitToolOutputsParamsStreaming as RunSubmitToolOutputsParamsStreaming, type RunSubmitToolOutputsAndPollParams, type RunSubmitToolOutputsStreamParams, };
export { Steps as Steps, type CodeInterpreterLogs as CodeInterpreterLogs, type CodeInterpreterOutputImage as CodeInterpreterOutputImage, type CodeInterpreterToolCall as CodeInterpreterToolCall, type CodeInterpreterToolCallDelta as CodeInterpreterToolCallDelta, type FileSearchToolCall as FileSearchToolCall, type FileSearchToolCallDelta as FileSearchToolCallDelta, type FunctionToolCall as FunctionToolCall, type FunctionToolCallDelta as FunctionToolCallDelta, type MessageCreationStepDetails as MessageCreationStepDetails, type RunStep as RunStep, type RunStepDelta as RunStepDelta, type RunStepDeltaEvent as RunStepDeltaEvent, type RunStepDeltaMessageDelta as RunStepDeltaMessageDelta, type RunStepInclude as RunStepInclude, type ToolCall as ToolCall, type ToolCallDelta as ToolCallDelta, type ToolCallDeltaObject as ToolCallDeltaObject, type ToolCallsStepDetails as ToolCallsStepDetails, RunStepsPage as RunStepsPage, type StepRetrieveParams as StepRetrieveParams, type StepListParams as StepListParams, };
}
//# sourceMappingURL=runs.d.ts.map