openresponses / src /openai_patch.ts
evalstate's picture
evalstate HF Staff
Upload folder using huggingface_hub
8559a03 verified
/*
* This file patches OpenAI SDK types for OpenResponses spec compliance.
*
* The OpenAI SDK uses event type names like "response.reasoning_text.delta",
* but the OpenResponses spec uses "response.reasoning.delta" (without "_text").
* We maintain custom event types here to match the OpenResponses specification.
*
* Once the OpenAI SDK aligns with OpenResponses spec, this file can be simplified.
*/
import type {
ResponseReasoningItem as OpenAIResponseReasoningItem,
ResponseStreamEvent as OpenAIResponseStreamEvent,
ResponseOutputRefusal,
ResponseOutputText,
ResponseContentPartAddedEvent,
ResponseContentPartDoneEvent,
ResponseTextDeltaEvent,
ResponseTextDoneEvent,
} from "openai/resources/responses/responses";
import type { ChatCompletionChunk } from "openai/resources/chat/completions";
export interface ReasoningTextContent {
type: "reasoning_text";
text: string;
}
export type PatchedResponseReasoningItem = OpenAIResponseReasoningItem & {
// Raw CoT returned in reasoning item (in addition to the summary)
content: ReasoningTextContent[];
};
// Custom event types for OpenResponses spec (differs from SDK's "response.reasoning_text.*")
interface PatchedResponseReasoningDeltaEvent {
type: "response.reasoning.delta";
sequence_number: number;
item_id: string;
output_index: number;
content_index: number;
delta: string;
}
interface PatchedResponseReasoningDoneEvent {
type: "response.reasoning.done";
sequence_number: number;
item_id: string;
output_index: number;
content_index: number;
text: string;
}
export type PatchedResponseStreamEvent =
| OpenAIResponseStreamEvent
| PatchedResponseReasoningDeltaEvent
| PatchedResponseReasoningDoneEvent
| PatchedResponseContentPartAddedEvent
| PatchedResponseContentPartDoneEvent
| PatchedResponseOutputTextDeltaEvent
| PatchedResponseOutputTextDoneEvent;
export type PatchedResponseContentPart = ResponseOutputText | ResponseOutputRefusal | ReasoningTextContent;
export interface PatchedResponseOutputTextDeltaEvent extends ResponseTextDeltaEvent {
logprobs: unknown[];
}
export interface PatchedResponseOutputTextDoneEvent extends ResponseTextDoneEvent {
logprobs: unknown[];
}
interface PatchedResponseContentPartAddedEvent {
content_index: number;
item_id: string;
output_index: number;
part: PatchedResponseContentPart;
sequence_number: number;
type: "response.content_part.added";
}
interface PatchedResponseContentPartDoneEvent {
content_index: number;
item_id: string;
output_index: number;
part: PatchedResponseContentPart;
sequence_number: number;
type: "response.content_part.done";
}
export type PatchedDeltaWithReasoning = ChatCompletionChunk.Choice.Delta & {
reasoning?: string;
reasoning_content?: string;
};