From deb4ce4a1a76869771bfcdd758455c49815f0d13 Mon Sep 17 00:00:00 2001 From: t Date: Sat, 13 Jun 2026 11:50:00 -0600 Subject: auth: clean-break named [auth.] sessions + extra_headers Replace provider-level api_key/api_key_env_var with named auth sessions: providers now reference `auth = ""` and credentials live under `[auth.]`. Adds the libpanto auth type surface (AuthConfig, TokenSet, ResolvedCredential), a Header type and provider `extra_headers`, and rewires the CLI config loader (parse [auth.], require auth=, providers always survive, eager api_key resolution). Updates the shipped default config. --- libpanto/src/public.zig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'libpanto/src/public.zig') diff --git a/libpanto/src/public.zig b/libpanto/src/public.zig index 277b4ea..2ee44dd 100644 --- a/libpanto/src/public.zig +++ b/libpanto/src/public.zig @@ -29,6 +29,7 @@ const std = @import("std"); const config_mod = @import("config.zig"); +const auth_mod = @import("auth.zig"); const conversation_mod = @import("conversation.zig"); const agent_mod = @import("agent.zig"); const stream_mod = @import("stream.zig"); @@ -69,6 +70,21 @@ pub const Effort = config_mod.Effort; pub const CompactionConfig = config_mod.CompactionConfig; pub const RetryConfig = config_mod.RetryConfig; pub const WireIdentity = config_mod.WireIdentity; +pub const Header = config_mod.Header; + +// =========================================================================== +// Auth (data + flows, aliased) +// =========================================================================== + +pub const AuthConfig = auth_mod.AuthConfig; +pub const AuthType = auth_mod.AuthType; +pub const ApiKeyAuth = auth_mod.ApiKeyAuth; +pub const OAuthDeviceAuth = auth_mod.OAuthDeviceAuth; +pub const ExchangeConfig = auth_mod.ExchangeConfig; +pub const DeviceDialect = auth_mod.DeviceDialect; +pub const TokenRequestFormat = auth_mod.TokenRequestFormat; +pub const TokenSet = auth_mod.TokenSet; +pub const ResolvedCredential = auth_mod.ResolvedCredential; // =========================================================================== // Conversation construction (data, aliased) @@ -205,6 +221,7 @@ test { // Internal modules' tests (not part of the public surface, but their // tests must still run). std.testing.refAllDecls(config_mod); + std.testing.refAllDecls(auth_mod); std.testing.refAllDecls(conversation_mod); std.testing.refAllDecls(agent_mod); std.testing.refAllDecls(stream_mod); -- cgit v1.3