/** * 角色模块的流式中断管理(独立于 agent 的 abort-manager)。 * 以 sessionId 为 key 维护 AbortController,支持按会话中断流式生成。 */ const controllers = new Map(); export function registerCharacterAbort(sessionId: string, controller: AbortController): void { controllers.set(sessionId, controller); } export function unregisterCharacterAbort(sessionId: string): void { controllers.delete(sessionId); } export function abortCharacterStream(sessionId: string): boolean { const controller = controllers.get(sessionId); if (controller && !controller.signal.aborted) { controller.abort(); return true; } return false; }