Quick Summary
当设置restrict_to_workspace为true时,exec工具的guardCommand方法会判断命令的相对路径是否合法,但是判断方式有点简单粗暴。
举个例子,查询北京的天气,天气技能会执行curl -s "wttr.in/Beijing?T"这个命令,但方法的正则match出来的结果会得到../../../../Beijing?T这样的相对路径,导致Command blocked by safety guard (path outside working dir),问题是这个命令压根不涉及到任何路径。
Quick Summary
当设置
restrict_to_workspace为true时,exec工具的guardCommand方法会判断命令的相对路径是否合法,但是判断方式有点简单粗暴。举个例子,查询北京的天气,天气技能会执行
curl -s "wttr.in/Beijing?T"这个命令,但方法的正则match出来的结果会得到../../../../Beijing?T这样的相对路径,导致Command blocked by safety guard (path outside working dir),问题是这个命令压根不涉及到任何路径。