chore: add debug logging for AI plugin in dev server
This commit is contained in:
@@ -82,6 +82,7 @@ function apiSavePlugin() {
|
||||
? `当前项目根目录: ${__dirname}\n代码模式:直接修改 src/ 下的源码文件并保存。需求:`
|
||||
: `当前项目根目录: ${__dirname}\nJSON模式:直接修改 JSON 配置文件并保存,用自然语言回复修改了什么。需求:`
|
||||
const fullMessage = modePrefix + userMessage
|
||||
console.log(`\n[AI] ${mode === 'json' ? 'JSON' : '代码'}模式 | session=${sessionId || '新会话'} | prompt: ${userMessage.substring(0, 120)}${userMessage.length > 120 ? '...' : ''}`)
|
||||
|
||||
const args = ['run', '--model', 'deepseek/deepseek-v4-pro', '--format', 'json']
|
||||
if (sessionId) args.push('--session', sessionId)
|
||||
@@ -110,6 +111,7 @@ function apiSavePlugin() {
|
||||
if (responded) return
|
||||
responded = true
|
||||
if (code !== 0) {
|
||||
console.log(`[AI] 错误: ${code === null ? '超时' : 'exit code ' + code}${stderr ? ' stderr: ' + stderr.substring(0, 200) : ''}`)
|
||||
res.writeHead(500)
|
||||
res.end(JSON.stringify({ error: code === null ? 'opencode 超时,请重试或简化需求' : 'opencode exited with code ' + code, stderr }))
|
||||
return
|
||||
@@ -124,12 +126,19 @@ function apiSavePlugin() {
|
||||
try {
|
||||
const event = JSON.parse(line)
|
||||
if (!resolvedSessionId && event.sessionID) resolvedSessionId = event.sessionID
|
||||
if (event.type === 'text' && event.part?.text) {
|
||||
if (event.type === 'step_start') {
|
||||
console.log(`[AI] 思考中...`)
|
||||
} else if (event.type === 'text' && event.part?.text) {
|
||||
aiText += event.part.text
|
||||
} else if (event.type === 'step_finish') {
|
||||
const tokens = event.part?.tokens
|
||||
if (tokens) console.log(`[AI] tokens: in=${tokens.input} out=${tokens.output} cost=$${tokens.cost?.toFixed(6)}`)
|
||||
}
|
||||
} catch { continue }
|
||||
}
|
||||
|
||||
console.log(`[AI] 响应 | sessions=${resolvedSessionId || ''} | ${aiText.length} chars | ${aiText.substring(0, 300)}${aiText.length > 300 ? '...' : ''}`)
|
||||
|
||||
if (mode === 'json') {
|
||||
res.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
res.end(JSON.stringify({ result: aiText || 'done', sessionId: resolvedSessionId || '' }))
|
||||
|
||||
Reference in New Issue
Block a user