/** * Type definitions for agent execution */ import type { StreamCallback } from '../shared/types/provider.js'; import type { PermissionHandler, AskUserQuestionHandler } from '../core/workflow/types.js'; import type { SkillPermissionHandler } from '../core/workflow/types.js'; import type { PermissionMode, Language, McpServerConfig, StepProviderOptions, ProviderPermissionProfiles } from '../core/models/index.js'; import type { InternalAgentIsolation, ProviderActivityCallback, ProviderType } from '../shared/types/provider.js'; import type { McpAssignmentSection } from '../infra/config/runtime-provider/mcp-assignment.js'; export type { StreamCallback }; export interface WorkflowProcessSafetyMeta { protectedParentRunPid: number; } export interface WorkflowMeta { workflowName: string; currentStep: string; context?: import('../core/workflow/workflow-prompt-context.js').WorkflowPromptContext; processSafety?: WorkflowProcessSafetyMeta; } export interface ResolvedAgentExecution { readonly provider: ProviderType; readonly model: string | undefined; readonly providerOptions: StepProviderOptions | undefined; readonly permissionMode: PermissionMode | undefined; } /** Common options for running agents */ export interface RunAgentOptions { cwd: string; executionProfile?: 'isolated-structured'; projectCwd?: string; abortSignal?: AbortSignal; sessionId?: string; model?: string; /** Allows workflow OpenCode calls to resolve an omitted model in the provider runtime. */ allowDefaultModel?: boolean; provider?: ProviderType; resolvedModel?: string; resolvedProvider?: ProviderType; personaPath?: string; workflowBundleResourceRoot?: string; internalSystemPrompt?: string; internalAgentName?: string; internalAgentIsolation?: InternalAgentIsolation; executionPhase?: 1 | 2 | 3; allowedTools?: string[]; mcpServers?: Record; /** * Runtime MCP assignment section (runtime-v1). When set, runtime MCP mode * is active and the runner boundary resolves whether to invoke the provider * MCP adapter even for an empty server set (e.g. Claudeç³» providers emit * `strictMcpConfig`/`--strict-mcp-config` to suppress ambient MCP config, * order.md:160,166,172). When unset, legacy mode applies and an empty * server set skips adapter preparation entirely (order.md:152). */ mcpAssignment?: McpAssignmentSection; /** * Deterministic identity for the resolved MCP server set, computed by * `OptionsBuilder` from the runtime MCP assignment. Propagated to the * runner so the OpenCode shared server pool keys differ for different * server sets, preventing silent server drops (order.md:191-195,269,333). * When unset, the runner computes a fallback identity from `mcpServers`. */ mcpServerIdentity?: string; maxTurns?: number; permissionMode?: PermissionMode; edit?: boolean; permissionResolution?: { stepName: string; requiredPermissionMode?: PermissionMode; providerProfiles?: ProviderPermissionProfiles; }; providerOptions?: StepProviderOptions; /** Fully resolved provider options; bypasses project/global/persona option inheritance. */ resolvedProviderOptions?: StepProviderOptions | null; resolvedExecution?: ResolvedAgentExecution; onStream?: StreamCallback; onActivity?: ProviderActivityCallback; onPermissionRequest?: PermissionHandler; onSkillPermissionRequest?: SkillPermissionHandler; onAskUserQuestion?: AskUserQuestionHandler; onDispatch?: (permissionMode: PermissionMode | undefined) => void; bypassPermissions?: boolean; language?: Language; workflowMeta?: WorkflowMeta; outputSchema?: Record; failureDir?: string; childProcessEnv?: Readonly>; onPromptResolved?: (promptParts: { systemPrompt: string; userInstruction: string; }) => void; } //# sourceMappingURL=types.d.ts.map