41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import type { AgentConfig, IsolationMode, JoinMode, ThinkingLevel } from "./types.js";
|
|
|
|
interface AgentInvocationParams {
|
|
model?: string;
|
|
thinking?: string;
|
|
max_turns?: number;
|
|
run_in_background?: boolean;
|
|
inherit_context?: boolean;
|
|
isolated?: boolean;
|
|
isolation?: IsolationMode;
|
|
}
|
|
|
|
export function resolveAgentInvocationConfig(
|
|
agentConfig: AgentConfig | undefined,
|
|
params: AgentInvocationParams,
|
|
): {
|
|
modelInput?: string;
|
|
modelFromParams: boolean;
|
|
thinking?: ThinkingLevel;
|
|
maxTurns?: number;
|
|
inheritContext: boolean;
|
|
runInBackground: boolean;
|
|
isolated: boolean;
|
|
isolation?: IsolationMode;
|
|
} {
|
|
return {
|
|
modelInput: agentConfig?.model ?? params.model,
|
|
modelFromParams: agentConfig?.model == null && params.model != null,
|
|
thinking: (agentConfig?.thinking ?? params.thinking) as ThinkingLevel | undefined,
|
|
maxTurns: agentConfig?.maxTurns ?? params.max_turns,
|
|
inheritContext: agentConfig?.inheritContext ?? params.inherit_context ?? false,
|
|
runInBackground: agentConfig?.runInBackground ?? params.run_in_background ?? false,
|
|
isolated: agentConfig?.isolated ?? params.isolated ?? false,
|
|
isolation: agentConfig?.isolation ?? params.isolation,
|
|
};
|
|
}
|
|
|
|
export function resolveJoinMode(defaultJoinMode: JoinMode, runInBackground: boolean): JoinMode | undefined {
|
|
return runInBackground ? defaultJoinMode : undefined;
|
|
}
|