From 9308feabc045a3afd7eeb304a2324d17d03246df Mon Sep 17 00:00:00 2001 From: t Date: Sat, 13 Jun 2026 11:52:00 -0600 Subject: auth: thread provider extra_headers into request headers (C6) Add provider.mergeHeaders and use it in both the openai_chat and anthropic_messages providers so config extra_headers ride on the model request, merged onto the built-in header set. --- libpanto/src/provider_anthropic_messages.zig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libpanto/src/provider_anthropic_messages.zig') diff --git a/libpanto/src/provider_anthropic_messages.zig b/libpanto/src/provider_anthropic_messages.zig index be4268e..8f5d200 100644 --- a/libpanto/src/provider_anthropic_messages.zig +++ b/libpanto/src/provider_anthropic_messages.zig @@ -96,7 +96,15 @@ pub const AnthropicMessagesRequest = struct { .value = "interleaved-thinking-2025-05-14", }; } - const extra_headers = headers_buf[0 .. if (send_interleaved) @as(usize, 5) else @as(usize, 4)]; + const base_headers = headers_buf[0 .. if (send_interleaved) @as(usize, 5) else @as(usize, 4)]; + // Merge any provider `extra_headers` onto the base set. Freed at the + // end of `open` — after the request body has been flushed. + const extra_headers = try provider_mod.mergeHeaders( + self.allocator, + base_headers, + self.config.extra_headers, + ); + defer self.allocator.free(extra_headers); rr.req = try self.http_client.request(.POST, uri, .{ .extra_headers = extra_headers, -- cgit v1.3