write agent.py
This commit is contained in:
17
agent.py
17
agent.py
@@ -436,23 +436,23 @@ class SeleniumbaseWebsiteScraper(A2AAgent[SeleniumbaseWebsiteScraperConfig, NoAu
|
||||
proposed_selectors = decision.get("selectors") or {}
|
||||
confidence = float(decision.get("confidence") or 0.0)
|
||||
|
||||
# Enforce safety: same-origin only, and only allow selector updates if permitted
|
||||
if not same_origin_safeguard(start_url, next_url):
|
||||
# Enforce safety: allowed_domains and same-origin only
|
||||
if not _allowed_origin(next_url):
|
||||
decisions.append({
|
||||
"iteration": iteration,
|
||||
"step": step,
|
||||
"action": "stop",
|
||||
"reason": "planner suggested cross-origin URL; stopping for safety",
|
||||
"reason": "planner suggested URL outside allowed domains; stopping",
|
||||
"confidence": confidence,
|
||||
})
|
||||
break
|
||||
|
||||
if action == "stop":
|
||||
decisions.append({"iteration": iteration, "action": "stop", "reason": reason, "confidence": confidence})
|
||||
decisions.append({"step": step, "action": "stop", "reason": reason, "confidence": confidence})
|
||||
break
|
||||
|
||||
if action != "scrape":
|
||||
decisions.append({
|
||||
"iteration": iteration,
|
||||
"step": step,
|
||||
"action": "stop",
|
||||
"reason": "planner returned unknown action",
|
||||
"confidence": confidence,
|
||||
@@ -461,8 +461,7 @@ class SeleniumbaseWebsiteScraper(A2AAgent[SeleniumbaseWebsiteScraperConfig, NoAu
|
||||
|
||||
# Adopt next plan
|
||||
current_url = next_url
|
||||
if allow_selector_updates and isinstance(proposed_selectors, dict) and proposed_selectors:
|
||||
# ensure keys/values are strings
|
||||
if isinstance(proposed_selectors, dict) and proposed_selectors:
|
||||
safe_map: dict[str, str] = {}
|
||||
for k, v in proposed_selectors.items():
|
||||
k2 = str(k).strip()
|
||||
@@ -472,7 +471,7 @@ class SeleniumbaseWebsiteScraper(A2AAgent[SeleniumbaseWebsiteScraperConfig, NoAu
|
||||
if safe_map:
|
||||
current_selectors = safe_map
|
||||
decisions.append({
|
||||
"iteration": iteration,
|
||||
"step": step,
|
||||
"action": "scrape",
|
||||
"reason": reason or "refining selectors/pagination",
|
||||
"confidence": confidence,
|
||||
|
||||
Reference in New Issue
Block a user