diff --git a/go.mod b/go.mod index 1b77ae2d..896d1bef 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 github.com/google/uuid v1.6.0 github.com/gptscript-ai/chat-completion-client v0.0.0-20240515050533-bdef9f2226a9 - github.com/gptscript-ai/tui v0.0.0-20240531161317-ce32f93ac844 + github.com/gptscript-ai/tui v0.0.0-20240604045848-e01b0b7aab9f github.com/hexops/autogold/v2 v2.2.1 github.com/hexops/valast v1.4.4 github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 @@ -62,7 +62,7 @@ require ( github.com/gookit/color v1.5.4 // indirect github.com/gorilla/css v1.0.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/gptscript-ai/go-gptscript v0.0.0-20240531155932-57eeae840062 // indirect + github.com/gptscript-ai/go-gptscript v0.0.0-20240604030145-39497c0575b3 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hexops/autogold v1.3.1 // indirect diff --git a/go.sum b/go.sum index 1ac9521c..a443d0c7 100644 --- a/go.sum +++ b/go.sum @@ -172,10 +172,10 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gptscript-ai/chat-completion-client v0.0.0-20240515050533-bdef9f2226a9 h1:s6nL/aokB1sJTqVXEjN0zFI5CJa66ubw9g68VTMzEw0= github.com/gptscript-ai/chat-completion-client v0.0.0-20240515050533-bdef9f2226a9/go.mod h1:7P/o6/IWa1KqsntVf68hSnLKuu3+xuqm6lYhch1w4jo= -github.com/gptscript-ai/go-gptscript v0.0.0-20240531155932-57eeae840062 h1:30/1iOONBhw9WeCsoo4U74B+a20lATBFHFiVlpyk5oo= -github.com/gptscript-ai/go-gptscript v0.0.0-20240531155932-57eeae840062/go.mod h1:h1yYzC0rgB5Kk7lwdba+Xs6cWkuJfLq6sPRna45OVG0= -github.com/gptscript-ai/tui v0.0.0-20240531161317-ce32f93ac844 h1:c8sS5fCD3TXQZj94GDlQNR0zAw+1nuT3sYSH/Qo96+A= -github.com/gptscript-ai/tui v0.0.0-20240531161317-ce32f93ac844/go.mod h1:G51xpKSFH0g1hG1s9J8vxj7NL6x43KJxZKM+77rt79s= +github.com/gptscript-ai/go-gptscript v0.0.0-20240604030145-39497c0575b3 h1:mXLpCzEg4DoOeFZt6w99QFh9n60UwpRGGG0c+aaT+5k= +github.com/gptscript-ai/go-gptscript v0.0.0-20240604030145-39497c0575b3/go.mod h1:h1yYzC0rgB5Kk7lwdba+Xs6cWkuJfLq6sPRna45OVG0= +github.com/gptscript-ai/tui v0.0.0-20240604045848-e01b0b7aab9f h1:7dCE0E/y3y3p1BPSQGQ4mtsz5cWWl0FbXfCCDCf57SI= +github.com/gptscript-ai/tui v0.0.0-20240604045848-e01b0b7aab9f/go.mod h1:ybD/8QfwaMiK2QUSnnTxgzrIaXRgipowU4pW1qxgNJ8= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= diff --git a/pkg/cli/gptscript.go b/pkg/cli/gptscript.go index c7df4b22..7256c18d 100644 --- a/pkg/cli/gptscript.go +++ b/pkg/cli/gptscript.go @@ -70,7 +70,7 @@ type GPTScript struct { ForceSequential bool `usage:"Force parallel calls to run sequentially"` Workspace string `usage:"Directory to use for the workspace, if specified it will not be deleted on exit"` UI bool `usage:"Launch the UI" local:"true" name:"ui"` - TUI bool `usage:"Launch the TUI" local:"true" name:"tui"` + DisableTUI bool `usage:"Don't use chat TUI but instead verbose output" local:"true" name:"disable-tui"` readData []byte } @@ -438,9 +438,14 @@ func (r *GPTScript) Run(cmd *cobra.Command, args []string) (retErr error) { } if prg.IsChat() || r.ForceChat { - if r.TUI { - return tui.Run(cmd.Context(), args[0], r.Workspace, strings.Join(args[1:], " "), tui.RunOptions{ + if !r.DisableTUI && !r.Debug && !r.DebugMessages { + return tui.Run(cmd.Context(), args[0], tui.RunOptions{ TrustedRepoPrefixes: []string{"github.com/gptscript-ai/context"}, + DisableCache: r.DisableCache, + Input: strings.Join(args[1:], " "), + CacheDir: r.CacheDir, + SubTool: r.SubTool, + Workspace: r.Workspace, }) } return chat.Start(cmd.Context(), nil, gptScript, func() (types.Program, error) { diff --git a/pkg/mvl/log.go b/pkg/mvl/log.go index a7cacf9b..6aa7c491 100644 --- a/pkg/mvl/log.go +++ b/pkg/mvl/log.go @@ -53,6 +53,9 @@ func (f formatter) Format(entry *logrus.Entry) ([]byte, error) { if i, ok := entry.Data["request"]; ok && i != "" { msg += fmt.Sprintf(" [request=%s]", i) } + if i, ok := entry.Data["cached"]; ok && i == true { + msg += " [cached]" + } if i, ok := entry.Data["response"]; ok && i != "" { msg += fmt.Sprintf(" [response=%s]", i) } diff --git a/pkg/openai/client.go b/pkg/openai/client.go index d5d56a22..d064b9d3 100644 --- a/pkg/openai/client.go +++ b/pkg/openai/client.go @@ -369,16 +369,15 @@ func (c *Client) Call(ctx context.Context, messageRequest types.CompletionReques result.Role = types.CompletionMessageRoleTypeAssistant } - var usage types.Usage - if !cacheResponse { - usage = result.Usage + if cacheResponse { + result.Usage = types.Usage{} } status <- types.CompletionStatus{ CompletionID: id, Chunks: response, Response: result, - Usage: usage, + Usage: result.Usage, Cached: cacheResponse, }