Add files via upload

This commit is contained in:
公明
2026-04-22 10:03:46 +08:00
committed by GitHub
parent 928b696c06
commit c841809f9e
3 changed files with 39 additions and 27 deletions
+28 -4
View File
@@ -1,11 +1,15 @@
package main
import (
"context"
"cyberstrike-ai/internal/app"
"cyberstrike-ai/internal/config"
"cyberstrike-ai/internal/logger"
"flag"
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
@@ -31,15 +35,35 @@ func main() {
// 初始化日志
log := logger.New(cfg.Log.Level, cfg.Log.Output)
// 创建可取消的根 context,用于优雅关闭
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// 监听系统信号
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
// 创建应用
application, err := app.New(cfg, log)
if err != nil {
log.Fatal("应用初始化失败", "error", err)
}
// 启动服务器
if err := application.Run(); err != nil {
log.Fatal("服务器启动失败", "error", err)
// 在后台监听信号
go func() {
sig := <-sigCh
log.Info("收到系统信号,开始优雅关闭: " + sig.String())
application.Shutdown()
cancel()
}()
// 启动服务器(传入 context 以支持优雅关闭)
if err := application.RunWithContext(ctx); err != nil {
// context 取消导致的关闭不视为错误
if ctx.Err() != nil {
log.Info("服务器已优雅关闭")
} else {
log.Fatal("服务器启动失败", "error", err)
}
}
}
+5 -11
View File
@@ -37,21 +37,15 @@ func main() {
fmt.Printf(" URL: %s\n", srv.URL)
fmt.Printf(" Description: %s\n", srv.Description)
fmt.Printf(" Timeout: %d seconds\n", srv.Timeout)
fmt.Printf(" Enabled: %v\n", srv.Enabled)
fmt.Printf(" Disabled: %v\n", srv.Disabled)
fmt.Printf(" ExternalMCPEnable: %v\n", srv.ExternalMCPEnable)
fmt.Println()
}
}
func getTransport(srv config.ExternalMCPServerConfig) string {
if srv.Transport != "" {
return srv.Transport
t := srv.GetTransportType()
if t == "" {
return "unknown"
}
if srv.Command != "" {
return "stdio"
}
if srv.URL != "" {
return "http"
}
return "unknown"
return t
}
+6 -12
View File
@@ -52,8 +52,7 @@ func main() {
}
fmt.Printf(" Description: %s\n", srv.Description)
fmt.Printf(" Timeout: %d seconds\n", srv.Timeout)
fmt.Printf(" Enabled: %v\n", srv.Enabled)
fmt.Printf(" Disabled: %v\n", srv.Disabled)
fmt.Printf(" ExternalMCPEnable: %v\n", srv.ExternalMCPEnable)
}
// 获取统计信息
@@ -67,7 +66,7 @@ func main() {
// 测试启动(仅测试启用的)
fmt.Println("\n=== 测试启动 ===")
for name, srv := range cfg.ExternalMCP.Servers {
if srv.Enabled && !srv.Disabled {
if srv.ExternalMCPEnable {
fmt.Printf("\n尝试启动 %s...\n", name)
// 注意:实际启动可能会失败,因为需要真实的MCP服务器
err := manager.StartClient(name)
@@ -131,15 +130,10 @@ func main() {
}
func getTransport(srv config.ExternalMCPServerConfig) string {
if srv.Transport != "" {
return srv.Transport
t := srv.GetTransportType()
if t == "" {
return "unknown"
}
if srv.Command != "" {
return "stdio"
}
if srv.URL != "" {
return "http"
}
return "unknown"
return t
}