ai-courseify
Version:
AI 驱动的课程内容生成工具 - 支持全流程创作、风格模拟、Persona训练、多平台导出
110 lines • 3.86 kB
JavaScript
/**
* Interactive UI utilities for CLI
*/
import chalk from 'chalk';
import inquirer from 'inquirer';
/**
* Display project banner
*/
export function displayProjectBanner() {
console.log('');
console.log(chalk.bold.cyan('╔══════════════════════════════════════════════════════════╗'));
console.log(chalk.bold.cyan('║') + ' ' + chalk.bold.yellow('COURSEIFY') + ' ' + chalk.bold.cyan('║'));
console.log(chalk.bold.cyan('║') + ' ' + chalk.gray('AI 驱动的课程内容生成工具') + ' ' + chalk.bold.cyan('║'));
console.log(chalk.bold.cyan('╚══════════════════════════════════════════════════════════╝'));
console.log('');
}
/**
* Display success message
*/
export function displaySuccess(message) {
console.log(chalk.green('✅ ' + message));
}
/**
* Display error message
*/
export function displayError(message) {
console.log(chalk.red('❌ ' + message));
}
/**
* Display info message
*/
export function displayInfo(message) {
console.log(chalk.blue('ℹ️ ' + message));
}
/**
* Display step indicator
*/
export function displayStep(current, total, title) {
console.log(chalk.bold.cyan(`[${current}/${total}] ${title}`));
console.log('');
}
/**
* Check if running in interactive mode
*/
export function isInteractive() {
return process.stdin.isTTY === true && process.stdout.isTTY === true;
}
/**
* Select AI assistant interactively
*/
export async function selectAIAssistant(configs) {
const choices = configs.map((config, index) => ({
name: `${index + 1}. ${config.displayName}`,
value: config.name,
short: config.displayName
}));
const answer = await inquirer.prompt([
{
type: 'list',
name: 'ai',
message: '选择 AI 助手:',
choices: choices,
default: 'claude'
}
]);
return answer.ai;
}
/**
* Select course field interactively
*/
export async function selectCourseField() {
const answer = await inquirer.prompt([
{
type: 'list',
name: 'field',
message: '选择课程领域:',
choices: [
{ name: '1. 💻 编程开发 - 编程语言/框架/工具', value: '编程开发' },
{ name: '2. 🎨 设计创意 - UI/UX/平面/视频', value: '设计创意' },
{ name: '3. 💼 商业管理 - 运营/营销/管理', value: '商业管理' },
{ name: '4. 🌍 语言学习 - 英语/日语等', value: '语言学习' },
{ name: '5. 📊 数据分析 - 数据科学/分析/BI', value: '数据分析' },
{ name: '6. 🎓 学术课程 - 学科知识', value: '学术课程' },
{ name: '7. 🛠️ 职业技能 - 职场技能/工具', value: '职业技能' },
{ name: '8. 🧠 软技能 - 沟通/思维/时间管理', value: '软技能' }
],
default: '编程开发'
}
]);
return answer.field;
}
/**
* Select bash script type (sh or ps1)
*/
export async function selectBashScriptType() {
const answer = await inquirer.prompt([
{
type: 'list',
name: 'scriptType',
message: '选择脚本类型:',
choices: [
{ name: '1. Bash (macOS/Linux) - 推荐', value: 'sh' },
{ name: '2. PowerShell (Windows)', value: 'ps1' }
],
default: 'sh'
}
]);
return answer.scriptType;
}
//# sourceMappingURL=interactive.js.map