SPB Git

Repository Public

index.ts 1.5 KB 32 lines typescript

1import type { Provider } from '@aos/shared';2import { createAnthropicAdapter } from './anthropic.js';3import { createOpenAIAdapter } from './openai.js';4import type { ProviderAdapter } from './types.js';56export type { AdapterOptions, ModelDelta, ModelRequest, PriceDb, ProviderAdapter, ProviderResponse, ToolDef } from './types.js';7export { ProviderError, parseRetryAfter, type ProviderErrorInit } from './errors.js';8export {9  CATALOGUE, PRICE_TABLE, PRICE_EFFECTIVE_FROM, catalogueEntry, priceRow, priceUsage, promptTokens, seedPrices,10  type PriceRow, type PriceTier, type TokenUsage,11} from './catalogue.js';12export {13  INVALID_TOOL_INPUT_PREFIX, invalidToolInputMessage, markInvalidToolInput, parseInvalidToolInput,14  stripNullOptionals, toStrictSchema, validateToolInput, type InvalidToolInput,15} from './schema.js';16export {17  ANTHROPIC_DEFAULT_MAX_TOKENS, ANTHROPIC_FALLBACK_BETA, ANTHROPIC_STRICT_UNION_LIMIT, buildAnthropicRequest, countUnionParams, createAnthropicAdapter,18} from './anthropic.js';19export { OPENAI_DEFAULT_MAX_OUTPUT_TOKENS, TOOL_ERROR_PREFIX, buildOpenAIRequest, createOpenAIAdapter } from './openai.js';2021const adapters = new Map<Provider, ProviderAdapter>();2223/** Process-wide adapter for a provider. API keys are read from the environment on first use, never at import. */24export function getProvider(id: Provider): ProviderAdapter {25  let adapter = adapters.get(id);26  if (!adapter) {27    adapter = id === 'anthropic' ? createAnthropicAdapter() : createOpenAIAdapter();28    adapters.set(id, adapter);29  }30  return adapter;31}32
Files main
Menu

Theme