From 545017cea0984c6e22b6bdd6c2f2d71baaff6628 Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Thu, 22 Oct 2026 10:31:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(ga):=20web=5Fexecute=5Fjs=20=E5=BD=92?= =?UTF-8?q?=E4=B8=80=E5=8C=96=E9=9D=9Estr=E7=9A=84script=E5=8F=82=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8DAttributeError=E4=B8=AD=E6=96=ADagen?= =?UTF-8?q?t=E5=BE=AA=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ga.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ga.py b/ga.py index c3a93ba2..cf2e210b 100644 --- a/ga.py +++ b/ga.py @@ -353,7 +353,8 @@ class GenericAgentHandler(BaseHandler): def do_web_execute_js(self, args, response): '''web情况下的优先使用工具,执行任何js达成对浏览器的*完全*控制。支持将结果保存到文件供后续读取分析。''' script = args.get("script", "") or self._extract_code_block(response, "javascript") - if not script: return StepOutcome("[Error] Script missing. Use ```javascript block or 'script' arg.", next_prompt="\n") + if not isinstance(script, str): script = json.dumps(script, ensure_ascii=False, default=json_default) if isinstance(script, (dict, list)) else str(script) + if not script or not script.strip(): return StepOutcome("[Error] Script missing. Use ```javascript block or 'script' arg.", next_prompt="\n") abs_path = self._get_abs_path(script.strip()) if os.path.isfile(abs_path): with open(abs_path, 'r', encoding='utf-8') as f: script = f.read()