@@ -74,26 +74,6 @@ type ToolCallBody struct {
7474 GramRequestSummary string `json:"gram-request-summary"`
7575}
7676
77- // CaseInsensitiveEnv provides case-insensitive environment variable lookup.
78- type CaseInsensitiveEnv struct {
79- data map [string ]string
80- }
81-
82- // NewCaseInsensitiveEnv creates a new empty case-insensitive environment.
83- func NewCaseInsensitiveEnv () * CaseInsensitiveEnv {
84- return & CaseInsensitiveEnv {data : make (map [string ]string )}
85- }
86-
87- // Get retrieves an environment variable value by key (case-insensitive).
88- func (c * CaseInsensitiveEnv ) Get (key string ) string {
89- return c .data [strings .ToLower (key )]
90- }
91-
92- // Set sets an environment variable value by key (case-insensitive).
93- func (c * CaseInsensitiveEnv ) Set (key , value string ) {
94- c .data [strings .ToLower (key )] = value
95- }
96-
9777type toolcallErrorSchema struct {
9878 Error string `json:"error"`
9979}
@@ -146,7 +126,7 @@ func (tp *ToolProxy) Do(
146126 ctx context.Context ,
147127 w http.ResponseWriter ,
148128 requestBody io.Reader ,
149- env * CaseInsensitiveEnv ,
129+ env ToolCallEnv ,
150130 plan * ToolCallPlan ,
151131 toolCallLogger tm.ToolCallLogger ,
152132) (err error ) {
@@ -172,10 +152,6 @@ func (tp *ToolProxy) Do(
172152 attr .SlogToolCallSource (string (tp .source )),
173153 )
174154
175- if env == nil {
176- env = NewCaseInsensitiveEnv ()
177- }
178-
179155 switch plan .Kind {
180156 case "" :
181157 return oops .E (oops .CodeInvariantViolation , nil , "tool kind is not set" ).Log (ctx , tp .logger )
@@ -195,7 +171,7 @@ func (tp *ToolProxy) doFunction(
195171 logger * slog.Logger ,
196172 w http.ResponseWriter ,
197173 requestBody io.Reader ,
198- env * CaseInsensitiveEnv ,
174+ env ToolCallEnv ,
199175 descriptor * ToolDescriptor ,
200176 plan * FunctionToolCallPlan ,
201177 toolCallLogger tm.ToolCallLogger ,
@@ -307,7 +283,7 @@ func (tp *ToolProxy) doHTTP(
307283 logger * slog.Logger ,
308284 w http.ResponseWriter ,
309285 requestBody io.Reader ,
310- env * CaseInsensitiveEnv ,
286+ env ToolCallEnv ,
311287 descriptor * ToolDescriptor ,
312288 plan * HTTPToolCallPlan ,
313289 toolCallLogger tm.ToolCallLogger ,
@@ -570,7 +546,7 @@ type promptGetParams struct {
570546 Arguments map [string ]any `json:"arguments"`
571547}
572548
573- func (tp * ToolProxy ) doPrompt (ctx context.Context , logger * slog.Logger , w http.ResponseWriter , requestBody io.Reader , env * CaseInsensitiveEnv , descriptor * ToolDescriptor , plan * PromptToolCallPlan ) error {
549+ func (tp * ToolProxy ) doPrompt (ctx context.Context , logger * slog.Logger , w http.ResponseWriter , requestBody io.Reader , env ToolCallEnv , descriptor * ToolDescriptor , plan * PromptToolCallPlan ) error {
574550 var params promptGetParams
575551 if err := json .NewDecoder (requestBody ).Decode (& params ); err != nil {
576552 return oops .E (oops .CodeBadRequest , err , "failed to parse get prompt request" ).Log (ctx , logger )
@@ -622,7 +598,7 @@ func retryWithBackoff(
622598 if err != nil {
623599 continue
624600 }
625-
601+ // check if we should retry based on method and status code
626602 if ! slices .Contains (retryBackoff .methods , resp .Request .Method ) || ! slices .Contains (retryBackoff .statusCodes , resp .StatusCode ) {
627603 return resp , err
628604 }
0 commit comments