@nyrra/foundry-ai
Version:
Thin Palantir Foundry provider adapters and model catalog for the Vercel AI SDK.
60 lines (44 loc) • 1.56 kB
text/typescript
import { resolve } from 'node:path';
import process from 'node:process';
import type { AnthropicModelId, GoogleModelId, OpenAIModelId } from '@nyrra/foundry-ai';
export type ProviderName = 'openai' | 'anthropic' | 'google';
const LOCAL_ENV_FILE = resolve(process.cwd(), '.env.local');
export const DEFAULT_OPENAI_MODEL: OpenAIModelId = 'gpt-5.4-nano';
export const DEFAULT_ANTHROPIC_MODEL: AnthropicModelId = 'claude-sonnet-4.6';
export const DEFAULT_GOOGLE_MODEL: GoogleModelId = 'gemini-3.1-flash-lite';
export function resolveCliProvider(defaultProvider: ProviderName = 'openai'): ProviderName {
const provider = process.argv[2];
if (provider == null) {
return defaultProvider;
}
if (provider === 'openai' || provider === 'anthropic' || provider === 'google') {
return provider;
}
throw new Error(
`Unsupported provider "${provider}". Expected "openai", "anthropic", or "google".`,
);
}
export function resolveCliModelId(): string | undefined {
return process.argv[3];
}
export function requireEnv(name: string): string {
const value = process.env[name]?.trim();
if (!value) {
throw new Error(`Missing required environment variable: ${name}`);
}
return value;
}
maybeLoadLocalEnvFile();
function maybeLoadLocalEnvFile() {
if (process.env.FOUNDRY_URL && process.env.FOUNDRY_TOKEN) {
return;
}
if (typeof process.loadEnvFile !== 'function') {
return;
}
try {
process.loadEnvFile(LOCAL_ENV_FILE);
} catch {
// Let the example surface missing environment variables naturally.
}
}