guanghulab/src/brain/mode-detector.js
2026-05-10 13:12:44 +08:00

40 lines
1.4 KiB
JavaScript

// src/brain/mode-detector.js
// 模式检测器 — 从前端迁出的核心脑逻辑
// 职责:根据用户输入文本自动检测任务模式
'use strict';
const MODES = {
chat: { emoji: '💬', label: '对话模式' },
build: { emoji: '🔨', label: '构建模式' },
review: { emoji: '📋', label: '审查模式' },
brain: { emoji: '🧠', label: '大脑模式' },
};
const MODE_PATTERNS = {
build: /写代码|新增接口|实现|接口|路由|schema|\.js\b|fix\b|bug\b|报错|error\b|部署|deploy|typescript|javascript|hli-|新建|create|npm|git\b|commit|push|merge|编译|build\b|构建|安装|install|配置|config/i,
review: /检查|审查|review\b|分析|有没有问题|看看这|对不对|代码质量|优化|性能|安全|vulnerability|lint|测试|test\b|诊断|排查|debug/i,
brain: /记住|保存|更新记忆|写到大脑|growth\b|brain\b|memory\.json|记忆|学习|总结|归档|同步.*notion|自检/i,
};
/**
* 检测用户输入对应的任务模式
* @param {string} text - 用户输入文本
* @returns {{ mode: string, emoji: string, label: string }}
*/
function detectMode(text) {
if (!text || typeof text !== 'string') {
return { mode: 'chat', ...MODES.chat };
}
for (const [mode, pattern] of Object.entries(MODE_PATTERNS)) {
if (pattern.test(text)) {
return { mode, ...MODES[mode] };
}
}
return { mode: 'chat', ...MODES.chat };
}
module.exports = { detectMode, MODES, MODE_PATTERNS };