summaryrefslogtreecommitdiff
path: root/libpanto/src/provider_anthropic_messages.zig
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-06-13 11:52:00 -0600
committert <t@tjp.lol>2026-06-15 15:08:32 -0600
commit9308feabc045a3afd7eeb304a2324d17d03246df (patch)
treec3efa7b54268af94deb0fd00d99a5d53d1f86ac9 /libpanto/src/provider_anthropic_messages.zig
parentdeb4ce4a1a76869771bfcdd758455c49815f0d13 (diff)
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.
Diffstat (limited to 'libpanto/src/provider_anthropic_messages.zig')
-rw-r--r--libpanto/src/provider_anthropic_messages.zig10
1 files changed, 9 insertions, 1 deletions
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,