feat: web_scan iframe穿透 + plan_sop术语优化
This commit is contained in:
@@ -20,17 +20,17 @@
|
||||
查 insight 找相关 SOP 并读取——SOP 提供任务骨架,直接指导分解。无则跳过。不确定性最高的环节先探,其结果可能推翻整个计划。
|
||||
|
||||
### 1b. 分类
|
||||
从依赖关系读出结构:有依赖→Sequential | 无依赖→MapReduce | 条件未知→Branch。可嵌套。
|
||||
从依赖关系读出结构:有依赖→Sequential | 无依赖→MAP | 条件未知→Branch。可嵌套。
|
||||
|
||||
### 1c. 分解
|
||||
按结构展开 checklist(每步须有独立完成判据,否则继续拆)。update checkpoint 并标 `[x] 规划`。
|
||||
按结构展开 checklist。**每个子任务必须具体列出,禁止笼统描述**(如"批量处理所有文件"必须展开为每个文件的具体条目)。每步须有独立完成判据,否则继续拆。update checkpoint 并标 `[x] 规划`。
|
||||
- Seq: `[ ]A → [ ]B → [ ]C`
|
||||
- MR: `MAP: [ ]D1 [ ]D2 … REDUCE: [ ]汇总`
|
||||
- MAP: `[ ]D1 [ ]D2 [ ]D3 … → [ ]汇总`(汇总为最后一步,中心化执行)
|
||||
- Branch: `[ ]尝试X → 成功:[ ]Y / 失败:[ ]Z`
|
||||
|
||||
## 2. 执行注意
|
||||
|
||||
- 计划有误时回到规划修正,不硬凑;不可逆操作前多验证一步
|
||||
- MapReduce 的 MAP 可用 subagent 并行执行
|
||||
- MAP 的子任务可用 subagent 并行执行
|
||||
- 步骤间用尽量用文件传递中间结果和汇总,不靠上下文记忆
|
||||
- 收尾:全部 `[x]` 后汇总结果,清理 checkpoint
|
||||
16
simphtml.py
16
simphtml.py
@@ -29,6 +29,20 @@ function createEnhancedDOMCopy() {
|
||||
const childClone = cloneNode(child, keep || isSmallDropdown);
|
||||
if (childClone) childNodes.push(childClone);
|
||||
}
|
||||
if (sourceNode.tagName === 'IFRAME') {
|
||||
try {
|
||||
const iDoc = sourceNode.contentDocument || sourceNode.contentWindow?.document;
|
||||
if (iDoc && iDoc.body && iDoc.body.children.length > 0) {
|
||||
const wrapper = document.createElement('div');
|
||||
wrapper.setAttribute('data-iframe-content', sourceNode.src || '');
|
||||
for (const ch of iDoc.body.childNodes) {
|
||||
const c = cloneNode(ch, keep);
|
||||
if (c) wrapper.appendChild(c);
|
||||
}
|
||||
if (wrapper.childNodes.length) childNodes.push(wrapper);
|
||||
}
|
||||
} catch(e) {}
|
||||
}
|
||||
|
||||
const rect = sourceNode.getBoundingClientRect();
|
||||
const style = window.getComputedStyle(sourceNode);
|
||||
@@ -841,7 +855,7 @@ def find_changed_elements(before_html, after_html):
|
||||
result["top_change"] = h if len(h) <= 2000 else h[:2000] + '...[TRUNCATED]'
|
||||
return result
|
||||
|
||||
def get_html(driver, cutlist=False, maxchars=28000, instruction="", extra_js=""):
|
||||
def get_html(driver, cutlist=False, maxchars=38000, instruction="", extra_js=""):
|
||||
page = get_main_block(driver, extra_js=extra_js)
|
||||
soup = optimize_html_for_tokens(page)
|
||||
html = str(soup)
|
||||
|
||||
Reference in New Issue
Block a user