SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
68d7816 verified
Raw History Blame Contribute Delete
1.33 kB
import type { ProtocolBase } from '#human/llm/protocol/base';
import type { ProtocolTraitFor } from '#human/llm/provider/definition';
import { anthropicBase } from '#human/llm/requester/bases/anthropic/requester';
import { googleGenAIBase } from '#human/llm/requester/bases/google-genai/requester';
import { openAIBase } from '#human/llm/requester/bases/openai/requester';
import { openAIResponsesBase } from '#human/llm/requester/bases/openai-responses/requester';
import type { Protocol } from './protocol';
export type ProtocolBaseId = Protocol;
export interface ProtocolBaseDefinition {
readonly id: ProtocolBaseId;
readonly base: ProtocolBase<ProtocolTraitFor<Protocol>>;
}
export interface ResolvedAdapterIdentity {
readonly baseId: ProtocolBaseId;
readonly trait?: ProtocolTraitFor<Protocol>;
}
const PROTOCOL_BASES: readonly ProtocolBaseDefinition[] = [
{ id: 'openai', base: openAIBase },
{ id: 'openai_responses', base: openAIResponsesBase },
{ id: 'anthropic', base: anthropicBase },
{ id: 'google-genai', base: googleGenAIBase },
];
export function getProtocolBase(id: ProtocolBaseId): ProtocolBaseDefinition | undefined {
return PROTOCOL_BASES.find((definition) => definition.id === id);
}
export function listProtocolBases(): readonly ProtocolBaseDefinition[] {
return PROTOCOL_BASES;
}