using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using TeamUp.SharedKernel.Modularity; namespace TeamUp.Modules.Assembler; /// Context assembly, the model call, output parsing, prompt caching — runs in the worker (M4). public sealed class AssemblerModule : IModule { public string Name => "assembler"; public void Register(IServiceCollection services, IConfiguration configuration) { // Skeleton: no services yet. M4 introduces the jobs table (FOR UPDATE SKIP LOCKED), // the AgentRun context, and the assembler pipeline (registered for the worker host). } public void MapEndpoints(IEndpointRouteBuilder endpoints) { endpoints.MapGroup($"/api/{Name}") .WithTags("Assembler") .MapGet("/ping", () => TypedResults.Ok(new ModulePing(Name))); } }