@mast-ai/openai
v0.8.0
Published
OpenAI `LlmAdapter`s for [MAST](https://github.com/andreban/mast-ai). Calls OpenAI directly from the browser, bypassing the URP backend entirely.
Downloads
987
Readme
@mast-ai/openai
OpenAI LlmAdapters for MAST. Calls OpenAI directly from the browser, bypassing the URP backend entirely.
Two adapters ship side by side:
OpenAIChatCompletionsAdapterwraps the Chat Completions API. Broad model coverage, works against OpenAI-compatible providers (OpenRouter, DeepSeek). Reasoning content from compatible providers is forwarded asthinkingevents; OpenAI itself does not expose reasoning content via this endpoint.OpenAIResponsesAdapterwraps the Responses API. Required to surface reasoning summaries fromgpt-5ando-seriesmodels asthinkingevents.
Both support tool calling, streaming, and structured output.
Install
npm install @mast-ai/core @mast-ai/openaiChat Completions usage
import { AgentRunner, ToolRegistry, createAgent } from '@mast-ai/core';
import { OpenAIChatCompletionsAdapter } from '@mast-ai/openai';
const adapter = new OpenAIChatCompletionsAdapter(
import.meta.env.VITE_OPENAI_API_KEY,
'gpt-4o-mini',
);
const registry = new ToolRegistry();
// ...register tools...
const agent = createAgent({ name: 'Assistant', instructions: '...', tools: [] });
const runner = new AgentRunner(adapter, registry);
const result = await runner.run(agent, 'Hello!');Responses API usage (with reasoning)
import { OpenAIResponsesAdapter } from '@mast-ai/openai';
const adapter = new OpenAIResponsesAdapter(apiKey, 'gpt-5', undefined, {
reasoningEffort: 'medium',
// reasoningSummary defaults to "auto"; set to false to disable thinking events.
});OpenAIResponsesAdapter runs statelessly (store: false) — the runner's Conversation history is replayed on every request. With reasoningSummary set, every reasoning model call emits thinking events alongside the final text.
Note: Calling OpenAI directly from the browser exposes your API key. Use this in trusted contexts (extensions, internal tools, demos) or front it with a proxy that injects the key server-side. Both adapters set
dangerouslyAllowBrowser: trueto permit browser usage of the official OpenAI SDK.
License
Apache-2.0. Copyright 2026 Andre Cipriani Bandarra.
