File size: 1,328 Bytes
68d7816 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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;
}
|