返回 DeepSeek-Reasonix
serve_browser.go
根目录 / internal / cli / serve_browser.go
1 package cli
2
3 import (
4 "fmt"
5 "strings"
6
7 "reasonix/internal/remote/bootstrap"
8 "reasonix/internal/serve"
9 )
10
11 // serveBrowserBrokerFromEnv builds the desktop browser broker client from the
12 // environment a desktop bootstrap injected (REASONIX_BROWSER_BROKER /
13 // REASONIX_BROWSER_TOKEN). Both empty means no broker; exactly one set is a
14 // broken injection and fails startup loudly instead of half-configuring.
15 func serveBrowserBrokerFromEnv(getenv func(string) string) (*serve.BrowserBroker, error) {
16 if getenv == nil {
17 return nil, nil
18 }
19 endpoint := strings.TrimSpace(getenv(bootstrap.BrowserBrokerEnv))
20 token := strings.TrimSpace(getenv(bootstrap.BrowserTokenEnv))
21 if endpoint == "" && token == "" {
22 return nil, nil
23 }
24 if endpoint == "" || token == "" {
25 return nil, fmt.Errorf("%s and %s must be set together", bootstrap.BrowserBrokerEnv, bootstrap.BrowserTokenEnv)
26 }
27 return serve.NewBrowserBroker(endpoint, token)
28 }
29
29 lines GO