Skip to content

Commit 73a9ffe

Browse files
chore: seperate out env for dataset/workspace tools
1 parent 9cb92bc commit 73a9ffe

File tree

4 files changed

+28
-17
lines changed

4 files changed

+28
-17
lines changed

pkg/sdkserver/datasets.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func (s *server) listDatasets(w http.ResponseWriter, r *http.Request) {
7979
return
8080
}
8181

82-
result, err := g.Run(r.Context(), prg, req.Env, req.Input)
82+
result, err := g.Run(r.Context(), prg, s.getServerToolsEnv(req.Env), req.Input)
8383
if err != nil {
8484
writeError(logger, w, http.StatusInternalServerError, fmt.Errorf("failed to run program: %w", err))
8585
return
@@ -147,7 +147,7 @@ func (s *server) addDatasetElements(w http.ResponseWriter, r *http.Request) {
147147
return
148148
}
149149

150-
result, err := g.Run(r.Context(), prg, req.Env, req.Input)
150+
result, err := g.Run(r.Context(), prg, s.getServerToolsEnv(req.Env), req.Input)
151151
if err != nil {
152152
writeError(logger, w, http.StatusInternalServerError, fmt.Errorf("failed to run program: %w", err))
153153
return
@@ -207,7 +207,7 @@ func (s *server) listDatasetElements(w http.ResponseWriter, r *http.Request) {
207207
return
208208
}
209209

210-
result, err := g.Run(r.Context(), prg, req.Env, req.Input)
210+
result, err := g.Run(r.Context(), prg, s.getServerToolsEnv(req.Env), req.Input)
211211
if err != nil {
212212
writeError(logger, w, http.StatusInternalServerError, fmt.Errorf("failed to run program: %w", err))
213213
return
@@ -270,7 +270,7 @@ func (s *server) getDatasetElement(w http.ResponseWriter, r *http.Request) {
270270
return
271271
}
272272

273-
result, err := g.Run(r.Context(), prg, req.Env, req.Input)
273+
result, err := g.Run(r.Context(), prg, s.getServerToolsEnv(req.Env), req.Input)
274274
if err != nil {
275275
writeError(logger, w, http.StatusInternalServerError, fmt.Errorf("failed to run program: %w", err))
276276
return

pkg/sdkserver/routes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type server struct {
2828
gptscriptOpts gptscript.Options
2929
address, token string
3030
datasetTool, workspaceTool string
31+
serverToolsEnv []string
3132
client *gptscript.GPTScript
3233
events *broadcaster.Broadcaster[event]
3334

pkg/sdkserver/server.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type Options struct {
2828

2929
ListenAddress string
3030
DatasetTool, WorkspaceTool string
31+
ServerToolsEnv []string
3132
Debug bool
3233
DisableServerErrorLogging bool
3334
}
@@ -105,11 +106,13 @@ func run(ctx context.Context, listener net.Listener, opts Options) error {
105106
}
106107

107108
s := &server{
108-
gptscriptOpts: opts.Options,
109-
address: listener.Addr().String(),
110-
token: token,
111-
datasetTool: opts.DatasetTool,
112-
workspaceTool: opts.WorkspaceTool,
109+
gptscriptOpts: opts.Options,
110+
address: listener.Addr().String(),
111+
token: token,
112+
datasetTool: opts.DatasetTool,
113+
workspaceTool: opts.WorkspaceTool,
114+
serverToolsEnv: opts.ServerToolsEnv,
115+
113116
client: g,
114117
events: events,
115118
runtimeManager: runtimes.Default(opts.Options.Cache.CacheDir, opts.SystemToolsDir),
@@ -176,6 +179,9 @@ func complete(opts ...Options) Options {
176179
if result.DatasetTool == "" {
177180
result.DatasetTool = "github.com/gptscript-ai/datasets"
178181
}
182+
if len(result.ServerToolsEnv) == 0 {
183+
result.ServerToolsEnv = os.Environ()
184+
}
179185

180186
return result
181187
}

pkg/sdkserver/workspaces.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ type createWorkspaceRequest struct {
3030
FromWorkspaceIDs []string `json:"fromWorkspaceIDs"`
3131
}
3232

33+
func (s *server) getServerToolsEnv(env []string) []string {
34+
return append(s.serverToolsEnv, env...)
35+
}
36+
3337
func (s *server) createWorkspace(w http.ResponseWriter, r *http.Request) {
3438
logger := gcontext.GetLogger(r.Context())
3539
var reqObject createWorkspaceRequest
@@ -51,7 +55,7 @@ func (s *server) createWorkspace(w http.ResponseWriter, r *http.Request) {
5155
out, err := s.client.Run(
5256
r.Context(),
5357
prg,
54-
reqObject.Env,
58+
s.getServerToolsEnv(reqObject.Env),
5559
fmt.Sprintf(
5660
`{"provider": "%s", "workspace_ids": "%s"}`,
5761
reqObject.ProviderType, strings.Join(reqObject.FromWorkspaceIDs, ","),
@@ -86,7 +90,7 @@ func (s *server) deleteWorkspace(w http.ResponseWriter, r *http.Request) {
8690
out, err := s.client.Run(
8791
r.Context(),
8892
prg,
89-
reqObject.Env,
93+
s.getServerToolsEnv(reqObject.Env),
9094
fmt.Sprintf(
9195
`{"workspace_id": "%s"}`,
9296
reqObject.ID,
@@ -123,7 +127,7 @@ func (s *server) listWorkspaceContents(w http.ResponseWriter, r *http.Request) {
123127
out, err := s.client.Run(
124128
r.Context(),
125129
prg,
126-
reqObject.Env,
130+
s.getServerToolsEnv(reqObject.Env),
127131
fmt.Sprintf(
128132
`{"workspace_id": "%s", "ls_prefix": "%s"}`,
129133
reqObject.ID, reqObject.Prefix,
@@ -159,7 +163,7 @@ func (s *server) removeAllWithPrefixInWorkspace(w http.ResponseWriter, r *http.R
159163
out, err := s.client.Run(
160164
r.Context(),
161165
prg,
162-
reqObject.Env,
166+
s.getServerToolsEnv(reqObject.Env),
163167
fmt.Sprintf(
164168
`{"workspace_id": "%s", "prefix": "%s"}`,
165169
reqObject.ID, reqObject.Prefix,
@@ -196,7 +200,7 @@ func (s *server) writeFileInWorkspace(w http.ResponseWriter, r *http.Request) {
196200
out, err := s.client.Run(
197201
r.Context(),
198202
prg,
199-
reqObject.Env,
203+
s.getServerToolsEnv(reqObject.Env),
200204
fmt.Sprintf(
201205
`{"workspace_id": "%s", "file_path": "%s", "body": "%s"}`,
202206
reqObject.ID, reqObject.FilePath, reqObject.Contents,
@@ -232,7 +236,7 @@ func (s *server) removeFileInWorkspace(w http.ResponseWriter, r *http.Request) {
232236
out, err := s.client.Run(
233237
r.Context(),
234238
prg,
235-
reqObject.Env,
239+
s.getServerToolsEnv(reqObject.Env),
236240
fmt.Sprintf(
237241
`{"workspace_id": "%s", "file_path": "%s"}`,
238242
reqObject.ID, reqObject.FilePath,
@@ -268,7 +272,7 @@ func (s *server) readFileInWorkspace(w http.ResponseWriter, r *http.Request) {
268272
out, err := s.client.Run(
269273
r.Context(),
270274
prg,
271-
reqObject.Env,
275+
s.getServerToolsEnv(reqObject.Env),
272276
fmt.Sprintf(
273277
`{"workspace_id": "%s", "file_path": "%s"}`,
274278
reqObject.ID, reqObject.FilePath,
@@ -304,7 +308,7 @@ func (s *server) statFileInWorkspace(w http.ResponseWriter, r *http.Request) {
304308
out, err := s.client.Run(
305309
r.Context(),
306310
prg,
307-
reqObject.Env,
311+
s.getServerToolsEnv(reqObject.Env),
308312
fmt.Sprintf(
309313
`{"workspace_id": "%s", "file_path": "%s"}`,
310314
reqObject.ID, reqObject.FilePath,

0 commit comments

Comments
 (0)