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) (

163 lines (162 loc) 5.19 kB
import { TokenUsage } from "../types/agent"; import { PhaseType } from "./Phases"; export declare enum AgentEventName { BEFORE_CONFIRM = "Before-confirm", AFTER_CONFIRM = "After-confirm", BEFORE_THINKPLAN = "Before-thinkplan", AFTER_THINKPLAN = "After-thinkplan", BEFORE_PLAN = "Before-plan", AFTER_PLAN = "After-plan", BEFORE_REACT = "Before-react", AFTER_REACT = "After-react", BEFORE_SUMMARY = "Before-summary", AFTER_SUMMARY = "After-summary", STATE_CHANGE = "StateChange", UIEvent = "PushComponent", UIResultEvent = "UIResultEvent", LLMResponseEvent = "LLMResponseEvent", STREAM_TOKEN = "stream-token", STREAM_PARTIAL_RESPONSE = "stream-partial-response", STREAM_PHASE_CHANGE = "stream-phase-change", STREAM_TOOL_CALL_START = "stream-tool-call-start", STREAM_TOOL_CALL_END = "stream-tool-call-end", STREAM_ERROR = "stream-error", STREAM_COMPLETE = "stream-complete", KNOWLEDGE_ADDED = "knowledge-added", KNOWLEDGE_REMOVED = "knowledge-removed", KNOWLEDGE_UPDATED = "knowledge-updated", KNOWLEDGE_APPLIED = "knowledge-applied", KNOWLEDGE_CLEARED = "knowledge-cleared", STOP_TOOL_CALL_EVENT = "stop-tool-call-event", STOP_EVENT = "stop-event", TOKEN_USAGE = "token-usage" } export interface LLMResponseEventPayload { content: any; streamId: string; phase: PhaseType; toolCalls?: Array<{ name: string; arguments: Record<string, any>; }>; timestamp: number; } export interface PhaseEventPayload { prompt?: string; agentResponse?: any; } export interface ToolCallEventPayload { toolcallId?: number | string; timing: 'before' | 'after'; status?: 'success' | 'error' | 'pause' | 'skip' | 'reject' | 'stop'; system?: boolean; toolType: string; toolName: string; arguments: Array<any>; result?: any; } export interface StateEventPayload { state: string; } export interface UIEventPayload { id: string; componentType: string; data?: any; waitForResult?: boolean; timestamp: number; message?: string; } export interface UIResultEventPayload { pushEventId: string; result: any; timestamp: number; } export interface UICancelEventPayload { pushEventId: string; reason?: string; timestamp: number; } export interface StreamTokenEventPayload { token: string; phase: string; timestamp: number; sessionId?: string; id?: string; } export interface StreamPartialResponseEventPayload { partialResponse: string; phase: string; timestamp: number; sessionId?: string; id?: string; } export interface StreamPhaseChangeEventPayload { fromPhase?: string; toPhase: string; timestamp: number; sessionId?: string; } export interface StreamToolCallStartEventPayload { toolName: string; phase: string; timestamp: number; sessionId?: string; id?: string; } export interface StreamToolCallEndEventPayload { toolName: string; arguments: Record<string, any>; result?: any; phase: string; timestamp: number; sessionId?: string; id?: string; } export interface StreamErrorEventPayload { error: string; phase: string; timestamp: number; sessionId?: string; } export interface StreamCompleteEventPayload { phase: string; finalResponse?: string; timestamp: number; sessionId?: string; } export interface KnowledgeEventPayload { action: 'add' | 'remove' | 'update' | 'clear' | 'applied'; knowledgeId?: string; knowledgeName?: string; knowledgeIds?: string[]; itemCount?: number; timestamp: number; } export interface StopToolCallEventPayload { toolcallId: string; } export interface StopEventPayload { reason: string; } export interface TokenUsageEventPayload { tokenUsage: TokenUsage; } export type IPayload = LLMResponseEventPayload | PhaseEventPayload | ToolCallEventPayload | StateEventPayload | UIEventPayload | UIResultEventPayload | UICancelEventPayload | StreamTokenEventPayload | StreamPartialResponseEventPayload | StreamPhaseChangeEventPayload | StreamToolCallStartEventPayload | StreamToolCallEndEventPayload | StreamErrorEventPayload | StreamCompleteEventPayload | KnowledgeEventPayload | StopToolCallEventPayload | StopEventPayload | TokenUsageEventPayload; export type EventType = 'PhaseEvent' | 'ToolCallEvent' | 'StateChangeEvent' | 'LLMResponseEvent' | 'UIEvent' | 'UIResultEvent' | 'StreamEvent' | 'KnowledgeEvent' | 'StopToolCallEvent' | 'StopEvent' | 'TokenUsageEvent'; export interface IAgentEvent { type: EventType; name: string; payload: IPayload; } type EventListener = (event: IAgentEvent) => void; export declare class EventHub { private listeners; private typeListeners; register(eventName: string, listener: EventListener): void; registerType(type: EventType, listener: EventListener): void; emit(event: IAgentEvent): void; unregister(eventName: string, listener: EventListener): void; unregisterType(type: EventType, listener: EventListener): void; emitStreamEvent(eventName: AgentEventName, payload: IPayload): void; } export {};