Commit graph

14 commits

Author SHA1 Message Date
Franz Kafka
1c3eccce10 Use shared HTTP client for upstream requests
- Create package-level httpClient with 300s timeout\n- Reuse client instead of creating new one per request\n- Prevents resource exhaustion under load\n- Reduces connection overhead
2026-04-15 09:02:17 +00:00
Franz Kafka
b906d49f9e Add Nix flake for reproducible builds
- Add flake.nix with buildGoModule for reproducible binary builds
- Provide dev shell with Go toolchain (go, gopls, gotools)
- Update README with Nix build and dev shell instructions
- Add MIT LICENSE file

Note: vendorHash is set to null - run `nix build` to generate actual hash
2026-04-15 08:51:07 +00:00
Franz Kafka
9bc49a25e1 Add comprehensive README
- Document features, configuration, and API endpoints
- Include request/response examples for streaming and non-streaming
- Explain field mapping between OpenAI and Anthropic formats
- Document security headers and claude-code mimicry
- Add project structure overview and build instructions
2026-04-15 08:47:16 +00:00
73efb02461 fix: use non-streaming upstream requests, convert to SSE for clients 2026-04-15 08:38:54 +00:00
5989e9a390 fix: add thinking parameter to match claude-code request format 2026-04-15 08:30:09 +00:00
35878c0a92 debug: log request body 2026-04-15 08:21:24 +00:00
4d2ccfdaaa fix: add claude-code-20250219 beta header to match claude-code 2026-04-15 08:19:08 +00:00
8e282db13a debug: log raw upstream events 2026-04-15 08:05:30 +00:00
42118d803e fix: add missing log import 2026-04-15 07:59:48 +00:00
02989e59b5 fix: always stream from upstream, accumulate for non-streaming clients 2026-04-15 07:55:26 +00:00
Franz Kafka
f284f8dbde Add explicit blocked headers list for security
- Define blockedHeaders map for headers that should never be forwarded
- Include Referer, Cookie, X-Forwarded-* headers
- Prevents leaking internal URLs, session data, and client IPs to upstream
- Defensive measure even though no headers are currently copied
2026-04-15 06:48:37 +00:00
Franz Kafka
8450d96e2e Implement OpenAI-to-Anthropic proxy with streaming support
- Add request/response converters (OpenAI <-> Anthropic formats)
- Implement SSE streaming conversion (Anthropic events -> OpenAI SSE)
- Add /v1/models endpoint with Claude model list
- Add /v1/chat/completions endpoint with streaming and non-streaming support
- Fix context key type matching bug (sessionIDKey)
- Configurable upstream URL via config.yaml
- Mimic claude-code CLI headers for upstream requests
2026-04-15 06:29:03 +00:00
87a74edbf5 . 2026-04-15 01:38:44 +00:00
4fb87b75a8 Add OpenAI-to-Anthropic proxy design spec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 01:20:39 +00:00