Skip to content

Commit bc4f016

Browse files
authored
Merge pull request #446 from thedadams/ui-prompt-env-fixes-2
fix: clear prompt env vars when running the UI
2 parents 8527fa5 + 04fc99b commit bc4f016

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

pkg/cli/gptscript.go

+6
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,12 @@ func (r *GPTScript) Run(cmd *cobra.Command, args []string) (retErr error) {
467467
}, gptOpt.Env, toolInput, r.SaveChatStateFile)
468468
}
469469

470+
if r.UI {
471+
// If the UI is running, then all prompts should go through the SDK and the UI.
472+
// Not clearing ExtraEnv here would mean that the prompts would go through the terminal.
473+
gptScript.ExtraEnv = nil
474+
}
475+
470476
s, err := gptScript.Run(cmd.Context(), prg, gptOpt.Env, toolInput)
471477
if err != nil {
472478
return err

pkg/gptscript/gptscript.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,9 @@ func New(opts *Options) (*GPTScript, error) {
110110
closeServer()
111111
return nil, err
112112
}
113-
opts.Env = append(opts.Env, extraEnv...)
114-
oaiClient.SetEnvs(opts.Env)
113+
oaiClient.SetEnvs(extraEnv)
115114

116-
remoteClient := remote.New(runner, opts.Env, cacheClient, cliCfg, opts.CredentialContext)
115+
remoteClient := remote.New(runner, extraEnv, cacheClient, cliCfg, opts.CredentialContext)
117116
if err := registry.AddClient(remoteClient); err != nil {
118117
closeServer()
119118
return nil, err

pkg/prompt/server.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,20 @@ import (
1414
)
1515

1616
func NewServer(ctx context.Context, envs []string) ([]string, error) {
17+
var extraEnvs []string
1718
for _, env := range envs {
18-
_, v, ok := strings.Cut(env, types.PromptTokenEnvVar+"=")
19-
if ok && v != "" {
20-
return nil, nil
19+
for _, prefix := range []string{types.PromptURLEnvVar, types.PromptTokenEnvVar} {
20+
v, ok := strings.CutPrefix(env, prefix+"=")
21+
if ok && v != "" {
22+
extraEnvs = append(extraEnvs, env)
23+
}
2124
}
2225
}
2326

27+
if len(extraEnvs) == 2 {
28+
return extraEnvs, nil
29+
}
30+
2431
l, err := net.Listen("tcp", "127.0.0.1:0")
2532
if err != nil {
2633
return nil, err

pkg/sdkserver/routes.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func (s *server) execHandler(w http.ResponseWriter, r *http.Request) {
166166
// Don't overwrite the PromptURLEnvVar if it is already set in the environment.
167167
var promptTokenAlreadySet bool
168168
for _, env := range reqObject.Env {
169-
if strings.HasPrefix(env, types.PromptTokenEnvVar+"=") {
169+
if v, ok := strings.CutPrefix(env, types.PromptTokenEnvVar+"="); ok && v != "" {
170170
promptTokenAlreadySet = true
171171
break
172172
}

0 commit comments

Comments
 (0)