返回 AiToEarn
task-instance.types.ts
根目录 / project / aitoearn-web / src / store / agent / task-instance / task-instance.types.ts
1 /**
2 * TaskInstance 类型定义
3 * 提取自 TaskInstance.ts,用于各个 handler 模块共享
4 */
5
6 import type {
7 IActionContext,
8 IDisplayMessage,
9 ITaskMessageData,
10 IWorkflowStep,
11 } from '../agent.types'
12
13 // ============ 上下文接口 ============
14
15 /** 任务实例上下文(与 Store 交互) */
16 export interface ITaskInstanceContext {
17 /** 同步数据到 store */
18 syncToStore: (
19 taskId: string,
20 updater: (data: ITaskMessageData) => Partial<ITaskMessageData>,
21 ) => void
22 /** 获取任务数据 */
23 getData: (taskId: string) => ITaskMessageData
24 /** 迁移任务数据(从临时ID到真实ID) */
25 migrateTaskData: (fromTaskId: string, toTaskId: string) => void
26 /** 更新当前任务ID(在 store 中) */
27 setCurrentTaskId: (taskId: string) => void
28 }
29
30 /** SSE 回调函数 */
31 export interface ISSECallbacks {
32 onTaskIdReady?: (taskId: string) => void
33 onError?: (error: Error) => void
34 onComplete?: () => void
35 }
36
37 // ============ 内部状态接口 ============
38
39 /** TaskInstance 内部状态(供 handler 使用) */
40 export interface ITaskInstanceState {
41 /** 实例ID */
42 instanceId: string
43 /** 任务ID */
44 taskId: string
45 /** 当前 assistant 消息 ID */
46 currentAssistantMessageId: string
47 /** 流式文本 */
48 streamingText: string
49 /** 当前步骤的工作流步骤 */
50 currentStepWorkflow: IWorkflowStep[]
51 /** 当前步骤索引 */
52 currentStepIndex: number
53 /** Action 上下文 */
54 actionContext: IActionContext | null
55 }
56
57 // ============ Handler 上下文接口 ============
58
59 /** 消息处理上下文 */
60 export interface IMessageHandlerContext {
61 /** 获取任务ID */
62 getTaskId: () => string
63 /** 获取当前 assistant 消息 ID */
64 getCurrentAssistantMessageId: () => string
65 /** 设置当前 assistant 消息 ID */
66 setCurrentAssistantMessageId: (id: string) => void
67 /** 更新数据 */
68 updateData: (updater: (data: ITaskMessageData) => Partial<ITaskMessageData>) => void
69 }
70
71 /** 工作流处理上下文 */
72 export interface IWorkflowHandlerContext extends IMessageHandlerContext {
73 /** 获取流式文本 */
74 getStreamingText: () => string
75 /** 设置流式文本 */
76 setStreamingText: (text: string) => void
77 /** 追加流式文本 */
78 appendStreamingText: (text: string) => void
79 /** 获取当前步骤工作流 */
80 getCurrentStepWorkflow: () => IWorkflowStep[]
81 /** 设置当前步骤工作流 */
82 setCurrentStepWorkflow: (steps: IWorkflowStep[]) => void
83 /** 追加到当前步骤工作流 */
84 pushToCurrentStepWorkflow: (step: IWorkflowStep) => void
85 /** 获取当前步骤索引 */
86 getCurrentStepIndex: () => number
87 /** 设置当前步骤索引 */
88 setCurrentStepIndex: (index: number) => void
89 /** 增加当前步骤索引 */
90 incrementCurrentStepIndex: () => void
91 /** 添加 markdown 消息 */
92 addMarkdownMessage: (message: string) => void
93 }
94
95 /** SSE 处理上下文(扩展工作流上下文) */
96 export interface ISSEHandlerContext extends IWorkflowHandlerContext {
97 /** 获取 action 上下文 */
98 getActionContext: () => IActionContext | null
99 /** 迁移到真实 taskId */
100 migrateToRealTaskId: (realTaskId: string) => void
101 /** 标记消息完成 */
102 markMessageDone: () => void
103 /** 添加消息 */
104 addMessage: (message: IDisplayMessage) => void
105 /** 设置生成状态 */
106 setIsGenerating: (value: boolean) => void
107 /** 设置进度 */
108 setProgress: (value: number) => void
109 }
110
110 lines TYPESCRIPT