File size: 1,071 Bytes
abcf568
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import type { CustomApiConfig } from '../../../../types'
import { buildDraftAssistantMessage, buildDraftRun } from '../session-runner-helpers'
import type { StudioAssistantMessage, StudioRun, StudioSession } from '../../../domain/types'
import type { StudioSessionRunnerDependencies } from './dependency-center'

export async function createAssistantMessage(
  deps: Pick<StudioSessionRunnerDependencies, 'messageStore'>,
  session: StudioSession,
  runId?: string,
): Promise<StudioAssistantMessage> {
  const message = buildDraftAssistantMessage(session, runId)
  return deps.messageStore.createAssistantMessage(message)
}

export function createRun(
  session: StudioSession,
  inputText: string,
  metadata?: Record<string, unknown>,
): StudioRun {
  return buildDraftRun(session, inputText, metadata)
}

export function hasUsableCustomApiConfig(config?: CustomApiConfig): config is CustomApiConfig {
  if (!config) {
    return false
  }

  return [config.apiUrl, config.apiKey, config.model].every((value) => typeof value === 'string' && value.trim().length > 0)
}