feat(#166): Implement Stitcher module structure
Created the mosaic-stitcher module - the workflow orchestration layer that wraps OpenClaw. Responsibilities: - Receive webhooks from @mosaic bot - Apply Guard Rails (capability permissions) - Apply Quality Rails (mandatory gates) - Track all job steps and events - Dispatch work to OpenClaw with constraints Implementation: - StitcherModule: Module definition with PrismaModule and BullMqModule - StitcherService: Core orchestration logic - handleWebhook(): Process webhooks from @mosaic bot - dispatchJob(): Create RunnerJob and dispatch to BullMQ queue - applyGuardRails(): Check capability permissions for agent profiles - applyQualityRails(): Determine mandatory gates for job types - trackJobEvent(): Log events to database for audit trail - StitcherController: HTTP endpoints - POST /stitcher/webhook: Webhook receiver - POST /stitcher/dispatch: Manual job dispatch - DTOs and interfaces for type safety TDD Process: 1. RED: Created failing tests (12 tests) 2. GREEN: Implemented minimal code to pass tests 3. REFACTOR: Fixed TypeScript strict mode issues Quality Gates: ALL PASS - Typecheck: PASS - Lint: PASS - Build: PASS - Tests: PASS (12/12) Token estimate: ~56,000 tokens Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
19
apps/api/src/stitcher/stitcher.module.ts
Normal file
19
apps/api/src/stitcher/stitcher.module.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { Module } from "@nestjs/common";
|
||||
import { StitcherController } from "./stitcher.controller";
|
||||
import { StitcherService } from "./stitcher.service";
|
||||
import { PrismaModule } from "../prisma/prisma.module";
|
||||
import { BullMqModule } from "../bullmq/bullmq.module";
|
||||
|
||||
/**
|
||||
* StitcherModule - Workflow orchestration module
|
||||
*
|
||||
* Provides the control layer that wraps OpenClaw for workflow execution.
|
||||
* Handles webhooks, applies guard/quality rails, and dispatches jobs to queues.
|
||||
*/
|
||||
@Module({
|
||||
imports: [PrismaModule, BullMqModule],
|
||||
controllers: [StitcherController],
|
||||
providers: [StitcherService],
|
||||
exports: [StitcherService],
|
||||
})
|
||||
export class StitcherModule {}
|
||||
Reference in New Issue
Block a user