import type { WorkflowStep, WorkflowState, Language, WorkflowResumePointEntry, McpServerConfig } from '../../models/types.js'; import type { StepProviderOptions } from '../../models/workflow-types.js'; import type { TaskReviewScope } from '../review-scope.js'; import type { RunAgentOptions } from '../../../agents/runner.js'; import type { WorkflowMeta } from '../../../agents/types.js'; import type { ReportPhaseRunnerContext, StatusJudgmentPhaseContext } from '../phase-runner.js'; import type { ProviderActivityCallback, ProviderType, StreamCallback } from '../../../shared/types/provider.js'; import type { WorkflowEngineOptions, PhaseName, StepProviderInfo, PhasePromptParts, JudgeStageEntry, RuntimeStepResolution } from '../types.js'; type ResolvedRunAgentOptions = RunAgentOptions & { resolvedProviderOptions?: StepProviderOptions; }; export declare class OptionsBuilder { private readonly engineOptions; private readonly getCwd; private readonly getProjectCwd; private readonly getSessionId; private readonly getReportDir; private readonly getLanguage; private readonly getWorkflowSteps; private readonly getWorkflowName; private readonly getWorkflowDescription; private readonly getCurrentWorkflowStack; private readonly getTask?; private readonly getReviewScope?; private readonly getFailureDir?; private readonly getAbortSignal; private readonly recordActivity; private readonly getReportsRootDir?; constructor(engineOptions: WorkflowEngineOptions, getCwd: () => string, getProjectCwd: () => string, getSessionId: (persona: string) => string | undefined, getReportDir: () => string, getLanguage: () => Language | undefined, getWorkflowSteps: () => ReadonlyArray<{ name: string; description?: string; }>, getWorkflowName: () => string, getWorkflowDescription: () => string | undefined, getCurrentWorkflowStack?: () => WorkflowResumePointEntry[] | undefined, getTask?: (() => string) | undefined, getReviewScope?: (() => TaskReviewScope) | undefined, getFailureDir?: (() => string) | undefined, getAbortSignal?: () => AbortSignal | undefined, recordActivity?: ProviderActivityCallback, getReportsRootDir?: (() => string) | undefined); private resolveAbortSignal; /** * 実行に使う provider/model の解決。構成レイヤー(step / persona / routing / * config)で provider が決まらない agent ステップは、auto_routing の * rules → strategy デフォルトへ決定的に補完する。実行ループの AI ルーターを * 通るステップは runtime.providerInfo が優先されるため補完は発動せず、 * ルーターを通らない合成ステップもこの共通経路で * デフォルトまで落ちる。 */ resolveStepProviderModel(step: WorkflowStep, runtime?: RuntimeStepResolution): StepProviderInfo; /** * auto-routing ルーターへの入力専用の解決。auto_routing 有効時、構成レイヤーで * 決まらない provider は undefined のまま返す(= ルーターが決める余地を残す)。 * 実行に使う値が欲しい場合は resolveStepProviderModel を使うこと — こちらを * 実行経路で使うと auto_routing 有効時に provider 未解決のまま進んでしまう。 */ resolveStepProviderModelBeforeAutoRouting(step: WorkflowStep, runtime?: RuntimeStepResolution): StepProviderInfo; buildProviderStream(step: WorkflowStep, provider: ProviderType | undefined, providerModel: string | undefined, output: StreamCallback | undefined): StreamCallback | undefined; buildProviderCallCallbacks(step: WorkflowStep, provider: ProviderType | undefined, providerModel: string | undefined, executionUnitKey: string): Pick & { finish: () => void; }; private buildProviderStreamForExecutionUnit; buildDeadlineActivityCallbacks(executionUnitKey: string, recordActivity?: ProviderActivityCallback): Pick; private resolveProviderOptionsSourcesForStep; private resolveProviderOptionsSourcesForRuntime; private resolveMergedProviderOptions; private resolveConfigProviderOptions; private resolveRuntimeProfileProviderOptions; private resolveProviderOptionLayersForStep; private resolveProfileScopedProviderOptionLayers; private resolveIdentityAwareDirectStepProviderOptions; private isInternalProviderIdentity; /** Build common RunAgentOptions shared by all phases */ buildBaseOptions(step: WorkflowStep, mergedProviderOptions?: StepProviderOptions, runtime?: RuntimeStepResolution): ResolvedRunAgentOptions; /** * report / status phase 用の base options。structured output と tool 制約は * phase ごとに組み立てるが、MCP は phase をまたぐ agent execution の一部なので * Phase 1 と同じ解決済み server set を引き継ぐ。 */ private buildReadonlyPhaseBaseOptions; buildPhase1WorkflowMeta(workflowMeta: WorkflowMeta | undefined, runtime?: RuntimeStepResolution): WorkflowMeta | undefined; private resolveSupportedMaxTurns; resolveMcpServersForStep(step: WorkflowStep, provider: ProviderType | undefined): Record | undefined; /** * Resolve runtime MCP assignment (runtime-v1 only) for a step. Returns * `undefined` when no `mcpAssignment` is configured or the resolved set is * empty (MCP disabled). Fail-fast on unknown server names is handled inside * `resolveMcpAssignment`. */ private resolveRuntimeMcpServersForStep; private buildMcpAgentExecutionContext; /** Build the identity from the same effective server set passed to the provider. */ private resolveMcpServerIdentityForEffectiveServers; /** Build RunAgentOptions for Phase 1 (main execution) */ buildAgentOptions(step: WorkflowStep, runtime?: RuntimeStepResolution): RunAgentOptions; private resolveReadonlyPhaseConstraints; /** * Build RunAgentOptions for session-resume phases (Phase 2, Phase 3). * * step の `structured_output` は Phase 1 の遷移判定用であって、report phase の * 成果物ではない。ここで outputSchema を渡すと provider が Phase 2 でもスキーマ * どおりの JSON を返し、その本文がそのまま report file になる。 */ buildResumeOptions(step: WorkflowStep, sessionId: string, overrides: Pick, runtime?: RuntimeStepResolution): RunAgentOptions; /** Build RunAgentOptions for Phase 2 retry with a new session */ buildNewSessionReportOptions(step: WorkflowStep, overrides: Pick, runtime?: RuntimeStepResolution): RunAgentOptions; buildFallbackReportOptions(step: WorkflowStep, failedPrimaryOptions: RunAgentOptions, overrides: Pick): RunAgentOptions | undefined; private canUseReportFallback; /** Build context for Phase 2/3 execution */ buildPhaseRunnerContext(step: WorkflowStep, state: WorkflowState, lastResponse: string | undefined, updatePersonaSession: (persona: string, sessionId: string | undefined) => void, onPhaseStart?: (step: WorkflowStep, phase: 1 | 2 | 3, phaseName: PhaseName, instruction: string, promptParts: PhasePromptParts, phaseExecutionId?: string, iteration?: number) => void, onPhaseComplete?: (step: WorkflowStep, phase: 1 | 2 | 3, phaseName: PhaseName, content: string, status: string, error?: string, phaseExecutionId?: string, iteration?: number) => void, onJudgeStage?: (step: WorkflowStep, phase: 3, phaseName: 'judge', entry: JudgeStageEntry, phaseExecutionId?: string, iteration?: number) => void, iteration?: number, runtime?: RuntimeStepResolution, onProviderAttempt?: ReportPhaseRunnerContext['onProviderAttempt']): ReportPhaseRunnerContext & StatusJudgmentPhaseContext; private requireStructuredCaller; } export {}; //# sourceMappingURL=OptionsBuilder.d.ts.map