@@ -73,39 +73,13 @@ func (s *server) version(w http.ResponseWriter, r *http.Request) {
73
73
// listTools will return the output of `gptscript --list-tools`
74
74
func (s * server ) listTools (w http.ResponseWriter , r * http.Request ) {
75
75
logger := gcontext .GetLogger (r .Context ())
76
- var prg types.Program
77
- if r .ContentLength != 0 {
78
- reqObject := new (toolOrFileRequest )
79
- err := json .NewDecoder (r .Body ).Decode (reqObject )
80
- if err != nil {
81
- writeError (logger , w , http .StatusBadRequest , fmt .Errorf ("failed to decode request body: %w" , err ))
82
- return
83
- }
84
-
85
- if reqObject .Content != "" {
86
- prg , err = loader .ProgramFromSource (r .Context (), reqObject .Content , reqObject .SubTool , loader.Options {Cache : s .client .Cache })
87
- } else if reqObject .File != "" {
88
- prg , err = loader .Program (r .Context (), reqObject .File , reqObject .SubTool , loader.Options {Cache : s .client .Cache })
89
- } else {
90
- prg , err = loader .ProgramFromSource (r .Context (), reqObject .ToolDefs .String (), reqObject .SubTool , loader.Options {Cache : s .client .Cache })
91
- }
92
- if err != nil {
93
- writeError (logger , w , http .StatusInternalServerError , fmt .Errorf ("failed to load program: %w" , err ))
94
- return
95
- }
96
- }
97
-
98
- tools := s .client .ListTools (r .Context (), prg )
76
+ tools := s .client .ListTools (r .Context (), types.Program {})
99
77
sort .Slice (tools , func (i , j int ) bool {
100
78
return tools [i ].Name < tools [j ].Name
101
79
})
102
80
103
81
lines := make ([]string , 0 , len (tools ))
104
82
for _ , tool := range tools {
105
- if tool .Name == "" {
106
- tool .Name = prg .Name
107
- }
108
-
109
83
// Don't print instructions
110
84
tool .Instructions = ""
111
85
@@ -118,22 +92,31 @@ func (s *server) listTools(w http.ResponseWriter, r *http.Request) {
118
92
// listModels will return the output of `gptscript --list-models`
119
93
func (s * server ) listModels (w http.ResponseWriter , r * http.Request ) {
120
94
logger := gcontext .GetLogger (r .Context ())
95
+ client := s .client
96
+
121
97
var providers []string
122
98
if r .ContentLength != 0 {
123
99
reqObject := new (modelsRequest )
124
- if err := json .NewDecoder (r .Body ).Decode (reqObject ); err != nil {
100
+ err := json .NewDecoder (r .Body ).Decode (reqObject )
101
+ if err != nil {
125
102
writeError (logger , w , http .StatusBadRequest , fmt .Errorf ("failed to decode request body: %w" , err ))
126
103
return
127
104
}
128
105
129
106
providers = reqObject .Providers
107
+
108
+ client , err = gptscript .New (r .Context (), s .gptscriptOpts , gptscript.Options {Env : reqObject .Env , Runner : runner.Options {CredentialOverrides : reqObject .CredentialOverrides }})
109
+ if err != nil {
110
+ writeError (logger , w , http .StatusInternalServerError , fmt .Errorf ("failed to create client: %w" , err ))
111
+ return
112
+ }
130
113
}
131
114
132
115
if s .gptscriptOpts .DefaultModelProvider != "" {
133
116
providers = append (providers , s .gptscriptOpts .DefaultModelProvider )
134
117
}
135
118
136
- out , err := s . client .ListModels (r .Context (), providers ... )
119
+ out , err := client .ListModels (r .Context (), providers ... )
137
120
if err != nil {
138
121
writeError (logger , w , http .StatusInternalServerError , fmt .Errorf ("failed to list models: %w" , err ))
139
122
return
0 commit comments