mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-19 18:35:18 +02:00
Add conversations and turns foundation + DDD (#188)
- Store conversations and turns for: - playground chat - api - New DDD code organisation with container dependency injection - sdk update - streaming api support
This commit is contained in:
parent
659b23ae2b
commit
51a33ab2df
39 changed files with 1474 additions and 525 deletions
36
apps/rowboat/di/container.ts
Normal file
36
apps/rowboat/di/container.ts
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import { RunConversationTurnUseCase } from "@/src/application/use-cases/conversations/run-conversation-turn.use-case";
|
||||
import { MongoDBConversationsRepository } from "@/src/infrastructure/repositories/mongodb.conversations.repository";
|
||||
import { RunCachedTurnController } from "@/src/interface-adapters/controllers/conversations/run-cached-turn.controller";
|
||||
import { asClass, createContainer, InjectionMode } from "awilix";
|
||||
import { CreatePlaygroundConversationController } from "@/src/interface-adapters/controllers/conversations/create-playground-conversation.controller";
|
||||
import { CreateConversationUseCase } from "@/src/application/use-cases/conversations/create-conversation.use-case";
|
||||
import { RedisCacheService } from "@/src/infrastructure/services/redis.cache.service";
|
||||
import { CreateCachedTurnUseCase } from "@/src/application/use-cases/conversations/create-cached-turn.use-case";
|
||||
import { FetchCachedTurnUseCase } from "@/src/application/use-cases/conversations/fetch-cached-turn.use-case";
|
||||
import { CreateCachedTurnController } from "@/src/interface-adapters/controllers/conversations/create-cached-turn.controller";
|
||||
import { RunTurnController } from "@/src/interface-adapters/controllers/conversations/run-turn.controller";
|
||||
|
||||
export const container = createContainer({
|
||||
injectionMode: InjectionMode.PROXY,
|
||||
strict: true,
|
||||
});
|
||||
|
||||
container.register({
|
||||
// services
|
||||
// ---
|
||||
cacheService: asClass(RedisCacheService).singleton(),
|
||||
|
||||
// conversations
|
||||
// ---
|
||||
conversationsRepository: asClass(MongoDBConversationsRepository).singleton(),
|
||||
|
||||
createConversationUseCase: asClass(CreateConversationUseCase).singleton(),
|
||||
createCachedTurnUseCase: asClass(CreateCachedTurnUseCase).singleton(),
|
||||
fetchCachedTurnUseCase: asClass(FetchCachedTurnUseCase).singleton(),
|
||||
runConversationTurnUseCase: asClass(RunConversationTurnUseCase).singleton(),
|
||||
|
||||
createPlaygroundConversationController: asClass(CreatePlaygroundConversationController).singleton(),
|
||||
createCachedTurnController: asClass(CreateCachedTurnController).singleton(),
|
||||
runCachedTurnController: asClass(RunCachedTurnController).singleton(),
|
||||
runTurnController: asClass(RunTurnController).singleton(),
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue