import type { Task, MergeStrategy } from "../core/types.js"; export interface SwarmConfig { tasks: Task[]; concurrency: number; cwd: string; model?: string; allowedTools?: string[]; useWorktrees?: boolean; agentTimeoutMs?: number; maxRetries?: number; mergeStrategy?: MergeStrategy; usageCap?: number; allowExtraUsage?: boolean; extraUsageBudget?: number; baseCostUsd?: number; /** Per-task env overrides: given a model id, return the env to pass to `query()` (or undefined for Anthropic default). */ envForModel?: (model?: string) => Record | undefined; /** When true, the run uses cursor-composer-in-claude. The swarm will attempt to restart it if it crashes mid-run. */ cursorProxy?: boolean; /** 12-char repo fingerprint for skill scribe. */ repoFingerprint?: string; /** Run directory basename for skill scribe provenance. */ runId?: string; /** Current wave number for skill scribe provenance. */ waveNum?: number; /** Whether agents may propose skill candidates. */ allowSkillProposals?: boolean; } /** * Proxied Cursor models ignore SDK `cwd` and use their own workspace * resolution. Inject `X-Cursor-Workspace` via ANTHROPIC_CUSTOM_HEADERS so the * proxy's per-request workspace override points at this agent's cwd. * Requires the proxy to run with `CURSOR_BRIDGE_WORKSPACE=/` (or a parent of * all worktree paths) so the header value passes the safety check. */ export declare function withCursorWorkspaceHeader(env: Record | undefined, cwd: string): Record | undefined; /** Default per-agent inactivity watchdog (see `agent-run` race with SDK `query`). */ export declare const DEFAULT_AGENT_TIMEOUT_MS: number; /** * Per-agent watchdog timeout in ms. Override with `AGENT_TIMEOUT_MS` (integer). * Explicit `SwarmConfig.agentTimeoutMs` still wins at call sites that pass it. */ export declare function getAgentTimeout(): number;