import type { ModelProtocol } from "../protocol/canonical.js";
import type { ModelCapabilities } from "../protocol/capabilities.js";
import type { MultimodalConstraints } from "../protocol/multimodal.js";
export type RawModelConfig = {
providers?: unknown;
};
export type RawProviderConfig = {
protocol?: unknown;
url?: unknown;
apiKey?: unknown;
timeoutMs?: unknown;
headers?: unknown;
extraBody?: unknown;
retry?: unknown;
models?: unknown;
};
export type RawModelDefinition = {
displayName?: unknown;
capabilities?: unknown;
multimodal?: unknown;
aliases?: unknown;
};
export type RawCapabilities = Partial<Record<keyof ModelCapabilities, unknown>>;
export type RawMultimodal = Partial<Record<keyof MultimodalConstraints, unknown>>;
export function isRecord(value: unknown): value is Record<string, unknown> {
return typeof value === "object" && value !== null && !Array.isArray(value);
}
export function isModelProtocol(value: unknown): value is ModelProtocol {
return value === "anthropic" || value === "openai";
}