feat: 实现发送消息前余额检测

- creditsService.ts: 新增余额缓存和检测服务
- apiClient.ts: 新增 getCreditBalance() API 调用
- dialogService.ts: SSE credit_update 事件更新余额缓存
- messageHandler.ts: 发送消息前检测余额,低于5点阻止发送
This commit is contained in:
XiaoFeng
2026-01-10 21:45:41 +08:00
parent 52e4522ed0
commit bdc55c727a
4 changed files with 165 additions and 0 deletions

View File

@ -13,6 +13,7 @@ import type { DialogRequest, ToolCallRequest, AskUserEvent, RunMode, ServiceTier
import { submitToolConfirm, submitAnswer, stopDialog } from './apiClient';
import { ChatHistoryManager } from '../utils/chatHistoryManager';
import { getUserIdFromToken } from '../utils/jwtUtils';
import { updateCachedBalance } from './creditsService';
/**
* 消息段落类型
@ -791,6 +792,8 @@ export class DialogSession {
onCreditUpdate: (data) => {
console.log('[DialogSession] onCreditUpdate: 扣除', data.deductedCredits, '剩余', data.remainingCredits);
// 更新余额缓存
updateCachedBalance(data.remainingCredits);
// 资源点余额低于阈值时弹窗提醒
const LOW_CREDIT_THRESHOLD = 5;
if (data.remainingCredits < LOW_CREDIT_THRESHOLD) {