UNPKG

flux-agent

Version:

FluxAgent - 一个可灵活插拔的AI Agent系统框架,基于TypeScript开发,支持流式执行、事件系统、插件系统、知识库管理等功能 (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (Protected Release) (

105 lines (104 loc) 4.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventHub = exports.AgentEventName = void 0; var AgentEventName; (function (AgentEventName) { AgentEventName["BEFORE_CONFIRM"] = "Before-confirm"; AgentEventName["AFTER_CONFIRM"] = "After-confirm"; AgentEventName["BEFORE_THINKPLAN"] = "Before-thinkplan"; AgentEventName["AFTER_THINKPLAN"] = "After-thinkplan"; AgentEventName["BEFORE_PLAN"] = "Before-plan"; AgentEventName["AFTER_PLAN"] = "After-plan"; AgentEventName["BEFORE_REACT"] = "Before-react"; AgentEventName["AFTER_REACT"] = "After-react"; AgentEventName["BEFORE_SUMMARY"] = "Before-summary"; AgentEventName["AFTER_SUMMARY"] = "After-summary"; AgentEventName["STATE_CHANGE"] = "StateChange"; AgentEventName["UIEvent"] = "PushComponent"; AgentEventName["UIResultEvent"] = "UIResultEvent"; AgentEventName["LLMResponseEvent"] = "LLMResponseEvent"; // 新增:流式事件 AgentEventName["STREAM_TOKEN"] = "stream-token"; AgentEventName["STREAM_PARTIAL_RESPONSE"] = "stream-partial-response"; AgentEventName["STREAM_PHASE_CHANGE"] = "stream-phase-change"; AgentEventName["STREAM_TOOL_CALL_START"] = "stream-tool-call-start"; AgentEventName["STREAM_TOOL_CALL_END"] = "stream-tool-call-end"; AgentEventName["STREAM_ERROR"] = "stream-error"; AgentEventName["STREAM_COMPLETE"] = "stream-complete"; // 新增:知识库事件 AgentEventName["KNOWLEDGE_ADDED"] = "knowledge-added"; AgentEventName["KNOWLEDGE_REMOVED"] = "knowledge-removed"; AgentEventName["KNOWLEDGE_UPDATED"] = "knowledge-updated"; AgentEventName["KNOWLEDGE_APPLIED"] = "knowledge-applied"; AgentEventName["KNOWLEDGE_CLEARED"] = "knowledge-cleared"; // 新增:停止事件 AgentEventName["STOP_TOOL_CALL_EVENT"] = "stop-tool-call-event"; AgentEventName["STOP_EVENT"] = "stop-event"; // 新增:Token 使用量事件 AgentEventName["TOKEN_USAGE"] = "token-usage"; })(AgentEventName || (exports.AgentEventName = AgentEventName = {})); class EventHub { constructor() { this.listeners = new Map(); this.typeListeners = new Map(); } register(eventName, listener) { if (!this.listeners.has(eventName)) { this.listeners.set(eventName, []); } this.listeners.get(eventName).push(listener); } registerType(type, listener) { if (!this.typeListeners.has(type)) { this.typeListeners.set(type, []); } this.typeListeners.get(type).push(listener); } emit(event) { // 处理通过 eventName 注册的监听器 const nameListeners = this.listeners.get(event.name) || []; for (const listener of nameListeners) { listener(event); } // 处理通过 eventType 注册的监听器 const typeListeners = this.typeListeners.get(event.type) || []; for (const listener of typeListeners) { listener(event); } } unregister(eventName, listener) { if (!this.listeners.has(eventName)) { return; } const listeners = this.listeners.get(eventName); const index = listeners.indexOf(listener); if (index !== -1) { listeners.splice(index, 1); } if (listeners.length === 0) { this.listeners.delete(eventName); } } unregisterType(type, listener) { if (!this.typeListeners.has(type)) { return; } const listeners = this.typeListeners.get(type); const index = listeners.indexOf(listener); if (index !== -1) { listeners.splice(index, 1); } if (listeners.length === 0) { this.typeListeners.delete(type); } } // 新增:流式事件发射方法 emitStreamEvent(eventName, payload) { this.emit({ type: 'StreamEvent', name: eventName, payload }); } } exports.EventHub = EventHub;