Add Luna.Core server with SignalR hub, session management, and tool system

Implement the core application server as an ASP.NET web host with:
- SignalR ChatHub for real-time client communication
- Session management with token estimation for context windowing
- Extensible tool system with attribute-based tool discovery
- Chat stream update builder for streaming AI responses
- App configuration with appsettings for development and production
This commit is contained in:
2026-04-04 04:10:58 +02:00
parent 29eb3851c9
commit 2f5841a1b9
23 changed files with 586 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
using System.Reflection;
using Microsoft.Extensions.AI;
namespace Luna.Core.Tools;
public interface IToolbox
{
public string Name { get; }
public sealed IEnumerable<AITool> GetTools()
{
var type = GetType();
List<(ToolAttribute Attribute, MethodInfo Method)> tools = [];
foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.Instance))
{
var attribute = method.GetCustomAttribute<ToolAttribute>();
if (attribute is null) continue;
tools.Add((attribute, method));
}
return tools.Select(tool => AIFunctionFactory.Create(
tool.Method,
this,
$"{this.Name}/{tool.Attribute.Name}",
tool.Attribute.Description
));
}
}