v0.0.29
v0.0.29 Changelog
OpenResponses Provider
New responses() provider implementing the OpenResponses specification - an open-source standard for multi-provider, interoperable LLM interfaces.
Features
- Configurable host URL for any OpenResponses-compatible server
- Full multimodal support: text, images, documents, video, audio
- Streaming with semantic SSE events
- Function/tool calling with parallel execution
- Structured output via JSON schema
- Reasoning summaries for gpt-5/o-series models
- Multi-turn conversation context preservation
Usage
import { llm } from '@providerprotocol/ai';
import { responses } from '@providerprotocol/ai/responses';
// Using with OpenAI
const model = llm({
model: responses('gpt-5.2', {
host: 'https://api.openai.com/v1',
apiKeyEnv: 'OPENAI_API_KEY'
}),
params: { max_output_tokens: 1000 }
});
const turn = await model.generate('Hello!');// Using with OpenRouter
const routerModel = llm({
model: responses('openai/gpt-4o', {
host: 'https://openrouter.ai/api/v1',
apiKeyEnv: 'OPENROUTER_API_KEY'
})
});// Using with self-hosted server
const localModel = llm({
model: responses('llama-3.3-70b', {
host: 'http://localhost:8080/v1'
})
});Provider Options
interface ResponsesProviderOptions {
host: string; // Required: Base URL (e.g., 'https://api.openai.com/v1')
apiKeyEnv?: string; // Optional: Env var name (default: 'OPENRESPONSES_API_KEY')
}Parameters
interface ResponsesParams {
max_output_tokens?: number;
temperature?: number;
top_p?: number;
presence_penalty?: number;
frequency_penalty?: number;
reasoning?: { effort?: 'none' | 'low' | 'medium' | 'high' | 'xhigh'; summary?: 'auto' | 'concise' | 'detailed' };
truncation?: 'auto' | 'disabled';
parallel_tool_calls?: boolean;
// ... and more
}New Exports
From @providerprotocol/ai/responses:
responses- Provider factoryResponsesProviderOptionsResponsesParamsResponsesRequestResponsesResponseResponsesStreamEventResponsesUsageResponsesInputItemResponsesOutputItemResponsesContentPartResponsesFunctionToolResponsesBuiltInToolResponsesToolUnionResponsesHeaders
New Files
src/providers/responses/types.ts- Type definitionssrc/providers/responses/transform.ts- Request/response transformerssrc/providers/responses/llm.ts- LLM handlersrc/providers/responses/index.ts- Provider factorysrc/responses/index.ts- Re-export entry point
Tests
-
tests/unit/providers/responses.transform.test.ts- 15 unit tests for transforms -
tests/live/responses.live.test.ts- 13 live tests against OpenAI backend