From 1c0164b1f5fefe72c6e8f3b858050cb311069d29 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Wed, 8 May 2024 19:35:49 -0700 Subject: [PATCH] feat: add flag to disable tools from running concurrently --- pkg/cli/gptscript.go | 14 +++++++++----- pkg/loader/github/github.go | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/pkg/cli/gptscript.go b/pkg/cli/gptscript.go index 10eb4179..c9c11396 100644 --- a/pkg/cli/gptscript.go +++ b/pkg/cli/gptscript.go @@ -23,6 +23,7 @@ import ( "github.com/gptscript-ai/gptscript/pkg/monitor" "github.com/gptscript-ai/gptscript/pkg/mvl" "github.com/gptscript-ai/gptscript/pkg/openai" + "github.com/gptscript-ai/gptscript/pkg/runner" "github.com/gptscript-ai/gptscript/pkg/server" "github.com/gptscript-ai/gptscript/pkg/types" "github.com/gptscript-ai/gptscript/pkg/version" @@ -61,6 +62,7 @@ type GPTScript struct { CredentialOverride string `usage:"Credentials to override (ex: --credential-override github.com/example/cred-tool:API_TOKEN=1234)"` ChatState string `usage:"The chat state to continue, or null to start a new chat and return the state"` ForceChat bool `usage:"Force an interactive chat session if even the top level tool is not a chat tool"` + 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"` readData []byte @@ -124,9 +126,13 @@ func (r *GPTScript) NewRunContext(cmd *cobra.Command) context.Context { func (r *GPTScript) NewGPTScriptOpts() (gptscript.Options, error) { opts := gptscript.Options{ - Cache: cache.Options(r.CacheOptions), - OpenAI: openai.Options(r.OpenAIOptions), - Monitor: monitor.Options(r.DisplayOptions), + Cache: cache.Options(r.CacheOptions), + OpenAI: openai.Options(r.OpenAIOptions), + Monitor: monitor.Options(r.DisplayOptions), + Runner: runner.Options{ + CredentialOverride: r.CredentialOverride, + Sequential: r.ForceSequential, + }, Quiet: r.Quiet, Env: os.Environ(), CredentialContext: r.CredentialContext, @@ -150,8 +156,6 @@ func (r *GPTScript) NewGPTScriptOpts() (gptscript.Options, error) { opts.Runner.EndPort = endNum } - opts.Runner.CredentialOverride = r.CredentialOverride - if r.EventsStreamTo != "" { mf, err := monitor.NewFileFactory(r.EventsStreamTo) if err != nil { diff --git a/pkg/loader/github/github.go b/pkg/loader/github/github.go index 499f0484..fc2e5f81 100644 --- a/pkg/loader/github/github.go +++ b/pkg/loader/github/github.go @@ -97,7 +97,7 @@ func Load(ctx context.Context, _ *cache.Client, urlName string) (string, *types. if path == "" || path == "/" { path = "tool.gpt" - } else if !strings.HasSuffix(path, system.Suffix) { + } else if !strings.HasSuffix(path, system.Suffix) && !strings.Contains(parts[len(parts)-1], ".") { path += "/tool.gpt" }