@qing3a/flow-rpa-engine 0.5.6 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdp/page.d.ts +1 -1
- package/dist/cdp/page.js +71 -45
- package/dist/cdp/page.js.map +1 -1
- package/dist/executor.d.ts +34 -2
- package/dist/executor.js +81 -11
- package/dist/executor.js.map +1 -1
- package/dist/mask.d.ts +4 -0
- package/dist/mask.js +5 -1
- package/dist/mask.js.map +1 -1
- package/dist/record.d.ts +22 -3
- package/dist/record.js +11 -0
- package/dist/record.js.map +1 -1
- package/package.json +2 -1
package/dist/cdp/page.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ import type { HitFingerprint } from '../behavior.js';
|
|
|
17
17
|
* T1 simcheck:模拟质量评分(验收工具,不进生产链路)。
|
|
18
18
|
*/
|
|
19
19
|
/** 页面内 DOM 辅助(window.__rpaDom) */
|
|
20
|
-
export declare const DOM_SOURCE = "\nwindow.__rpaDom = (function() {\n function isVisible(el) {\n if (!el || el.nodeType !== 1) return false;\n const s = window.getComputedStyle(el);\n if (s.display === 'none' || s.visibility === 'hidden' || parseFloat(s.opacity) === 0) return false;\n const r = el.getBoundingClientRect();\n return r.width > 0 && r.height > 0;\n }\n function byText(text) {\n const needle = String(text).trim();\n const visible = Array.from(document.querySelectorAll('body *')).filter(isVisible);\n const leaf = visible.filter(el => el.children.length === 0);\n const exact = leaf.filter(el => (el.textContent || '').trim() === needle);\n if (exact.length > 0) return exact;\n return leaf.filter(el => (el.textContent || '').includes(needle));\n }\n function safeQuery(sel) {\n try {\n return Array.from(document.querySelectorAll(sel)).filter(isVisible);\n } catch (e) {\n return [];\n }\n }\n // T014 P0-3\uFF1A\u533A\u57DF\u89C4\u5219\u547D\u4E2D\u5224\u5B9A\uFF08\u5355\u4E00\u5B9E\u73B0\u2014\u2014identifyRegion \u4E0E region: \u8868\u8FBE\u5F0F\u5171\u7528\uFF0C\u9632\u903B\u8F91\u6F02\u79FB\uFF09\n function ruleHits(rule, el) {\n const m = rule.match || {};\n let hit = true;\n if (m.textContains && !((el.innerText || '').includes(m.textContains))) hit = false;\n if (m.textContainsAll && Array.isArray(m.textContainsAll)) {\n const txt = el.innerText || '';\n for (const kw of m.textContainsAll) {\n if (!txt.includes(kw)) { hit = false; break; }\n }\n }\n if (m.hasInput && !el.querySelector('input, textarea')) hit = false;\n if (m.hasButton && !el.querySelector('button, a[role=\"button\"], [role=\"button\"]')) hit = false;\n if (m.ancestorTag && !(el.tagName || '').toLowerCase().includes(m.ancestorTag)) hit = false;\n if (m.ancestorClass && !((el.className || '').toString().includes(m.ancestorClass))) hit = false;\n return hit;\n }\n // T014 P0-1\uFF1A\u5143\u7D20\u6240\u5C5E\u533A\u57DF\u6807\u7B7E\uFF08\u8D70\u5143\u7D20\u81EA\u8EAB\u2192\u7956\u5148\uFF0C\u9996\u4E2A\u89C4\u5219\u547D\u4E2D\u5373\u8FD4\u56DE\uFF1B\u65E0 \u2192 null\uFF09\n function regionLabelOf(el, rules) {\n let cur = el;\n for (let d = 0; d < 5 && cur; d++) {\n for (const r of rules) {\n if (ruleHits(r, cur)) return { label: r.label, ruleId: r.id };\n }\n cur = cur.parentElement;\n }\n return null;\n }\n // T014 P0-3\uFF1A\u533A\u57DF\u4E3B\u5BB9\u5668\u89E3\u6790\uFF08region:<\u6807\u7B7E> \u4E0E region:<\u6807\u7B7E> >> <n> \u5171\u7528\uFF09\uFF1A\n // self-match \u5019\u9009\uFF08\u9762\u79EF < \u89C6\u53E3\uFF09\u53D6\u300C\u6700\u6DF1\u4E14\u6587\u672C \u2265100 \u5B57\u300D\uFF1B\u65E0 \u2192 \u6700\u5927\u9762\u79EF\uFF1B\u65E0\u5019\u9009 \u2192 null\u3002\n function regionContainerOf(label, rules) {\n const vw = innerWidth || document.documentElement.clientWidth || 1000;\n const vh = innerHeight || document.documentElement.clientHeight || 800;\n const vpArea = vw * vh;\n const matches = [];\n for (const el of Array.from(document.querySelectorAll('body *')).filter(isVisible)) {\n if (!(el.innerText || '').trim()) continue;\n for (const r of rules) {\n if (r.label === label && ruleHits(r, el)) {\n const rect = el.getBoundingClientRect();\n const area = rect.width * rect.height;\n if (area > 0 && area < vpArea) matches.push({ el, area });\n break;\n }\n }\n }\n if (matches.length === 0) return null;\n const depthOf = (el) => {\n let d = 0;\n let cur = el.parentElement;\n while (cur) { d++; cur = cur.parentElement; }\n return d;\n };\n const substantial = matches.filter((m) => (m.el.innerText || '').trim().length >= 100);\n let best = null;\n if (substantial.length > 0) {\n for (const m of substantial) {\n if (!best || depthOf(m.el) > depthOf(best.el)) best = m;\n }\n } else {\n for (const m of matches) {\n if (!best || m.area > best.area) best = m;\n }\n }\n return best ? best.el : null;\n }\n function getBySels(selector) {\n // A3 \u6570\u7EC4\u94FE\uFF08#17 \u4FEE\u590D\uFF09\uFF1A\u4F9D\u6B21\u5C1D\u8BD5\uFF0C\u7B2C\u4E00\u4E2A\u547D\u4E2D\u7684\u8FD4\u56DE\n if (Array.isArray(selector)) {\n for (const s of selector) {\n const nodes = getBySels(s);\n if (nodes.length > 0) return nodes;\n }\n return [];\n }\n const sel = String(selector);\n if (sel.startsWith('text:')) return byText(sel.slice(5));\n // T014 P0-3\uFF1Aregion:<\u6807\u7B7E>[ >> <n>] \u2014\u2014 \u5F15\u64CE\u5185\u90E8\u533A\u57DF\u5BFB\u5740\u8868\u8FBE\u5F0F\uFF08\u4E0D\u5F00\u653E\u7ED9\u7528\u6237\u5199 flow\uFF09\u3002\n // \u89C4\u5219\u7531 setRegionRules \u6CE8\u5165\uFF08\u968F\u6D41\u7A0B\u5305\u5206\u53D1\uFF0C\u5F15\u64CE\u96F6\u4E1A\u52A1\u903B\u8F91\uFF1BT014 \u9636\u6BB5 2 \u4EF2\u88C1\uFF1A\u6CE8\u5165\u89C4\u5219\n // \u5DF2\u6309\u6863\u6848 seen \u7F6E\u4FE1\u5EA6\u91CD\u6392\uFF0C\u540C\u4E00\u5143\u7D20\u547D\u4E2D\u591A\u6761\u89C4\u5219\u65F6\u9AD8\u7F6E\u4FE1\u533A\u57DF\u4F18\u5148\uFF09\u3002\n // \u4E3B\u5BB9\u5668\u89E3\u6790\uFF1Aself-match \u5019\u9009\uFF08\u9762\u79EF < \u89C6\u53E3\uFF09\u4E2D\uFF0C\u53D6\u300C\u6700\u6DF1\u4E14\u6587\u672C \u2265100 \u5B57\u300D\u7684\u5019\u9009\u2014\u2014\n // \u8BE6\u60C5\u533A\u6587\u672C\u94FE container \u2283 box \u2283 body \u2283 h3\uFF0C\u6700\u6DF1\u5B9E\u8D28\u5019\u9009 = \u5185\u5BB9\u5BB9\u5668 body\n // \uFF08\u6DF1\u4E8E\u542B\u8FB9\u680F/\u6C42\u804C\u610F\u5411\u7684\u5305\u88F9\u5C42 container\uFF0C\u89C1 USAGE-ISSUES #16 \u8FB9\u680F\u6C61\u67D3\uFF09\uFF1B\n // \u65E0 \u2265100 \u5B57\u5019\u9009\uFF08\u77ED\u6587\u672C\u533A\u57DF\u5982\u641C\u7D22\u8868\u5355\uFF09\u2192 \u56DE\u9000\u6700\u5927\u9762\u79EF\u3002\n // 'region:<\u6807\u7B7E> >>' = \u533A\u57DF\u5185\u5168\u90E8\u53EF\u89C1\u53EF\u4EA4\u4E92\u5143\u7D20\uFF08#N \u7F16\u53F7\u679A\u4E3E\u7684\u533A\u57DF\u5185\u7248\uFF1B\n // executor \u7528 index \u53C2\u6570\u9009\u7B2C i \u4E2A \u2192 \u8D8A\u754C\u8D70 index_out_of_range \u5217\u8868\u8017\u5C3D\u8BED\u4E49\uFF09\uFF1B\n // 'region:<\u6807\u7B7E> >> <n>' = \u533A\u57DF\u5185\u7B2C n \u4E2A\uFF080 \u8D77\uFF09\u53EF\u4EA4\u4E92\u5143\u7D20\uFF08\u5F15\u64CE\u5185\u90E8\u5177\u4F53\u5BFB\u5740\uFF09\u3002\n if (sel.startsWith('region:')) {\n const rest = sel.slice(7).trim();\n const hasArrow = rest.includes('>>');\n const parts = rest.split('>>');\n const label = parts[0].trim();\n // \u65E0 >> \u2192 \u533A\u57DF\u4E3B\u5BB9\u5668\uFF1B\u6709 >> \u4E14\u7D22\u5F15\u7A7A \u2192 \u533A\u57DF\u5185\u5168\u90E8\u53EF\u4EA4\u4E92\u5143\u7D20\uFF1B\u6709 >> \u4E14\u7D22\u5F15 n \u2192 \u7B2C n \u4E2A\n const indexPart = hasArrow ? parts[1].trim() : undefined;\n const rules = (window.__rpaDom && window.__rpaDom._regionRules) || [];\n const container = regionContainerOf(label, rules);\n if (!container) return [];\n if (indexPart === undefined) return [container];\n const tags = 'a,button,input,select,textarea,[role=\"button\"],[role=\"link\"],[contenteditable=\"true\"]';\n const nodes = Array.from(container.querySelectorAll(tags)).filter(isVisible);\n if (indexPart === '') return nodes;\n const n = Number(indexPart);\n return Number.isInteger(n) && n >= 0 && n < nodes.length ? [nodes[n]] : [];\n }\n // #16-B \u7F16\u53F7\u5BFB\u5740\uFF08\u865A\u62DF\u7A7A\u95F4\u89C6\u89C9\uFF09\uFF1A#N = numberedElements \u5217\u8868\u7B2C N \u4E2A\u53EF\u89C1\u4EA4\u4E92\u5143\u7D20\uFF081 \u8D77\uFF09\u3002\n // \u5FEB\u7167\u7F16\u53F7\u4E0E\u5BFB\u5740\u5171\u7528\u540C\u4E00\u679A\u4E3E \u2192 Agent/\u65E5\u5FD7\u53EF\u300C\u770B\u7F16\u53F7\u76F4\u63A5\u70B9\u300D\uFF1B\u7F16\u53F7\u968F DOM \u53D8\u5316\uFF0C\u64CD\u4F5C\u65F6\u73B0\u53D6\u3002\n const numMatch = sel.match(/^#(d+)$/);\n if (numMatch) {\n const idx = Number(numMatch[1]) - 1;\n const tags = 'a,button,input,select,textarea,[role=\"button\"],[role=\"link\"],[contenteditable=\"true\"]';\n const nodes = Array.from(document.querySelectorAll(tags)).filter(isVisible);\n return idx >= 0 && idx < nodes.length ? [nodes[idx]] : [];\n }\n // \u6DF7\u5408\u4E32\uFF08CSS \u4E0E text: \u9017\u53F7\u5206\u9694\uFF0C\u5982 \"a.search-btn, text:\u641C\u7D22\"\uFF09\uFF1A\u9010\u6BB5\u5C1D\u8BD5\u5408\u5E76\u53BB\u91CD\n // \uFF08#17 \u4FEE\u590D\uFF1Atext: \u6BB5\u4E0D\u80FD\u518D\u6DF7\u8FDB querySelectorAll\u2014\u2014\u6574\u4F53\u4F1A SyntaxError \u5931\u6548\uFF09\n const parts = sel.split(',').map((p) => p.trim()).filter(Boolean);\n if (parts.length > 1 || parts.some((p) => p.startsWith('text:'))) {\n const out = [];\n for (const p of parts) {\n const nodes = p.startsWith('text:') ? byText(p.slice(5)) : safeQuery(p);\n for (const n of nodes) {\n if (isVisible(n) && !out.includes(n)) out.push(n);\n }\n }\n return out;\n }\n return safeQuery(sel);\n }\n function pick(selector, index) {\n const nodes = getBySels(selector);\n return nodes[index] || nodes[0] || null;\n }\n function scrollIntoView(selector, index) {\n const el = pick(selector, index);\n if (!el) return false;\n el.scrollIntoView({ block: 'center', inline: 'center' });\n return true;\n }\n // T012 P1-2\uFF1A\u8F7B\u91CF\u62DF\u4EBA\u6EDA\u52A8\u2014\u2014\u5206\u6BB5\u6E10\u8FDB\u6EDA\u52A8\uFF082~5 \u6BB5\uFF0C\u6BB5\u95F4 30~120ms \u968F\u673A\u8282\u594F\uFF09\uFF0C\n // \u7EC8\u4F4D\u4E0E scrollIntoView \u4E00\u81F4\uFF08block:center\uFF09\u2014\u2014\u53EA\u6539\u8282\u594F\u4E0D\u6539\u843D\u70B9\uFF0C\u529F\u80FD\u4E0D\u56DE\u5F52\u3002\n // \u8FD4\u56DE Promise\uFF08evaluate awaitPromise:true \u751F\u6548\uFF09\uFF1B\u627E\u4E0D\u5230\u5143\u7D20 \u2192 false\uFF08\u540C\u6B65\u503C\u517C\u5BB9\uFF09\u3002\n function scrollIntoViewRhythm(selector, index) {\n const el = pick(selector, index);\n if (!el) return false;\n const steps = 2 + Math.floor(Math.random() * 4);\n const vh = innerHeight || document.documentElement.clientHeight || 600;\n const rect = el.getBoundingClientRect();\n const curTop = pageYOffset || document.documentElement.scrollTop || 0;\n const targetY = curTop + rect.top - (vh - Math.min(rect.height, vh)) / 2;\n const dy = targetY - curTop;\n return (async function () {\n for (let i = 1; i <= steps; i++) {\n const t = i / steps;\n const ease = t * t * (3 - 2 * t);\n window.scrollTo(0, Math.round(curTop + dy * ease));\n await new Promise(function (r) { setTimeout(r, 30 + Math.random() * 90); });\n }\n el.scrollIntoView({ block: 'center', inline: 'center' });\n return true;\n })();\n }\n function textOf(selector, index) {\n const el = pick(selector, index);\n return el ? (el.innerText || el.textContent || '') : '';\n }\n function focusInput(selector, index) {\n const el = pick(selector, index);\n if (!el) return false;\n if (typeof el.select === 'function') el.select();\n el.focus();\n return true;\n }\n function pageText() {\n let t = document.body ? document.body.innerText : '';\n const inputs = Array.from(document.querySelectorAll('input, textarea, [contenteditable=\"true\"]'));\n for (const el of inputs) {\n const v = el.value || el.textContent || '';\n if (v) t += '\\n' + v;\n }\n return t;\n }\n function numberedElements(maxN) {\n const tags = 'a,button,input,select,textarea,[role=\"button\"],[role=\"link\"],[contenteditable=\"true\"]';\n const nodes = Array.from(document.querySelectorAll(tags)).filter(isVisible);\n const cap = maxN || 50;\n return nodes.slice(0, cap).map(el => ({\n tag: el.tagName.toLowerCase(),\n text: (el.innerText || el.value || el.textContent || '').trim().slice(0, 40)\n }));\n }\n // #16-A \u865A\u62DF\u7A7A\u95F4\u89C6\u89C9\uFF1A\u5143\u7D20\u8BED\u4E49\u63CF\u8FF0\uFF08\u906E\u6321\u68C0\u6D4B/\u65E5\u5FD7\u7528\uFF09\n function describeEl(el) {\n if (!el || el.nodeType !== 1) return null;\n const t = (el.innerText || el.value || el.textContent || '').trim();\n return {\n tag: el.tagName.toLowerCase(),\n cls: (el.className || '').toString().slice(0, 60),\n text: t.slice(0, 30),\n role: el.getAttribute && el.getAttribute('role'),\n };\n }\n // P3 \u8BED\u4E49\u951A\u70B9\uFF1A\u547D\u4E2D\u5143\u7D20\u6307\u7EB9\uFF08\u52A8\u4F5C\u6210\u529F\u65F6\u91C7\u96C6\uFF0C\u4F9B\u9009\u62E9\u5668\u5931\u6548\u65F6\u751F\u6210\u66FF\u4EE3\u5B9A\u4F4D\uFF09\u3002\n // \u53EA\u6709\u53EF\u91CD\u5B9A\u4F4D\u7684\u8BED\u4E49\u7279\u5F81\uFF08tag/\u6587\u672C\u622A\u65AD/placeholder/aria-label/name\uFF09\u2014\u2014\u65E0\u5750\u6807\u65E0\u539F\u6587\u3002\n // \u63A9\u7801\u524D\u79FB\uFF08\u94C1\u5F8B\uFF09\uFF1A\u8868\u5355\u5143\u7D20\uFF08input/textarea/select\uFF09\u7EDD\u4E0D\u53D6 value\u2014\u2014\u90A3\u662F\u7528\u6237\u8F93\u5165\u503C\n // \uFF08\u641C\u7D22\u8BCD/\u7535\u8BDD\u7B49\u654F\u611F\u539F\u6587\uFF09\uFF0C\u843D\u76D8\u5373\u8FDD\u89C4\uFF1B\u8868\u5355\u951A\u70B9\u53EA\u7528 placeholder/name/aria-label\u3002\n // T014 P1-4\uFF1A\u9644\u52A0\u6240\u5728\u533A\u57DF\u6807\u7B7E\uFF08region\uFF09\u2014\u2014\u951A\u70B9\u53EA\u5728\u540C\u4E00\u533A\u57DF\u590D\u7528\uFF08\u89C4\u5219\u7531 setRegionRules \u6CE8\u5165\uFF09\u3002\n function describeHit(selector, index) {\n const el = pick(selector, index);\n if (!el) return null;\n const tag = el.tagName.toLowerCase();\n const isForm = tag === 'input' || tag === 'textarea' || tag === 'select';\n const t = isForm ? '' : (el.innerText || el.textContent || '').trim().slice(0, 30);\n const get = (k) => { try { return el.getAttribute(k) || undefined; } catch (e) { return undefined; } };\n const rules = (window.__rpaDom && window.__rpaDom._regionRules) || [];\n const regionHit = rules.length > 0 ? regionLabelOf(el, rules) : null;\n return {\n tag,\n ...(t ? { text: t } : {}),\n ...(get('placeholder') ? { placeholder: get('placeholder') } : {}),\n ...(get('aria-label') ? { ariaLabel: get('aria-label') } : {}),\n ...(get('name') ? { name: get('name') } : {}),\n ...(regionHit ? { region: regionHit.label } : {}),\n };\n }\n // #16-B/P2 \u533A\u57DF\u8BC6\u522B\uFF1A\u76EE\u6807\u5143\u7D20\u5411\u4E0A\u904D\u5386\u7956\u5148\uFF08\u22645 \u5C42\uFF09\uFF0C\u7528\u884C\u4E3A\u89C4\u5219\u5339\u914D\u51FA\u533A\u57DF\u6807\u7B7E\u3002\n // \u89C4\u5219\uFF08behavior.rules.json \u968F\u6D41\u7A0B\u5305\u5206\u53D1\uFF0C\u5F15\u64CE\u96F6\u4E1A\u52A1\u903B\u8F91\uFF09\uFF1A\u5168\u90E8 match \u6761\u4EF6\u6EE1\u8DB3\u624D\u547D\u4E2D\u3002\n // \u8FD4\u56DE { label, ruleId, ancestry }\u2014\u2014ancestry \u4E3A\u7956\u5148\u94FE\u6458\u8981\uFF08\u6297\u6539\u7248\u91CD\u5B9A\u4F4D\u7528\uFF09\u3002\n // T014\uFF1A\u6761\u4EF6\u5224\u5B9A\u7EDF\u4E00\u8D70 ruleHits\uFF08\u4E0E region: \u8868\u8FBE\u5F0F\u5171\u7528\uFF0C\u9632\u6F02\u79FB\uFF09\u3002\n function identifyRegion(selector, index, rulesJson) {\n const target = pick(selector, index);\n if (!target) return null;\n let rules = [];\n try { rules = JSON.parse(rulesJson || '[]'); } catch (e) { rules = []; }\n const ancestry = [];\n let el = target;\n for (let d = 0; d < 5 && el; d++) {\n if (el !== target && el.nodeType === 1) {\n const cls = (el.className || '').toString().slice(0, 40);\n ancestry.push(el.tagName.toLowerCase() + (cls ? '.' + cls : ''));\n }\n // \u7528\u89C4\u5219\u5339\u914D\u5F53\u524D\u7956\u5148\n for (const r of rules) {\n if (ruleHits(r, el)) {\n return { label: r.label, ruleId: r.id, ancestry: ancestry.slice(0, 3) };\n }\n }\n el = el.parentElement;\n }\n return { label: undefined, ruleId: undefined, ancestry: ancestry.slice(0, 3) };\n }\n // T014 P0-3\uFF1A\u6CE8\u5165\u533A\u57DF\u89C4\u5219\uFF08behavior.rules.json \u968F\u6D41\u7A0B\u5305\u5206\u53D1\uFF1Bregion: \u8868\u8FBE\u5F0F\u4E0E describeHit\n // \u533A\u57DF\u6807\u6CE8\u5171\u7528\uFF1B\u5F15\u64CE\u96F6\u4E1A\u52A1\u903B\u8F91\u2014\u2014\u53EA\u5B58\u89C4\u5219 JSON\uFF09\u3002\u5E42\u7B49\uFF1A\u91CD\u590D\u6CE8\u5165\u8986\u76D6\u3002\n function setRegionRules(rulesJson) {\n let rules = [];\n try { rules = JSON.parse(rulesJson || '[]'); } catch (e) { rules = []; }\n window.__rpaDom._regionRules = rules;\n return true;\n }\n // #16-A \u70B9\u51FB\u524D\u906E\u6321\u68C0\u6D4B\uFF1A\u8FD4\u56DE (x,y) \u5904\u6700\u9876\u5C42\u5143\u7D20 + \u8BE5\u5143\u7D20\u662F\u5426\u5C5E\u4E8E\u76EE\u6807\uFF08\u76EE\u6807\u6216\u5176\u540E\u4EE3\uFF09\n function hitTestAt(selector, index, x, y) {\n const target = pick(selector, index);\n if (!target) return { found: false };\n const top = document.elementFromPoint(x, y);\n if (!top) return { found: true, hit: false, top: null };\n const hit = top === target || target.contains(top);\n return {\n found: true,\n hit,\n top: describeEl(top),\n target: describeEl(target),\n };\n }\n // #16-A \u5BF9\u8BDD\u6846\u5173\u95ED\uFF1A\u906E\u6321\u8005\uFF08dialog-layer \u7B49\u906E\u7F69\uFF09\u5185\u7684\u5173\u95ED\u6309\u94AE\u5750\u6807\uFF08\u4F9B\u5F15\u64CE\u70B9\u51FB\u5173\u95ED\u540E\u91CD\u8BD5\uFF09\n function findDialogClose(selector, index) {\n const target = pick(selector, index);\n if (!target) return null;\n const cx = Math.round(target.getBoundingClientRect().left + target.getBoundingClientRect().width / 2);\n const cy = Math.round(target.getBoundingClientRect().top + target.getBoundingClientRect().height / 2);\n const top = document.elementFromPoint(cx, cy);\n if (!top) return null;\n // \u627E\u6700\u9876\u5C42\u5143\u7D20\u4F5C\u4E3A\u906E\u6321\u8005\uFF08dialog-layer/\u906E\u7F69\uFF09\uFF0C\u5728\u5176\u5185\u627E\u5173\u95ED\u6309\u94AE\n let blocker = top;\n while (blocker && blocker !== document.body) {\n const s = getComputedStyle(blocker);\n if ((s.position === 'fixed' || s.position === 'absolute') && parseFloat(s.zIndex) >= 100) break;\n blocker = blocker.parentElement;\n }\n if (!blocker || blocker === document.body) return null;\n // \u5173\u95ED\u6309\u94AE\u641C\u7D22\u8303\u56F4\uFF1A\u906E\u6321\u8005\u81EA\u8EAB + \u5176\u5BF9\u8BDD\u6846\u7956\u5148\uFF08T014 \u9636\u6BB5 2 \u5B9E\u8DD1\u53D1\u73B0\uFF1A\u6B8B\u7559\u5BF9\u8BDD\u6846\u7684\n // .dialog-layer \u906E\u7F69\u4E0B\u5173\u95ED\u6309\u94AE\u5728 dialog-wrap \u5185\u2014\u2014v-leave \u5361\u4F4F\u7684\u5BF9\u8BDD\u6846\u906E\u6321\u6574\u9875\u65F6\uFF0C\n // \u5F15\u64CE\u70B9\u51FB\u5176\u5173\u95ED\u6309\u94AE\u515C\u5E95\u5173\u95ED\uFF0C\u91CD\u8BD5\u76EE\u6807\u70B9\u51FB\uFF09\u3002\n let scope = blocker;\n let walk = blocker.parentElement;\n while (walk && walk !== document.body) {\n if (/(dialog|layer|mask|modal|popup|panel)/i.test((walk.className || '').toString()) && walk.getBoundingClientRect().width > 0) {\n scope = walk;\n }\n walk = walk.parentElement;\n }\n // \u5173\u95ED\u6309\u94AE\u5019\u9009\uFF1Aclass \u542B close / \u56FE\u6807\u6309\u94AE / \u6587\u672C \u00D7\n const closeBtns = [...scope.querySelectorAll('a,button,[role=\"button\"],i,span,div')].filter((el) => {\n const cls = (el.className || '').toString();\n const txt = (el.innerText || '').trim();\n const r = el.getBoundingClientRect();\n return r.width > 8 && r.height > 8 &&\n (/close|close-btn|icon-close|dialog-close|del|btn-close/i.test(cls) || txt === '\u00D7' || txt === '\u2715' || txt === 'X' || txt === '\u5173\u95ED');\n });\n const btn = closeBtns[0];\n if (!btn) return null;\n const r = btn.getBoundingClientRect();\n return { x: Math.round(r.left + r.width / 2), y: Math.round(r.top + r.height / 2), cls: (btn.className || '').toString().slice(0, 40) };\n }\n // #16-A \u539F\u5B50\u5316\u906E\u6321\u68C0\u6D4B\uFF1A\u4E0E rect \u91C7\u96C6\u540C\u4E00\u6B21\u6C42\u503C\uFF08\u6D88\u9664\u300C\u91C7\u96C6-\u68C0\u6D4B\u300D\u4E24\u6B21\u6C42\u503C\u95F4\u7684 DOM \u7ADE\u6001\uFF09\u3002\n // \u8FD4\u56DE\u6BCF\u4E2A\u53EF\u89C1\u76EE\u6807\u7684 rect + \u4E2D\u5FC3\u70B9\u547D\u4E2D\u4FE1\u606F + \u5B89\u5168\u70B9\u51FB\u70B9\uFF1A\n // hit=true \u4E2D\u5FC3\u70B9\u547D\u4E2D\u76EE\u6807\u6216\u5176\u975E\u4EA4\u4E92\u540E\u4EE3\uFF08\u5B89\u5168\u70B9\u51FB\u70B9\uFF09\n // hit=false \u4E2D\u5FC3\u70B9\u88AB\u771F\u5B9E\u906E\u6321\uFF08\u6D6E\u52A8\u5C42/\u5F39\u5C42/\u5176\u5B83\u5143\u7D20\u8986\u76D6\uFF09\n // danger=true \u4E2D\u5FC3\u70B9\u843D\u5728\u76EE\u6807\u5185\u7684\u3010\u53EF\u4EA4\u4E92\u5B50\u5143\u7D20\u3011\uFF08\u94FE\u63A5/\u6309\u94AE\u7B49\uFF09\u4E0A\u2014\u2014\u70B9\u51FB\u4F1A\u89E6\u53D1\u5B50\u5143\u7D20\u800C\u975E\u76EE\u6807\n // safe \u77E9\u5F62\u5185\u626B\u63CF\u5230\u7684\u7B2C\u4E00\u4E2A\u300C\u5C5E\u4E8E\u76EE\u6807\u4E14\u975E\u4EA4\u4E92\u5B50\u5143\u7D20\u300D\u7684\u70B9\uFF08\u4E2D\u5FC3\u88AB\u76D6/\u5371\u9669\u65F6\u6362\u70B9\u7528\uFF09\uFF1B\n // \u65E0\u5B89\u5168\u70B9\u5219 null\uFF08\u6574\u4E2A\u76EE\u6807\u88AB\u76D6 \u2192 \u5F15\u64CE\u4FA7 ESC \u5173\u95ED\u6D6E\u52A8\u5C42\u91CD\u8BD5\uFF09\n // top=null\uFF08elementFromPoint \u65E0\u7ED3\u679C\uFF0C\u5982\u5143\u7D20\u90E8\u5206\u5728\u89C6\u53E3\u5916/\u6E32\u67D3\u8FB9\u7F18\uFF09\u2192 \u4E0D\u89C6\u4E3A\u906E\u6321\uFF0Chit=true\u3002\n function clickableRects(selector) {\n const d = window.__rpaDom;\n const nodes = d && d.getBySels ? d.getBySels(selector) : [];\n const vw = innerWidth || document.documentElement.clientWidth;\n const vh = innerHeight || document.documentElement.clientHeight;\n const out = [];\n const INTERACTIVE = 'a,button,[role=\"button\"],[role=\"link\"],input,select,textarea,[onclick],label';\n const isSafeHit = (el, top) => {\n if (!top) return false;\n if (top === el) return true;\n if (el.contains(top)) {\n return !(top.closest && top.closest(INTERACTIVE) === top);\n }\n return false;\n };\n for (let i = 0; i < nodes.length; i++) {\n const el = nodes[i];\n const t = el.getBoundingClientRect();\n const fullW = Math.max(1, t.width);\n const fullH = Math.max(1, t.height);\n const x = Math.max(t.left, 0);\n const y = Math.max(t.top, 0);\n const w = Math.max(0, Math.min(t.right, vw) - x);\n const h = Math.max(0, Math.min(t.bottom, vh) - y);\n if (w <= 0 || h <= 0) continue;\n // #16-A \u53EF\u89C1\u6BD4\u4F8B\uFF1A\u89C6\u53E3\u5185\u9762\u79EF / \u603B\u9762\u79EF\u3002\u7A84\u89C6\u53E3\u4E0B\u5927\u90E8\u5206\u5728\u89C6\u53E3\u5916\u7684\u5143\u7D20\n // \uFF08\u5982\u9876\u90E8\u5BFC\u822A\u53F3\u4FA7\u7684\u641C\u7D22\u6309\u94AE\uFF09\u70B9\u51FB\u5750\u6807\u4F1A\u843D\u5728\u89C6\u53E3\u5916/\u8FB9\u7F18 \u2192 CDP input \u6302\u8D77\u6216\u70B9\u7A7A\u3002\n // \u53EF\u89C1\u6BD4\u4F8B < 50% \u2192 \u6807\u8BB0 partiallyVisible\uFF0C\u5F15\u64CE\u4FA7\u62A5\u300C\u76EE\u6807\u5927\u90E8\u5206\u5728\u89C6\u53E3\u5916\u300D\u800C\u975E\u5C1D\u8BD5\u70B9\u51FB\u3002\n const visibleRatio = (w * h) / (fullW * fullH);\n const partiallyVisible = visibleRatio < 0.5;\n if (partiallyVisible) {\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: false, danger: false, safe: null, partiallyVisible: true, top: null, target: describeEl(el),\n });\n continue;\n }\n const cx = Math.round(x + w / 2);\n const cy = Math.round(y + h / 2);\n const top = document.elementFromPoint(cx, cy);\n if (!top) {\n // elementFromPoint \u65E0\u7ED3\u679C\uFF1A\u53EF\u89C1\u6BD4\u4F8B\u8DB3\u591F\uFF08\u226550%\uFF09\u4F46\u53D6\u4E0D\u5230\u9876\u5C42\u5143\u7D20 \u2192 \u6E32\u67D3\u8FB9\u754C\u5BB9\u5FCD\uFF0C\u4E0D\u963B\u585E\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: true, danger: false, safe: null, partiallyVisible: false, top: null, target: describeEl(el),\n });\n continue;\n }\n // T014 \u9636\u6BB5 2 \u5B9E\u8DD1\u53D1\u73B0\uFF1A\u6B8B\u7559\u5BF9\u8BDD\u6846 mask\uFF08visibility:hidden / opacity:0 \u7684\u5168\u5C4F\u906E\u7F69\u2014\u2014\n // zhipin \u57CE\u5E02\u9009\u62E9\u5668\u5173\u95ED\u540E .dialog-layer \u7559\u5728 DOM\uFF09\u4F1A\u88AB elementFromPoint \u547D\u4E2D\uFF0C\u4F46\u771F\u5B9E\n // \u6307\u9488\u4E8B\u4EF6\u7A7F\u900F\uFF08\u4E0D\u53EF\u89C1\u5143\u7D20\u4E0D\u53C2\u4E0E\u547D\u4E2D\u6D4B\u8BD5\uFF09\u2192 \u4E0D\u6784\u6210\u771F\u5B9E\u906E\u6321\uFF0C\u89C6\u4E3A hit\uFF08\u9632 ESC \u6B7B\u5FAA\u73AF\uFF09\u3002\n const topStyle = getComputedStyle(top);\n if (topStyle.visibility === 'hidden' || parseFloat(topStyle.opacity) === 0) {\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: true, danger: false, safe: null, partiallyVisible: false, top: null, target: describeEl(el),\n });\n continue;\n }\n const belongs = top === el || el.contains(top);\n const isInteractiveChild = top !== el && el.contains(top) && top.closest && top.closest(INTERACTIVE) === top;\n // \u4E2D\u5FC3\u88AB\u76D6/\u5371\u9669 \u2192 \u626B\u63CF\u77E9\u5F62\u5185\u90E8\u627E\u5B89\u5168\u70B9\uFF085\u00D75 \u7F51\u683C\uFF0C\u907F\u5F00\u4EA4\u4E92\u5B50\u5143\u7D20\u4E0E\u906E\u6321\uFF09\n let safe = null;\n if (!(belongs && !isInteractiveChild)) {\n for (let gy = 1; gy <= 4 && !safe; gy++) {\n for (let gx = 1; gx <= 4 && !safe; gx++) {\n const sx = Math.round(x + (w * gx) / 5);\n const sy = Math.round(y + (h * gy) / 5);\n const st = document.elementFromPoint(sx, sy);\n if (st && isSafeHit(el, st)) safe = { x: sx, y: sy };\n }\n }\n }\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: belongs && !isInteractiveChild,\n danger: isInteractiveChild,\n safe,\n partiallyVisible: false,\n top: describeEl(top),\n target: describeEl(el),\n });\n }\n return out;\n }\n // #16-A \u76EE\u6807\u77E9\u5F62\u5185\u627E\u5B89\u5168\u70B9\u51FB\u70B9\uFF1A\u7F51\u683C\u91C7\u6837\uFF085\u00D75\uFF09\uFF0C\u8FD4\u56DE\u7B2C\u4E00\u4E2A\u300C\u5C5E\u4E8E\u76EE\u6807\u4E14\u4E0D\u5728\u53EF\u4EA4\u4E92\u5B50\u5143\u7D20\u4E0A\u300D\u7684\u70B9\u3002\n // \u5927\u5BB9\u5668\u5361\u7247\uFF08\u5982 job-card-wrap\uFF09\u4E2D\u5FC3\u5E38\u843D\u5728\u516C\u53F8\u94FE\u63A5/\u804C\u4F4D\u8BE6\u60C5\u94FE\u63A5\u4E0A\uFF0C\u76F4\u63A5\u70B9\u4F1A\u8BEF\u8DF3\u8F6C\uFF1B\n // \u5B89\u5168\u70B9\u907F\u5F00\u4EA4\u4E92\u5B50\u5143\u7D20\uFF08a/button/[onclick]\uFF09\uFF0C\u53EA\u843D\u5728\u6587\u672C/\u7A7A\u767D\u533A\u57DF\uFF08\u70B9\u51FB\u4ECD\u7531\u7236\u7EA7\u4E8B\u4EF6\u5192\u6CE1\u5904\u7406\uFF09\u3002\n function safePointIn(selector, index) {\n const el = pick(selector, index);\n if (!el) return null;\n const t = el.getBoundingClientRect();\n const INTERACTIVE = 'a,button,[role=\"button\"],[role=\"link\"],input,select,textarea,[onclick],label';\n for (let gy = 2; gy <= 3; gy++) {\n for (let gx = 2; gx <= 3; gx++) {\n const cx = Math.round(t.left + (t.width * gx) / 5);\n const cy = Math.round(t.top + (t.height * gy) / 5);\n const top = document.elementFromPoint(cx, cy);\n if (!top) continue;\n if (top === el || el.contains(top)) {\n const bad = top !== el && top.closest && top.closest(INTERACTIVE) === top;\n if (!bad) return { x: cx, y: cy };\n }\n }\n }\n // \u515C\u5E95\uFF1A\u4E2D\u5FC3\u70B9\uFF08\u53EF\u80FD\u5371\u9669\uFF0C\u7531\u5F15\u64CE\u4FA7\u518D\u5224\u65AD\uFF09\n return { x: Math.round(t.left + t.width / 2), y: Math.round(t.top + t.height / 2) };\n }\n return { getBySels, scrollIntoView, scrollIntoViewRhythm, textOf, focusInput, pageText, numberedElements, describeEl, describeHit, hitTestAt, clickableRects, safePointIn, identifyRegion, findDialogClose, setRegionRules, _domVersion: 3 };\n})();\ntrue\n";
|
|
20
|
+
export declare const DOM_SOURCE = "\nwindow.__rpaDom = (function() {\n function isVisible(el) {\n if (!el || el.nodeType !== 1) return false;\n const s = window.getComputedStyle(el);\n if (s.display === 'none' || s.visibility === 'hidden' || parseFloat(s.opacity) === 0) return false;\n const r = el.getBoundingClientRect();\n return r.width > 0 && r.height > 0;\n }\n function byText(text) {\n const needle = String(text).trim();\n const visible = Array.from(document.querySelectorAll('body *')).filter(isVisible);\n const leaf = visible.filter(el => el.children.length === 0);\n const exact = leaf.filter(el => (el.textContent || '').trim() === needle);\n if (exact.length > 0) return exact;\n return leaf.filter(el => (el.textContent || '').includes(needle));\n }\n function safeQuery(sel) {\n try {\n return Array.from(document.querySelectorAll(sel)).filter(isVisible);\n } catch (e) {\n return [];\n }\n }\n // T014 P0-3\uFF1A\u533A\u57DF\u89C4\u5219\u547D\u4E2D\u5224\u5B9A\uFF08\u5355\u4E00\u5B9E\u73B0\u2014\u2014identifyRegion \u4E0E region: \u8868\u8FBE\u5F0F\u5171\u7528\uFF0C\u9632\u903B\u8F91\u6F02\u79FB\uFF09\u3002\n // T016 P1-4\uFF08\u5B9E\u8DD1\u4FEE\u590D\uFF09\uFF1AtextContains \u7528 textContent \u800C\u975E innerText\u2014\u2014innerText \u5F3A\u5236\u540C\u6B65\u91CD\u6392\uFF0C\n // \u8BE6\u60C5\u9762\u677F\u6253\u5F00\u540E DOM \u6570\u5343\u5143\u7D20 \u00D7 regionContainerOf \u5168\u904D\u5386 = \u5355\u6B21 evaluate \u6570\u5341\u79D2\uFF08waitSelector\n // \u8F6E\u8BE2\u8D85\u65F6\u5047\u5931\u8D25\uFF09\uFF1BtextContent \u4E0D\u89E6\u53D1\u91CD\u6392\uFF0C\u8BED\u4E49\u7B49\u4EF7\uFF08\u89C4\u5219=\u6587\u672C\u5305\u542B\uFF0C\u4E0D\u4F9D\u8D56\u6E32\u67D3\u5B8C\u6210\u6001\uFF09\u3002\n function ruleHits(rule, el) {\n const m = rule.match || {};\n let hit = true;\n if (m.textContains && !((el.textContent || '').includes(m.textContains))) hit = false;\n if (m.textContainsAll && Array.isArray(m.textContainsAll)) {\n const txt = el.textContent || '';\n for (const kw of m.textContainsAll) {\n if (!txt.includes(kw)) { hit = false; break; }\n }\n }\n if (m.hasInput && !el.querySelector('input, textarea')) hit = false;\n if (m.hasButton && !el.querySelector('button, a[role=\"button\"], [role=\"button\"]')) hit = false;\n if (m.ancestorTag && !(el.tagName || '').toLowerCase().includes(m.ancestorTag)) hit = false;\n if (m.ancestorClass && !((el.className || '').toString().includes(m.ancestorClass))) hit = false;\n return hit;\n }\n // T014 P0-1\uFF1A\u5143\u7D20\u6240\u5C5E\u533A\u57DF\u6807\u7B7E\uFF08\u8D70\u5143\u7D20\u81EA\u8EAB\u2192\u7956\u5148\uFF0C\u9996\u4E2A\u89C4\u5219\u547D\u4E2D\u5373\u8FD4\u56DE\uFF1B\u65E0 \u2192 null\uFF09\n function regionLabelOf(el, rules) {\n let cur = el;\n for (let d = 0; d < 5 && cur; d++) {\n for (const r of rules) {\n if (ruleHits(r, cur)) return { label: r.label, ruleId: r.id };\n }\n cur = cur.parentElement;\n }\n return null;\n }\n // T014 P0-3 + T016 P1-3\uFF1A\u533A\u57DF\u4E3B\u5BB9\u5668\u89E3\u6790\uFF08region:<\u6807\u7B7E> \u4E0E\u5BFB\u5740\u5171\u7528\uFF09\uFF1A\n // self-match \u5019\u9009\uFF08\u9762\u79EF < \u89C6\u53E3\uFF09\u4E2D\uFF0C\u53D6\u300C\u6709\u5B9E\u8D28\u7236\u5019\u9009\u7684\u6700\u6D45\u5B9E\u8D28\u5019\u9009\u300D\u2014\u2014\u8BE6\u60C5\u533A\u6587\u672C\u94FE\n // container \u2283 box \u2283 body \u2283 h3\uFF1Abox \u7684\u7236 container \u662F\u5B9E\u8D28\u5019\u9009\u3001body \u7684\u7236 box \u4E5F\u662F\uFF0C\u53D6\u6700\u6D45\n // = box\uFF08\u542B\u5934\u90E8\u7ECF\u9A8C/\u5B66\u5386/\u85AA\u8D44 + \u6B63\u6587\uFF0CT016 P1-3 \u4FEE\u590D\u2014\u2014\u539F\u300C\u6700\u6DF1\u5B9E\u8D28\u300D\u9009\u5230 body \u4E22\u5934\u90E8\uFF09\uFF1B\n // \u4E14\u907F\u5F00\u542B\u8FB9\u680F/\u6C42\u804C\u610F\u5411\u7684\u5305\u88F9\u5C42 container\uFF08USAGE-ISSUES #16\uFF09\uFF1B\n // \u65E0\u5B9E\u8D28\u7236\u5019\u9009\uFF08\u5217\u8868 ul \u81EA\u8EAB\u3001\u77ED\u6587\u672C\u641C\u7D22\u8868\u5355\uFF09\u2192 \u56DE\u9000\u6700\u5927\u9762\u79EF\u3002\n function regionContainerOf(label, rules) {\n const vw = innerWidth || document.documentElement.clientWidth || 1000;\n const vh = innerHeight || document.documentElement.clientHeight || 800;\n const vpArea = vw * vh;\n const matches = [];\n // T016 P1-4\uFF08\u5B9E\u8DD1\u4FEE\u590D\uFF09\uFF1A\u5168\u904D\u5386\u53EA\u7528\u6837\u5F0F\u5C5E\u6027\u8FC7\u6EE4\uFF08getComputedStyle \u4E0D\u89E6\u53D1\u5E03\u5C40\uFF09\uFF0C\n // rect \u4EC5\u5728\u89C4\u5219\u547D\u4E2D\u540E\u8BFB\u53D6\uFF08\u547D\u4E2D\u5143\u7D20\u6781\u5C11\uFF09\u2014\u2014\u907F\u514D\u8BE6\u60C5\u9762\u677F\u6253\u5F00\u540E\u5BF9\u6570\u5343\u5143\u7D20\u5404\u8BFB\u4E00\u6B21\n // getBoundingClientRect/innerText \u7684 O(n) \u540C\u6B65\u91CD\u6392\uFF08waitSelector \u8F6E\u8BE2 evaluate \u6570\u5341\u79D2\u5047\u8D85\u65F6\uFF09\u3002\n for (const el of Array.from(document.querySelectorAll('body *'))) {\n if (!(el.textContent || '').trim()) continue;\n const s = getComputedStyle(el);\n if (s.display === 'none' || s.visibility === 'hidden' || parseFloat(s.opacity) === 0) continue;\n for (const r of rules) {\n if (r.label === label && ruleHits(r, el)) {\n const rect = el.getBoundingClientRect();\n const area = rect.width * rect.height;\n if (area > 0 && area < vpArea) matches.push({ el, area });\n break;\n }\n }\n }\n if (matches.length === 0) return null;\n const depthOf = (el) => {\n let d = 0;\n let cur = el.parentElement;\n while (cur) { d++; cur = cur.parentElement; }\n return d;\n };\n // \u5B9E\u8D28\u5019\u9009\uFF1A\u6587\u672C \u2265100 \u5B57\uFF08\u77ED\u6587\u672C\u533A\u57DF\u5982\u641C\u7D22\u8868\u5355 \u2192 \u7528\u5168\u90E8\u5019\u9009\uFF09\n const pool = matches.filter((m) => (m.el.textContent || '').trim().length >= 100);\n const candidates = pool.length > 0 ? pool : matches;\n // \u6709\u5B9E\u8D28\u7236\u5019\u9009\u7684\uFF08\u5D4C\u5957\u5728\u53E6\u4E00\u4E2A\u5B9E\u8D28\u5019\u9009\u5185\u2014\u2014\u5185\u5BB9\u5BB9\u5668\u800C\u975E\u5305\u88F9\u5C42\uFF09\n const withParent = candidates.filter((m) => candidates.some((o) => o.el !== m.el && containsNode(o.el, m.el)));\n let best = null;\n if (withParent.length > 0) {\n // \u6700\u6D45\u8005\uFF08\u8BE6\u60C5\u533A box \u6DF1\u4E8E container \u4F46\u6D45\u4E8E body\uFF09\n for (const m of withParent) {\n if (!best || depthOf(m.el) < depthOf(best.el)) best = m;\n }\n } else {\n for (const m of candidates) {\n if (!best || m.area > best.area) best = m;\n }\n }\n return best ? best.el : null;\n }\n // a \u662F\u5426 b \u7684\u7956\u5148\uFF08region \u5BB9\u5668\u300C\u6709\u5B9E\u8D28\u7236\u5019\u9009\u300D\u5224\u5B9A\u7528\uFF09\n function containsNode(a, b) {\n let cur = b.parentElement;\n while (cur) {\n if (cur === a) return true;\n cur = cur.parentElement;\n }\n return false;\n }\n function getBySels(selector) {\n // A3 \u6570\u7EC4\u94FE\uFF08#17 \u4FEE\u590D\uFF09\uFF1A\u4F9D\u6B21\u5C1D\u8BD5\uFF0C\u7B2C\u4E00\u4E2A\u547D\u4E2D\u7684\u8FD4\u56DE\n if (Array.isArray(selector)) {\n for (const s of selector) {\n const nodes = getBySels(s);\n if (nodes.length > 0) return nodes;\n }\n return [];\n }\n const sel = String(selector);\n if (sel.startsWith('text:')) return byText(sel.slice(5));\n // T014 P0-3 + T016\uFF1Aregion:<\u6807\u7B7E>[ >> [\u5B50\u9009\u62E9\u5668] >> <n>] \u2014\u2014 \u5F15\u64CE\u5185\u90E8\u533A\u57DF\u5BFB\u5740\u8868\u8FBE\u5F0F\u3002\n // \u89C4\u5219\u7531 setRegionRules \u6CE8\u5165\uFF08\u968F\u6D41\u7A0B\u5305\u5206\u53D1\uFF0C\u5F15\u64CE\u96F6\u4E1A\u52A1\u903B\u8F91\uFF1B\u4EF2\u88C1\uFF1A\u6CE8\u5165\u89C4\u5219\u5DF2\u6309\u6863\u6848 seen \u91CD\u6392\uFF09\u3002\n // \u4E3B\u5BB9\u5668\u89E3\u6790\uFF08regionContainerOf\uFF09\uFF1Aself-match \u5019\u9009\uFF08\u9762\u79EF < \u89C6\u53E3\uFF09\u4E2D\u53D6\u300C\u6709\u5B9E\u8D28\u7236\u5019\u9009\u7684\u6700\u6D45\n // \u5B9E\u8D28\u5019\u9009\u300D\uFF08\u8BE6\u60C5\u533A box \u542B\u5934\u90E8+\u6B63\u6587\uFF0C\u89C1 USAGE-ISSUES #16/#21 \u4E0E T016 P1-3\uFF09\uFF1B\u65E0 \u2192 \u6700\u5927\u9762\u79EF\u3002\n // \u5BFB\u5740\u8BED\u4E49\uFF08T016 P0-1 \u4FEE\u8BA2\u2014\u2014\u730E\u5934 0.5.6 \u9A8C\u6536\uFF1A\u679A\u4E3E\u5168\u90E8\u53EF\u4EA4\u4E92\u5143\u7D20\u4F1A\u70B9\u5230\u5361\u7247\u5185\u516C\u53F8\u94FE\u63A5\uFF09\uFF1A\n // 'region:<\u6807\u7B7E> >>' = \u533A\u57DF\u4E3B\u5BB9\u5668\u7684**\u5361\u7247\u7EA7\u76F4\u63A5\u5B50\u9879**\uFF08\u53EF\u89C1 + \u6709\u5B9E\u8D28\u6587\u672C\uFF1B\n // \u5217\u8868\u533A = ul.rec-job-list \u7684\u76F4\u63A5\u5B50\u9879 li/div \u5361\u7247\uFF0Cindex \u4F5C\u7528\u4E8E\u5361\u7247\uFF09\n // 'region:<\u6807\u7B7E> >> <n>' = \u7B2C n \u4E2A\uFF080 \u8D77\uFF09\u5361\u7247\u7EA7\u5B50\u9879\n // 'region:<\u6807\u7B7E> >> <\u5B50\u9009\u62E9\u5668> >>' = \u533A\u57DF\u5185\u5339\u914D\u5B50\u9009\u62E9\u5668\u7684\u5168\u90E8\u53EF\u89C1\u5143\u7D20\uFF08\u6DF7\u5408\u5BFB\u5740\uFF09\n // 'region:<\u6807\u7B7E> >> <\u5B50\u9009\u62E9\u5668> >> <n>' = \u5176\u4E2D\u7B2C n \u4E2A\n if (sel.startsWith('region:')) {\n const rest = sel.slice(7).trim();\n const parts = rest.split('>>').map((p) => p.trim());\n const label = parts[0] || '';\n const rules = (window.__rpaDom && window.__rpaDom._regionRules) || [];\n const container = regionContainerOf(label, rules);\n if (!container) return [];\n if (parts.length === 1) return [container];\n const sub = parts.length >= 3 ? parts[1] : '';\n const idxPart = parts.length >= 3 ? parts[2] : parts[1] ?? '';\n let nodes;\n if (sub) {\n nodes = Array.from(container.querySelectorAll(sub)).filter(isVisible);\n } else {\n // \u5361\u7247\u7EA7\u76F4\u63A5\u5B50\u9879\uFF08T016 P0-1\uFF1A\u907F\u514D\u70B9\u5230\u5361\u7247\u5185\u516C\u53F8\u94FE\u63A5\u7B49\u5185\u90E8\u53EF\u4EA4\u4E92\u5143\u7D20\uFF09\n // T016 P1-4\uFF1AtextContent\uFF08\u4E0D\u5F3A\u5236\u91CD\u6392\uFF1BinnerText \u5728\u8BE6\u60C5\u9762\u677F\u6253\u5F00\u540E\u62D6\u6162 evaluate\uFF09\n nodes = Array.from(container.children).filter(isVisible).filter((el) => (el.textContent || '').trim().length > 0);\n }\n if (idxPart === '') return nodes;\n const n = Number(idxPart);\n return Number.isInteger(n) && n >= 0 && n < nodes.length ? [nodes[n]] : [];\n }\n // #16-B \u7F16\u53F7\u5BFB\u5740\uFF08\u865A\u62DF\u7A7A\u95F4\u89C6\u89C9\uFF09\uFF1A#N = numberedElements \u5217\u8868\u7B2C N \u4E2A\u53EF\u89C1\u4EA4\u4E92\u5143\u7D20\uFF081 \u8D77\uFF09\u3002\n // \u5FEB\u7167\u7F16\u53F7\u4E0E\u5BFB\u5740\u5171\u7528\u540C\u4E00\u679A\u4E3E \u2192 Agent/\u65E5\u5FD7\u53EF\u300C\u770B\u7F16\u53F7\u76F4\u63A5\u70B9\u300D\uFF1B\u7F16\u53F7\u968F DOM \u53D8\u5316\uFF0C\u64CD\u4F5C\u65F6\u73B0\u53D6\u3002\n const numMatch = sel.match(/^#(d+)$/);\n if (numMatch) {\n const idx = Number(numMatch[1]) - 1;\n const tags = 'a,button,input,select,textarea,[role=\"button\"],[role=\"link\"],[contenteditable=\"true\"]';\n const nodes = Array.from(document.querySelectorAll(tags)).filter(isVisible);\n return idx >= 0 && idx < nodes.length ? [nodes[idx]] : [];\n }\n // \u6DF7\u5408\u4E32\uFF08CSS \u4E0E text: \u9017\u53F7\u5206\u9694\uFF0C\u5982 \"a.search-btn, text:\u641C\u7D22\"\uFF09\uFF1A\u9010\u6BB5\u5C1D\u8BD5\u5408\u5E76\u53BB\u91CD\n // \uFF08#17 \u4FEE\u590D\uFF1Atext: \u6BB5\u4E0D\u80FD\u518D\u6DF7\u8FDB querySelectorAll\u2014\u2014\u6574\u4F53\u4F1A SyntaxError \u5931\u6548\uFF09\n const parts = sel.split(',').map((p) => p.trim()).filter(Boolean);\n if (parts.length > 1 || parts.some((p) => p.startsWith('text:'))) {\n const out = [];\n for (const p of parts) {\n const nodes = p.startsWith('text:') ? byText(p.slice(5)) : safeQuery(p);\n for (const n of nodes) {\n if (isVisible(n) && !out.includes(n)) out.push(n);\n }\n }\n return out;\n }\n return safeQuery(sel);\n }\n function pick(selector, index) {\n const nodes = getBySels(selector);\n return nodes[index] || nodes[0] || null;\n }\n function scrollIntoView(selector, index) {\n const el = pick(selector, index);\n if (!el) return false;\n el.scrollIntoView({ block: 'center', inline: 'center' });\n return true;\n }\n // T012 P1-2\uFF1A\u8F7B\u91CF\u62DF\u4EBA\u6EDA\u52A8\u2014\u2014\u5206\u6BB5\u6E10\u8FDB\u6EDA\u52A8\uFF082~5 \u6BB5\uFF0C\u6BB5\u95F4 30~120ms \u968F\u673A\u8282\u594F\uFF09\uFF0C\n // \u7EC8\u4F4D\u4E0E scrollIntoView \u4E00\u81F4\uFF08block:center\uFF09\u2014\u2014\u53EA\u6539\u8282\u594F\u4E0D\u6539\u843D\u70B9\uFF0C\u529F\u80FD\u4E0D\u56DE\u5F52\u3002\n // T016 P1-4\uFF08\u5B9E\u8DD1\u4FEE\u590D\uFF09\uFF1A\u6539\u4E3A**\u540C\u6B65**\u5B9E\u73B0\u3002\u539F\u5F02\u6B65\u7248\u4F9D\u8D56\u9875\u9762 setTimeout \u94FE\uFF0C\u800C\u9875\u9762\u4E3B\u7EBF\u7A0B\n // \u7E41\u5FD9\uFF08\u8BE6\u60C5\u9762\u677F\u6E32\u67D3/\u6BCF\u6B65 pageText \u540C\u6B65\u91CD\u6392\uFF09\u65F6 setTimeout \u88AB\u6781\u7AEF\u8282\u6D41 \u2192 promise \u6C38\u4E0D\n // resolve \u2192 CDP evaluate awaitPromise \u6302\u8D77\uFF08\u4EC5\u9760 60s \u547D\u4EE4\u8D85\u65F6\u515C\u5E95\uFF0C\u8868\u73B0\u4E3A\u5076\u53D1\u5361\u6B7B\uFF09\u3002\n // \u540C\u6B65\u7248\u843D\u70B9\u4E0D\u53D8\uFF08\u5206\u6BB5\u7F13\u52A8\u6539\u4E3A\u76F4\u63A5 scrollTo + scrollIntoView block:center\uFF09\uFF0C\n // \u8FD4\u56DE true\uFF08\u4E0E\u65E7\u540C\u6B65\u5931\u8D25\u5206\u652F false \u517C\u5BB9\uFF09\uFF1Bevaluate awaitPromise \u5BF9\u540C\u6B65\u503C\u7ACB\u5373\u8FD4\u56DE\u3002\n function scrollIntoViewRhythm(selector, index) {\n const el = pick(selector, index);\n if (!el) return false;\n const vh = innerHeight || document.documentElement.clientHeight || 600;\n const rect = el.getBoundingClientRect();\n const curTop = pageYOffset || document.documentElement.scrollTop || 0;\n const targetY = curTop + rect.top - (vh - Math.min(rect.height, vh)) / 2;\n window.scrollTo(0, Math.round(targetY));\n el.scrollIntoView({ block: 'center', inline: 'center' });\n return true;\n }\n function textOf(selector, index) {\n const el = pick(selector, index);\n return el ? (el.innerText || el.textContent || '') : '';\n }\n function focusInput(selector, index) {\n const el = pick(selector, index);\n if (!el) return false;\n if (typeof el.select === 'function') el.select();\n el.focus();\n return true;\n }\n function pageText() {\n let t = document.body ? document.body.innerText : '';\n const inputs = Array.from(document.querySelectorAll('input, textarea, [contenteditable=\"true\"]'));\n for (const el of inputs) {\n const v = el.value || el.textContent || '';\n if (v) t += '\\n' + v;\n }\n return t;\n }\n function numberedElements(maxN) {\n const tags = 'a,button,input,select,textarea,[role=\"button\"],[role=\"link\"],[contenteditable=\"true\"]';\n const nodes = Array.from(document.querySelectorAll(tags)).filter(isVisible);\n const cap = maxN || 50;\n return nodes.slice(0, cap).map(el => ({\n tag: el.tagName.toLowerCase(),\n text: (el.innerText || el.value || el.textContent || '').trim().slice(0, 40)\n }));\n }\n // #16-A \u865A\u62DF\u7A7A\u95F4\u89C6\u89C9\uFF1A\u5143\u7D20\u8BED\u4E49\u63CF\u8FF0\uFF08\u906E\u6321\u68C0\u6D4B/\u65E5\u5FD7\u7528\uFF09\n function describeEl(el) {\n if (!el || el.nodeType !== 1) return null;\n const t = (el.innerText || el.value || el.textContent || '').trim();\n return {\n tag: el.tagName.toLowerCase(),\n cls: (el.className || '').toString().slice(0, 60),\n text: t.slice(0, 30),\n role: el.getAttribute && el.getAttribute('role'),\n };\n }\n // P3 \u8BED\u4E49\u951A\u70B9\uFF1A\u547D\u4E2D\u5143\u7D20\u6307\u7EB9\uFF08\u52A8\u4F5C\u6210\u529F\u65F6\u91C7\u96C6\uFF0C\u4F9B\u9009\u62E9\u5668\u5931\u6548\u65F6\u751F\u6210\u66FF\u4EE3\u5B9A\u4F4D\uFF09\u3002\n // \u53EA\u6709\u53EF\u91CD\u5B9A\u4F4D\u7684\u8BED\u4E49\u7279\u5F81\uFF08tag/\u6587\u672C\u622A\u65AD/placeholder/aria-label/name\uFF09\u2014\u2014\u65E0\u5750\u6807\u65E0\u539F\u6587\u3002\n // \u63A9\u7801\u524D\u79FB\uFF08\u94C1\u5F8B\uFF09\uFF1A\u8868\u5355\u5143\u7D20\uFF08input/textarea/select\uFF09\u7EDD\u4E0D\u53D6 value\u2014\u2014\u90A3\u662F\u7528\u6237\u8F93\u5165\u503C\n // \uFF08\u641C\u7D22\u8BCD/\u7535\u8BDD\u7B49\u654F\u611F\u539F\u6587\uFF09\uFF0C\u843D\u76D8\u5373\u8FDD\u89C4\uFF1B\u8868\u5355\u951A\u70B9\u53EA\u7528 placeholder/name/aria-label\u3002\n // T014 P1-4\uFF1A\u9644\u52A0\u6240\u5728\u533A\u57DF\u6807\u7B7E\uFF08region\uFF09\u2014\u2014\u951A\u70B9\u53EA\u5728\u540C\u4E00\u533A\u57DF\u590D\u7528\uFF08\u89C4\u5219\u7531 setRegionRules \u6CE8\u5165\uFF09\u3002\n function describeHit(selector, index) {\n const el = pick(selector, index);\n if (!el) return null;\n const tag = el.tagName.toLowerCase();\n const isForm = tag === 'input' || tag === 'textarea' || tag === 'select';\n const t = isForm ? '' : (el.innerText || el.textContent || '').trim().slice(0, 30);\n const get = (k) => { try { return el.getAttribute(k) || undefined; } catch (e) { return undefined; } };\n const rules = (window.__rpaDom && window.__rpaDom._regionRules) || [];\n const regionHit = rules.length > 0 ? regionLabelOf(el, rules) : null;\n return {\n tag,\n ...(t ? { text: t } : {}),\n ...(get('placeholder') ? { placeholder: get('placeholder') } : {}),\n ...(get('aria-label') ? { ariaLabel: get('aria-label') } : {}),\n ...(get('name') ? { name: get('name') } : {}),\n ...(regionHit ? { region: regionHit.label } : {}),\n };\n }\n // #16-B/P2 \u533A\u57DF\u8BC6\u522B\uFF1A\u76EE\u6807\u5143\u7D20\u5411\u4E0A\u904D\u5386\u7956\u5148\uFF08\u22645 \u5C42\uFF09\uFF0C\u7528\u884C\u4E3A\u89C4\u5219\u5339\u914D\u51FA\u533A\u57DF\u6807\u7B7E\u3002\n // \u89C4\u5219\uFF08behavior.rules.json \u968F\u6D41\u7A0B\u5305\u5206\u53D1\uFF0C\u5F15\u64CE\u96F6\u4E1A\u52A1\u903B\u8F91\uFF09\uFF1A\u5168\u90E8 match \u6761\u4EF6\u6EE1\u8DB3\u624D\u547D\u4E2D\u3002\n // \u8FD4\u56DE { label, ruleId, ancestry }\u2014\u2014ancestry \u4E3A\u7956\u5148\u94FE\u6458\u8981\uFF08\u6297\u6539\u7248\u91CD\u5B9A\u4F4D\u7528\uFF09\u3002\n // T014\uFF1A\u6761\u4EF6\u5224\u5B9A\u7EDF\u4E00\u8D70 ruleHits\uFF08\u4E0E region: \u8868\u8FBE\u5F0F\u5171\u7528\uFF0C\u9632\u6F02\u79FB\uFF09\u3002\n function identifyRegion(selector, index, rulesJson) {\n const target = pick(selector, index);\n if (!target) return null;\n let rules = [];\n try { rules = JSON.parse(rulesJson || '[]'); } catch (e) { rules = []; }\n const ancestry = [];\n let el = target;\n for (let d = 0; d < 5 && el; d++) {\n if (el !== target && el.nodeType === 1) {\n const cls = (el.className || '').toString().slice(0, 40);\n ancestry.push(el.tagName.toLowerCase() + (cls ? '.' + cls : ''));\n }\n // \u7528\u89C4\u5219\u5339\u914D\u5F53\u524D\u7956\u5148\n for (const r of rules) {\n if (ruleHits(r, el)) {\n return { label: r.label, ruleId: r.id, ancestry: ancestry.slice(0, 3) };\n }\n }\n el = el.parentElement;\n }\n return { label: undefined, ruleId: undefined, ancestry: ancestry.slice(0, 3) };\n }\n // T014 P0-3\uFF1A\u6CE8\u5165\u533A\u57DF\u89C4\u5219\uFF08behavior.rules.json \u968F\u6D41\u7A0B\u5305\u5206\u53D1\uFF1Bregion: \u8868\u8FBE\u5F0F\u4E0E describeHit\n // \u533A\u57DF\u6807\u6CE8\u5171\u7528\uFF1B\u5F15\u64CE\u96F6\u4E1A\u52A1\u903B\u8F91\u2014\u2014\u53EA\u5B58\u89C4\u5219 JSON\uFF09\u3002\u5E42\u7B49\uFF1A\u91CD\u590D\u6CE8\u5165\u8986\u76D6\u3002\n function setRegionRules(rulesJson) {\n let rules = [];\n try { rules = JSON.parse(rulesJson || '[]'); } catch (e) { rules = []; }\n window.__rpaDom._regionRules = rules;\n return true;\n }\n // #16-A \u70B9\u51FB\u524D\u906E\u6321\u68C0\u6D4B\uFF1A\u8FD4\u56DE (x,y) \u5904\u6700\u9876\u5C42\u5143\u7D20 + \u8BE5\u5143\u7D20\u662F\u5426\u5C5E\u4E8E\u76EE\u6807\uFF08\u76EE\u6807\u6216\u5176\u540E\u4EE3\uFF09\n function hitTestAt(selector, index, x, y) {\n const target = pick(selector, index);\n if (!target) return { found: false };\n const top = document.elementFromPoint(x, y);\n if (!top) return { found: true, hit: false, top: null };\n const hit = top === target || target.contains(top);\n return {\n found: true,\n hit,\n top: describeEl(top),\n target: describeEl(target),\n };\n }\n // #16-A \u5BF9\u8BDD\u6846\u5173\u95ED\uFF1A\u906E\u6321\u8005\uFF08dialog-layer \u7B49\u906E\u7F69\uFF09\u5185\u7684\u5173\u95ED\u6309\u94AE\u5750\u6807\uFF08\u4F9B\u5F15\u64CE\u70B9\u51FB\u5173\u95ED\u540E\u91CD\u8BD5\uFF09\n function findDialogClose(selector, index) {\n const target = pick(selector, index);\n if (!target) return null;\n const cx = Math.round(target.getBoundingClientRect().left + target.getBoundingClientRect().width / 2);\n const cy = Math.round(target.getBoundingClientRect().top + target.getBoundingClientRect().height / 2);\n const top = document.elementFromPoint(cx, cy);\n if (!top) return null;\n // \u627E\u6700\u9876\u5C42\u5143\u7D20\u4F5C\u4E3A\u906E\u6321\u8005\uFF08dialog-layer/\u906E\u7F69\uFF09\uFF0C\u5728\u5176\u5185\u627E\u5173\u95ED\u6309\u94AE\n let blocker = top;\n while (blocker && blocker !== document.body) {\n const s = getComputedStyle(blocker);\n if ((s.position === 'fixed' || s.position === 'absolute') && parseFloat(s.zIndex) >= 100) break;\n blocker = blocker.parentElement;\n }\n if (!blocker || blocker === document.body) return null;\n // \u5173\u95ED\u6309\u94AE\u641C\u7D22\u8303\u56F4\uFF1A\u906E\u6321\u8005\u81EA\u8EAB + \u5176\u5BF9\u8BDD\u6846\u7956\u5148\uFF08T014 \u9636\u6BB5 2 \u5B9E\u8DD1\u53D1\u73B0\uFF1A\u6B8B\u7559\u5BF9\u8BDD\u6846\u7684\n // .dialog-layer \u906E\u7F69\u4E0B\u5173\u95ED\u6309\u94AE\u5728 dialog-wrap \u5185\u2014\u2014v-leave \u5361\u4F4F\u7684\u5BF9\u8BDD\u6846\u906E\u6321\u6574\u9875\u65F6\uFF0C\n // \u5F15\u64CE\u70B9\u51FB\u5176\u5173\u95ED\u6309\u94AE\u515C\u5E95\u5173\u95ED\uFF0C\u91CD\u8BD5\u76EE\u6807\u70B9\u51FB\uFF09\u3002\n let scope = blocker;\n let walk = blocker.parentElement;\n while (walk && walk !== document.body) {\n if (/(dialog|layer|mask|modal|popup|panel)/i.test((walk.className || '').toString()) && walk.getBoundingClientRect().width > 0) {\n scope = walk;\n }\n walk = walk.parentElement;\n }\n // \u5173\u95ED\u6309\u94AE\u5019\u9009\uFF1Aclass \u542B close / \u56FE\u6807\u6309\u94AE / \u6587\u672C \u00D7\n const closeBtns = [...scope.querySelectorAll('a,button,[role=\"button\"],i,span,div')].filter((el) => {\n const cls = (el.className || '').toString();\n const txt = (el.innerText || '').trim();\n const r = el.getBoundingClientRect();\n return r.width > 8 && r.height > 8 &&\n (/close|close-btn|icon-close|dialog-close|del|btn-close/i.test(cls) || txt === '\u00D7' || txt === '\u2715' || txt === 'X' || txt === '\u5173\u95ED');\n });\n const btn = closeBtns[0];\n if (!btn) return null;\n const r = btn.getBoundingClientRect();\n return { x: Math.round(r.left + r.width / 2), y: Math.round(r.top + r.height / 2), cls: (btn.className || '').toString().slice(0, 40) };\n }\n // #16-A \u539F\u5B50\u5316\u906E\u6321\u68C0\u6D4B\uFF1A\u4E0E rect \u91C7\u96C6\u540C\u4E00\u6B21\u6C42\u503C\uFF08\u6D88\u9664\u300C\u91C7\u96C6-\u68C0\u6D4B\u300D\u4E24\u6B21\u6C42\u503C\u95F4\u7684 DOM \u7ADE\u6001\uFF09\u3002\n // \u8FD4\u56DE\u6BCF\u4E2A\u53EF\u89C1\u76EE\u6807\u7684 rect + \u4E2D\u5FC3\u70B9\u547D\u4E2D\u4FE1\u606F + \u5B89\u5168\u70B9\u51FB\u70B9\uFF1A\n // hit=true \u4E2D\u5FC3\u70B9\u547D\u4E2D\u76EE\u6807\u6216\u5176\u975E\u4EA4\u4E92\u540E\u4EE3\uFF08\u5B89\u5168\u70B9\u51FB\u70B9\uFF09\n // hit=false \u4E2D\u5FC3\u70B9\u88AB\u771F\u5B9E\u906E\u6321\uFF08\u6D6E\u52A8\u5C42/\u5F39\u5C42/\u5176\u5B83\u5143\u7D20\u8986\u76D6\uFF09\n // danger=true \u4E2D\u5FC3\u70B9\u843D\u5728\u76EE\u6807\u5185\u7684\u3010\u53EF\u4EA4\u4E92\u5B50\u5143\u7D20\u3011\uFF08\u94FE\u63A5/\u6309\u94AE\u7B49\uFF09\u4E0A\u2014\u2014\u70B9\u51FB\u4F1A\u89E6\u53D1\u5B50\u5143\u7D20\u800C\u975E\u76EE\u6807\n // safe \u77E9\u5F62\u5185\u626B\u63CF\u5230\u7684\u7B2C\u4E00\u4E2A\u300C\u5C5E\u4E8E\u76EE\u6807\u4E14\u975E\u4EA4\u4E92\u5B50\u5143\u7D20\u300D\u7684\u70B9\uFF08\u4E2D\u5FC3\u88AB\u76D6/\u5371\u9669\u65F6\u6362\u70B9\u7528\uFF09\uFF1B\n // \u65E0\u5B89\u5168\u70B9\u5219 null\uFF08\u6574\u4E2A\u76EE\u6807\u88AB\u76D6 \u2192 \u5F15\u64CE\u4FA7 ESC \u5173\u95ED\u6D6E\u52A8\u5C42\u91CD\u8BD5\uFF09\n // top=null\uFF08elementFromPoint \u65E0\u7ED3\u679C\uFF0C\u5982\u5143\u7D20\u90E8\u5206\u5728\u89C6\u53E3\u5916/\u6E32\u67D3\u8FB9\u7F18\uFF09\u2192 \u4E0D\u89C6\u4E3A\u906E\u6321\uFF0Chit=true\u3002\n function clickableRects(selector) {\n const d = window.__rpaDom;\n const nodes = d && d.getBySels ? d.getBySels(selector) : [];\n const vw = innerWidth || document.documentElement.clientWidth;\n const vh = innerHeight || document.documentElement.clientHeight;\n const out = [];\n const INTERACTIVE = 'a,button,[role=\"button\"],[role=\"link\"],input,select,textarea,[onclick],label';\n const isSafeHit = (el, top) => {\n if (!top) return false;\n if (top === el) return true;\n if (el.contains(top)) {\n return !(top.closest && top.closest(INTERACTIVE) === top);\n }\n return false;\n };\n for (let i = 0; i < nodes.length; i++) {\n const el = nodes[i];\n const t = el.getBoundingClientRect();\n const fullW = Math.max(1, t.width);\n const fullH = Math.max(1, t.height);\n const x = Math.max(t.left, 0);\n const y = Math.max(t.top, 0);\n const w = Math.max(0, Math.min(t.right, vw) - x);\n const h = Math.max(0, Math.min(t.bottom, vh) - y);\n if (w <= 0 || h <= 0) continue;\n // #16-A \u53EF\u89C1\u6BD4\u4F8B\uFF1A\u89C6\u53E3\u5185\u9762\u79EF / \u603B\u9762\u79EF\u3002\u7A84\u89C6\u53E3\u4E0B\u5927\u90E8\u5206\u5728\u89C6\u53E3\u5916\u7684\u5143\u7D20\n // \uFF08\u5982\u9876\u90E8\u5BFC\u822A\u53F3\u4FA7\u7684\u641C\u7D22\u6309\u94AE\uFF09\u70B9\u51FB\u5750\u6807\u4F1A\u843D\u5728\u89C6\u53E3\u5916/\u8FB9\u7F18 \u2192 CDP input \u6302\u8D77\u6216\u70B9\u7A7A\u3002\n // \u53EF\u89C1\u6BD4\u4F8B < 50% \u2192 \u6807\u8BB0 partiallyVisible\uFF0C\u5F15\u64CE\u4FA7\u62A5\u300C\u76EE\u6807\u5927\u90E8\u5206\u5728\u89C6\u53E3\u5916\u300D\u800C\u975E\u5C1D\u8BD5\u70B9\u51FB\u3002\n const visibleRatio = (w * h) / (fullW * fullH);\n const partiallyVisible = visibleRatio < 0.5;\n if (partiallyVisible) {\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: false, danger: false, safe: null, partiallyVisible: true, top: null, target: describeEl(el),\n });\n continue;\n }\n const cx = Math.round(x + w / 2);\n const cy = Math.round(y + h / 2);\n const top = document.elementFromPoint(cx, cy);\n if (!top) {\n // elementFromPoint \u65E0\u7ED3\u679C\uFF1A\u53EF\u89C1\u6BD4\u4F8B\u8DB3\u591F\uFF08\u226550%\uFF09\u4F46\u53D6\u4E0D\u5230\u9876\u5C42\u5143\u7D20 \u2192 \u6E32\u67D3\u8FB9\u754C\u5BB9\u5FCD\uFF0C\u4E0D\u963B\u585E\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: true, danger: false, safe: null, partiallyVisible: false, top: null, target: describeEl(el),\n });\n continue;\n }\n // T014 \u9636\u6BB5 2 \u5B9E\u8DD1\u53D1\u73B0\uFF1A\u6B8B\u7559\u5BF9\u8BDD\u6846 mask\uFF08visibility:hidden / opacity:0 \u7684\u5168\u5C4F\u906E\u7F69\u2014\u2014\n // zhipin \u57CE\u5E02\u9009\u62E9\u5668\u5173\u95ED\u540E .dialog-layer \u7559\u5728 DOM\uFF09\u4F1A\u88AB elementFromPoint \u547D\u4E2D\uFF0C\u4F46\u771F\u5B9E\n // \u6307\u9488\u4E8B\u4EF6\u7A7F\u900F\uFF08\u4E0D\u53EF\u89C1\u5143\u7D20\u4E0D\u53C2\u4E0E\u547D\u4E2D\u6D4B\u8BD5\uFF09\u2192 \u4E0D\u6784\u6210\u771F\u5B9E\u906E\u6321\uFF0C\u89C6\u4E3A hit\uFF08\u9632 ESC \u6B7B\u5FAA\u73AF\uFF09\u3002\n const topStyle = getComputedStyle(top);\n if (topStyle.visibility === 'hidden' || parseFloat(topStyle.opacity) === 0) {\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: true, danger: false, safe: null, partiallyVisible: false, top: null, target: describeEl(el),\n });\n continue;\n }\n const belongs = top === el || el.contains(top);\n const isInteractiveChild = top !== el && el.contains(top) && top.closest && top.closest(INTERACTIVE) === top;\n // \u4E2D\u5FC3\u88AB\u76D6/\u5371\u9669 \u2192 \u626B\u63CF\u77E9\u5F62\u5185\u90E8\u627E\u5B89\u5168\u70B9\uFF085\u00D75 \u7F51\u683C\uFF0C\u907F\u5F00\u4EA4\u4E92\u5B50\u5143\u7D20\u4E0E\u906E\u6321\uFF09\n let safe = null;\n if (!(belongs && !isInteractiveChild)) {\n for (let gy = 1; gy <= 4 && !safe; gy++) {\n for (let gx = 1; gx <= 4 && !safe; gx++) {\n const sx = Math.round(x + (w * gx) / 5);\n const sy = Math.round(y + (h * gy) / 5);\n const st = document.elementFromPoint(sx, sy);\n if (st && isSafeHit(el, st)) safe = { x: sx, y: sy };\n }\n }\n }\n out.push({\n x: Math.round(x), y: Math.round(y), w: Math.round(w), h: Math.round(h),\n hit: belongs && !isInteractiveChild,\n danger: isInteractiveChild,\n safe,\n partiallyVisible: false,\n top: describeEl(top),\n target: describeEl(el),\n });\n }\n return out;\n }\n // #16-A \u76EE\u6807\u77E9\u5F62\u5185\u627E\u5B89\u5168\u70B9\u51FB\u70B9\uFF1A\u7F51\u683C\u91C7\u6837\uFF085\u00D75\uFF09\uFF0C\u8FD4\u56DE\u7B2C\u4E00\u4E2A\u300C\u5C5E\u4E8E\u76EE\u6807\u4E14\u4E0D\u5728\u53EF\u4EA4\u4E92\u5B50\u5143\u7D20\u4E0A\u300D\u7684\u70B9\u3002\n // \u5927\u5BB9\u5668\u5361\u7247\uFF08\u5982 job-card-wrap\uFF09\u4E2D\u5FC3\u5E38\u843D\u5728\u516C\u53F8\u94FE\u63A5/\u804C\u4F4D\u8BE6\u60C5\u94FE\u63A5\u4E0A\uFF0C\u76F4\u63A5\u70B9\u4F1A\u8BEF\u8DF3\u8F6C\uFF1B\n // \u5B89\u5168\u70B9\u907F\u5F00\u4EA4\u4E92\u5B50\u5143\u7D20\uFF08a/button/[onclick]\uFF09\uFF0C\u53EA\u843D\u5728\u6587\u672C/\u7A7A\u767D\u533A\u57DF\uFF08\u70B9\u51FB\u4ECD\u7531\u7236\u7EA7\u4E8B\u4EF6\u5192\u6CE1\u5904\u7406\uFF09\u3002\n function safePointIn(selector, index) {\n const el = pick(selector, index);\n if (!el) return null;\n const t = el.getBoundingClientRect();\n const INTERACTIVE = 'a,button,[role=\"button\"],[role=\"link\"],input,select,textarea,[onclick],label';\n for (let gy = 2; gy <= 3; gy++) {\n for (let gx = 2; gx <= 3; gx++) {\n const cx = Math.round(t.left + (t.width * gx) / 5);\n const cy = Math.round(t.top + (t.height * gy) / 5);\n const top = document.elementFromPoint(cx, cy);\n if (!top) continue;\n if (top === el || el.contains(top)) {\n const bad = top !== el && top.closest && top.closest(INTERACTIVE) === top;\n if (!bad) return { x: cx, y: cy };\n }\n }\n }\n // \u515C\u5E95\uFF1A\u4E2D\u5FC3\u70B9\uFF08\u53EF\u80FD\u5371\u9669\uFF0C\u7531\u5F15\u64CE\u4FA7\u518D\u5224\u65AD\uFF09\n return { x: Math.round(t.left + t.width / 2), y: Math.round(t.top + t.height / 2) };\n }\n return { getBySels, scrollIntoView, scrollIntoViewRhythm, textOf, focusInput, pageText, numberedElements, describeEl, describeHit, hitTestAt, clickableRects, safePointIn, identifyRegion, findDialogClose, setRegionRules, _domVersion: 3 };\n})();\ntrue\n";
|
|
21
21
|
/**
|
|
22
22
|
* T007 P0-1:input 事件补派发(insertText 改 DOM value 不触发 input 事件——React 受控组件
|
|
23
23
|
* onChange 同步 state 需要;BATCH-D:导出为 const,mock 回归可直接求值,避免测试复制漂移)。
|
package/dist/cdp/page.js
CHANGED
|
@@ -43,13 +43,16 @@ window.__rpaDom = (function() {
|
|
|
43
43
|
return [];
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
// T014 P0-3:区域规则命中判定(单一实现——identifyRegion 与 region:
|
|
46
|
+
// T014 P0-3:区域规则命中判定(单一实现——identifyRegion 与 region: 表达式共用,防逻辑漂移)。
|
|
47
|
+
// T016 P1-4(实跑修复):textContains 用 textContent 而非 innerText——innerText 强制同步重排,
|
|
48
|
+
// 详情面板打开后 DOM 数千元素 × regionContainerOf 全遍历 = 单次 evaluate 数十秒(waitSelector
|
|
49
|
+
// 轮询超时假失败);textContent 不触发重排,语义等价(规则=文本包含,不依赖渲染完成态)。
|
|
47
50
|
function ruleHits(rule, el) {
|
|
48
51
|
const m = rule.match || {};
|
|
49
52
|
let hit = true;
|
|
50
|
-
if (m.textContains && !((el.
|
|
53
|
+
if (m.textContains && !((el.textContent || '').includes(m.textContains))) hit = false;
|
|
51
54
|
if (m.textContainsAll && Array.isArray(m.textContainsAll)) {
|
|
52
|
-
const txt = el.
|
|
55
|
+
const txt = el.textContent || '';
|
|
53
56
|
for (const kw of m.textContainsAll) {
|
|
54
57
|
if (!txt.includes(kw)) { hit = false; break; }
|
|
55
58
|
}
|
|
@@ -71,15 +74,24 @@ window.__rpaDom = (function() {
|
|
|
71
74
|
}
|
|
72
75
|
return null;
|
|
73
76
|
}
|
|
74
|
-
// T014 P0-3
|
|
75
|
-
// self-match 候选(面积 <
|
|
77
|
+
// T014 P0-3 + T016 P1-3:区域主容器解析(region:<标签> 与寻址共用):
|
|
78
|
+
// self-match 候选(面积 < 视口)中,取「有实质父候选的最浅实质候选」——详情区文本链
|
|
79
|
+
// container ⊃ box ⊃ body ⊃ h3:box 的父 container 是实质候选、body 的父 box 也是,取最浅
|
|
80
|
+
// = box(含头部经验/学历/薪资 + 正文,T016 P1-3 修复——原「最深实质」选到 body 丢头部);
|
|
81
|
+
// 且避开含边栏/求职意向的包裹层 container(USAGE-ISSUES #16);
|
|
82
|
+
// 无实质父候选(列表 ul 自身、短文本搜索表单)→ 回退最大面积。
|
|
76
83
|
function regionContainerOf(label, rules) {
|
|
77
84
|
const vw = innerWidth || document.documentElement.clientWidth || 1000;
|
|
78
85
|
const vh = innerHeight || document.documentElement.clientHeight || 800;
|
|
79
86
|
const vpArea = vw * vh;
|
|
80
87
|
const matches = [];
|
|
81
|
-
|
|
82
|
-
|
|
88
|
+
// T016 P1-4(实跑修复):全遍历只用样式属性过滤(getComputedStyle 不触发布局),
|
|
89
|
+
// rect 仅在规则命中后读取(命中元素极少)——避免详情面板打开后对数千元素各读一次
|
|
90
|
+
// getBoundingClientRect/innerText 的 O(n) 同步重排(waitSelector 轮询 evaluate 数十秒假超时)。
|
|
91
|
+
for (const el of Array.from(document.querySelectorAll('body *'))) {
|
|
92
|
+
if (!(el.textContent || '').trim()) continue;
|
|
93
|
+
const s = getComputedStyle(el);
|
|
94
|
+
if (s.display === 'none' || s.visibility === 'hidden' || parseFloat(s.opacity) === 0) continue;
|
|
83
95
|
for (const r of rules) {
|
|
84
96
|
if (r.label === label && ruleHits(r, el)) {
|
|
85
97
|
const rect = el.getBoundingClientRect();
|
|
@@ -96,19 +108,33 @@ window.__rpaDom = (function() {
|
|
|
96
108
|
while (cur) { d++; cur = cur.parentElement; }
|
|
97
109
|
return d;
|
|
98
110
|
};
|
|
99
|
-
|
|
111
|
+
// 实质候选:文本 ≥100 字(短文本区域如搜索表单 → 用全部候选)
|
|
112
|
+
const pool = matches.filter((m) => (m.el.textContent || '').trim().length >= 100);
|
|
113
|
+
const candidates = pool.length > 0 ? pool : matches;
|
|
114
|
+
// 有实质父候选的(嵌套在另一个实质候选内——内容容器而非包裹层)
|
|
115
|
+
const withParent = candidates.filter((m) => candidates.some((o) => o.el !== m.el && containsNode(o.el, m.el)));
|
|
100
116
|
let best = null;
|
|
101
|
-
if (
|
|
102
|
-
|
|
103
|
-
|
|
117
|
+
if (withParent.length > 0) {
|
|
118
|
+
// 最浅者(详情区 box 深于 container 但浅于 body)
|
|
119
|
+
for (const m of withParent) {
|
|
120
|
+
if (!best || depthOf(m.el) < depthOf(best.el)) best = m;
|
|
104
121
|
}
|
|
105
122
|
} else {
|
|
106
|
-
for (const m of
|
|
123
|
+
for (const m of candidates) {
|
|
107
124
|
if (!best || m.area > best.area) best = m;
|
|
108
125
|
}
|
|
109
126
|
}
|
|
110
127
|
return best ? best.el : null;
|
|
111
128
|
}
|
|
129
|
+
// a 是否 b 的祖先(region 容器「有实质父候选」判定用)
|
|
130
|
+
function containsNode(a, b) {
|
|
131
|
+
let cur = b.parentElement;
|
|
132
|
+
while (cur) {
|
|
133
|
+
if (cur === a) return true;
|
|
134
|
+
cur = cur.parentElement;
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
112
138
|
function getBySels(selector) {
|
|
113
139
|
// A3 数组链(#17 修复):依次尝试,第一个命中的返回
|
|
114
140
|
if (Array.isArray(selector)) {
|
|
@@ -120,31 +146,36 @@ window.__rpaDom = (function() {
|
|
|
120
146
|
}
|
|
121
147
|
const sel = String(selector);
|
|
122
148
|
if (sel.startsWith('text:')) return byText(sel.slice(5));
|
|
123
|
-
// T014 P0-3:region:<标签>[ >> <n>] ——
|
|
124
|
-
// 规则由 setRegionRules
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
//
|
|
149
|
+
// T014 P0-3 + T016:region:<标签>[ >> [子选择器] >> <n>] —— 引擎内部区域寻址表达式。
|
|
150
|
+
// 规则由 setRegionRules 注入(随流程包分发,引擎零业务逻辑;仲裁:注入规则已按档案 seen 重排)。
|
|
151
|
+
// 主容器解析(regionContainerOf):self-match 候选(面积 < 视口)中取「有实质父候选的最浅
|
|
152
|
+
// 实质候选」(详情区 box 含头部+正文,见 USAGE-ISSUES #16/#21 与 T016 P1-3);无 → 最大面积。
|
|
153
|
+
// 寻址语义(T016 P0-1 修订——猎头 0.5.6 验收:枚举全部可交互元素会点到卡片内公司链接):
|
|
154
|
+
// 'region:<标签> >>' = 区域主容器的**卡片级直接子项**(可见 + 有实质文本;
|
|
155
|
+
// 列表区 = ul.rec-job-list 的直接子项 li/div 卡片,index 作用于卡片)
|
|
156
|
+
// 'region:<标签> >> <n>' = 第 n 个(0 起)卡片级子项
|
|
157
|
+
// 'region:<标签> >> <子选择器> >>' = 区域内匹配子选择器的全部可见元素(混合寻址)
|
|
158
|
+
// 'region:<标签> >> <子选择器> >> <n>' = 其中第 n 个
|
|
133
159
|
if (sel.startsWith('region:')) {
|
|
134
160
|
const rest = sel.slice(7).trim();
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
const label = parts[0].trim();
|
|
138
|
-
// 无 >> → 区域主容器;有 >> 且索引空 → 区域内全部可交互元素;有 >> 且索引 n → 第 n 个
|
|
139
|
-
const indexPart = hasArrow ? parts[1].trim() : undefined;
|
|
161
|
+
const parts = rest.split('>>').map((p) => p.trim());
|
|
162
|
+
const label = parts[0] || '';
|
|
140
163
|
const rules = (window.__rpaDom && window.__rpaDom._regionRules) || [];
|
|
141
164
|
const container = regionContainerOf(label, rules);
|
|
142
165
|
if (!container) return [];
|
|
143
|
-
if (
|
|
144
|
-
const
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
166
|
+
if (parts.length === 1) return [container];
|
|
167
|
+
const sub = parts.length >= 3 ? parts[1] : '';
|
|
168
|
+
const idxPart = parts.length >= 3 ? parts[2] : parts[1] ?? '';
|
|
169
|
+
let nodes;
|
|
170
|
+
if (sub) {
|
|
171
|
+
nodes = Array.from(container.querySelectorAll(sub)).filter(isVisible);
|
|
172
|
+
} else {
|
|
173
|
+
// 卡片级直接子项(T016 P0-1:避免点到卡片内公司链接等内部可交互元素)
|
|
174
|
+
// T016 P1-4:textContent(不强制重排;innerText 在详情面板打开后拖慢 evaluate)
|
|
175
|
+
nodes = Array.from(container.children).filter(isVisible).filter((el) => (el.textContent || '').trim().length > 0);
|
|
176
|
+
}
|
|
177
|
+
if (idxPart === '') return nodes;
|
|
178
|
+
const n = Number(idxPart);
|
|
148
179
|
return Number.isInteger(n) && n >= 0 && n < nodes.length ? [nodes[n]] : [];
|
|
149
180
|
}
|
|
150
181
|
// #16-B 编号寻址(虚拟空间视觉):#N = numberedElements 列表第 N 个可见交互元素(1 起)。
|
|
@@ -183,26 +214,21 @@ window.__rpaDom = (function() {
|
|
|
183
214
|
}
|
|
184
215
|
// T012 P1-2:轻量拟人滚动——分段渐进滚动(2~5 段,段间 30~120ms 随机节奏),
|
|
185
216
|
// 终位与 scrollIntoView 一致(block:center)——只改节奏不改落点,功能不回归。
|
|
186
|
-
//
|
|
217
|
+
// T016 P1-4(实跑修复):改为**同步**实现。原异步版依赖页面 setTimeout 链,而页面主线程
|
|
218
|
+
// 繁忙(详情面板渲染/每步 pageText 同步重排)时 setTimeout 被极端节流 → promise 永不
|
|
219
|
+
// resolve → CDP evaluate awaitPromise 挂起(仅靠 60s 命令超时兜底,表现为偶发卡死)。
|
|
220
|
+
// 同步版落点不变(分段缓动改为直接 scrollTo + scrollIntoView block:center),
|
|
221
|
+
// 返回 true(与旧同步失败分支 false 兼容);evaluate awaitPromise 对同步值立即返回。
|
|
187
222
|
function scrollIntoViewRhythm(selector, index) {
|
|
188
223
|
const el = pick(selector, index);
|
|
189
224
|
if (!el) return false;
|
|
190
|
-
const steps = 2 + Math.floor(Math.random() * 4);
|
|
191
225
|
const vh = innerHeight || document.documentElement.clientHeight || 600;
|
|
192
226
|
const rect = el.getBoundingClientRect();
|
|
193
227
|
const curTop = pageYOffset || document.documentElement.scrollTop || 0;
|
|
194
228
|
const targetY = curTop + rect.top - (vh - Math.min(rect.height, vh)) / 2;
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const t = i / steps;
|
|
199
|
-
const ease = t * t * (3 - 2 * t);
|
|
200
|
-
window.scrollTo(0, Math.round(curTop + dy * ease));
|
|
201
|
-
await new Promise(function (r) { setTimeout(r, 30 + Math.random() * 90); });
|
|
202
|
-
}
|
|
203
|
-
el.scrollIntoView({ block: 'center', inline: 'center' });
|
|
204
|
-
return true;
|
|
205
|
-
})();
|
|
229
|
+
window.scrollTo(0, Math.round(targetY));
|
|
230
|
+
el.scrollIntoView({ block: 'center', inline: 'center' });
|
|
231
|
+
return true;
|
|
206
232
|
}
|
|
207
233
|
function textOf(selector, index) {
|
|
208
234
|
const el = pick(selector, index);
|
package/dist/cdp/page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cdp/page.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cdp/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAoD,MAAM,gBAAgB,CAAA;AAEvG,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAe,MAAM,aAAa,CAAA;AACxG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAuB,MAAM,kBAAkB,CAAA;AAC7H,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C;;;;;;;;;;;;;GAaG;AAEH,kCAAkC;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiezB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;KAK/B,CAAA;AAEL,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;KACvC,CAAC,CAAC,CAAA;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO;;0BAEiB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;sBACxB,WAAW;;;;;;;;;;;;OAY1B,CAAA;AACP,CAAC;AAcD,mDAAmD;AACnD,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAEpC,SAAS,OAAO,CAAC,CAAU;IACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,sCAAsC;AACtC,MAAM,OAAO,OAAO;IASC;IACA;IATX,QAAQ,CAAS;IACjB,KAAK,CAAsB;IACnC,gDAAgD;IACxC,QAAQ,CAAiB;IACjC,kFAAkF;IAC1E,eAAe,GAAG,EAAE,CAAA;IAE5B,YACmB,IAAY,EACZ,GAAe;QADf,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAY;IAC/B,CAAC;IAEJ,kCAAkC;IAClC,WAAW,CAAC,MAAkC;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,4FAA4F;IAC5F,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;IAClC,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,WAAmB;QACvD,mDAAmD;QACnD,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;QACpD,KAAK,CACH,QAAQ,EACR;YACE,2BAA2B,IAAI,CAAC,IAAI,EAAE;YACtC,mBAAmB,WAAW,EAAE;YAChC,gBAAgB;YAChB,4BAA4B;YAC5B,aAAa;SACd,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpC,CAAC,KAAK,EAAE,CAAA;QACT,4BAA4B;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACrC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,IAAI,CAAC,GAAW;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5D,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACnC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,CAAA;QACvC,CAAC,CAAC,IAAI,SAAS,CAAA;QACjB,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC/C,qDAAqD;QACrD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAA;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,CAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1D,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAK,EAAE,CAAC;YACV,kEAAkE;YAClE,oCAAoC;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1E,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;gBACtB,IAAI,CAAC;oBACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;gBAC3G,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,kCAAkC;gBAClC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC1C,OAAO,GAAG,IAAI,CAAA;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,qBAAqB,CAAA;QACnD,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1E,IAAI,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAK;YACzD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;QACD,oDAAoD;QACpD,uDAAuD;QACvD,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,0DAA0D;IAClD,MAAM,CAAU,kBAAkB,GAAG,IAAI,CAAA;IAEjD;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAiB;QACjD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAEhF,CAAA;YACR,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBACvD,OAAM;YACR,CAAC;YACD,IAAI,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,kBAAkB;gBAAE,OAAM;YAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,OAAO,CAAC,kBAAkB,aAAa,CAAC,CAAA;YACnF,6CAA6C;YAC7C,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAEjF,CAAA;YACR,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;gBAC5C,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC/B,qEAAqE;gBACrE,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAC3C,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;iBAClC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBACzB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,OAAO,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAC5C,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;iBACrC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1E,CAAC,CAAC,EAAE,CAAA;YACJ,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,qBAAsB,MAA4B,CAAC,KAAK,EAAE,CAAC,CAAA;gBACvE,OAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAA;YAC1D,wBAAwB;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;YAClC,SAAS,CAAC;gBACR,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAW,CAAA;gBAC1E,IAAI,GAAG,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;oBAAE,MAAK;gBACtE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAED,kDAAkD;IAC1C,aAAa,GAAG,IAAI,CAAA;IAE5B,mCAAmC;IAC3B,SAAS,CAAC,CAAS;QACzB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,+CAA+C;IACvC,aAAa;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,CAAC,CAAC;YAAE,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,OAAQ,CAAgD,CAAC,IAAI,CAAC,MAAM,CAAA;IACtE,CAAC;IAED,sCAAsC;IAC9B,KAAK,CAAC,SAAS;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,gEAAgE;QAChE,oDAAoD;QACpD,kEAAkE;QAClE,kFAAkF;QAClF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAC/B,mQAAmQ,CACpQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACpB,IAAI,CAAC,GAAG;YAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC3C,qEAAqE;QACrE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,CAAC,QAAQ,CAAC,kCAAkC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACrH,CAAC;IACH,CAAC;IAED,uDAAuD;IAC/C,KAAK,CAAC,aAAa;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,sFAAsF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QAC5I,IAAI,GAAG;YAAE,OAAM;QACf,MAAM,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IAC3C,CAAC;IAED,+BAA+B;IACvB,KAAK,CAAC,CAAS;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,0EAA0E;IAClE,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAM;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,IAAI,MAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAmB,CAAA;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,OAAM,CAAC,4BAA4B;QACrC,CAAC;QACD,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAA;YAC9F,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;YAC5D,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxF,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAY,CAAA;QACzG,MAAM,GAAG,GAA4B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACxD,CAAC,CAAC,MAAM;iBACH,MAAM,CAAC,CAAC,CAAC,EAAwC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;iBACjF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,oBAAoB;IAEpB,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,6CAA6C;QAC7C,MAAM,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,mDAAmD;QACnD,IAAI,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,OAAM;QACR,CAAC;QACD,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QACvB,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACnC,iCAAiC;YACjC,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACjE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YAC1B,MAAM,IAAI,GAAmB;gBAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;oBACtB,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACrC,CAAC;gBACD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtF,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC;aAC/C,CAAA;YACD,OAAO,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA,CAAC,2BAA2B;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,KAAa;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,KAAK;YAAE,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,uDAAuD;QACvD,4CAA4C;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC5C,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7F,oDAAoD;QACpD,MAAM,MAAM,CAAC,QAAQ,CAAC,wCAAwC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,GAAG,CAAC,CAAA;QAChG,wEAAwE;QACxE,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,CAAC;YACH,CAAC;YAAA,CAAC,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,oBAAoB,EAAE,CAAC;gBACtC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAA;QAC5C,CAAC;QACD,wDAAwD;QACxD,0DAA0D;QAC1D,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,OAAO,CAAC,IAAI,CAChB,MAAM,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CACrG,CAAA;QACH,CAAC;QACD,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;QAClC,SAAS,CAAC;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/B,0EAA0E;gBAC1E,sCAAsC;gBACtC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7B,MAAM,OAAO,CAAC,IAAI,CAChB,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CACnG,CAAA;gBACH,CAAC;gBACD,4CAA4C;gBAC5C,qCAAqC;gBACrC,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC7E,MAAM,OAAO,CAAC,IAAI,CAChB,MAAM,eAAe,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAC/G,CAAA;YACH,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAK;YACjC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,KAAa,EACb,SAAiB;QAEjB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACnC,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAC9B,kCAAkC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAC9F,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAoE,CAAA;YACvF,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA,CAAC,kBAAkB;QAChC,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,KAAa;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACnC,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAC9B,+BAA+B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,GAAG,CACjE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAA0B,CAAA;YAC7C,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA,CAAC,SAAS;QACvB,CAAC;IACH,CAAC;IAED,+DAA+D;IACvD,QAAQ,CAAC,CAAS;QACxB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IAED,6BAA6B;IACrB,SAAS,CAAC,CAAS;QACzB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,KAAa;QAAsB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvF,IAAI,CAAC,KAAK;YAAE,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,oCAAoC;QACpC,MAAM,MAAM,CAAC,QAAQ,CAAC,wCAAwC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzF,MAAM,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;QACjD,MAAM,MAAM,CAAC,QAAQ,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC/E,MAAM,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpC,sEAAsE;QACtE,8EAA8E;QAC9E,qEAAqE;QACrE,MAAM,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAClE,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,MAAM,CAAC,QAAQ,CAAC;;yDAE2B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;;;aAGhE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CACvB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;YACrG,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,OAAO;gBAAE,MAAM,CAAC,CAAA;YACjC,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED,sDAAsD;IAC9C,KAAK,CAAC,aAAa,CAAC,QAAgB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,MAAM,cAAc,GAAG;;;;;;;;;8CASmB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;SAczD,CAAA;QACL,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/F,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,+CAA+C;QAC/C,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC;;qDAEgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;;;;;;;SAOhE,CAAC,CAAkD,CAAA;QACxD,MAAM,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,MAAM,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;IACtD,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAwB;QAC1D,oEAAoE;QACpE,iDAAiD;QACjD,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,4BAA4B;QAC5B,MAAM,UAAU,GAAG;YACjB,UAAU;YACV,YAAY;YACZ,qDAAqD;YACrD,sBAAsB;SACvB,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,MAAM;iBACpB,QAAQ,CAAC,6BAA6B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;iBACpE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YACrB,IAAI,CAAC,EAAE;gBAAE,SAAQ;YACjB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YACxD,IAAI,OAAO,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;QAC9B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAC1B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC7C,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CACjC,+FAA+F,CAChG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAClB,CAAA;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAC1B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACtF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,SAAiB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,6BAA6B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAA;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACpD,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YAC5D,IAAI,KAAK;gBAAE,OAAM;YACjB,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,QAAQ,KAAK,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;QACzB,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,8CAA8C;QAC9C,mDAAmD;QACnD,IAAI,MAA6B,CAAA;QACjC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAiE,CAAA;YAChF,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAA;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACtB,oCAAoC;QACpC,wDAAwD;QACxD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC1D,CAAC;QACD,yCAAyC;QACzC,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;;AAGH,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAElF;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,CAAC;SACL,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC;SACzD,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAA;AACjD,CAAC;AAeD,MAAM,UAAU,aAAa,CAAC,MAAgD;IAC5E,2DAA2D;IAC3D,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,YAAY,IAAI,EAAE,CAAA;IACzF,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,YAAY,IAAI,EAAE,CAAA;IACpD,yCAAyC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,MAAM,CAAA;IAC5D,IAAI,qBAAqB,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG;QAAE,qBAAqB,IAAI,EAAE,CAAA;SACrD,IAAI,KAAK,GAAG,CAAC;QAAE,qBAAqB,IAAI,EAAE,CAAA;IAC/C,iDAAiD;IACjD,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,MAAM,IAAI,EAAE,CAAA;IACnF,sBAAsB;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;QAAE,gBAAgB,IAAI,EAAE,CAAA;IACpD,MAAM,KAAK,GAAG,YAAY,GAAG,qBAAqB,GAAG,MAAM,GAAG,gBAAgB,CAAA;IAC9E,OAAO;QACL,KAAK;QACL,YAAY;QACZ,qBAAqB;QACrB,MAAM;QACN,gBAAgB;QAChB,MAAM,EAAE,KAAK,IAAI,EAAE;KACpB,CAAA;AACH,CAAC"}
|
package/dist/executor.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export type { Flow } from './schema.js';
|
|
|
21
21
|
* - **extract 有 verify 时按标准流程检查**(Rust 版提前 return 不查 verify;EXECUTION-SPEC
|
|
22
22
|
* 验收断言 3 要求 verify 生效)。
|
|
23
23
|
*/
|
|
24
|
+
/** T015 P0-1:默认暂停类别(人工接管场景——登录区/验证码/风险弹窗;命中 → paused 而非 failed) */
|
|
25
|
+
export declare const DEFAULT_PAUSE_CATEGORIES: readonly string[];
|
|
24
26
|
export type ExecErrorKind = 'page' | 'step_action' | 'verify' | 'unknown_step';
|
|
25
27
|
/**
|
|
26
28
|
* 执行错误。`message` 为完整文案(与 Rust `ExecError::to_string()` 一致,测试断言依赖)。
|
|
@@ -135,9 +137,20 @@ export type StepEvent = StepResult & {
|
|
|
135
137
|
/** 流程执行结果 */
|
|
136
138
|
export interface FlowResult {
|
|
137
139
|
flowId: string;
|
|
138
|
-
|
|
140
|
+
/** done / failed / paused(T015 P0-1:人工接管场景暂停——登录区/验证码/确认弹窗,等用户处理后 resume_run 继续) */
|
|
141
|
+
status: 'done' | 'failed' | 'paused';
|
|
139
142
|
error?: string;
|
|
140
143
|
steps: StepResult[];
|
|
144
|
+
/** T015 P0-1:暂停时刻(ISO;status=paused 时) */
|
|
145
|
+
pausedAt?: string;
|
|
146
|
+
/** T015 P0-1:暂停原因(login / env_check / paused;status=paused 时) */
|
|
147
|
+
pauseReason?: 'login' | 'env_check' | 'paused';
|
|
148
|
+
/** T015 P0-2:resume 起点——暂停时当前顶层步骤索引(含 loop 内偏移),resume_run 从该点继续不重跑已完成步骤 */
|
|
149
|
+
resumeStepIndex?: number;
|
|
150
|
+
/** T015 P0-2:resume 起点——loop 内迭代偏移(暂停点在 loop 子步骤内时) */
|
|
151
|
+
resumeLoopIter?: number;
|
|
152
|
+
/** T015 P0-2:resume 起点——loop 内子步骤偏移 */
|
|
153
|
+
resumeLoopSub?: number;
|
|
141
154
|
}
|
|
142
155
|
export interface RunFlowOptions {
|
|
143
156
|
/** extract 明细落盘(D-E2);缺省则 save:true 不落盘但记录 saved=false */
|
|
@@ -169,9 +182,28 @@ export interface RunFlowOptions {
|
|
|
169
182
|
* 主流程不依赖(铁律2/3):不注入 → 行为完全不变。异步可(查 profile 走互斥锁)。
|
|
170
183
|
*/
|
|
171
184
|
anchorSelectors?: (stepId: string, actionType: string, region?: string) => string[] | undefined | Promise<string[] | undefined>;
|
|
185
|
+
/**
|
|
186
|
+
* T015 P0-1:暂停类别集合——命中这些失败类别的步骤不直接 failed,转为 paused(等用户人工处理
|
|
187
|
+
* 后 resume_run 继续)。缺省 ['login', 'env_check'](登录区/验证码页/风险弹窗 = 人工接管场景)。
|
|
188
|
+
* 暂停 ≠ 自动重试(防封不变):只是把「中止+失败」变成「中止+暂停等人工」。
|
|
189
|
+
*/
|
|
190
|
+
pauseCategories?: string[];
|
|
191
|
+
/**
|
|
192
|
+
* T015 P0-2:resume 起点——从 flow.steps[resumeStepIndex] 继续执行(跳过已完成步骤,不重跑)。
|
|
193
|
+
* loop 内精确恢复用 resumeLoopIter/resumeLoopSub(暂停点在 loop 子步骤内时)。
|
|
194
|
+
* 缺省 undefined = 从头执行(与旧行为一致)。
|
|
195
|
+
*/
|
|
196
|
+
resumeStepIndex?: number;
|
|
197
|
+
/** T015 P0-2:resume 起点——loop 内迭代偏移(0 起;暂停点在 loop 子步骤内时) */
|
|
198
|
+
resumeLoopIter?: number;
|
|
199
|
+
/** T015 P0-2:resume 起点——loop 内子步骤偏移(0 起) */
|
|
200
|
+
resumeLoopSub?: number;
|
|
172
201
|
}
|
|
173
202
|
/**
|
|
174
|
-
*
|
|
203
|
+
* 执行整个流程(失败即中止;T015 起暂停类别错误 → paused 等人工 resume)。
|
|
204
|
+
* 等价 Rust `run_flow`(全 async)。
|
|
175
205
|
* vars 接受 Map 或 Record({keyword} / {i} 等插值来源)。
|
|
206
|
+
* opts.resumeStepIndex:从该顶层步骤索引继续(跳过已完成步骤,不重跑)——
|
|
207
|
+
* resume_run 语义(P0-2);缺省 undefined = 从头执行(与旧行为一致)。
|
|
176
208
|
*/
|
|
177
209
|
export declare function runFlow(flow: Flow, page: PageOps, vars: Map<string, string> | Record<string, string>, opts?: RunFlowOptions): Promise<FlowResult>;
|
package/dist/executor.js
CHANGED
|
@@ -4,6 +4,29 @@ import { StepSchema } from './schema.js';
|
|
|
4
4
|
import { XorShift32 } from './simprofile.js';
|
|
5
5
|
import { textHash, routeKey } from './behavior.js';
|
|
6
6
|
import { isLoginSignal, REGION_LOGIN_LABEL } from './region.js';
|
|
7
|
+
/**
|
|
8
|
+
* 执行器 —— 解释执行流程定义(移植自 Rust `executor.rs`,按 EXECUTION-SPEC M4 扩展)。
|
|
9
|
+
*
|
|
10
|
+
* 设计核心:
|
|
11
|
+
* - 引擎唯一代码层,流程是数据:执行器只按 `Flow.steps` 解释执行,不含任何平台逻辑。
|
|
12
|
+
* - **页面抽象(`PageOps`,全 async)**:执行器不直接碰 CDP/DOM,通过接口驱动页面。
|
|
13
|
+
* 真实浏览器用 CDP 实现(M8),测试用 mock 实现 —— 执行逻辑可单测,引擎与浏览器控制解耦。
|
|
14
|
+
* - 验证点(verify)是成败判定的唯一依据:每步执行后按 verify 检查,失败即中止流程。
|
|
15
|
+
*
|
|
16
|
+
* EXECUTION-SPEC M4 扩展(相对 Rust 版):
|
|
17
|
+
* - **loop 循环语义(D-L1~D-L5)**:`{i}` 注入循环上下文;click 索引越界 = 列表耗尽
|
|
18
|
+
* 自然终止(非错误);maxIterations 默认 50;禁止嵌套 loop(validate 层拒绝)。
|
|
19
|
+
* - **extract field/save(D-E1~D-E3)**:field = 结构化记录标签;save:true 经 ExtractSink
|
|
20
|
+
* 落盘 `data/extracted/<runId>/<stepId>.json`(原始数据不进 run.json/观察包);
|
|
21
|
+
* extract 返回 {content, count}。
|
|
22
|
+
* - **A3 选择器链(D-S1~D-S2)**:selector 支持 string | string[],依次尝试、第一个命中生效,
|
|
23
|
+
* 记录 `selector_hit`。
|
|
24
|
+
* - **extract 有 verify 时按标准流程检查**(Rust 版提前 return 不查 verify;EXECUTION-SPEC
|
|
25
|
+
* 验收断言 3 要求 verify 生效)。
|
|
26
|
+
*/
|
|
27
|
+
// ---- 错误类型 ----
|
|
28
|
+
/** T015 P0-1:默认暂停类别(人工接管场景——登录区/验证码/风险弹窗;命中 → paused 而非 failed) */
|
|
29
|
+
export const DEFAULT_PAUSE_CATEGORIES = ['login', 'env_check'];
|
|
7
30
|
function execErrorMessage(kind, detail, stepId) {
|
|
8
31
|
switch (kind) {
|
|
9
32
|
case 'page':
|
|
@@ -331,11 +354,12 @@ async function runStep(ctx, step) {
|
|
|
331
354
|
// T014 P0-1:本步区域判定(旁路;登录区中止时 = 登录区)
|
|
332
355
|
let regionLabel;
|
|
333
356
|
try {
|
|
334
|
-
// T014 P0-2:登录区暂停——任一步执行前判定(双重特征:路由 + 页面文本强标记;
|
|
335
|
-
// 与验证码红线同级 =
|
|
357
|
+
// T014 P0-2 + T015 P0-1:登录区暂停——任一步执行前判定(双重特征:路由 + 页面文本强标记;
|
|
358
|
+
// 与验证码红线同级 = 执行树级中止,绝不自动重试)。T015 起命中 → category='login' 上抛,
|
|
359
|
+
// runFlow 按 pauseCategories 转 paused(人工接管场景),不再直接 failed。
|
|
336
360
|
if (await detectLogin(page)) {
|
|
337
361
|
regionLabel = REGION_LOGIN_LABEL;
|
|
338
|
-
throw ExecError.page('
|
|
362
|
+
throw ExecError.page('未登录:引擎已暂停,请在已弹出的引擎浏览器中登录目标平台后调用 resume_run 继续', { category: 'login' });
|
|
339
363
|
}
|
|
340
364
|
// T014 P0-1:动作步骤区域判定(旁路:identifyRegion 失败/无规则/无选择器 → 缺省,不阻断)
|
|
341
365
|
if (step.type === 'click' || step.type === 'input' || step.type === 'extract') {
|
|
@@ -353,7 +377,7 @@ async function runStep(ctx, step) {
|
|
|
353
377
|
// T014 P0-2:导航后复查登录区(冷导航重定向到登录页时立即友好中止,不等 verify 超时)
|
|
354
378
|
if (await detectLogin(page)) {
|
|
355
379
|
regionLabel = REGION_LOGIN_LABEL;
|
|
356
|
-
throw ExecError.page('
|
|
380
|
+
throw ExecError.page('未登录:引擎已暂停,请在已弹出的引擎浏览器中登录目标平台后调用 resume_run 继续', { category: 'login' });
|
|
357
381
|
}
|
|
358
382
|
break;
|
|
359
383
|
}
|
|
@@ -508,6 +532,12 @@ async function runStep(ctx, step) {
|
|
|
508
532
|
selectorHit = lastTried;
|
|
509
533
|
}
|
|
510
534
|
if (actionError) {
|
|
535
|
+
// T015 P0-1:暂停类别错误(login/env_check)不 push failed 记录——这不是步骤失败,
|
|
536
|
+
// 是执行级暂停信号(runFlow 转 paused)。记录保持「已执行步骤」干净(resume 后追加新步骤)。
|
|
537
|
+
const pauseCats = opts?.pauseCategories ?? DEFAULT_PAUSE_CATEGORIES;
|
|
538
|
+
if (actionError.category !== undefined && pauseCats.includes(actionError.category)) {
|
|
539
|
+
throw actionError;
|
|
540
|
+
}
|
|
511
541
|
// loop 子步骤失败:子步骤已记录,loop 步骤本身不 push(避免重复失败记录)
|
|
512
542
|
if (!loopChildFailed) {
|
|
513
543
|
const rec = {
|
|
@@ -609,12 +639,20 @@ async function runLoop(ctx, step) {
|
|
|
609
639
|
const limitVar = Number(ctx.vars.get('limit'));
|
|
610
640
|
const limit = Number.isInteger(limitVar) && limitVar > 0 ? limitVar : Number.POSITIVE_INFINITY;
|
|
611
641
|
const cap = Math.min(maxIters, maxCand, limit);
|
|
612
|
-
|
|
642
|
+
// T015 P0-2:resume 起点(暂停点在 loop 内时跳过已完成迭代/子步骤,不重跑)
|
|
643
|
+
const resumeIter = ctx.opts?.resumeLoopIter ?? 0;
|
|
644
|
+
const resumeSub = ctx.opts?.resumeLoopSub ?? 0;
|
|
645
|
+
for (let i = resumeIter; i < cap; i++) {
|
|
613
646
|
const loopVars = new Map(ctx.vars);
|
|
614
647
|
loopVars.set('i', String(i));
|
|
615
|
-
for (
|
|
648
|
+
for (let s = 0; s < subs.length; s++) {
|
|
649
|
+
// 仅首个恢复迭代跳过已完成的子步骤
|
|
650
|
+
if (i === resumeIter && s < resumeSub)
|
|
651
|
+
continue;
|
|
652
|
+
ctx.pausePoint.loopIter = i;
|
|
653
|
+
ctx.pausePoint.loopSub = s;
|
|
616
654
|
try {
|
|
617
|
-
await runStep({ ...ctx, vars: loopVars },
|
|
655
|
+
await runStep({ ...ctx, vars: loopVars }, subs[s]);
|
|
618
656
|
}
|
|
619
657
|
catch (e) {
|
|
620
658
|
if (e instanceof ExecError && e.category === 'index_out_of_range') {
|
|
@@ -629,23 +667,55 @@ async function runLoop(ctx, step) {
|
|
|
629
667
|
}
|
|
630
668
|
// ---- 流程执行 ----
|
|
631
669
|
/**
|
|
632
|
-
*
|
|
670
|
+
* 执行整个流程(失败即中止;T015 起暂停类别错误 → paused 等人工 resume)。
|
|
671
|
+
* 等价 Rust `run_flow`(全 async)。
|
|
633
672
|
* vars 接受 Map 或 Record({keyword} / {i} 等插值来源)。
|
|
673
|
+
* opts.resumeStepIndex:从该顶层步骤索引继续(跳过已完成步骤,不重跑)——
|
|
674
|
+
* resume_run 语义(P0-2);缺省 undefined = 从头执行(与旧行为一致)。
|
|
634
675
|
*/
|
|
635
676
|
export async function runFlow(flow, page, vars, opts) {
|
|
636
677
|
const results = [];
|
|
637
678
|
const varMap = vars instanceof Map ? vars : new Map(Object.entries(vars));
|
|
638
679
|
let err;
|
|
639
|
-
|
|
640
|
-
|
|
680
|
+
let paused;
|
|
681
|
+
const pauseCats = opts?.pauseCategories ?? DEFAULT_PAUSE_CATEGORIES;
|
|
682
|
+
const ctx = { flowId: flow.id, page, vars: varMap, results, opts, pausePoint: { stepIndex: 0 } };
|
|
683
|
+
const startIdx = opts?.resumeStepIndex ?? 0;
|
|
684
|
+
for (let i = startIdx; i < flow.steps.length; i++) {
|
|
685
|
+
ctx.pausePoint = { stepIndex: i };
|
|
641
686
|
try {
|
|
642
|
-
await runStep(ctx,
|
|
687
|
+
await runStep(ctx, flow.steps[i]);
|
|
643
688
|
}
|
|
644
689
|
catch (e) {
|
|
690
|
+
// T015 P0-1:暂停类别错误(login/env_check)→ 转 paused(保留已执行步骤 + resume 起点)
|
|
691
|
+
if (e instanceof ExecError && e.category !== undefined && pauseCats.includes(e.category)) {
|
|
692
|
+
err = e.message;
|
|
693
|
+
paused = {
|
|
694
|
+
reason: e.category,
|
|
695
|
+
at: new Date().toISOString(),
|
|
696
|
+
stepIndex: ctx.pausePoint.stepIndex,
|
|
697
|
+
loopIter: ctx.pausePoint.loopIter,
|
|
698
|
+
loopSub: ctx.pausePoint.loopSub,
|
|
699
|
+
};
|
|
700
|
+
break;
|
|
701
|
+
}
|
|
645
702
|
err = e instanceof Error ? e.message : String(e);
|
|
646
703
|
break;
|
|
647
704
|
}
|
|
648
705
|
}
|
|
706
|
+
if (paused) {
|
|
707
|
+
return {
|
|
708
|
+
flowId: flow.id,
|
|
709
|
+
status: 'paused',
|
|
710
|
+
error: err, // 暂停文案(未登录:引擎已暂停…)
|
|
711
|
+
steps: results,
|
|
712
|
+
pausedAt: paused.at,
|
|
713
|
+
pauseReason: paused.reason,
|
|
714
|
+
resumeStepIndex: paused.stepIndex,
|
|
715
|
+
resumeLoopIter: paused.loopIter,
|
|
716
|
+
resumeLoopSub: paused.loopSub,
|
|
717
|
+
};
|
|
718
|
+
}
|
|
649
719
|
return { flowId: flow.id, status: err ? 'failed' : 'done', error: err, steps: results };
|
|
650
720
|
}
|
|
651
721
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/mask.d.ts
CHANGED
|
@@ -28,5 +28,9 @@ export declare function maskKeywordInText(text: string, keyword: string): string
|
|
|
28
28
|
* - 只替换关键词原文,不动类别短语(「不含」/「超时」/「未命中」等)——
|
|
29
29
|
* 失败类别判定不受影响
|
|
30
30
|
* - 空串/空列表跳过(无关键词上下文时原样返回)
|
|
31
|
+
* - T016 P0-2:**短关键词(<3 字)跳过**——猎头 0.5.6 验收发现 limit='3' 被当关键词,
|
|
32
|
+
* 把误开公司页 URL 里的普通字符 `3` 替换成 `<keyword>`(`gongsi/...d3afa1nd_3du9...`
|
|
33
|
+
* → `<keyword>` 污染 URL)。单/双字符值太通用,掩码会破坏 URL/ID 可读性;敏感输入
|
|
34
|
+
* (搜索词等)通常 ≥3 字。
|
|
31
35
|
*/
|
|
32
36
|
export declare function maskKeywords(text: string, keywords: string[]): string;
|
package/dist/mask.js
CHANGED
|
@@ -53,11 +53,15 @@ export function maskKeywordInText(text, keyword) {
|
|
|
53
53
|
* - 只替换关键词原文,不动类别短语(「不含」/「超时」/「未命中」等)——
|
|
54
54
|
* 失败类别判定不受影响
|
|
55
55
|
* - 空串/空列表跳过(无关键词上下文时原样返回)
|
|
56
|
+
* - T016 P0-2:**短关键词(<3 字)跳过**——猎头 0.5.6 验收发现 limit='3' 被当关键词,
|
|
57
|
+
* 把误开公司页 URL 里的普通字符 `3` 替换成 `<keyword>`(`gongsi/...d3afa1nd_3du9...`
|
|
58
|
+
* → `<keyword>` 污染 URL)。单/双字符值太通用,掩码会破坏 URL/ID 可读性;敏感输入
|
|
59
|
+
* (搜索词等)通常 ≥3 字。
|
|
56
60
|
*/
|
|
57
61
|
export function maskKeywords(text, keywords) {
|
|
58
62
|
if (keywords.length === 0)
|
|
59
63
|
return text;
|
|
60
|
-
const ks = keywords.filter((k) => k.length > 0);
|
|
64
|
+
const ks = keywords.filter((k) => k.length > 0 && [...k].length >= 3);
|
|
61
65
|
if (ks.length === 0)
|
|
62
66
|
return text;
|
|
63
67
|
ks.sort((a, b) => b.length - a.length);
|
package/dist/mask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.js","sourceRoot":"","sources":["../src/mask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,uBAAuB;AACvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAA;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAA;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAA;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA;AAEtC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACpB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAA;IACpC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,EAAE,CAAA;AACrD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;QACnB,CAAC,WAAW,EAAE,OAAO,CAAC;QACtB,CAAC,SAAS,EAAE,OAAO,CAAC;QACpB,CAAC,QAAQ,EAAE,SAAS,CAAC;KACb,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAA;YAC1D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;AACtD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"mask.js","sourceRoot":"","sources":["../src/mask.ts"],"names":[],"mappings":"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"}
|
package/dist/record.d.ts
CHANGED
|
@@ -8,14 +8,25 @@ export interface RunRecord {
|
|
|
8
8
|
runId: string;
|
|
9
9
|
flowId: string;
|
|
10
10
|
flowVersion: number;
|
|
11
|
-
/** done / failed / interrupted(D6 阶段5
|
|
12
|
-
status: 'done' | 'failed' | 'interrupted';
|
|
11
|
+
/** done / failed / interrupted(D6 阶段5:中断落盘,已执行步骤不丢)/ paused(T015 P0-1:人工接管暂停,resume_run 继续) */
|
|
12
|
+
status: 'done' | 'failed' | 'interrupted' | 'paused';
|
|
13
13
|
error?: string;
|
|
14
14
|
/** D7:发起者标识(run_flow owner 参数,缺省 'local';多 Agent 问责用) */
|
|
15
15
|
owner?: string;
|
|
16
16
|
/** ISO 时间(如 2026-08-24T00:00:00Z) */
|
|
17
17
|
startedAt: string;
|
|
18
18
|
steps: StepRecord[];
|
|
19
|
+
/** T015 P0-1:暂停时刻(ISO;status=paused 时) */
|
|
20
|
+
pausedAt?: string;
|
|
21
|
+
/** T015 P0-1:暂停原因(login / env_check / paused;status=paused 时) */
|
|
22
|
+
pauseReason?: 'login' | 'env_check' | 'paused';
|
|
23
|
+
/** T015 P0-2:resume 起点——顶层步骤索引(resume_run 从该点继续,不重跑已完成步骤) */
|
|
24
|
+
resumeStepIndex?: number;
|
|
25
|
+
/** T015 P0-2:resume 起点——loop 内迭代/子步骤偏移(暂停点在 loop 子步骤内时) */
|
|
26
|
+
resumeLoopIter?: number;
|
|
27
|
+
resumeLoopSub?: number;
|
|
28
|
+
/** T015 P0-2:本次运行的变量({keyword} 等插值来源;paused 时持久化,resume_run 复用——RunRecord 原本不存 vars,暂停恢复必须带上) */
|
|
29
|
+
vars?: Record<string, string>;
|
|
19
30
|
}
|
|
20
31
|
export interface StepRecord {
|
|
21
32
|
stepId: string;
|
|
@@ -56,9 +67,17 @@ export declare function fromFlowResult(runId: string, flowId: string, flowVersio
|
|
|
56
67
|
* 掩码前移与 fromFlowResult 同(error/verify.detail 落盘时刻脱敏)。
|
|
57
68
|
*/
|
|
58
69
|
export declare function fromEvents(runId: string, flowId: string, flowVersion: number, events: StepEvent[], meta: {
|
|
59
|
-
status: 'done' | 'failed' | 'interrupted';
|
|
70
|
+
status: 'done' | 'failed' | 'interrupted' | 'paused';
|
|
60
71
|
error?: string;
|
|
61
72
|
startedAt: string;
|
|
62
73
|
owner?: string;
|
|
63
74
|
keywords: string[];
|
|
75
|
+
/** T015 P0-1:暂停信息(status=paused 时落盘;resume_run 据此继续) */
|
|
76
|
+
pausedAt?: string;
|
|
77
|
+
pauseReason?: 'login' | 'env_check' | 'paused';
|
|
78
|
+
resumeStepIndex?: number;
|
|
79
|
+
resumeLoopIter?: number;
|
|
80
|
+
resumeLoopSub?: number;
|
|
81
|
+
/** T015 P0-2:本次运行变量(暂停时持久化,resume_run 复用插值上下文) */
|
|
82
|
+
vars?: Record<string, string>;
|
|
64
83
|
}): RunRecord;
|
package/dist/record.js
CHANGED
|
@@ -14,6 +14,11 @@ export function fromFlowResult(runId, flowId, flowVersion, r, startedAt, keyword
|
|
|
14
14
|
...(owner ? { owner } : {}),
|
|
15
15
|
startedAt,
|
|
16
16
|
steps: r.steps.map((s) => stepToRecord(s, keywords)),
|
|
17
|
+
...(r.status === 'paused' && r.pausedAt ? { pausedAt: r.pausedAt } : {}),
|
|
18
|
+
...(r.status === 'paused' && r.pauseReason ? { pauseReason: r.pauseReason } : {}),
|
|
19
|
+
...(r.status === 'paused' && r.resumeStepIndex !== undefined ? { resumeStepIndex: r.resumeStepIndex } : {}),
|
|
20
|
+
...(r.status === 'paused' && r.resumeLoopIter !== undefined ? { resumeLoopIter: r.resumeLoopIter } : {}),
|
|
21
|
+
...(r.status === 'paused' && r.resumeLoopSub !== undefined ? { resumeLoopSub: r.resumeLoopSub } : {}),
|
|
17
22
|
};
|
|
18
23
|
}
|
|
19
24
|
/**
|
|
@@ -34,6 +39,12 @@ export function fromEvents(runId, flowId, flowVersion, events, meta) {
|
|
|
34
39
|
...(meta.owner ? { owner: meta.owner } : {}),
|
|
35
40
|
startedAt: meta.startedAt,
|
|
36
41
|
steps,
|
|
42
|
+
...(meta.pausedAt ? { pausedAt: meta.pausedAt } : {}),
|
|
43
|
+
...(meta.pauseReason ? { pauseReason: meta.pauseReason } : {}),
|
|
44
|
+
...(meta.resumeStepIndex !== undefined ? { resumeStepIndex: meta.resumeStepIndex } : {}),
|
|
45
|
+
...(meta.resumeLoopIter !== undefined ? { resumeLoopIter: meta.resumeLoopIter } : {}),
|
|
46
|
+
...(meta.resumeLoopSub !== undefined ? { resumeLoopSub: meta.resumeLoopSub } : {}),
|
|
47
|
+
...(meta.vars && Object.keys(meta.vars).length > 0 ? { vars: meta.vars } : {}),
|
|
37
48
|
};
|
|
38
49
|
}
|
|
39
50
|
function stepToRecord(s, keywords) {
|
package/dist/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
|