Skip to content

adapter:openai-node

FieldValue
Prefixadapter:openai-node
Namespace constantOpenAINodeConnectorNamespace
Subjects constantOpenAINodeConnectorSubjects
Kindadapter
Schema record<inline>
Tierframework
Package@makaio/adapter-openai-node
Defined inadapters/implementations/openai-node/src/namespaces/index.ts
KeyWireTypeSchema
agent_completeadapter:openai-node.agent_completeeventlifecycle.ts
agent_startedadapter:openai-node.agent_startedeventlifecycle.ts
chunkadapter:openai-node.chunkeventchunk.ts
erroradapter:openai-node.erroreventlifecycle.ts
message_completeadapter:openai-node.message_completeeventmessage.ts
reasoning_completeadapter:openai-node.reasoning_completeeventreasoning.ts
reasoning_deltaadapter:openai-node.reasoning_deltaeventreasoning.ts
sdk.eventadapter:openai-node.sdk.eventevent
sdk.rawadapter:openai-node.sdk.rawevent
tool_approvaladapter:openai-node.tool_approvalrpctool-approval.ts
tool_callsadapter:openai-node.tool_callseventtool-calls.ts
tool_completedadapter:openai-node.tool_completedeventtool-lifecycle.ts
tool_startedadapter:openai-node.tool_startedeventtool-lifecycle.ts
turn.state_changedadapter:openai-node.turn.state_changedeventturn-state.ts
turn.step_finishedadapter:openai-node.turn.step_finishedeventturn-state.ts
turn.step_startedadapter:openai-node.turn.step_startedeventturn-state.ts
turn.turn_finishedadapter:openai-node.turn.turn_finishedeventturn-state.ts
turn.turn_startedadapter:openai-node.turn.turn_startedeventturn-state.ts
usageadapter:openai-node.usageeventusage.ts

adapter:openai-node.agent_complete (event)

Section titled “adapter:openai-node.agent_complete (event)”

Schema for agent complete event. Emitted when agent finishes processing (success or error).

Subject: adapter:openai-node.agent_complete Type: Event

FieldTypeRequired
errorstring | undefinedno
eventType"agent_complete"yes
messagestring | undefinedno

Schema for agent started event. Emitted when agent begins processing a user message.

Subject: adapter:openai-node.agent_started Type: Event

FieldTypeRequired
eventType"agent_started"yes
modelstring | undefinedno

Schema for streaming chunk event. Based on OpenAI ChatCompletionChunk structure.

Subject: adapter:openai-node.chunk Type: Event

FieldTypeRequired
choices{ delta: { content?: string | null | undefined; role?: "user" | "assistant" | "system" | "developer" | "tool" | undefined; refusal?: string | null | undefined; tool_calls?: { index: number; id?: string | undefined; type?: "function" | undefined; function?: { name?: string | undefined; arguments?: string | undefined; } | undefined; }[] | undefined; }; index: number; finish_reason: "length" | "stop" | "tool_calls" | "content_filter" | "function_call" | null; logprobs?: unknown; }[]yes
creatednumberyes
eventType"chunk"yes
idstringyes
modelstringyes
object"chat.completion.chunk"yes
service_tier"default" | "auto" | "priority" | "flex" | "scale" | null | undefinedno
system_fingerprintstring | undefinedno

Schema for error event. Emitted when an error occurs during processing.

Subject: adapter:openai-node.error Type: Event

FieldTypeRequired
codestring | number | undefinedno
eventType"error"yes
messagestringyes
typestring | undefinedno

adapter:openai-node.message_complete (event)

Section titled “adapter:openai-node.message_complete (event)”

Schema for message complete event. Emitted when a full assistant message has been assembled from streaming chunks. Extends the base schema with OpenAI-specific finish_reason values.

Subject: adapter:openai-node.message_complete Type: Event

FieldTypeRequired
contentstring | nullyes
eventType"message_complete"yes
finish_reason"length" | "stop" | "tool_calls" | "content_filter" | "function_call" | nullyes
reasoningstring | undefinedno
tool_calls{ id: string; type: "function"; function: { name: string; arguments: string; }; }[] | undefinedno

adapter:openai-node.reasoning_complete (event)

Section titled “adapter:openai-node.reasoning_complete (event)”

Base schema for a reasoning complete event.

Emitted when the full reasoning / thinking content has been assembled from all streaming deltas. Does NOT include the Anthropic-specific signature field — the Anthropic adapter extends this schema with .extend().

Adapter-specific schemas may extend this via .extend().

Subject: adapter:openai-node.reasoning_complete Type: Event

FieldTypeRequired
contentstringyes
eventType"reasoning_complete"yes

adapter:openai-node.reasoning_delta (event)

Section titled “adapter:openai-node.reasoning_delta (event)”

Base schema for a reasoning delta event.

Emitted during streaming when the model outputs incremental reasoning / thinking content. Both Anthropic (extended thinking) and OpenAI-compatible reasoning models emit this event.

Adapter-specific schemas may extend this via .extend().

Subject: adapter:openai-node.reasoning_delta Type: Event

FieldTypeRequired
contentstringyes
eventType"reasoning_delta"yes

Envelope schema for sdk.event catch-all subject. Wraps the discriminated union in an envelope for proper TypeScript narrowing at emit time. Pattern matches codex-mcp’s { id, msg } envelope.

Subject: adapter:openai-node.sdk.event Type: Event

FieldTypeRequired
adapterIdstring | undefinedno
adapterNamestring | undefinedno
adapterSessionIdstring | undefinedno
agentIdstring | undefinedno
event{ eventType: "reasoning_delta"; content: string; } | { eventType: "agent_started"; model?: string | undefined; } | { eventType: "agent_complete"; message?: string | undefined; error?: string | undefined; } | { eventType: "error"; message: string; code?: string | number | undefined; type?: string | undefined; } | { eventType: "tool_started"; toolName: string; toolCallId: string; } | { eventType: "tool_completed"; toolName: string; toolCallId: string; result: string; success: boolean; } | { eventType: "tool_calls"; toolCalls: { id: string; type: "function"; function: { name: string; arguments: string; }; }[]; } | { eventType: "chunk"; id: string; choices: { delta: { content?: string | null | undefined; role?: "user" | "assistant" | "system" | "developer" | "tool" | undefined; refusal?: string | null | undefined; tool_calls?: { index: number; id?: string | undefined; type?: "function" | undefined; function?: { name?: string | undefined; arguments?: string | undefined; } | undefined; }[] | undefined; }; index: number; finish_reason: "length" | "stop" | "tool_calls" | "content_filter" | "function_call" | null; logprobs?: unknown; }[]; created: number; model: string; object: "chat.completion.chunk"; service_tier?: "default" | "auto" | "priority" | "flex" | "scale" | null | undefined; system_fingerprint?: string | undefined; } | { eventType: "usage"; prompt_tokens: number; completion_tokens: number; total_tokens: number; prompt_tokens_details?: { audio_tokens?: number | undefined; cached_tokens?: number | undefined; } | undefined; completion_tokens_details?: { accepted_prediction_tokens?: number | undefined; audio_tokens?: number | undefined; reasoning_tokens?: number | undefined; rejected_prediction_tokens?: number | undefined; } | undefined; } | { eventType: "message_complete"; content: string | null; finish_reason: "length" | "stop" | "tool_calls" | "content_filter" | "function_call" | null; reasoning?: string | undefined; tool_calls?: { id: string; type: "function"; function: { name: string; arguments: string; }; }[] | undefined; } | { eventType: "reasoning_complete"; content: string; }yes
sessionIdstring | undefinedno

Schema for raw OpenAI streaming chunks. Passthrough schema for observability - captures raw API response. Used by stream-bridge to emit unprocessed chunks before normalization.

Subject: adapter:openai-node.sdk.raw Type: Event

FieldTypeRequired
choicesChoice[]yes
creatednumberyes
idstringyes
modelstringyes
object"chat.completion.chunk"yes
service_tier"default" | "auto" | "priority" | "flex" | "scale" | null | undefinedno
system_fingerprintstring | undefinedno
usageCompletionUsage | null | undefinedno

Scoped tool approval schema for adapter connector buses.

sessionId is optional here because the connector emits the approval request before the agent layer has enriched it. The agent’s wireToolApprovalRpc (or equivalent) injects sessionId from its own context before forwarding to the global AgentSubjects.toolApprove subject, where sessionId is required.

Adapters with a genuinely different wire format (e.g., gemini-sdk’s callId/name) should define their own schema rather than extending this one.

Subject: adapter:openai-node.tool_approval Type: Request (RPC)

Request:

FieldTypeRequired
adapterIdstringyes
adapterNamestringyes
adapterSessionIdstringyes
agentIdstringyes
argsRecord<string, unknown> | undefinedno
clientIdstring | undefinedno
messageIdstring | undefinedno
occurredAtnumber | undefinedno
providerConfigIdstring | undefinedno
reasoningstring | undefinedno
sessionIdstring | undefinedno
toolCallIdstringyes
toolNamestring | undefinedno
turnIdstring | undefinedno

Response:

FieldTypeRequired
action"allow" | "deny"yes

Schema for a tool calls event.

Emitted when the model requests tool / function execution. Both adapters emit this event with the same structure, except the Anthropic adapter’s individual ToolCall entries also carry blockIndex.

Subject: adapter:openai-node.tool_calls Type: Event

FieldTypeRequired
eventType"tool_calls"yes
toolCalls{ id: string; type: "function"; function: { name: string; arguments: string; }; }[]yes

adapter:openai-node.tool_completed (event)

Section titled “adapter:openai-node.tool_completed (event)”

Schema for tool completed event. Emitted when tool execution finishes (success or failure).

Subject: adapter:openai-node.tool_completed Type: Event

FieldTypeRequired
eventType"tool_completed"yes
resultstringyes
successbooleanyes
toolCallIdstringyes
toolNamestringyes

Schema for tool started event. Emitted when tool execution begins.

Subject: adapter:openai-node.tool_started Type: Event

FieldTypeRequired
eventType"tool_started"yes
toolCallIdstringyes
toolNamestringyes

adapter:openai-node.turn.state_changed (event)

Section titled “adapter:openai-node.turn.state_changed (event)”

Schema for a turn state change event. Emitted by adapters whenever the turn state machine transitions.

Subject: adapter:openai-node.turn.state_changed Type: Event

FieldTypeRequired
adapterIdstringyes
agentIdstringyes
newState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
oldState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
timestampnumberyes

adapter:openai-node.turn.step_finished (event)

Section titled “adapter:openai-node.turn.step_finished (event)”

Schema for a turn state change event. Emitted by adapters whenever the turn state machine transitions.

Subject: adapter:openai-node.turn.step_finished Type: Event

FieldTypeRequired
adapterIdstringyes
agentIdstringyes
newState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
oldState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
timestampnumberyes

adapter:openai-node.turn.step_started (event)

Section titled “adapter:openai-node.turn.step_started (event)”

Schema for a turn state change event. Emitted by adapters whenever the turn state machine transitions.

Subject: adapter:openai-node.turn.step_started Type: Event

FieldTypeRequired
adapterIdstringyes
agentIdstringyes
newState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
oldState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
timestampnumberyes

adapter:openai-node.turn.turn_finished (event)

Section titled “adapter:openai-node.turn.turn_finished (event)”

Schema for a turn state change event. Emitted by adapters whenever the turn state machine transitions.

Subject: adapter:openai-node.turn.turn_finished Type: Event

FieldTypeRequired
adapterIdstringyes
agentIdstringyes
newState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
oldState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
timestampnumberyes

adapter:openai-node.turn.turn_started (event)

Section titled “adapter:openai-node.turn.turn_started (event)”

Schema for a turn state change event. Emitted by adapters whenever the turn state machine transitions.

Subject: adapter:openai-node.turn.turn_started Type: Event

FieldTypeRequired
adapterIdstringyes
agentIdstringyes
newState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
oldState"idle" | "turn_started" | "step_started" | "step_finished" | "turn_finished"yes
timestampnumberyes

Schema for token usage event. Based on OpenAI CompletionUsage structure with additional cache fields.

Subject: adapter:openai-node.usage Type: Event

FieldTypeRequired
completion_tokensnumberyes
completion_tokens_details{ accepted_prediction_tokens?: number | undefined; audio_tokens?: number | undefined; reasoning_tokens?: number | undefined; rejected_prediction_tokens?: number | undefined; } | undefinedno
eventType"usage"yes
prompt_tokensnumberyes
prompt_tokens_details{ audio_tokens?: number | undefined; cached_tokens?: number | undefined; } | undefinedno
total_tokensnumberyes

Auto-generated by yarn docs:bus. Do not edit manually.