// Types
export type {
  StageDispatch,
  StageType,
  StageSpec,
  BriefClass,
  ClassSource,
  StageStatus,
  RunManifest,
  ForgeTaskStatus,
  ForgeTask,
  TaskExecutor,
  BoardPersona,
  PersonaReview,
  BoardSynthesis,
  ForgeConfig,
  PipelineOptions,
  PipelineResult,
} from './types.js';

// Constants
export {
  PACKAGE_ROOT,
  PIPELINE_DIR,
  STAGE_SPECS,
  STAGE_SEQUENCE,
  STAGE_TIMEOUTS,
  STAGE_LABELS,
  STRATEGIC_KEYWORDS,
  TECHNICAL_KEYWORDS,
} from './constants.js';

// Brief classifier
export {
  classifyBrief,
  parseBriefFrontmatter,
  determineBriefClass,
  stagesForClass,
} from './brief-classifier.js';

// Persona loader
export {
  slugify,
  personaNameFromMarkdown,
  loadBoardPersonas,
  loadPersonaOverrides,
  loadForgeConfig,
  getEffectivePersonas,
} from './persona-loader.js';

// Stage adapter
export {
  stageTaskId,
  stageDir,
  stageBriefPath,
  stageResultPath,
  loadStagePrompt,
  buildStageBrief,
  writeStageBrief,
  mapStageToTask,
} from './stage-adapter.js';

// Board tasks
export {
  buildPersonaBrief,
  writePersonaBrief,
  personaResultPath,
  synthesisResultPath,
  generateBoardTasks,
  synthesizeReviews,
} from './board-tasks.js';

// Pipeline runner
export {
  generateRunId,
  saveManifest,
  loadManifest,
  selectStages,
  runPipeline,
  resumePipeline,
  getPipelineStatus,
} from './pipeline-runner.js';

// CLI
export { registerForgeCommand } from './cli.js';
