Skip to content

Commit 136881b

Browse files
chore: support params on input filters besides just input
1 parent f922de1 commit 136881b

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

pkg/runner/input.go

+24-6
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,31 @@ func (r *Runner) handleInput(callCtx engine.Context, monitor Monitor, env []stri
1515
}
1616

1717
for _, inputToolRef := range inputToolRefs {
18-
inputData, err := json.Marshal(map[string]any{
19-
"input": input,
20-
})
21-
if err != nil {
22-
return "", fmt.Errorf("failed to marshal input: %w", err)
18+
var (
19+
rawInput bool
20+
toolInput string
21+
)
22+
23+
inputTool := callCtx.Program.ToolSet[inputToolRef.ToolID]
24+
if inputTool.Arguments != nil && len(inputTool.Arguments.Properties) > 0 {
25+
if _, hasInput := inputTool.Arguments.Properties["input"]; !hasInput || len(inputTool.Arguments.Properties) > 1 {
26+
rawInput = true
27+
}
2328
}
24-
res, err := r.subCall(callCtx.Ctx, callCtx, monitor, env, inputToolRef.ToolID, string(inputData), "", engine.InputToolCategory)
29+
30+
if rawInput {
31+
toolInput = input
32+
} else {
33+
inputData, err := json.Marshal(map[string]any{
34+
"input": input,
35+
})
36+
if err != nil {
37+
return "", fmt.Errorf("failed to marshal input: %w", err)
38+
}
39+
toolInput = string(inputData)
40+
}
41+
42+
res, err := r.subCall(callCtx.Ctx, callCtx, monitor, env, inputToolRef.ToolID, toolInput, "", engine.InputToolCategory)
2543
if err != nil {
2644
return "", err
2745
}

0 commit comments

Comments
 (0)