import type { WorkflowStep } from '../models/types.js'; import type { AutoRoutingConfig, PersonaProviderEntry, ProviderRoutingConfig, ProviderRoutingEntry, TagRoutingConflictPolicy } from '../models/config-types.js'; import type { ProviderType } from './types.js'; import type { ProviderResolutionSource } from './provider-options-trace.js'; export interface ProviderModelResolutionContext { provider?: ProviderType; model?: string; autoRouting?: AutoRoutingConfig; providerRouting?: ProviderRoutingConfig; personaProviders?: Record; /** Permission mode tied to the engine-level runtime defaults profile. */ permissionMode?: import('../models/types.js').PermissionMode; } export interface StepProviderModelInput extends ProviderModelResolutionContext { step: Pick & { name?: string; providerSpecified?: boolean; modelSpecified?: boolean; providerRoutingPersonaKey?: string; tags?: string[]; }; /** Source layer of `provider` argument (engine-level fallback). */ providerSource?: ProviderResolutionSource; /** Source layer of `model` argument (engine-level fallback). */ modelSource?: ProviderResolutionSource; /** * How to resolve a step whose tag set maps to two or more distinct tag routing * assignments at the same priority. Defaults to `last-wins` (legacy merge order); the * runtime-v1 environment sets `fail-fast` so conflicts throw before the agent runs. */ tagConflictPolicy?: TagRoutingConflictPolicy; } export interface StepProviderModelOutput { provider: ProviderType | undefined; model: string | undefined; providerSource?: ProviderResolutionSource; modelSource?: ProviderResolutionSource; permissionMode?: import('../models/types.js').PermissionMode; providerOptions?: import('../models/workflow-types.js').StepProviderOptions; } export interface WorkflowCallProviderModelInput { provider?: ProviderType; providerSource?: ProviderResolutionSource; model?: string; modelSource?: ProviderResolutionSource; /** Permission mode tied to the inherited provider source. */ permissionMode?: import('../models/types.js').PermissionMode; } export interface WorkflowCallProviderModelOutput { provider: ProviderType | undefined; providerSource?: ProviderResolutionSource; model: string | undefined; modelSource?: ProviderResolutionSource; permissionMode?: import('../models/types.js').PermissionMode; } export interface LoopMonitorJudgeProviderModelInput { judgeProviderInfo: StepProviderModelOutput; triggeringProviderInfo: StepProviderModelOutput; } export interface LoopMonitorJudgeProviderModelOutput { provider: ProviderType | undefined; model: string | undefined; providerSource?: ProviderResolutionSource; modelSource?: ProviderResolutionSource; permissionMode?: import('../models/types.js').PermissionMode; providerOptions?: import('../models/workflow-types.js').StepProviderOptions; } export interface AgentProviderModelInput { cliProvider?: ProviderType; cliModel?: string; personaProviders?: Record; personaDisplayName?: string; localProvider?: ProviderType; localModel?: string; globalProvider?: ProviderType; globalModel?: string; } export interface AgentProviderModelOutput { provider?: ProviderType; model?: string; } interface ProviderModelOverride { provider?: ProviderType; providerSpecified: boolean; model?: string; modelSpecified: boolean; source: ProviderResolutionSource; } export declare function applyProviderModelOverride(current: T, override: ProviderModelOverride): T; export declare function tagRoutingEntryIdentity(entry: Pick): string; /** * 同一優先度で複数の tag が一致したとき、それらが同じ割り当てを指しているかを判定する。 * stage 0 の割り当てと promotion の ladder 選択が同じ判定を共有するために公開している。 * 別実装にすると、片方が fail-fast する入力をもう片方が黙って last-wins で解決する。 */ export declare function assertTagMatchesAgree(matches: readonly { tag: string; identity: string; }[], policy: TagRoutingConflictPolicy | undefined, conflictSubject: string): void; export declare function resolveAgentProviderModel(input: AgentProviderModelInput): AgentProviderModelOutput; export declare function resolveStepProviderModel(input: StepProviderModelInput): StepProviderModelOutput; export declare function resolveWorkflowCallProviderModel(input: WorkflowCallProviderModelInput): WorkflowCallProviderModelOutput; export declare function resolveLoopMonitorJudgeProviderModel(input: LoopMonitorJudgeProviderModelInput): LoopMonitorJudgeProviderModelOutput; export {}; //# sourceMappingURL=provider-resolution.d.ts.map