import type { CaseCondition } from "./case-condition.js"; export type AiModelSlot = "preActionModel" | "skillModel" | "postActionModel"; export type ModelFallbackTrigger = "nodeSlotMissing" | "nodeModelInvalid" | "nodeModelUnavailable" | "nodeModelUnsupported" | "nodeProviderNotConfigured" | "nodeModelRateLimited" | "nodeModelTransientFailure"; export interface AiModelParams { temperature?: number; maxTokens?: number; reasoningEffort?: "none" | "low" | "medium" | "high"; timeoutMs?: number; } /** @deprecated Use AiProfileChoiceModelSelection with kind "profileChoice". */ export interface AiProfileModelSelection { kind: "profile"; profile: string; choice?: string; params?: AiModelParams; } export interface AiProfileChoiceModelSelection { kind: "profileChoice"; key: string; params?: AiModelParams; } export interface AiConcreteModelSelection { kind: "model"; provider: string; modelId: string; /** @deprecated Use modelId. Accepted during validation for backward compatibility. */ model?: string; params?: AiModelParams; } export type AiModelSelection = AiProfileChoiceModelSelection | AiConcreteModelSelection | AiProfileModelSelection; export interface RequiredAiModelTriplet { preActionModel: AiModelSelection; skillModel: AiModelSelection; postActionModel: AiModelSelection; } export interface PartialAiModelTriplet { preActionModel?: AiModelSelection; skillModel?: AiModelSelection; postActionModel?: AiModelSelection; } /** Request-level MAIN tuning beside profile routing slots (not per-slot `params`). */ export interface CaseLevelModelTuning { temperature?: number; reasoningEffort?: AiModelParams["reasoningEffort"]; } export interface GraphCaseModelConfig extends RequiredAiModelTriplet, CaseLevelModelTuning { } export interface PartialCaseModelConfig extends PartialAiModelTriplet, CaseLevelModelTuning { } export interface GraphModelConfigCase { id: string; when?: CaseCondition; modelConfig: GraphCaseModelConfig; description?: string; } export interface GraphModelFallbackPolicy { enabled: boolean; slots?: AiModelSlot[]; allowedTriggers: ModelFallbackTrigger[]; maxAttemptsPerSlot?: number; } export interface NormalizedGraphModelConfig { [key: string]: unknown; cases: GraphModelConfigCase[]; fallbackPolicy?: GraphModelFallbackPolicy; } /** Authoring form may use `default` shorthand instead of `cases`. */ export interface AuthoringGraphModelConfig { [key: string]: unknown; default?: GraphCaseModelConfig; cases?: GraphModelConfigCase[]; fallbackPolicy?: GraphModelFallbackPolicy; } export type GraphModelConfig = NormalizedGraphModelConfig; export interface NodeModelConfigCase { id: string; when?: CaseCondition; modelConfig: PartialCaseModelConfig; description?: string; } /** Authoring form may use `modelConfig` shorthand instead of `cases`. */ export interface AuthoringNodeModelConfig { [key: string]: unknown; inherit?: boolean; modelConfig?: PartialCaseModelConfig; cases?: NodeModelConfigCase[]; } export type NodeModelConfig = AuthoringNodeModelConfig; //# sourceMappingURL=model-config.d.ts.map