/**
 * Interactive mode registry — install, ask, plan, action, manage.
 *
 * These are the primary agent modes the user can switch between mid-session.
 * They are distinct from subagents, which are delegated child workers.
 */
export { actionAgent } from './action/agent.js';
export { askAgent } from './ask/agent.js';
export { installationAgent } from './installation/agent.js';
export { manageAgent } from './manage/agent.js';
export { planAgent } from './plan/agent.js';
import { actionAgent } from './action/agent.js';
import { askAgent } from './ask/agent.js';
import { installationAgent } from './installation/agent.js';
import { manageAgent } from './manage/agent.js';
import { planAgent } from './plan/agent.js';
function buildModes() {
    return [installationAgent(), actionAgent(), planAgent(), askAgent(), manageAgent()];
}
export function getModes() {
    return buildModes();
}
export function getMode(name) {
    return buildModes().find((mode) => mode.name === name);
}
export function getModeNames() {
    return buildModes().map((mode) => mode.name);
}
export function buildModeList() {
    return buildModes()
        .map((mode) => {
        const targets = mode.switchTo?.join(', ') ?? 'none';
        return `- **${mode.name}**: ${mode.description} (can switch to: ${targets})`;
    })
        .join('\n');
}
//# sourceMappingURL=index.js.map