Mirrors the Python coverage gap closure: every derived-only helper
(memoryDbPath, nativeMemoryDir, logDir, rtkPath, beaconLockPath,
pluginConfigDir, etc.) now has both a default test and an override test
that exercises the canonical workspace env var end-to-end.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- ToolCallPart: read `input` (v6) with fallback to `args` (legacy) in vercelToOpenAI
- ToolCallPart: produce `input` instead of `args` in openAIToVercel
- ToolResultPart: produce `output: { type, value }` instead of `result` in openAIToVercel
- ToolResultPart: read `output` (v6) with fallback to `result` (legacy) in vercelToOpenAI
- Add MDX example tests: verify every code sample from PR docs against real APIs
- 116 tests passing (unit + integration + e2e with OpenAI + Anthropic)
- compress() now accepts messages in any of 4 formats and returns the same format
- Format detection is structural: Gemini (parts field), Vercel (tool-call hyphen),
Anthropic (tool_use underscore), OpenAI (tool_calls field)
- Added converters: anthropicToOpenAI, geminiToOpenAI, and their inverses
- Updated openAIToVercel to produce AI SDK v6 output format (output: {type, value})
- E2E tested with real Vercel AI SDK + OpenAI gpt-4o-mini + Anthropic claude-haiku-4-5
- headroomMiddleware() proven working: transparently compresses before LLM call
- 14 format detection unit tests, 5 format integration tests, 3 Vercel AI SDK e2e tests
- New `compress()` function: HTTP client calling POST /v1/compress on the proxy
- HeadroomClient: reusable client with retry, fallback, auth support
- Vercel AI SDK adapter: headroomMiddleware() for wrapLanguageModel()
- OpenAI SDK adapter: withHeadroom() Proxy wrapper
- Anthropic SDK adapter: withHeadroom() Proxy wrapper
- Format converters: Vercel AI SDK ↔ OpenAI message format round-trip
- POST /v1/compress proxy endpoint: compression without LLM call
- 90 TypeScript tests (84 unit + 6 integration) + 9 Python tests
- Zero runtime dependencies, all framework peers optional
- Updated README, proxy docs, integration guide, and 6 other doc pages
- New docs/typescript-sdk.md with full SDK documentation
- Removed docs/superpowers/ from tracking (.gitignore)