ti-code-providers
v0.1.8
Published
Effect v4 native provider implementations for ti
Downloads
315
Maintainers
Readme
ti-code-providers
Effect-native provider adapters for ti-code.
The current package includes OpenAI streaming, an experimental OpenAI Responses WebSocket transport, ChatGPT auth/model helpers with Codex Responses WebSocket as the default transport, and the OpenAI Codex OAuth helper used by the CLI. The Anthropic adapter remains deferred while the first vertical slice stays focused on the OpenAI/ChatGPT path.
Exports
ti-code-providers- main provider surface.ti-code-providers/openai- OpenAI adapter with HTTP SSE by default and optional Responses WebSocket transport viaTI_OPENAI_TRANSPORT=responses-websocket.ti-code-providers/chatgpt- ChatGPT model and request helpers. The default transport is Codex Responses WebSocket with pre-event SSE fallback; passtransport: "sse"to force HTTP SSE.ti-code-providers/auth-storage- file-backed auth storage boundary.ti-code-providers/openai-codex-oauth- provider-neutral OAuth flow.ti-code-providers/openai-codex-oauth-node- Node-specific OAuth helper.
Runtime
The public npm package targets Node.js 20 or newer. Runtime-specific portable bundles are produced by the CLI release workflow rather than this package.
The default OpenAI transport remains HTTP SSE. Responses WebSocket mode requires
a runtime whose globalThis.WebSocket accepts handshake headers.
The ChatGPT/Codex Responses WebSocket path is now the default ChatGPT transport
and is covered by deterministic provider tests for URL normalization,
header/frame construction, event decoding, close errors, and pre-event SSE
fallback. A live gpt-5.5 probe passed on 2026-05-24, and the adapter strips
max_output_tokens from ChatGPT WebSocket frames because the live endpoint
rejected that field. Use the secret-safe probe when validating another account,
model, runtime, or header shape:
pnpm exec tsx packages/providers/scripts/probe-chatgpt-codex-wss.tsSee
docs/research/chatgpt-codex-wss-validation.md
for the evidence boundary and inferred details.
