import { Module } from '@nestjs/common';
import { AiModule } from '../ai/ai.module';
import { AuthModule } from '../auth/auth.module';
import { PlanModule } from '../plan/plan.module';
import { AssistantController } from './assistant.controller';
import { AssistantLabController } from './lab.controller';
import { AssistantService } from './assistant.service';
import { McpClientService } from './mcp-client.service';
import { TranscribeService } from './transcribe.service';
import { DictationGateway } from './dictation.gateway';

/**
 * AssistantModule — "外部 agent" 模拟器(独立设计,不复用 AiCall 单发框架)。
 *
 * 复用 AiModule 的 AiProviderService(provider 可切换);McpClientService 真连 PAC MCP 端点。
 */
@Module({
  // PlanModule:本地工具 propose_assignment 用 AssignmentProposalService 取数;
  //            propose_rearrange 用 PlanRearrangeService + AgentRosterService(姓名→id)
  imports: [AiModule, AuthModule, PlanModule],
  // 🔬 AssistantLabController = 裸 agent 试验台，⛔ 与产品助手无代码关联（见该文件头）
  controllers: [AssistantController, AssistantLabController],
  providers: [AssistantService, McpClientService, TranscribeService, DictationGateway],
  exports: [AssistantService], // 供 WeixinAibotModule 等其它入口复用同一个助手大脑
})
export class AssistantModule {}
