import type { InternalAgentSeats } from '../models/config-types.js'; import type { ProviderType } from '../../shared/types/provider.js'; import type { StepProviderOptions } from '../models/workflow-types.js'; import type { PermissionMode } from '../models/types.js'; /** * loop monitor の判定役が provider routing で使う固定 persona キー。judge に設定された * persona 名ではなくこのキーで引く(`personaDisplayName` はセッションキー等に使う表示名で、 * ルーティング専用のキーとは役割が違う)。 */ export declare const LOOP_JUDGE_ROUTING_KEY = "loop-judge"; /** 実行時に合成される judge ステップ名。検証と実行で同じ名前を使う(routing が step 名で引けるため)。 */ export declare function loopJudgeStepName(cycle: readonly string[]): string; /** * judge ステップへ焼き込む provider/model 指定。 * * providerOptions はここに含めない。provider が決まるまで既定 providerOptions を作れず、 * 検証は provider/model しか見ないため、両者を混ぜると「検証用の下書きステップ」と * 「実行用のステップ」で形が食い違う。runtime.yaml の seat options は internalProviderOptions * として engine-owned step にだけ保持する。 */ export interface LoopJudgeProviderFields { provider?: ProviderType; providerSpecified?: true; model?: string; modelSpecified?: boolean; internalProviderOptions?: StepProviderOptions; internalPermissionMode?: PermissionMode; } /** * judge ステップの provider/model 指定を決める。 * * runtime.yaml の `internal_agents['loop-judge']` seat があればそれを engine-owned step * 直指定として焼き込み、無ければ judge ステップの通常解決 → トリガー元へのフォールバック * が働く。 * * 検証(WorkflowValidator)と実行(LoopMonitorJudgeRunner)が同じ判定を通るよう、 * 生成はここ1箇所に集約する。 */ export declare function loopJudgeProviderFields(seats: InternalAgentSeats | undefined): LoopJudgeProviderFields; //# sourceMappingURL=loop-judge-step.d.ts.map