(
config: Config,
historyService: HistoryService,
initStateManager: InitStateManager,
providerService: ProviderService,
backgroundProcessManager?: BackgroundProcessManager,
sessionUsageService?: SessionUsageService,
workspaceMcpOverridesService?: WorkspaceMcpOverridesService,
policyService?: PolicyService,
telemetryService?: TelemetryService,
devToolsService?: DevToolsService,
opResolver?: ExternalSecretResolver,
experimentsService?: ExperimentsService
)
| 447 | private desktopSessionManager?: DesktopSessionManager; |
| 448 | |
| 449 | constructor( |
| 450 | config: Config, |
| 451 | historyService: HistoryService, |
| 452 | initStateManager: InitStateManager, |
| 453 | providerService: ProviderService, |
| 454 | backgroundProcessManager?: BackgroundProcessManager, |
| 455 | sessionUsageService?: SessionUsageService, |
| 456 | workspaceMcpOverridesService?: WorkspaceMcpOverridesService, |
| 457 | policyService?: PolicyService, |
| 458 | telemetryService?: TelemetryService, |
| 459 | devToolsService?: DevToolsService, |
| 460 | opResolver?: ExternalSecretResolver, |
| 461 | experimentsService?: ExperimentsService |
| 462 | ) { |
| 463 | super(); |
| 464 | // Increase max listeners to accommodate multiple concurrent workspace listeners |
| 465 | // Each workspace subscribes to stream events, and we expect >10 concurrent workspaces |
| 466 | this.setMaxListeners(50); |
| 467 | this.workspaceMcpOverridesService = |
| 468 | workspaceMcpOverridesService ?? new WorkspaceMcpOverridesService(config); |
| 469 | this.config = config; |
| 470 | this.historyService = historyService; |
| 471 | this.initStateManager = initStateManager; |
| 472 | this.backgroundProcessManager = backgroundProcessManager; |
| 473 | this.sessionUsageService = sessionUsageService; |
| 474 | this.policyService = policyService; |
| 475 | this.telemetryService = telemetryService; |
| 476 | this.opResolver = opResolver; |
| 477 | this.experimentsService = experimentsService; |
| 478 | this.providerService = providerService; |
| 479 | this.streamManager = new StreamManager(historyService, sessionUsageService, () => |
| 480 | this.providerService.getConfig() |
| 481 | ); |
| 482 | this.devToolsService = devToolsService; |
| 483 | this.providerModelFactory = new ProviderModelFactory( |
| 484 | config, |
| 485 | providerService, |
| 486 | policyService, |
| 487 | undefined, |
| 488 | devToolsService, |
| 489 | opResolver |
| 490 | ); |
| 491 | void this.ensureSessionsDir(); |
| 492 | this.setupStreamEventForwarding(); |
| 493 | this.mockModeEnabled = false; |
| 494 | |
| 495 | if (process.env.MUX_MOCK_AI === "1") { |
| 496 | log.info("AIService running in MUX_MOCK_AI mode"); |
| 497 | this.enableMockMode(); |
| 498 | } |
| 499 | } |
| 500 | |
| 501 | setCodexOauthService(service: CodexOauthService): void { |
| 502 | this.providerModelFactory.codexOauthService = service; |
nothing calls this directly
no test coverage detected