ci/woodpecker/pr/ci Pipeline failed
Add the Slice-Zero catalog and selection HTTP surfaces for P3 Task 3: GET /api/harnesses, GET /api/harnesses/:harnessId/catalog, GET+PUT /api/chat/preferences/selection. Scope is always server-derived via scopeFromUser(CurrentUser); selection tuples are validated against the live catalog with no fallback substitution and persisted in a transitional owner-scoped in-memory store. HarnessModule is wired into AppModule. Co-Authored-By: Claude Opus 4.8 <[email protected]> Claude-Session: https://claude.ai/code/session_01ESFAnh2t9HmLwng8oW95St
29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
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 {}
|