import { SfCommand } from '@salesforce/sf-plugins-core'; import type { SetupAgentsWorkflowRunResult } from '../../../types/index.js'; export default class WorkflowRun extends SfCommand { static readonly summary: string; static readonly description: string; static readonly examples: string[]; static readonly flags: { story: import("@oclif/core/interfaces").OptionFlag; gates: import("@oclif/core/interfaces").OptionFlag; 'max-iterations': import("@oclif/core/interfaces").OptionFlag; profiles: import("@oclif/core/interfaces").OptionFlag; resume: import("@oclif/core/interfaces").OptionFlag; 'from-phase': import("@oclif/core/interfaces").OptionFlag; 'qa-result': import("@oclif/core/interfaces").OptionFlag; autonomous: import("@oclif/core/interfaces").BooleanFlag; 'dry-run': import("@oclif/core/interfaces").BooleanFlag; 'instructions-dir': import("@oclif/core/interfaces").OptionFlag; 'reject-to': import("@oclif/core/interfaces").OptionFlag; findings: import("@oclif/core/interfaces").OptionFlag; 'push-to': import("@oclif/core/interfaces").OptionFlag; ticket: import("@oclif/core/interfaces").OptionFlag; 'target-dir': import("@oclif/core/interfaces").OptionFlag; }; run(): Promise; private handleResume; private handleRejection; private handleCorrectionLoop; /** Fails loud when every task role is unknown; warns prominently when only some are. */ private checkRoles; private tryAutoExpand; private executeFrom; private initOrSkipPhase; /** * Renders the most recent structured correction (from a prior phase failure) into * the phase output so the agent re-entering this phase sees the specific blocker, * location, and suggested fix — not just static prior evidence (GH-527). */ private logPriorCorrection; private logPhaseInstructions; private handleQaPhase; private advanceToNextPhase; /** * GH-748: `workflow run --autonomous` shares `workflow execute`'s blocking * engine (`delegatedAgentPhaseExecutor.execute` = `runDelegatedWorkflow`), * but unlike `execute.ts`'s fire-and-forget dispatch (GH-746), this caller * advances the run's phase/gate state synchronously off the phase's REAL * result — it can't just background-dispatch and move on. Instead it * pauses (same shape as a gate-pause) and checks the dispatched spawn's * real completion on the next `--resume`, reusing `initOrSkipPhase`'s * existing "phase already running, resume it" path (the phase record * itself never needs a special status — it just stays 'running'). */ private resolveDelegatedPhaseEvidence; private executeDelegatedPhase; private tryWriteBack; private handleFinalPhase; private runQaLoop; private dryRun; }