mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
feat: refactor User/Bot architecture and implement multi-channel gateway
Major changes: 1. Core Architecture: Decoupled Bots from Users. Bots now have independent lifecycles, member management (bot_members), and dedicated configurations. 2. Channel Gateway: - Implemented a unified Channel Manager supporting Feishu, Telegram, and Local (Web/CLI) adapters. - Added message processing pipeline to normalize interactions across different platforms. - Introduced a Contact system for identity binding and guest access policies. 3. Database & Tooling: - Consolidated all migrations into 0001_init with updated schema for bots, channels, and contacts. - Optimized sqlc.yaml to automatically track the migrations directory. 4. Agent Enhancements: - Introduced ToolContext to provide Agents with platform-aware execution capabilities (e.g., messaging, contact lookups). - Added tool logging and fallback mechanisms for toolChoice execution. 5. UI & Docs: Updated frontend stores, UI components, and Swagger documentation to align with the new Bot-centric model.
This commit is contained in:
@@ -17,7 +17,7 @@ type Server struct {
|
||||
logger *slog.Logger
|
||||
}
|
||||
|
||||
func NewServer(log *slog.Logger, addr string, jwtSecret string, pingHandler *handlers.PingHandler, authHandler *handlers.AuthHandler, memoryHandler *handlers.MemoryHandler, embeddingsHandler *handlers.EmbeddingsHandler, chatHandler *handlers.ChatHandler, swaggerHandler *handlers.SwaggerHandler, providersHandler *handlers.ProvidersHandler, modelsHandler *handlers.ModelsHandler, settingsHandler *handlers.SettingsHandler, historyHandler *handlers.HistoryHandler, scheduleHandler *handlers.ScheduleHandler, subagentHandler *handlers.SubagentHandler, containerdHandler *handlers.ContainerdHandler, /* channelHandler handlers.ChannelHandler*/) *Server {
|
||||
func NewServer(log *slog.Logger, addr string, jwtSecret string, pingHandler *handlers.PingHandler, authHandler *handlers.AuthHandler, memoryHandler *handlers.MemoryHandler, embeddingsHandler *handlers.EmbeddingsHandler, chatHandler *handlers.ChatHandler, swaggerHandler *handlers.SwaggerHandler, providersHandler *handlers.ProvidersHandler, modelsHandler *handlers.ModelsHandler, settingsHandler *handlers.SettingsHandler, historyHandler *handlers.HistoryHandler, contactsHandler *handlers.ContactsHandler, scheduleHandler *handlers.ScheduleHandler, subagentHandler *handlers.SubagentHandler, containerdHandler *handlers.ContainerdHandler, channelHandler *handlers.ChannelHandler, usersHandler *handlers.UsersHandler, cliHandler *handlers.LocalChannelHandler, webHandler *handlers.LocalChannelHandler) *Server {
|
||||
if addr == "" {
|
||||
addr = ":8080"
|
||||
}
|
||||
@@ -75,6 +75,9 @@ func NewServer(log *slog.Logger, addr string, jwtSecret string, pingHandler *han
|
||||
if historyHandler != nil {
|
||||
historyHandler.Register(e)
|
||||
}
|
||||
if contactsHandler != nil {
|
||||
contactsHandler.Register(e)
|
||||
}
|
||||
if scheduleHandler != nil {
|
||||
scheduleHandler.Register(e)
|
||||
}
|
||||
@@ -90,9 +93,18 @@ func NewServer(log *slog.Logger, addr string, jwtSecret string, pingHandler *han
|
||||
if containerdHandler != nil {
|
||||
containerdHandler.Register(e)
|
||||
}
|
||||
// if channelHandler != nil {
|
||||
// channelHandler.Register(e)
|
||||
// }
|
||||
if channelHandler != nil {
|
||||
channelHandler.Register(e)
|
||||
}
|
||||
if usersHandler != nil {
|
||||
usersHandler.Register(e)
|
||||
}
|
||||
if cliHandler != nil {
|
||||
cliHandler.Register(e)
|
||||
}
|
||||
if webHandler != nil {
|
||||
webHandler.Register(e)
|
||||
}
|
||||
|
||||
return &Server{
|
||||
echo: e,
|
||||
|
||||
Reference in New Issue
Block a user