import { App } from '@kevisual/router'; import * as redisLib from './modules/redis.ts'; import * as minioLib from './modules/minio.ts'; import * as sequelizeLib from './modules/sequelize.ts'; import { useContextKey } from '@kevisual/context'; import { SimpleRouter } from '@kevisual/router/simple'; import { OssBase } from '@kevisual/oss/services'; import { BailianProvider } from '@kevisual/ai'; export const router = useContextKey('router', () => new SimpleRouter()); export const runtime = useContextKey('runtime', () => { return { env: process.env.NODE_ENV || 'development', type: 'server', }; }); export const oss = useContextKey( 'oss', () => new OssBase({ client: minioLib.minioClient, bucketName: minioLib.bucketName, prefix: '', }), ); export const redis = useContextKey('redis', () => redisLib.redis); export const subscriber = useContextKey('subscriber', () => redisLib.subscriber); export const minioClient = useContextKey('minioClient', () => minioLib.minioClient); export const sequelize = useContextKey('sequelize', () => sequelizeLib.sequelize); const init = () => { return new App({ serverOptions: { cors: { origin: '*', }, io: true, } }); }; export const app = useContextKey('app', init); export const ai = useContextKey('ai', () => { return new BailianProvider({ apiKey: process.env.BAILIAN_API_KEY || '', model: 'qwen-plus', }); });