NAME
Langertha::Manifest::Endpoint - One endpoint of a provider manifest: wire dialect, base URL, auth reference
VERSION
version 0.503
SYNOPSIS
my $endpoint = Langertha::Manifest::Endpoint->new(
id => 'chat',
dialect => 'openai-chat',
base_url => 'https://provider.example/v1',
auth_ref => 'api',
);
if ( $endpoint->is_known_dialect ) { ... }
DESCRIPTION
An endpoint of a Langertha::Manifest: where to talk (base_url), which wire envelope to speak (dialect) and which auth mechanism it needs (auth_ref, absent when it needs none). Immutable; validated on construction.
id
Local id of the endpoint, unique within the manifest; models point at it with endpoint_ref.
dialect
The wire dialect token (see "known_dialects"). A pattern-valid but unknown dialect is accepted — whether a client has an adapter for it is "is_known_dialect", a separate question from validity.
base_url
http/https URL; exactly what a Langertha engine of this dialect takes as url (the dialect decides which path it appends). Printable ASCII, never carries userinfo, a query string or a fragment. This keeps the usual credential carriers out of a published URL; it is best effort — a secret embedded in the path itself cannot be told apart from a real path.
auth_ref
Id of the Langertha::Manifest::Auth entry this endpoint needs, or undef when it needs no credentials.
known_dialects
my @dialects = Langertha::Manifest::Endpoint->known_dialects;
The v1 dialect vocabulary: openai-chat, responses, perplexity-agent, anthropic (first-party Messages API), anthropic-compat (the /anthropic shims: structured output via a synthetic tool and forced choice), gemini, ollama, aki, lmstudio.
is_known_dialect
True when "dialect" is in the v1 vocabulary.
from_hash
my $endpoint = Langertha::Manifest::Endpoint->from_hash(\%data);
Builds an endpoint from its JSON object form, rejecting unknown and forbidden fields.
to_hash
Returns the JSON object form; auth_ref is omitted when undefined.
SEE ALSO
Langertha::Manifest - The provider manifest
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/langertha/issues.
IRC
Join #langertha on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus https://raudssus.de/.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.