diff --git a/cmd/start.go b/cmd/start.go index d27df94a..597b88aa 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -7,7 +7,6 @@ import ( "path/filepath" "strings" "syscall" - "time" "github.com/fatih/color" "github.com/spf13/cobra" @@ -82,32 +81,15 @@ var startCmd = &cobra.Command{ config.Development() } - startTime := time.Now() - // load the application engine - var progressCallback func(string, string) - if config.Conf.Mode == "development" { - fmt.Println(color.CyanString("Loading application engine...")) - progressCallback = func(name string, duration string) { - fmt.Printf(" %s %s %s\n", color.GreenString("✓"), name, color.GreenString("(%s)", duration)) - } - } - loadWarnings, err := engine.Load(config.Conf, engine.LoadOption{ Action: "start", - }, progressCallback) + }) if err != nil { fmt.Println(color.RedString(L("Load: %s"), err.Error())) os.Exit(1) } - loadDuration := time.Since(startTime) - if config.Conf.Mode == "development" { - fmt.Printf("\n%s Engine loaded successfully in %s\n\n", - color.GreenString("✓"), - color.CyanString("%v", loadDuration)) - } - port := fmt.Sprintf(":%d", config.Conf.Port) if port == ":80" { port = "" @@ -209,7 +191,7 @@ var startCmd = &cobra.Command{ fmt.Println(color.CyanString("\n%s", endpoint.Interface)) fmt.Println(color.WhiteString("--------------------------")) fmt.Println(color.WhiteString(L("Website")), color.GreenString(" %s", endpoint.URL)) - fmt.Println(color.WhiteString(L("Admin")), color.GreenString(" %s/%s/login/admin", endpoint.URL, strings.Trim(root, "/"))) + fmt.Println(color.WhiteString(L("Dashboard")), color.GreenString(" %s/%s/auth/entry", endpoint.URL, strings.Trim(root, "/"))) fmt.Println(color.WhiteString(L("API")), color.GreenString(" %s/api", endpoint.URL)) } fmt.Println("") diff --git a/widgets/app/app.go b/widgets/app/app.go index 3dc77881..36eb98cf 100644 --- a/widgets/app/app.go +++ b/widgets/app/app.go @@ -580,6 +580,36 @@ func processXgen(process *process.Process) interface{} { // agentConfig["connectors"] = connector.AIConnectors } + // External tools availability (safe subset for frontend) + toolsConfig := map[string]interface{}{} + if share.Tools != nil { + safeTool := func(info *share.ExtToolInfo) map[string]interface{} { + if info == nil { + return map[string]interface{}{"available": false} + } + return map[string]interface{}{ + "available": info.Available, + "name": info.Name, + } + } + toolsConfig["ffmpeg"] = safeTool(share.Tools.FFmpeg) + toolsConfig["ffprobe"] = safeTool(share.Tools.FFprobe) + toolsConfig["pdftoppm"] = safeTool(share.Tools.Pdftoppm) + toolsConfig["mutool"] = safeTool(share.Tools.Mutool) + toolsConfig["imagemagick"] = safeTool(share.Tools.ImageMagick) + + if share.Tools.Docker != nil { + docker := map[string]interface{}{ + "available": share.Tools.Docker.Available, + "name": "docker", + } + if share.Tools.Docker.Mode != "" { + docker["mode"] = share.Tools.Docker.Mode + } + toolsConfig["docker"] = docker + } + } + // OpenAPI Settings openapiConfig := map[string]interface{}{} if openapi.Server != nil { @@ -688,6 +718,7 @@ func processXgen(process *process.Process) interface{} { "optional": Setting.Optional, "login": xgenLogin, "agent": agentConfig, + "tools": toolsConfig, "openapi": openapiConfig, "kb": kbConfig, }