types.ts
1 import type { ExecuteChatTurnResult } from '@/lib/server/chat-execution/chat-execution-types' 2 import type { EnqueueSessionRunInput } from '@/lib/server/runtime/session-run-manager/types' 3 import type { Agent, BoardTask } from '@/types' 4 5 export interface ExecutionHandle<TResult> { 6 executionId: string 7 promise: Promise<TResult> 8 abort: () => void 9 position?: number 10 deduped?: boolean 11 coalesced?: boolean 12 unsubscribe?: () => void 13 } 14 15 export interface EnqueueSessionTurnExecutionRequest { 16 kind: 'session_turn' 17 input: EnqueueSessionRunInput 18 } 19 20 export interface EnqueueTaskAttemptExecutionRequest { 21 kind: 'task_attempt' 22 task: BoardTask 23 agent: Agent 24 sessionId: string 25 executionId?: string 26 callerSignal?: AbortSignal 27 } 28 29 export type EnqueueExecutionRequest = 30 | EnqueueSessionTurnExecutionRequest 31 | EnqueueTaskAttemptExecutionRequest 32 33 export type ExecutionResult = ExecuteChatTurnResult