/ src / lib / server / execution-engine / types.ts
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