Files
moeka-project/packages/testing-audio/cases/shared/configurations/module-consciousness.ts
T

34 lines
1.3 KiB
TypeScript

import type { AudioInputPreflightCallback, AudioInputPreflightContext } from '../../../src/types'
import type { ProviderConfiguration } from './provider'
import { configureActiveCardModules } from './active-card'
import { configureProvider } from './provider'
import { configureStorage } from './storage'
export interface ConsciousnessModuleConfiguration {
provider: ProviderConfiguration
}
type ConsciousnessModuleResolver = (context: AudioInputPreflightContext) => ConsciousnessModuleConfiguration | undefined | Promise<ConsciousnessModuleConfiguration | undefined>
/** Configures the consciousness module with the LLM Provider selected by one case. */
export function configureModuleConsciousness(resolve: ConsciousnessModuleResolver): AudioInputPreflightCallback {
return async (context) => {
const configuration = await resolve(context)
if (!configuration)
return
await configureProvider(context.runtime, configuration.provider)
await configureActiveCardModules(context.runtime, {
consciousness: {
provider: configuration.provider.id,
model: configuration.provider.model,
},
})
await configureStorage(context.runtime, {
'settings/consciousness/active-provider': configuration.provider.id,
'settings/consciousness/active-model': configuration.provider.model,
})
}
}