* fix(web-integration): cache hit when element.id exist and scroll element instantly
* fix(web-integration): use parent xpath for text node
* fix(web-integration): only scroll in to view when element is not completly visible
* fix(shared): distinct text node
* test(web-integration): getElementInfoByXpath
* test(web-integration): rename desc
* test(web-integration): fix
* test(web-integration): snapshot attributes only
* test(web-integration): fix test
* feat: extract web content as a tree
* chore: update test data
* chore: update test data
* feat: update answer of evaluation
* chore: update test cases
* chore: remove focusing on cases
* fix: ci
* fix: put rect in html tree
* fix: CI
* fix: AI test
* fix: lint
* fix: CI
* fix: static-page compatibility
* fix: CI
* fix: map by markerId
* fix: llm planning prompt
* chore: update hash length
* chore: ignore writing dump file
* fix: lint
* fix: ci snapshot
* chore: snapshot tree in web extractor
* chore: export tree utils in core
* chore: export tree utils in core
* fix: CI
* fix: update test case and evaluation
* chore: remove unused file
* refactor(extract): modify dependencies (#358)
* refactor(extract): modify dependencies
* chore: modify files config
* chore: add indexId as key for map
---------
Co-authored-by: Zhou Xiao <zhouxiao.shaw@bytedance.com>
* feat(cache): The cache is generalized to support Puppeteers and mobile terminals
* chore: update cache test
* chore: update cache test
* chore: update cache test
* docs: update cache doc
* chore: update ai test command
* chore: update ai test command
* chore: update ai test command
* chore: optimize cache logic
* chore: update get dir path logic
* chore: update get dir path logic