From 79fae624a947bc51539f6645aca37578e8af2f28 Mon Sep 17 00:00:00 2001 From: Donnie Adams Date: Mon, 20 Jan 2025 08:04:23 -0500 Subject: [PATCH] fix: send the correct payload when creating workspaces from workspaces The workspace-provider daemon expects fromWorkspaceIDs instead of workspace_ids. Signed-off-by: Donnie Adams --- pkg/sdkserver/workspaces.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkg/sdkserver/workspaces.go b/pkg/sdkserver/workspaces.go index bde59974..4389ff3b 100644 --- a/pkg/sdkserver/workspaces.go +++ b/pkg/sdkserver/workspaces.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "net/http" - "strings" gcontext "github.com/gptscript-ai/gptscript/pkg/context" "github.com/gptscript-ai/gptscript/pkg/loader" @@ -52,14 +51,20 @@ func (s *server) createWorkspace(w http.ResponseWriter, r *http.Request) { reqObject.ProviderType = "directory" } + b, err := json.Marshal(map[string]any{ + "provider": reqObject.ProviderType, + "fromWorkspaceIDs": reqObject.FromWorkspaceIDs, + }) + if err != nil { + writeError(logger, w, http.StatusInternalServerError, fmt.Errorf("failed to marshal request body: %w", err)) + return + } + out, err := s.client.Run( r.Context(), prg, s.getServerToolsEnv(reqObject.Env), - fmt.Sprintf( - `{"provider": "%s", "workspace_ids": "%s"}`, - reqObject.ProviderType, strings.Join(reqObject.FromWorkspaceIDs, ","), - ), + string(b), ) if err != nil { writeError(logger, w, http.StatusInternalServerError, fmt.Errorf("failed to run program: %w", err))