import type { AgentModelInput, IAgentSession } from '../../types.js'; import type { ModelProvider } from '../../provider.js'; import type { TraceSink } from '../../trace/index.js'; import type { BackgroundAgentRegistry } from '../../background-registry.js'; import type { SdkPluginConfig } from '../../types/sdk-types.js'; import type { ChildProviderFactoryArgs } from '../nesting.js'; import type { Surface } from '../../awareness/types.js'; import type { ReadScopeInputs } from '../../subagent-read-scope.js'; import type { SkillExecutor } from '../skill-executor.js'; export interface SkillExecutorContext { parentSession: Pick & Partial>; defaultModel?: string; surface?: Surface; defaultSubagentModel: AgentModelInput; apiKey?: string; resolveApiKeyForModel?: (model: string) => string | undefined; baseUrl?: string; openaiBaseUrl?: string; xaiBaseUrl?: string; pluginConfigs?: SdkPluginConfig[]; depth?: number; maxDepth?: number; childProviderFactory?: (args: ChildProviderFactoryArgs) => ModelProvider; childSkillExecutorFactory?: (depth: number, maxDepth: number, signal: AbortSignal, inheritedCwd?: string, inheritedReadScope?: ReadScopeInputs, skillDispatchName?: string) => SkillExecutor; traceWriter?: TraceSink; backgroundRegistry?: BackgroundAgentRegistry; cwd?: string; getReadScopeInputs?: () => ReadScopeInputs; agentRegistry?: import('../../agents/index.js').AgentRegistry; skillDispatchName?: string; workspaceStore?: import('../../workspace/index.js').WorkspaceStore; delegationBudget?: import('../../tools/delegation-budget.js').DelegationBudget; } export interface SkillInput { name: string; arguments?: string; } export interface SkillExecutorInternals { readonly ctx: SkillExecutorContext; readonly currentCwd: string | undefined; }