import type { ParsedPlan } from './scaffold.js'; export type ArtifactMode = 'delegate' | 'run'; export type ExecutorLane = 'omc-claude' | 'omx-codex' | 'plain-agent' | 'human' | 'custom'; export type OperatorSurface = 'discord' | 'slack' | 'telegram' | 'github' | 'cli' | 'none' | 'custom'; export type RuntimePreset = string; export type RuntimeWorkflow = 'interview' | 'plan' | 'team' | 'loop' | 'execute' | 'goal' | 'custom'; export interface RunArtifactOptions { taskId?: string; sourceRef?: string[]; executor?: ExecutorLane; harnessSkill?: string; runtime?: RuntimePreset; workflow?: RuntimeWorkflow; runtimeProfileId?: string; runtimeProfileSource?: string; repo?: string; worktree?: string; branch?: string; operatorSurface?: OperatorSurface; operatorThread?: string; issue?: string; pr?: string; commitPolicy?: string; /** Internal root used for mission/package-quality checks when artifacts are written elsewhere. */ scaffoldRoot?: string; } export interface RunArtifacts { runId: string; runDir: string; manifestPath: string; promptPaths: string[]; } export interface PackageQuality { executable: boolean; blockers: string[]; requiredAction: string | null; } export interface RunManifest { schemaVersion: 'open-scaffold.run.v1'; runId: string; taskId: string | null; mode: ArtifactMode; status: 'created'; lifecycleStates: string[]; createdAt: string; updatedAt: string; namespace: '.osc'; sourceRefs: string[]; plan: { slug: string; path: string; goal: string; filesToTouch: string[]; acceptanceCriteria: string[]; verificationSteps: string[]; openQuestions: string[]; }; packageQuality: PackageQuality; runtimeSelection: { runtime: string | null; workflow: RuntimeWorkflow | null; profileId: string | null; profileSource: string | null; note: string; }; executor: { lane: ExecutorLane | null; harnessSkill: string | null; spawning: false; note: string; }; runtime: { repoPath: string | null; worktreePath: string | null; branch: string | null; tmuxSession: null; processId: null; }; bindings: { operatorSurface: OperatorSurface; operatorThreadId: string | null; githubIssue: string | null; githubPr: string | null; }; artifacts: { runDir: string; manifest: string; prompts: string[]; logs: string[]; outputs: string[]; evidence: string[]; }; questions: string[]; commitPolicy: string; note: string; } export interface PromptPreview { relativePath: string; absolutePath: string; content: string; } export interface RunArtifactsPreview { runId: string; runDir: string; manifestPath: string; promptFiles: PromptPreview[]; manifest: RunManifest; packageMarkdown: string; filesToTouch: string[]; } export declare function previewRunArtifacts(root: string, plan: ParsedPlan, mode?: ArtifactMode, options?: RunArtifactOptions): RunArtifactsPreview; export declare function createRunArtifacts(root: string, plan: ParsedPlan, mode?: ArtifactMode, options?: RunArtifactOptions): RunArtifacts;