// Types
export type {
  AgentMode,
  PermissionAction,
  PermissionRule,
  AgentBashPermission,
  AgentFilePermission,
  AgentGitPermission,
  AgentPermission,
  AgentModelConfig,
  AgentToolConfig,
  AgentInfo,
  AgentConfigFile,
  AgentExecutionContext,
  AgentExecutionResult,
} from './types.js';

// Registry
export { AgentRegistry, agentRegistry } from './registry.js';

// Executor
export { AgentExecutor } from './executor.js';

// Manager
export {
  AgentManager,
  getAgentManager,
  resetAgentManager,
  type BackgroundAgent,
  type BackgroundAgentStatus,
} from './manager.js';

// Permission Merger
export {
  SYSTEM_DEFAULT_PERMISSION,
  mergePermissions,
  matchRule,
  checkBashPermission,
  checkFilePathPermission,
} from './permission-merger.js';

// Config Loader
export {
  loadAgentConfig,
  saveAgentConfig,
  getConfigTemplate,
} from './config-loader.js';

// Presets
export {
  presetAgents,
  getPresetAgentNames,
  isPresetAgent,
  generalAgent,
  exploreAgent,
  codeReviewerAgent,
  buildAgent,
  planAgent,
} from './presets/index.js';

// System Prompt
export { SystemPrompt } from './system-prompt.js';
