Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018BAUeCFpDkRD6tU5wGsc1C
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { TRADE_RETRIEVAL, TRADE_EMBEDDINGS } from '@domain/ports/out/trade-assistant.port';
|
|
import { OpenAiEmbeddingAdapter } from '@infrastructure/ai/openai-embedding.adapter';
|
|
import { WikiRetriever } from '@infrastructure/ai/wiki-retriever';
|
|
import { CsvRateModule } from '@infrastructure/carriers/csv-loader/csv-rate.module';
|
|
import { AuditModule } from '../audit/audit.module';
|
|
import { CsvBookingsModule } from '../csv-bookings/csv-bookings.module';
|
|
import { OrganizationsModule } from '../organizations/organizations.module';
|
|
import { SubscriptionsModule } from '../subscriptions/subscriptions.module';
|
|
import { UsersModule } from '../users/users.module';
|
|
import { CapabilityRegistry } from './capability.registry';
|
|
import { McpController } from './mcp.controller';
|
|
|
|
/**
|
|
* Serveur MCP et registre de capacites.
|
|
*
|
|
* Le module n'apporte aucune logique metier : il assemble des services deja
|
|
* exposes ailleurs. C'est le point de la conception — les agents passent par
|
|
* les memes chemins que l'interface.
|
|
*/
|
|
@Module({
|
|
imports: [
|
|
CsvRateModule,
|
|
CsvBookingsModule,
|
|
SubscriptionsModule,
|
|
UsersModule,
|
|
OrganizationsModule,
|
|
AuditModule,
|
|
],
|
|
controllers: [McpController],
|
|
providers: [
|
|
CapabilityRegistry,
|
|
{ provide: TRADE_EMBEDDINGS, useClass: OpenAiEmbeddingAdapter },
|
|
{ provide: TRADE_RETRIEVAL, useClass: WikiRetriever },
|
|
],
|
|
exports: [CapabilityRegistry],
|
|
})
|
|
export class McpModule {}
|