Skip to content

@mfui/openai-responses ​

@mfui/openai-responses adapts OpenAI Responses SSE streams into MFUI semantic SSE streams.

Use this package when the upstream stream emits Responses API events such as response.output_text.delta and response.completed.

createMFUIResponse() ​

Creates an MFUI semantic SSE Response from an upstream OpenAI Responses stream.

Import ​

ts
import { createMFUIResponse } from '@mfui/openai-responses';

Signature ​

ts
function createMFUIResponse(
  source: OpenAIResponsesStreamSource,
  mfui: MFUIManifest,
  options?: OpenAIResponsesMFUIResponseOptions,
): Response

Parameters ​

NameTypeRequiredDefaultDescription
sourceOpenAIResponsesStreamSourceYesn/aProvider Response, response body stream, or null.
mfuiMFUIManifestYesn/aComponents available to this request.
optionsOpenAIResponsesMFUIResponseOptionsNo{}Response, parser, writer, and lifecycle options.

Returns ​

TypeDescription
Responsetext/event-stream response that emits MFUI semantic SSE events.

Example ​

ts
import { createMFUIPrompt } from '@mfui/server';
import { createMFUIResponse } from '@mfui/openai-responses';

const upstream = await fetch('https://api.openai.com/v1/responses', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    model: 'gpt-4o-mini',
    instructions: [
      'You are a helpful assistant.',
      createMFUIPrompt(mfui),
    ].join('\n\n'),
    input: messages,
    stream: true,
  }),
});

return createMFUIResponse(upstream, mfui);

Notes ​

When provider processing fails, the returned MFUI stream emits an error event and then closes. onError is called when provided.

OpenAIResponsesStreamSource ​

Source accepted by createMFUIResponse(), readStream(), and pipeMFUIStream().

Shape ​

ts
type OpenAIResponsesStreamSource =
  | Response
  | ReadableStream<Uint8Array>
  | null

OpenAIResponsesMFUIResponseOptions ​

Options for createMFUIResponse().

PropertyTypeRequiredDefaultDescription
closebooleanNotrueWhether to close the MFUI parser and writer when the provider stream finishes.
parserMFUIBlockParserOptionsNo{}Options passed to createMFUIBlockParser().
writerMFUIStreamWriterOptionsNo{}Options passed to createMFUIStreamWriter().
responseInitResponseInitNo{}Init object passed to the returned Response.
onMessageMFUIMessageHandlerNon/aCalled with the final projected message after the MFUI response finishes.
onErrorMFUIErrorHandlerNon/aCalled when provider stream processing or MFUI block parsing fails.

readStream() ​

Reads OpenAI Responses SSE events and yields normalized JSON events.

Import ​

ts
import { readStream } from '@mfui/openai-responses';

Signature ​

ts
function readStream(
  source: OpenAIResponsesStreamSource,
): AsyncIterable<OpenAIResponsesStreamEvent>

Parameters ​

NameTypeRequiredDefaultDescription
sourceOpenAIResponsesStreamSourceYesn/aProvider SSE source.

Returns ​

TypeDescription
AsyncIterable<OpenAIResponsesStreamEvent>Parsed provider events. The type field is taken from the SSE event name when present, otherwise from data.type.

OpenAIResponsesStreamEvent ​

Provider event shape consumed by writeMFUIStream().

PropertyTypeRequiredDefaultDescription
typestringNon/aProvider event type. MFUI reads response.output_text.delta and response.completed.
deltastringNon/aText delta used when type is response.output_text.delta.
responseRecord<string, unknown>Non/aCompleted response object. response.usage.input_tokens and response.usage.output_tokens map to MFUI usage.
[key]unknownNon/aAdditional provider fields are ignored by MFUI.

writeMFUIStream() ​

Writes parsed Responses events into an MFUI block parser.

Import ​

ts
import { writeMFUIStream } from '@mfui/openai-responses';

Signature ​

ts
function writeMFUIStream(
  stream: AsyncIterable<OpenAIResponsesStreamEvent>,
  parser: MFUIBlockParser,
  options?: OpenAIResponsesMFUIStreamOptions,
): Promise<void>

Parameters ​

NameTypeRequiredDefaultDescription
streamAsyncIterable<OpenAIResponsesStreamEvent>Yesn/aParsed provider events.
parserMFUIBlockParserYesn/aMFUI block parser receiving provider text deltas.
optionsOpenAIResponsesMFUIStreamOptionsNo{}Stream writing options.

Returns ​

TypeDescription
Promise<void>Resolves after the provider stream is fully consumed and the parser is flushed or closed.

OpenAIResponsesMFUIStreamOptions ​

Options for writeMFUIStream() and pipeMFUIStream().

PropertyTypeRequiredDefaultDescription
closebooleanNotrueWhether to call parser.close() when the provider stream ends. When false, parser.flush() is called instead.

pipeMFUIStream() ​

Reads a provider SSE source and writes it into an MFUI block parser.

Import ​

ts
import { pipeMFUIStream } from '@mfui/openai-responses';

Signature ​

ts
function pipeMFUIStream(
  source: OpenAIResponsesStreamSource,
  parser: MFUIBlockParser,
  options?: OpenAIResponsesMFUIStreamOptions,
): Promise<void>

Parameters ​

NameTypeRequiredDefaultDescription
sourceOpenAIResponsesStreamSourceYesn/aProvider SSE source.
parserMFUIBlockParserYesn/aMFUI block parser receiving provider text deltas.
optionsOpenAIResponsesMFUIStreamOptionsNo{}Stream writing options.

Returns ​

TypeDescription
Promise<void>Resolves after the provider stream is consumed.