44 "context"
55 "encoding/json"
66 "fmt"
7- "io"
87 "log/slog"
98 "net"
109 "net/http"
@@ -49,13 +48,11 @@ func NewGPTScript(opts GlobalOptions) (GPTScript, error) {
4948 defer lock .Unlock ()
5049 gptscriptCount ++
5150
52- disableServer := os .Getenv ("GPT_SCRIPT_DISABLE_SERVER" ) == "true"
53-
54- if serverURL == "" && disableServer {
51+ if serverURL == "" {
5552 serverURL = os .Getenv ("GPTSCRIPT_URL" )
5653 }
5754
58- if serverProcessCancel == nil && ! disableServer {
55+ if serverProcessCancel == nil && os . Getenv ( "GPTSCRIPT_DISABLE_SERVER" ) != "true" {
5956 if serverURL == "" {
6057 l , err := net .Listen ("tcp" , "127.0.0.1:0" )
6158 if err != nil {
@@ -72,14 +69,19 @@ func NewGPTScript(opts GlobalOptions) (GPTScript, error) {
7269
7370 ctx , cancel := context .WithCancel (context .Background ())
7471
75- in , _ := io .Pipe ()
76- serverProcess = exec .CommandContext (ctx , getCommand (), "--listen-address" , serverURL , "sdkserver" )
72+ serverProcess = exec .CommandContext (ctx , getCommand (), "--debug" , "--listen-address" , serverURL , "sdkserver" )
73+ serverProcess .Stdout = os .Stdout
74+ serverProcess .Stderr = os .Stderr
7775 serverProcess .Env = append (os .Environ (), opts .toEnv ()... )
78- serverProcess .Stdin = in
76+ stdin , err := serverProcess .StdinPipe ()
77+ if err != nil {
78+ cancel ()
79+ return nil , err
80+ }
7981
8082 serverProcessCancel = func () {
83+ _ = stdin .Close ()
8184 cancel ()
82- _ = in .Close ()
8385 }
8486
8587 if err := serverProcess .Start (); err != nil {
@@ -102,13 +104,15 @@ func waitForServerReady(ctx context.Context, serverURL string) error {
102104 for {
103105 resp , err := http .Get ("http://" + serverURL + "/healthz" )
104106 if err != nil {
105- slog .DebugContext (ctx , "waiting for server to become ready" )
107+ slog .InfoContext (ctx , "waiting for server to become ready" , "err" , err )
106108 } else {
107109 _ = resp .Body .Close ()
108110
109111 if resp .StatusCode == http .StatusOK {
110112 return nil
111113 }
114+
115+ slog .InfoContext (ctx , "waiting for server to become ready" , "status" , resp .StatusCode )
112116 }
113117
114118 select {
0 commit comments