feat(worker): seed default agents on startup
This commit is contained in:
@@ -38,6 +38,12 @@ var agentsDir = Path.Combine(ClaudeDo.Data.Paths.AppDataRoot(), "agents");
|
|||||||
Directory.CreateDirectory(agentsDir);
|
Directory.CreateDirectory(agentsDir);
|
||||||
builder.Services.AddSingleton(new AgentFileService(agentsDir));
|
builder.Services.AddSingleton(new AgentFileService(agentsDir));
|
||||||
|
|
||||||
|
var defaultAgentsBundleDir = Path.Combine(AppContext.BaseDirectory, "DefaultAgents");
|
||||||
|
builder.Services.AddSingleton(sp => new DefaultAgentSeeder(
|
||||||
|
defaultAgentsBundleDir,
|
||||||
|
agentsDir,
|
||||||
|
sp.GetService<Microsoft.Extensions.Logging.ILogger<DefaultAgentSeeder>>()));
|
||||||
|
|
||||||
// QueueService: singleton + hosted service (same instance).
|
// QueueService: singleton + hosted service (same instance).
|
||||||
builder.Services.AddSingleton<QueueService>();
|
builder.Services.AddSingleton<QueueService>();
|
||||||
builder.Services.AddHostedService(sp => sp.GetRequiredService<QueueService>());
|
builder.Services.AddHostedService(sp => sp.GetRequiredService<QueueService>());
|
||||||
@@ -53,6 +59,19 @@ using (var scope = app.Services.CreateScope())
|
|||||||
scope.ServiceProvider.GetRequiredService<ClaudeDoDbContext>());
|
scope.ServiceProvider.GetRequiredService<ClaudeDoDbContext>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var seeder = app.Services.GetRequiredService<DefaultAgentSeeder>();
|
||||||
|
var seedResult = await seeder.SeedMissingAsync();
|
||||||
|
app.Logger.LogInformation(
|
||||||
|
"Default agents seeded: {Copied} copied, {Skipped} already present",
|
||||||
|
seedResult.Copied, seedResult.Skipped);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
app.Logger.LogWarning(ex, "Default agent seeding failed");
|
||||||
|
}
|
||||||
|
|
||||||
app.MapHub<WorkerHub>("/hub");
|
app.MapHub<WorkerHub>("/hub");
|
||||||
|
|
||||||
app.Logger.LogInformation("ClaudeDo.Worker listening on http://127.0.0.1:{Port} (db: {Db})",
|
app.Logger.LogInformation("ClaudeDo.Worker listening on http://127.0.0.1:{Port} (db: {Db})",
|
||||||
|
|||||||
Reference in New Issue
Block a user