import { Module } from '@nestjs/common'; import { HarnessRegistry } from './harness.registry.js'; import { HarnessService } from './harness.service.js'; import { HARNESS_REGISTRY, HARNESS_SERVICE } from './harness.tokens.js'; import { HarnessController } from './harness.controller.js'; import { HarnessSelectionController } from './harness-selection.controller.js'; import { HarnessSelectionService } from './harness-selection.service.js'; import { HarnessSelectionRepository } from './harness-selection.repository.js'; /** * Wires the harness-neutral registry/service (Task Two) together with the * Slice-Zero catalog and selection HTTP surfaces (Task Three). * * The registry is provided empty here; real harness adapters are registered in a * later task. Because the controllers/services resolve their collaborators through * this real module graph, an unresolved provider fails loudly at `app.init()`. */ @Module({ controllers: [HarnessController, HarnessSelectionController], providers: [ { provide: HARNESS_REGISTRY, useFactory: () => new HarnessRegistry() }, { provide: HARNESS_SERVICE, useClass: HarnessService }, HarnessSelectionRepository, HarnessSelectionService, ], exports: [HARNESS_REGISTRY, HARNESS_SERVICE], }) export class HarnessModule {}