/ src / lib / server / execution-engine / index.ts
index.ts
 1  import { enqueueSessionRun } from '@/lib/server/runtime/session-run-manager'
 2  import type { ExecuteChatTurnResult } from '@/lib/server/chat-execution/chat-execution-types'
 3  import type {
 4    EnqueueExecutionRequest,
 5    ExecutionHandle,
 6  } from '@/lib/server/execution-engine/types'
 7  import { enqueueTaskAttemptExecution } from '@/lib/server/execution-engine/task-attempt'
 8  
 9  export function enqueueExecution(
10    input: EnqueueExecutionRequest,
11  ): ExecutionHandle<ExecuteChatTurnResult> {
12    if (input.kind === 'session_turn') {
13      const result = enqueueSessionRun(input.input)
14      return {
15        executionId: result.runId,
16        promise: result.promise,
17        abort: result.abort,
18        position: result.position,
19        deduped: result.deduped,
20        coalesced: result.coalesced,
21        unsubscribe: result.unsubscribe,
22      }
23    }
24  
25    return enqueueTaskAttemptExecution(input)
26  }
27  
28  export { executeExecutionChatTurn } from '@/lib/server/execution-engine/chat-turn'
29  export type {
30    EnqueueExecutionRequest,
31    EnqueueTaskAttemptExecutionRequest,
32    EnqueueSessionTurnExecutionRequest,
33    ExecutionHandle,
34    ExecutionResult,
35  } from '@/lib/server/execution-engine/types'