completionsRunAdapter
The default run adapter. Rewrites every run into one or more /chat/completions calls. Works with every provider Supercompat supports.
Signature
No options.
Responses API (any provider)
import OpenAI from 'openai'
import {
supercompat,
openaiClientAdapter,
completionsRunAdapter,
memoryStorageAdapter,
} from 'supercompat/openai'
const client = supercompat({
clientAdapter: openaiClientAdapter({ openai: new OpenAI() }),
storageAdapter: memoryStorageAdapter(),
runAdapter: completionsRunAdapter(),
})
const response = await client.responses.create({
model: 'gpt-4.1-mini',
input: 'Hello.',
})
Anthropic via Completions
import Anthropic from '@anthropic-ai/sdk'
import {
supercompat,
anthropicClientAdapter,
completionsRunAdapter,
memoryStorageAdapter,
} from 'supercompat/openai'
const client = supercompat({
clientAdapter: anthropicClientAdapter({ anthropic: new Anthropic() }),
storageAdapter: memoryStorageAdapter(),
runAdapter: completionsRunAdapter(),
})
await client.responses.create({
model: 'claude-sonnet-4-6',
input: 'Why pick Claude?',
})
Groq via Completions
import Groq from 'groq-sdk'
import {
supercompat,
groqClientAdapter,
completionsRunAdapter,
memoryStorageAdapter,
} from 'supercompat/openai'
const client = supercompat({
clientAdapter: groqClientAdapter({ groq: new Groq() }),
storageAdapter: memoryStorageAdapter(),
runAdapter: completionsRunAdapter(),
})
await client.responses.create({
model: 'llama-3.3-70b-versatile',
input: 'Give me a one-sentence answer.',
})
Tool use
await client.responses.create({
model: 'gpt-4.1-mini',
input: 'What is the weather in Berlin?',
tools: [
{
type: 'function',
name: 'get_weather',
parameters: {
type: 'object',
properties: { city: { type: 'string' } },
required: ['city'],
},
},
],
})
Function tools round-trip through /chat/completions for every backend.
Streaming
const stream = await client.responses.create({
model: 'llama-3.3-70b-versatile',
input: 'Count to five.',
stream: true,
})
for await (const event of stream) {
if (event.type === 'response.output_text.delta') process.stdout.write(event.delta)
}
Compatible client adapters