From eb19fd812e15de5a6930daf2fcd0b2b0757687c7 Mon Sep 17 00:00:00 2001 From: t Date: Sat, 13 Jun 2026 12:22:18 -0600 Subject: auth: openai_responses provider for Codex subscription (Tier 2) Add the OpenAI Responses API wire dialect (openai_responses APIStyle + OpenAIResponsesConfig), a request serializer (instructions/input items, flat function tools, reasoning, store:false, include encrypted reasoning), and a streaming state machine over the typed response.* SSE events mapping to the shared block model. Wire dispatch, buildProviderConfig, the C-ABI free switch, and the reasoning selectors. Ship a commented Codex example in the default config. Implemented from the Responses API docs + the open-source Codex client and covered by fixture tests; live verification against a ChatGPT plan is still required (documented). --- libpanto/src/public.zig | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libpanto/src/public.zig') diff --git a/libpanto/src/public.zig b/libpanto/src/public.zig index ec8534a..339c6f1 100644 --- a/libpanto/src/public.zig +++ b/libpanto/src/public.zig @@ -67,6 +67,7 @@ pub const Config = config_mod.Config; pub const ProviderConfig = config_mod.ProviderConfig; pub const OpenAIChatConfig = config_mod.OpenAIChatConfig; pub const AnthropicMessagesConfig = config_mod.AnthropicMessagesConfig; +pub const OpenAIResponsesConfig = config_mod.OpenAIResponsesConfig; pub const APIStyle = config_mod.APIStyle; pub const ReasoningEffort = config_mod.ReasoningEffort; pub const Thinking = config_mod.Thinking; @@ -236,6 +237,8 @@ const openai_chat_json = @import("openai_chat_json.zig"); const provider_openai_chat = @import("provider_openai_chat.zig"); const anthropic_messages_json = @import("anthropic_messages_json.zig"); const provider_anthropic_messages = @import("provider_anthropic_messages.zig"); +const openai_responses_json = @import("openai_responses_json.zig"); +const provider_openai_responses = @import("provider_openai_responses.zig"); const compaction_mod = @import("compaction.zig"); const sse_mod = @import("sse.zig"); const tool_registry_mod = @import("tool_registry.zig"); @@ -274,4 +277,6 @@ test { std.testing.refAllDecls(provider_openai_chat); std.testing.refAllDecls(anthropic_messages_json); std.testing.refAllDecls(provider_anthropic_messages); + std.testing.refAllDecls(openai_responses_json); + std.testing.refAllDecls(provider_openai_responses); } -- cgit v1.3