- agents table with name, avatar, description, model, persona, instructions, soft-delete - AgentEndpoint (GET/POST/PUT/DELETE /api/agents) - sessions + chains now reference agent_id - ChatEndpoint resolves agent from session (no agent = no chat) - system prompt built from agent persona + instructions - frontend: agent editor with avatar upload, agent cards on dashboard - session: agent dropdown replaces model picker, choice persisted
28 lines
763 B
C#
28 lines
763 B
C#
using System;
|
|
using System.IO;
|
|
using Gott.Endpoints;
|
|
using Gott.Services;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
builder.Services.AddHttpClient();
|
|
|
|
var dataDir = Path.Combine(AppContext.BaseDirectory, "data");
|
|
var workspaceRoot = Path.Combine(dataDir, "workspace");
|
|
Directory.CreateDirectory(workspaceRoot);
|
|
|
|
builder.Services.AddSingleton(new ToolService(workspaceRoot));
|
|
builder.Services.AddSingleton(new DatabaseService(Path.Combine(dataDir, "gott.db")));
|
|
|
|
var app = builder.Build();
|
|
app.UseDefaultFiles();
|
|
app.UseStaticFiles();
|
|
|
|
app.MapChatEndpoint();
|
|
app.MapHistoryEndpoint();
|
|
app.MapSessionEndpoints();
|
|
app.MapAgentEndpoints();
|
|
|
|
app.Run("http://0.0.0.0:19000");
|