28 lines
989 B
C#
28 lines
989 B
C#
|
|
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;
|
||
|
|
|
||
|
|
/// <summary>Context assembly, the model call, output parsing, prompt caching — runs in the worker (M4).</summary>
|
||
|
|
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)));
|
||
|
|
}
|
||
|
|
}
|