From 7406db58823d0a5d7a07d7b5d40f4e43467f79c7 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Tue, 29 Apr 2025 17:10:11 +0200 Subject: [PATCH] feat: specify timeout (#97) Signed-off-by: mudler --- services/actions/browseragentrunner.go | 20 +++++++++++++++++++- services/actions/deepresearchrunner.go | 20 +++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/services/actions/browseragentrunner.go b/services/actions/browseragentrunner.go index 701f5d7..f339caf 100644 --- a/services/actions/browseragentrunner.go +++ b/services/actions/browseragentrunner.go @@ -25,7 +25,18 @@ func NewBrowserAgentRunner(config map[string]string, defaultURL string) *Browser config["baseURL"] = defaultURL } - client := api.NewClient(config["baseURL"], 15*time.Minute) + timeout := "15m" + if config["timeout"] != "" { + timeout = config["timeout"] + } + + duration, err := time.ParseDuration(timeout) + if err != nil { + // If parsing fails, use default 15 minutes + duration = 15 * time.Minute + } + + client := api.NewClient(config["baseURL"], duration) return &BrowserAgentRunner{ client: client, @@ -118,5 +129,12 @@ func BrowserAgentRunnerConfigMeta() []config.Field { Type: config.FieldTypeText, HelpText: "Custom name for this action", }, + { + Name: "timeout", + Label: "Client Timeout", + Type: config.FieldTypeText, + Required: false, + HelpText: "Client timeout duration (e.g. '15m', '1h'). Defaults to '15m' if not specified.", + }, } } diff --git a/services/actions/deepresearchrunner.go b/services/actions/deepresearchrunner.go index ef3c0f0..68902d6 100644 --- a/services/actions/deepresearchrunner.go +++ b/services/actions/deepresearchrunner.go @@ -25,7 +25,18 @@ func NewDeepResearchRunner(config map[string]string, defaultURL string) *DeepRes config["baseURL"] = defaultURL } - client := api.NewClient(config["baseURL"], 15*time.Minute) + timeout := "15m" + if config["timeout"] != "" { + timeout = config["timeout"] + } + + duration, err := time.ParseDuration(timeout) + if err != nil { + // If parsing fails, use default 15 minutes + duration = 15 * time.Minute + } + + client := api.NewClient(config["baseURL"], duration) return &DeepResearchRunner{ client: client, @@ -126,5 +137,12 @@ func DeepResearchRunnerConfigMeta() []config.Field { Type: config.FieldTypeText, HelpText: "Custom name for this action", }, + { + Name: "timeout", + Label: "Client Timeout", + Type: config.FieldTypeText, + Required: false, + HelpText: "Client timeout duration (e.g. '15m', '1h'). Defaults to '15m' if not specified.", + }, } }