Skip to content

feat(api): add OpenResponses API provider with provider-namespaced routes#11

Merged
chaliy merged 10 commits intomainfrom
claude/add-openresponses-provider-6HMEc
Jan 17, 2026
Merged

feat(api): add OpenResponses API provider with provider-namespaced routes#11
chaliy merged 10 commits intomainfrom
claude/add-openresponses-provider-6HMEc

Conversation

@chaliy
Copy link
Copy Markdown
Owner

@chaliy chaliy commented Jan 17, 2026

What

Add full OpenResponses API provider support and restructure all API routes to use provider-namespaced pattern.

Why

  • Enable support for OpenResponses specification (https://www.openresponses.org)
  • Provide clear separation between different API providers
  • Support both OpenAI-compatible and OpenResponses-native clients

How

  • New src/openresponses/ module with types and streaming support
  • Provider-namespaced routes: /{provider}/v1/{endpoint}
  • Comprehensive API documentation in docs/api.md
  • Python example for OpenResponses client

Breaking Changes ⚠️

API routes have changed from /v1/... to provider-namespaced format:

Old Route New Route
/v1/chat/completions /openai/v1/chat/completions
/v1/models /openai/v1/models
/v1/models/:id /openai/v1/models/:id
/v1/responses /openai/v1/responses
N/A /openresponses/v1/responses (new)

Risk

  • Medium
  • Existing clients using old routes will need to update their base URLs

Checklist

  • Tests added or updated (96 unit tests, 10 smoke tests)
  • Backward compatibility considered (breaking change documented)
  • Documentation updated (docs/api.md, examples/README.md)
  • Benchmarks updated for new routes

Convert the asciinema cast recording to webm format for broader
compatibility and embedding support in documentation.
Implement full support for the OpenResponses specification
(https://www.openresponses.org) as a first-class provider alongside OpenAI:

- Add openresponses module with complete API types (types.rs)
- Implement OpenResponses streaming format with lifecycle events (stream.rs)
- Add /v1/responses endpoint for both streaming and non-streaming
- Support text and message-based input formats
- Include tool definitions, reasoning config, and metadata support
- Add comprehensive tests for all OpenResponses functionality
- Update README with OpenResponses documentation and examples
- Update architecture spec to document the new module
Change endpoint structure from /v1/... to /{provider}/v1/...:

- /openai/v1/chat/completions
- /openai/v1/models
- /openai/v1/models/:model_id
- /openai/v1/responses
- /openresponses/v1/responses

Both /openai/v1/responses and /openresponses/v1/responses use the
same handler since the APIs are compatible.
- Update OpenAI examples to use /openai/v1/ base path
- Add OpenResponses Python example (openresponses_client.py)
- Update examples/README.md with comprehensive API documentation
- Include quick API test examples with curl commands
- Create docs/api.md with comprehensive API reference
- Simplify examples/README.md to focus on running examples
- Include full endpoint documentation, request/response formats
- Document streaming events for OpenResponses
- Update smoke test endpoints from /v1/... to /openai/v1/...
- Add OpenResponses API tests (non-streaming, message input, streaming)
- Update k6 benchmark endpoints for new route structure
Document that agents should use GitHub API with GITHUB_TOKEN when
gh CLI tool is not available in cloud environments.
Add package.json with openai dependency for running the TypeScript example.
Update .gitignore to exclude node_modules.
Resolve conflicts between OpenResponses provider implementation and main branch updates.
- Keep both openresponses and responses_stream modules
- Rename create_response to create_openresponses_response for OpenResponses API
- Add OpenResponses documentation to README
@chaliy chaliy merged commit 5b2cbb1 into main Jan 17, 2026
8 checks passed
@chaliy chaliy deleted the claude/add-openresponses-provider-6HMEc branch January 17, 2026 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants