├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── configs ├── config_example.toml ├── config_gaia.toml └── config_hle.toml ├── docs └── gaia_benchmark.png ├── examples ├── run_example.py ├── run_gaia.py └── run_hle.py ├── poetry.lock ├── pyproject.toml ├── requirements.txt ├── src ├── __init__.py ├── agent │ ├── __init__.py │ ├── agent.py │ ├── browser_use_agent │ │ ├── browser_use_agent.py │ │ └── prompts │ │ │ └── browser_use_agent.yaml │ ├── deep_analyzer_agent │ │ ├── deep_analyzer_agent.py │ │ └── prompts │ │ │ └── deep_analyzer_agent.yaml │ ├── deep_researcher_agent │ │ ├── deep_researcher_agent.py │ │ └── prompts │ │ │ └── deep_researcher_agent.yaml │ ├── planning_agent │ │ ├── planning_agent.py │ │ └── prompts │ │ │ └── planning_agent.yaml │ └── reformulator.py ├── base │ ├── __init__.py │ ├── async_multistep_agent.py │ ├── code_agent.py │ ├── multistep_agent.py │ ├── prompts │ │ ├── code_agent.yaml │ │ └── toolcalling_agent.yaml │ └── tool_calling_agent.py ├── config │ ├── __init__.py │ └── cfg.py ├── dataset │ ├── __init__.py │ └── huggingface.py ├── exception │ ├── __init__.py │ └── error.py ├── logger │ ├── __init__.py │ ├── logger.py │ └── monitor.py ├── memory │ ├── __init__.py │ └── memory.py ├── metric │ ├── __init__.py │ └── gaia_scorer.py ├── models │ ├── __init__.py │ ├── amazonllm.py │ ├── base.py │ ├── hfllm.py │ ├── litellm.py │ ├── message_manager.py │ ├── models.py │ ├── openaillm.py │ └── restful.py ├── proxy │ ├── __init__.py │ └── local_proxy.py ├── registry.py ├── tools │ ├── __init__.py │ ├── archive_searcher.py │ ├── auto_browser.py │ ├── browser │ │ ├── __init__.py │ │ ├── cdp.py │ │ ├── controller.py │ │ └── http_server │ │ │ ├── LICENSE │ │ │ ├── local │ │ │ ├── ai_agents_under_threat.pdf │ │ │ └── sample.pdf │ │ │ ├── pdf_viewer │ │ │ ├── cmaps │ │ │ │ ├── 78-EUC-H.bcmap │ │ │ │ ├── 78-EUC-V.bcmap │ │ │ │ ├── 78-H.bcmap │ │ │ │ ├── 78-RKSJ-H.bcmap │ │ │ │ ├── 78-RKSJ-V.bcmap │ │ │ │ ├── 78-V.bcmap │ │ │ │ ├── 78ms-RKSJ-H.bcmap │ │ │ │ ├── 78ms-RKSJ-V.bcmap │ │ │ │ ├── 83pv-RKSJ-H.bcmap │ │ │ │ ├── 90ms-RKSJ-H.bcmap │ │ │ │ ├── 90ms-RKSJ-V.bcmap │ │ │ │ ├── 90msp-RKSJ-H.bcmap │ │ │ │ ├── 90msp-RKSJ-V.bcmap │ │ │ │ ├── 90pv-RKSJ-H.bcmap │ │ │ │ ├── 90pv-RKSJ-V.bcmap │ │ │ │ ├── Add-H.bcmap │ │ │ │ ├── Add-RKSJ-H.bcmap │ │ │ │ ├── Add-RKSJ-V.bcmap │ │ │ │ ├── Add-V.bcmap │ │ │ │ ├── Adobe-CNS1-0.bcmap │ │ │ │ ├── Adobe-CNS1-1.bcmap │ │ │ │ ├── Adobe-CNS1-2.bcmap │ │ │ │ ├── Adobe-CNS1-3.bcmap │ │ │ │ ├── Adobe-CNS1-4.bcmap │ │ │ │ ├── Adobe-CNS1-5.bcmap │ │ │ │ ├── Adobe-CNS1-6.bcmap │ │ │ │ ├── Adobe-CNS1-UCS2.bcmap │ │ │ │ ├── Adobe-GB1-0.bcmap │ │ │ │ ├── Adobe-GB1-1.bcmap │ │ │ │ ├── Adobe-GB1-2.bcmap │ │ │ │ ├── Adobe-GB1-3.bcmap │ │ │ │ ├── Adobe-GB1-4.bcmap │ │ │ │ ├── Adobe-GB1-5.bcmap │ │ │ │ ├── Adobe-GB1-UCS2.bcmap │ │ │ │ ├── Adobe-Japan1-0.bcmap │ │ │ │ ├── Adobe-Japan1-1.bcmap │ │ │ │ ├── Adobe-Japan1-2.bcmap │ │ │ │ ├── Adobe-Japan1-3.bcmap │ │ │ │ ├── Adobe-Japan1-4.bcmap │ │ │ │ ├── Adobe-Japan1-5.bcmap │ │ │ │ ├── Adobe-Japan1-6.bcmap │ │ │ │ ├── Adobe-Japan1-UCS2.bcmap │ │ │ │ ├── Adobe-Korea1-0.bcmap │ │ │ │ ├── Adobe-Korea1-1.bcmap │ │ │ │ ├── Adobe-Korea1-2.bcmap │ │ │ │ ├── Adobe-Korea1-UCS2.bcmap │ │ │ │ ├── B5-H.bcmap │ │ │ │ ├── B5-V.bcmap │ │ │ │ ├── B5pc-H.bcmap │ │ │ │ ├── B5pc-V.bcmap │ │ │ │ ├── CNS-EUC-H.bcmap │ │ │ │ ├── CNS-EUC-V.bcmap │ │ │ │ ├── CNS1-H.bcmap │ │ │ │ ├── CNS1-V.bcmap │ │ │ │ ├── CNS2-H.bcmap │ │ │ │ ├── CNS2-V.bcmap │ │ │ │ ├── ETHK-B5-H.bcmap │ │ │ │ ├── ETHK-B5-V.bcmap │ │ │ │ ├── ETen-B5-H.bcmap │ │ │ │ ├── ETen-B5-V.bcmap │ │ │ │ ├── ETenms-B5-H.bcmap │ │ │ │ ├── ETenms-B5-V.bcmap │ │ │ │ ├── EUC-H.bcmap │ │ │ │ ├── EUC-V.bcmap │ │ │ │ ├── Ext-H.bcmap │ │ │ │ ├── Ext-RKSJ-H.bcmap │ │ │ │ ├── Ext-RKSJ-V.bcmap │ │ │ │ ├── Ext-V.bcmap │ │ │ │ ├── GB-EUC-H.bcmap │ │ │ │ ├── GB-EUC-V.bcmap │ │ │ │ ├── GB-H.bcmap │ │ │ │ ├── GB-V.bcmap │ │ │ │ ├── GBK-EUC-H.bcmap │ │ │ │ ├── GBK-EUC-V.bcmap │ │ │ │ ├── GBK2K-H.bcmap │ │ │ │ ├── GBK2K-V.bcmap │ │ │ │ ├── GBKp-EUC-H.bcmap │ │ │ │ ├── GBKp-EUC-V.bcmap │ │ │ │ ├── GBT-EUC-H.bcmap │ │ │ │ ├── GBT-EUC-V.bcmap │ │ │ │ ├── GBT-H.bcmap │ │ │ │ ├── GBT-V.bcmap │ │ │ │ ├── GBTpc-EUC-H.bcmap │ │ │ │ ├── GBTpc-EUC-V.bcmap │ │ │ │ ├── GBpc-EUC-H.bcmap │ │ │ │ ├── GBpc-EUC-V.bcmap │ │ │ │ ├── H.bcmap │ │ │ │ ├── HKdla-B5-H.bcmap │ │ │ │ ├── HKdla-B5-V.bcmap │ │ │ │ ├── HKdlb-B5-H.bcmap │ │ │ │ ├── HKdlb-B5-V.bcmap │ │ │ │ ├── HKgccs-B5-H.bcmap │ │ │ │ ├── HKgccs-B5-V.bcmap │ │ │ │ ├── HKm314-B5-H.bcmap │ │ │ │ ├── HKm314-B5-V.bcmap │ │ │ │ ├── HKm471-B5-H.bcmap │ │ │ │ ├── HKm471-B5-V.bcmap │ │ │ │ ├── HKscs-B5-H.bcmap │ │ │ │ ├── HKscs-B5-V.bcmap │ │ │ │ ├── Hankaku.bcmap │ │ │ │ ├── Hiragana.bcmap │ │ │ │ ├── KSC-EUC-H.bcmap │ │ │ │ ├── KSC-EUC-V.bcmap │ │ │ │ ├── KSC-H.bcmap │ │ │ │ ├── KSC-Johab-H.bcmap │ │ │ │ ├── KSC-Johab-V.bcmap │ │ │ │ ├── KSC-V.bcmap │ │ │ │ ├── KSCms-UHC-H.bcmap │ │ │ │ ├── KSCms-UHC-HW-H.bcmap │ │ │ │ ├── KSCms-UHC-HW-V.bcmap │ │ │ │ ├── KSCms-UHC-V.bcmap │ │ │ │ ├── KSCpc-EUC-H.bcmap │ │ │ │ ├── KSCpc-EUC-V.bcmap │ │ │ │ ├── Katakana.bcmap │ │ │ │ ├── LICENSE │ │ │ │ ├── NWP-H.bcmap │ │ │ │ ├── NWP-V.bcmap │ │ │ │ ├── RKSJ-H.bcmap │ │ │ │ ├── RKSJ-V.bcmap │ │ │ │ ├── Roman.bcmap │ │ │ │ ├── UniCNS-UCS2-H.bcmap │ │ │ │ ├── UniCNS-UCS2-V.bcmap │ │ │ │ ├── UniCNS-UTF16-H.bcmap │ │ │ │ ├── UniCNS-UTF16-V.bcmap │ │ │ │ ├── UniCNS-UTF32-H.bcmap │ │ │ │ ├── UniCNS-UTF32-V.bcmap │ │ │ │ ├── UniCNS-UTF8-H.bcmap │ │ │ │ ├── UniCNS-UTF8-V.bcmap │ │ │ │ ├── UniGB-UCS2-H.bcmap │ │ │ │ ├── UniGB-UCS2-V.bcmap │ │ │ │ ├── UniGB-UTF16-H.bcmap │ │ │ │ ├── UniGB-UTF16-V.bcmap │ │ │ │ ├── UniGB-UTF32-H.bcmap │ │ │ │ ├── UniGB-UTF32-V.bcmap │ │ │ │ ├── UniGB-UTF8-H.bcmap │ │ │ │ ├── UniGB-UTF8-V.bcmap │ │ │ │ ├── UniJIS-UCS2-H.bcmap │ │ │ │ ├── UniJIS-UCS2-HW-H.bcmap │ │ │ │ ├── UniJIS-UCS2-HW-V.bcmap │ │ │ │ ├── UniJIS-UCS2-V.bcmap │ │ │ │ ├── UniJIS-UTF16-H.bcmap │ │ │ │ ├── UniJIS-UTF16-V.bcmap │ │ │ │ ├── UniJIS-UTF32-H.bcmap │ │ │ │ ├── UniJIS-UTF32-V.bcmap │ │ │ │ ├── UniJIS-UTF8-H.bcmap │ │ │ │ ├── UniJIS-UTF8-V.bcmap │ │ │ │ ├── UniJIS2004-UTF16-H.bcmap │ │ │ │ ├── UniJIS2004-UTF16-V.bcmap │ │ │ │ ├── UniJIS2004-UTF32-H.bcmap │ │ │ │ ├── UniJIS2004-UTF32-V.bcmap │ │ │ │ ├── UniJIS2004-UTF8-H.bcmap │ │ │ │ ├── UniJIS2004-UTF8-V.bcmap │ │ │ │ ├── UniJISPro-UCS2-HW-V.bcmap │ │ │ │ ├── UniJISPro-UCS2-V.bcmap │ │ │ │ ├── UniJISPro-UTF8-V.bcmap │ │ │ │ ├── UniJISX0213-UTF32-H.bcmap │ │ │ │ ├── UniJISX0213-UTF32-V.bcmap │ │ │ │ ├── UniJISX02132004-UTF32-H.bcmap │ │ │ │ ├── UniJISX02132004-UTF32-V.bcmap │ │ │ │ ├── UniKS-UCS2-H.bcmap │ │ │ │ ├── UniKS-UCS2-V.bcmap │ │ │ │ ├── UniKS-UTF16-H.bcmap │ │ │ │ ├── UniKS-UTF16-V.bcmap │ │ │ │ ├── UniKS-UTF32-H.bcmap │ │ │ │ ├── UniKS-UTF32-V.bcmap │ │ │ │ ├── UniKS-UTF8-H.bcmap │ │ │ │ ├── UniKS-UTF8-V.bcmap │ │ │ │ ├── V.bcmap │ │ │ │ └── WP-Symbol.bcmap │ │ │ ├── compressed.tracemonkey-pldi-09.pdf │ │ │ ├── debugger.css │ │ │ ├── debugger.mjs │ │ │ ├── iccs │ │ │ │ ├── CGATS001Compat-v2-micro.icc │ │ │ │ └── LICENSE │ │ │ ├── images │ │ │ │ ├── altText_add.svg │ │ │ │ ├── altText_disclaimer.svg │ │ │ │ ├── altText_done.svg │ │ │ │ ├── altText_spinner.svg │ │ │ │ ├── altText_warning.svg │ │ │ │ ├── annotation-check.svg │ │ │ │ ├── annotation-comment.svg │ │ │ │ ├── annotation-help.svg │ │ │ │ ├── annotation-insert.svg │ │ │ │ ├── annotation-key.svg │ │ │ │ ├── annotation-newparagraph.svg │ │ │ │ ├── annotation-noicon.svg │ │ │ │ ├── annotation-note.svg │ │ │ │ ├── annotation-paperclip.svg │ │ │ │ ├── annotation-paragraph.svg │ │ │ │ ├── annotation-pushpin.svg │ │ │ │ ├── cursor-editorFreeHighlight.svg │ │ │ │ ├── cursor-editorFreeText.svg │ │ │ │ ├── cursor-editorInk.svg │ │ │ │ ├── cursor-editorTextHighlight.svg │ │ │ │ ├── editor-toolbar-delete.svg │ │ │ │ ├── editor-toolbar-edit.svg │ │ │ │ ├── findbarButton-next.svg │ │ │ │ ├── findbarButton-previous.svg │ │ │ │ ├── gv-toolbarButton-download.svg │ │ │ │ ├── loading-icon.gif │ │ │ │ ├── loading.svg │ │ │ │ ├── messageBar_closingButton.svg │ │ │ │ ├── messageBar_info.svg │ │ │ │ ├── messageBar_warning.svg │ │ │ │ ├── secondaryToolbarButton-documentProperties.svg │ │ │ │ ├── secondaryToolbarButton-firstPage.svg │ │ │ │ ├── secondaryToolbarButton-handTool.svg │ │ │ │ ├── secondaryToolbarButton-lastPage.svg │ │ │ │ ├── secondaryToolbarButton-rotateCcw.svg │ │ │ │ ├── secondaryToolbarButton-rotateCw.svg │ │ │ │ ├── secondaryToolbarButton-scrollHorizontal.svg │ │ │ │ ├── secondaryToolbarButton-scrollPage.svg │ │ │ │ ├── secondaryToolbarButton-scrollVertical.svg │ │ │ │ ├── secondaryToolbarButton-scrollWrapped.svg │ │ │ │ ├── secondaryToolbarButton-selectTool.svg │ │ │ │ ├── secondaryToolbarButton-spreadEven.svg │ │ │ │ ├── secondaryToolbarButton-spreadNone.svg │ │ │ │ ├── secondaryToolbarButton-spreadOdd.svg │ │ │ │ ├── toolbarButton-bookmark.svg │ │ │ │ ├── toolbarButton-currentOutlineItem.svg │ │ │ │ ├── toolbarButton-download.svg │ │ │ │ ├── toolbarButton-editorFreeText.svg │ │ │ │ ├── toolbarButton-editorHighlight.svg │ │ │ │ ├── toolbarButton-editorInk.svg │ │ │ │ ├── toolbarButton-editorSignature.svg │ │ │ │ ├── toolbarButton-editorStamp.svg │ │ │ │ ├── toolbarButton-menuArrow.svg │ │ │ │ ├── toolbarButton-openFile.svg │ │ │ │ ├── toolbarButton-pageDown.svg │ │ │ │ ├── toolbarButton-pageUp.svg │ │ │ │ ├── toolbarButton-presentationMode.svg │ │ │ │ ├── toolbarButton-print.svg │ │ │ │ ├── toolbarButton-search.svg │ │ │ │ ├── toolbarButton-secondaryToolbarToggle.svg │ │ │ │ ├── toolbarButton-sidebarToggle.svg │ │ │ │ ├── toolbarButton-viewAttachments.svg │ │ │ │ ├── toolbarButton-viewLayers.svg │ │ │ │ ├── toolbarButton-viewOutline.svg │ │ │ │ ├── toolbarButton-viewThumbnail.svg │ │ │ │ ├── toolbarButton-zoomIn.svg │ │ │ │ ├── toolbarButton-zoomOut.svg │ │ │ │ ├── treeitem-collapsed.svg │ │ │ │ └── treeitem-expanded.svg │ │ │ ├── locale │ │ │ │ ├── ach │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── af │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── an │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ar │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ast │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── az │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── be │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── bg │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── bn │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── bo │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── br │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── brx │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── bs │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ca │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── cak │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ckb │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── cs │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── cy │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── da │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── de │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── dsb │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── el │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── en-CA │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── en-GB │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── en-US │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── eo │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── es-AR │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── es-CL │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── es-ES │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── es-MX │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── et │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── eu │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── fa │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ff │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── fi │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── fr │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── fur │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── fy-NL │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ga-IE │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── gd │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── gl │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── gn │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── gu-IN │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── he │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── hi-IN │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── hr │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── hsb │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── hu │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── hy-AM │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── hye │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ia │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── id │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── is │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── it │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ja │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ka │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── kab │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── kk │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── km │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── kn │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ko │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── lij │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── lo │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── locale.json │ │ │ │ ├── lt │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ltg │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── lv │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── meh │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── mk │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ml │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── mr │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ms │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── my │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── nb-NO │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ne-NP │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── nl │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── nn-NO │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── oc │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── pa-IN │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── pl │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── pt-BR │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── pt-PT │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── rm │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ro │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ru │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sat │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sc │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── scn │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sco │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── si │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sk │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── skr │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sl │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── son │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sq │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sr │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── sv-SE │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── szl │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ta │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── te │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── tg │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── th │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── tl │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── tr │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── trs │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── uk │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── ur │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── uz │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── vi │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── wo │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── xh │ │ │ │ │ └── viewer.ftl │ │ │ │ ├── zh-CN │ │ │ │ │ └── viewer.ftl │ │ │ │ └── zh-TW │ │ │ │ │ └── viewer.ftl │ │ │ ├── standard_fonts │ │ │ │ ├── FoxitDingbats.pfb │ │ │ │ ├── FoxitFixed.pfb │ │ │ │ ├── FoxitFixedBold.pfb │ │ │ │ ├── FoxitFixedBoldItalic.pfb │ │ │ │ ├── FoxitFixedItalic.pfb │ │ │ │ ├── FoxitSerif.pfb │ │ │ │ ├── FoxitSerifBold.pfb │ │ │ │ ├── FoxitSerifBoldItalic.pfb │ │ │ │ ├── FoxitSerifItalic.pfb │ │ │ │ ├── FoxitSymbol.pfb │ │ │ │ ├── LICENSE_FOXIT │ │ │ │ ├── LICENSE_LIBERATION │ │ │ │ ├── LiberationSans-Bold.ttf │ │ │ │ ├── LiberationSans-BoldItalic.ttf │ │ │ │ ├── LiberationSans-Italic.ttf │ │ │ │ └── LiberationSans-Regular.ttf │ │ │ ├── viewer.css │ │ │ ├── viewer.html │ │ │ ├── viewer.mjs │ │ │ ├── viewer.mjs.map │ │ │ └── wasm │ │ │ │ ├── LICENSE_OPENJPEG │ │ │ │ ├── LICENSE_PDFJS_OPENJPEG │ │ │ │ ├── LICENSE_PDFJS_QCMS │ │ │ │ ├── LICENSE_QCMS │ │ │ │ ├── openjpeg.wasm │ │ │ │ ├── openjpeg_nowasm_fallback.js │ │ │ │ └── qcms_bg.wasm │ │ │ └── video_viewer │ │ │ └── player.html │ ├── custom_browser.py │ ├── deep_analyzer.py │ ├── deep_researcher.py │ ├── default_tools.py │ ├── executor │ │ ├── local_python_executor.py │ │ └── remote_executors.py │ ├── file_reader.py │ ├── final_answer.py │ ├── markdown │ │ ├── __init__.py │ │ └── mdconvert.py │ ├── planning.py │ ├── python_interpreter.py │ ├── search │ │ ├── __init__.py │ │ ├── baidu_search.py │ │ ├── base.py │ │ ├── bing_search.py │ │ ├── ddg_search.py │ │ └── google_search.py │ ├── tool_validation.py │ ├── tools.py │ ├── web_fetcher.py │ └── web_searcher.py └── utils │ ├── __init__.py │ ├── agent_types.py │ ├── function_utils.py │ ├── image_utils.py │ ├── path_utils.py │ ├── singleton.py │ ├── token_utils.py │ └── utils.py └── tests ├── test_analyzer.py ├── test_browser_use.py ├── test_dataset.py ├── test_mdconverter.py ├── test_models.py ├── test_researcher.py ├── test_web_fetcher.py └── test_web_searcher.py /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Skywork 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/usr/bin/env bash 2 | 3 | # Conda environment name and Python version 4 | ENV_NAME = dra 5 | PYTHON_VERSION = 3.11 6 | 7 | # Default goal 8 | .DEFAULT_GOAL := help 9 | 10 | # 🛠️ Remove Conda environment 11 | .PHONY: clean 12 | clean: 13 | conda remove -y --name $(ENV_NAME) --all 14 | 15 | # 🛠️ Install dependencies using Poetry 16 | .PHONY: install 17 | install: 18 | @echo "Installing dependencies" 19 | pip install poetry 20 | pip install 'markitdown[all]' 21 | pip install "browser-use[memory]"==0.1.47 22 | 23 | # install playwright 24 | pip install playwright 25 | playwright install chromium --with-deps --no-shell 26 | 27 | # install dependencies 28 | poetry install 29 | 30 | # install xlrd 31 | pip install xlrd==2.0.1 32 | 33 | install-requirements: 34 | @echo "Installing dependencies" 35 | pip install poetry 36 | pip install 'markitdown[all]' 37 | pip install "browser-use[memory]"==0.1.47 38 | 39 | # install playwright 40 | pip install playwright 41 | playwright install chromium --with-deps --no-shell 42 | 43 | # install dependencies 44 | pip install -r requirements.txt 45 | 46 | # install xlrd 47 | pip install xlrd==2.0.1 48 | 49 | # 🛠️ Update dependencies using Poetry 50 | .PHONY: update 51 | update: 52 | poetry update 53 | 54 | # 🛠️ Show available Makefile commands 55 | .PHONY: help 56 | help: 57 | @echo "Makefile commands:" 58 | @echo " make create - Create Conda environment and install Poetry" 59 | @echo " make activate - Show activation command" 60 | @echo " make clean - Remove Conda environment" 61 | @echo " make install - Install dependencies using Poetry" 62 | @echo " make update - Update dependencies using Poetry" 63 | -------------------------------------------------------------------------------- /configs/config_example.toml: -------------------------------------------------------------------------------- 1 | # General Config 2 | tag = "example" 3 | concurrency = 4 4 | workdir = "workdir" 5 | log_path = "log.txt" 6 | download_path = "downloads_folder" 7 | use_local_proxy = false # true for local proxy, false for public proxy 8 | split = "validation" 9 | save_path = "dra.jsonl" 10 | 11 | # Tool Config 12 | [searcher_tool] 13 | engine = "Google" 14 | fallback_engines = ["DuckDuckGo", "Baidu", "Bing"] 15 | retry_delay = 10 16 | max_retries = 3 17 | lang = "en" 18 | country = "us" 19 | filter_year = 0 20 | num_results = 5 21 | fetch_content = false 22 | max_length = 50000 23 | 24 | [deep_researcher_tool] 25 | model_id = "gpt-4.1" 26 | max_depth = 2 27 | max_insights = 20 28 | time_limit_seconds = 60 29 | max_follow_ups = 3 30 | 31 | [browser_tool] 32 | model_id = "gpt-4.1" 33 | headless = false 34 | disable_security = true 35 | extra_chromium_args = [] 36 | chrome_instance_path = "" 37 | wss_url = "" 38 | cdp_url = "" 39 | use_proxy = false 40 | max_length = 50000 41 | [browser.proxy] 42 | server = "xxxx" 43 | username = "xxxx" 44 | password = "xxxx" 45 | 46 | [deep_analyzer_tool] 47 | analyzer_model_ids = ["gemini-2.5-pro"] 48 | summarizer_model_id = "gemini-2.5-pro" 49 | 50 | # Agent configs 51 | [agent] 52 | name = "dra" 53 | use_hierarchical_agent = true 54 | 55 | [agent.planning_agent_config] 56 | model_id = "gpt-4.1" 57 | name = "planning_agent" 58 | description = "A planning agent that can plan the steps to complete the task." 59 | max_steps = 20 60 | template_path = "src/agent/planning_agent/prompts/planning_agent.yaml" 61 | tools = ["planning"] 62 | managed_agents = ["deep_analyzer_agent", "browser_use_agent", "deep_researcher_agent"] 63 | 64 | [agent.deep_analyzer_agent_config] 65 | model_id = "gpt-4.1" 66 | name = "deep_analyzer_agent" 67 | description = "Performs systematic, step-by-step analysis..." 68 | max_steps = 3 69 | template_path = "src/agent/deep_analyzer_agent/prompts/deep_analyzer_agent.yaml" 70 | tools = ["deep_analyzer", "python_interpreter"] 71 | 72 | [agent.browser_use_agent_config] 73 | model_id = "gpt-4.1" 74 | name = "browser_use_agent" 75 | description = "Searches relevant web pages and interacts with them." 76 | max_steps = 5 77 | template_path = "src/agent/browser_use_agent/prompts/browser_use_agent.yaml" 78 | tools = ["auto_browser_use", "python_interpreter"] 79 | 80 | [agent.deep_researcher_agent_config] 81 | model_id = "gpt-4.1" 82 | name = "deep_researcher_agent" 83 | description = "Conducts extensive web searches." 84 | max_steps = 3 85 | template_path = "src/agent/deep_researcher_agent/prompts/deep_researcher_agent.yaml" 86 | tools = ["deep_researcher", "python_interpreter"] 87 | 88 | [dataset] 89 | name = "2023_all" 90 | path = "data/GAIA" 91 | -------------------------------------------------------------------------------- /configs/config_gaia.toml: -------------------------------------------------------------------------------- 1 | # General Config 2 | tag = "gaia" 3 | concurrency = 4 4 | workdir = "workdir" 5 | log_path = "log.txt" 6 | download_path = "downloads_folder" 7 | use_local_proxy = true 8 | split = "validation" 9 | save_path = "ssa.jsonl" 10 | 11 | # Tool Config 12 | [searcher_tool] 13 | engine = "Google" 14 | fallback_engines = ["DuckDuckGo", "Baidu", "Bing"] 15 | retry_delay = 10 16 | max_retries = 3 17 | lang = "en" 18 | country = "us" 19 | filter_year = 0 20 | num_results = 5 21 | fetch_content = false 22 | max_length = 50000 23 | 24 | [deep_researcher_tool] 25 | model_id = "gpt-4.1" 26 | max_depth = 2 27 | max_insights = 20 28 | time_limit_seconds = 60 29 | max_follow_ups = 3 30 | 31 | [browser_tool] 32 | model_id = "gpt-4.1" 33 | headless = false 34 | disable_security = true 35 | extra_chromium_args = [] 36 | chrome_instance_path = "" 37 | wss_url = "" 38 | cdp_url = "" 39 | use_proxy = false 40 | max_length = 50000 41 | [browser.proxy] 42 | server = "xxxx" 43 | username = "xxxx" 44 | password = "xxxx" 45 | 46 | [deep_analyzer_tool] 47 | analyzer_model_ids = ["gemini-2.5-pro"] 48 | summarizer_model_id = "gemini-2.5-pro" 49 | 50 | # Agent configs 51 | [agent] 52 | name = "ssa" 53 | use_hierarchical_agent = true 54 | 55 | [agent.planning_agent_config] 56 | model_id = "claude37-sonnet-thinking" 57 | name = "planning_agent" 58 | description = "A planning agent that can plan the steps to complete the task." 59 | max_steps = 20 60 | template_path = "src/agent/planning_agent/prompts/planning_agent.yaml" 61 | tools = ["planning"] 62 | managed_agents = ["deep_analyzer_agent", "browser_use_agent", "deep_researcher_agent"] 63 | 64 | [agent.deep_analyzer_agent_config] 65 | model_id = "claude37-sonnet-thinking" 66 | name = "deep_analyzer_agent" 67 | description = "Performs systematic, step-by-step analysis..." 68 | max_steps = 3 69 | template_path = "src/agent/deep_analyzer_agent/prompts/deep_analyzer_agent.yaml" 70 | tools = ["deep_analyzer", "python_interpreter"] 71 | 72 | [agent.browser_use_agent_config] 73 | model_id = "gpt-4.1" 74 | name = "browser_use_agent" 75 | description = "Searches relevant web pages and interacts with them." 76 | max_steps = 5 77 | template_path = "src/agent/browser_use_agent/prompts/browser_use_agent.yaml" 78 | tools = ["auto_browser_use", "python_interpreter"] 79 | 80 | [agent.deep_researcher_agent_config] 81 | model_id = "claude37-sonnet-thinking" 82 | name = "deep_researcher_agent" 83 | description = "Conducts extensive web searches." 84 | max_steps = 3 85 | template_path = "src/agent/deep_researcher_agent/prompts/deep_researcher_agent.yaml" 86 | tools = ["deep_researcher", "python_interpreter"] 87 | 88 | [dataset] 89 | name = "2023_all" 90 | path = "data/GAIA" 91 | -------------------------------------------------------------------------------- /configs/config_hle.toml: -------------------------------------------------------------------------------- 1 | # General Config 2 | tag = "hle" 3 | concurrency = 1 4 | workdir = "workdir" 5 | log_path = "log.txt" 6 | download_path = "downloads_folder" 7 | use_local_proxy = true 8 | split = "test" 9 | save_path = "ssa.jsonl" 10 | 11 | # Tool Config 12 | [searcher_tool] 13 | engine = "Google" 14 | fallback_engines = ["DuckDuckGo", "Baidu", "Bing"] 15 | retry_delay = 10 16 | max_retries = 3 17 | lang = "en" 18 | country = "us" 19 | filter_year = 0 20 | num_results = 5 21 | fetch_content = false 22 | max_length = 50000 23 | 24 | [deep_researcher_tool] 25 | model_id = "gpt-4.1" 26 | max_depth = 2 27 | max_insights = 20 28 | time_limit_seconds = 60 29 | max_follow_ups = 3 30 | 31 | [browser_tool] 32 | model_id = "gpt-4.1" 33 | headless = false 34 | disable_security = true 35 | extra_chromium_args = [] 36 | chrome_instance_path = "" 37 | wss_url = "" 38 | cdp_url = "" 39 | use_proxy = false 40 | max_length = 50000 41 | [browser.proxy] 42 | server = "xxxx" 43 | username = "xxxx" 44 | password = "xxxx" 45 | 46 | [deep_analyzer_tool] 47 | analyzer_model_ids = ["gemini-2.5-pro"] 48 | summarizer_model_id = "gemini-2.5-pro" 49 | 50 | # Agent configs 51 | [agent] 52 | name = "ssa" 53 | use_hierarchical_agent = true 54 | 55 | [agent.planning_agent_config] 56 | model_id = "claude37-sonnet-thinking" 57 | name = "planning_agent" 58 | description = "A planning agent that can plan the steps to complete the task." 59 | max_steps = 20 60 | template_path = "src/agent/planning_agent/prompts/planning_agent.yaml" 61 | tools = ["planning"] 62 | managed_agents = ["deep_analyzer_agent", "deep_researcher_agent"] 63 | 64 | [agent.deep_analyzer_agent_config] 65 | model_id = "claude37-sonnet-thinking" 66 | name = "deep_analyzer_agent" 67 | description = "Performs systematic, step-by-step analysis..." 68 | max_steps = 1 69 | template_path = "src/agent/deep_analyzer_agent/prompts/deep_analyzer_agent.yaml" 70 | tools = ["deep_analyzer", "python_interpreter"] 71 | 72 | [agent.browser_use_agent_config] 73 | model_id = "gpt-4.1" 74 | name = "browser_use_agent" 75 | description = "Searches relevant web pages and interacts with them." 76 | max_steps = 5 77 | template_path = "src/agent/browser_use_agent/prompts/browser_use_agent.yaml" 78 | tools = ["auto_browser_use", "python_interpreter"] 79 | 80 | [agent.deep_researcher_agent_config] 81 | model_id = "claude37-sonnet-thinking" 82 | name = "deep_researcher_agent" 83 | description = "Conducts extensive web searches." 84 | max_steps = 3 85 | template_path = "src/agent/deep_researcher_agent/prompts/deep_researcher_agent.yaml" 86 | tools = ["deep_researcher", "python_interpreter"] 87 | 88 | [dataset] 89 | name = "hle" 90 | path = "data/hle" 91 | -------------------------------------------------------------------------------- /docs/gaia_benchmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/docs/gaia_benchmark.png -------------------------------------------------------------------------------- /examples/run_example.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import sys 5 | from pathlib import Path 6 | import asyncio 7 | 8 | root = str(Path(__file__).resolve().parents[1]) 9 | sys.path.append(root) 10 | 11 | from src.logger import logger 12 | from src.config import config 13 | from src.models import model_manager 14 | from src.agent import create_agent 15 | from src.utils import assemble_project_path 16 | 17 | async def main(): 18 | # Init config and logger 19 | config.init_config(config_path=assemble_project_path("configs/config_example.toml")) 20 | logger.init_logger(config.log_path) 21 | logger.info(f"Initializing logger: {config.log_path}") 22 | logger.info(f"Load config: {config}") 23 | 24 | # Registed models 25 | model_manager.init_models(use_local_proxy=False) 26 | logger.info("Registed models: %s", ", ".join(model_manager.registed_models.keys())) 27 | 28 | # Create agent 29 | agent = create_agent() 30 | 31 | # Run example 32 | task = "Use deep_researcher_agent to search the latest papers on the topic of 'AI Agent' and then summarize it." 33 | res = await agent.run(task) 34 | logger.info(f"Result: {res}") 35 | 36 | if __name__ == '__main__': 37 | asyncio.run(main()) -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "src" 3 | version = "0.1.0" 4 | description = "DeepResearchAgent" 5 | authors = [ 6 | {name = "Skywork"} 7 | ] 8 | license = {text = "MIT"} 9 | readme = "README.md" 10 | requires-python = ">=3.11,<4.0" 11 | [tool.poetry.dependencies] 12 | python-dotenv = "^1.0.1" 13 | rich = "^13.9.4" 14 | litellm = "^1.64.1" 15 | pillow = "^10.4.0" 16 | numpy = "^2.2.4" 17 | pynput = "^1.8.1" 18 | transformers = "^4.50.1" 19 | markdownify = "^1.1.0" 20 | duckduckgo-search = "^7.5.4" 21 | mammoth = "^1.9.0" 22 | pandas = "^2.2.3" 23 | pdfminer-six = "^20250327" 24 | python-pptx = "^1.0.2" 25 | puremagic = "^1.28" 26 | pydub = "^0.25.1" 27 | speechrecognition = "^3.14.2" 28 | pathvalidate = "^3.2.3" 29 | serpapi = "^0.1.5" 30 | google-search-results = "^2.4.2" 31 | datasets = "^3.5.0" 32 | anthropic = "^0.49.0" 33 | openpyxl = "^3.1.5" 34 | baidusearch = "^1.0.3" 35 | patchright="^1.51.3" 36 | pyautogui="^0.9.54" 37 | json5="^0.12.0" 38 | tenacity="^9.1.2" 39 | crawl4ai="^0.6.3" 40 | camelot="^12.06.29" 41 | xlrd="^0.7.1" 42 | toml = "^0.10.2" 43 | googlesearch-python = "^1.3.0" 44 | 45 | [build-system] 46 | requires = ["poetry-core>=2.0.0,<3.0.0"] 47 | build-backend = "poetry.core.masonry.api" 48 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | python-dotenv>=1.0.1 2 | rich>=13.9.4 3 | litellm>=1.64.1 4 | pillow>=10.4.0 5 | numpy>=2.2.4 6 | pynput>=1.8.1 7 | transformers>=4.50.1 8 | markdownify>=1.1.0 9 | duckduckgo-search>=7.5.4 10 | mammoth>=1.9.0 11 | pandas>=2.2.3 12 | pdfminer-six>=20250327 13 | python-pptx>=1.0.2 14 | puremagic>=1.28 15 | pydub>=0.25.1 16 | speechrecognition>=3.14.2 17 | pathvalidate>=3.2.3 18 | serpapi>=0.1.5 19 | google-search-results>=2.4.2 20 | datasets>=3.5.0 21 | anthropic>=0.49.0 22 | openpyxl>=3.1.5 23 | baidusearch>=1.0.3 24 | patchright>=1.51.3 25 | pyautogui>=0.9.54 26 | json5>=0.12.0 27 | tenacity>=9.1.2 28 | crawl4ai>=0.6.3 29 | camelot>=12.06.29 30 | toml>=0.10.2 31 | xlrd>=0.7.1 32 | googlesearch-python>=1.3.0 33 | -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/__init__.py -------------------------------------------------------------------------------- /src/agent/__init__.py: -------------------------------------------------------------------------------- 1 | from src.agent.planning_agent.planning_agent import PlanningAgent 2 | from src.agent.browser_use_agent.browser_use_agent import BrowserUseAgent 3 | from src.agent.deep_analyzer_agent.deep_analyzer_agent import DeepAnalyzerAgent 4 | from src.agent.deep_researcher_agent.deep_researcher_agent import DeepResearcherAgent 5 | from src.agent.agent import create_agent 6 | from src.agent.reformulator import prepare_response 7 | 8 | __all__ = [ 9 | "PlanningAgent", 10 | "BrowserUseAgent", 11 | "DeepAnalyzerAgent", 12 | "DeepResearcherAgent", 13 | "create_agent", 14 | "prepare_response", 15 | ] -------------------------------------------------------------------------------- /src/base/__init__.py: -------------------------------------------------------------------------------- 1 | from src.base.multistep_agent import MultiStepAgent 2 | from src.base.tool_calling_agent import ToolCallingAgent 3 | from src.base.code_agent import CodeAgent 4 | from src.base.async_multistep_agent import AsyncMultiStepAgent 5 | __all__ = [ 6 | "MultiStepAgent", 7 | "ToolCallingAgent", 8 | "CodeAgent", 9 | "AsyncMultiStepAgent", 10 | ] -------------------------------------------------------------------------------- /src/config/__init__.py: -------------------------------------------------------------------------------- 1 | from src.config.cfg import config 2 | 3 | 4 | __all__ = [ 5 | "config", 6 | ] -------------------------------------------------------------------------------- /src/dataset/__init__.py: -------------------------------------------------------------------------------- 1 | from src.dataset.huggingface import GAIADataset, HLEDataset 2 | 3 | __all__ = [ 4 | "GAIADataset", 5 | "HLEDataset", 6 | ] -------------------------------------------------------------------------------- /src/dataset/huggingface.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pandas as pd 3 | import datasets 4 | import base64 5 | 6 | from src.utils import assemble_project_path 7 | from src.logger import logger 8 | 9 | class GAIADataset(): 10 | def __init__(self, path, name, split): 11 | self.path = path 12 | self.name = name 13 | self.split = split 14 | 15 | path = assemble_project_path(path) 16 | ds = datasets.load_dataset(path, name, trust_remote_code=True)[split] 17 | ds = ds.rename_columns({"Question": "question", "Final answer": "true_answer", "Level": "task"}) 18 | ds = ds.map(self.preprocess_file_paths, load_from_cache_file=False, fn_kwargs={"split": split, "path": path}) 19 | 20 | data = pd.DataFrame(ds) 21 | 22 | self.data = data 23 | 24 | def preprocess_file_paths(self, row, path, split): 25 | save_path = assemble_project_path(os.path.join(path, "2023", split)) 26 | os.makedirs(save_path, exist_ok=True) 27 | if len(row["file_name"]) > 0: 28 | row["file_name"] = os.path.join(save_path, row["file_name"]) 29 | return row 30 | 31 | def __len__(self): 32 | return len(self.data) 33 | 34 | def __getitem__(self, index): 35 | return self.data.iloc[index] 36 | 37 | 38 | class HLEDataset(): 39 | def __init__(self, path, name, split): 40 | self.path = path 41 | self.name = name 42 | self.split = split 43 | 44 | path = assemble_project_path(path) 45 | ds = datasets.load_dataset(path, trust_remote_code=True)[split] 46 | ds = ds.rename_columns({"answer": "true_answer", "id": "task_id"}) 47 | ds = ds.map(self.preprocess_file_paths, load_from_cache_file=False, fn_kwargs={"split": split, "path": path}) 48 | 49 | data = pd.DataFrame(ds) 50 | self.data = data 51 | 52 | def preprocess_file_paths(self, row, path, split): 53 | save_path = assemble_project_path(os.path.join(path, "images", split)) 54 | os.makedirs(save_path, exist_ok=True) 55 | 56 | image_path = "" 57 | if len(row["image"]) > 0: 58 | image_string = row["image"] 59 | task_id = row["task_id"] 60 | if image_string.startswith('data:image'): 61 | image_type = image_string.split(';')[0].split('/')[1] 62 | image_base64 = image_string.split(',')[1] 63 | 64 | image_path = os.path.join(save_path, f"{task_id}.{image_type}") 65 | with open(image_path, "wb") as f: 66 | f.write(base64.b64decode(image_base64)) 67 | logger.info(f"Save image {task_id} to {image_path}") 68 | else: 69 | image_path = "" 70 | 71 | row["file_name"] = image_path 72 | return row 73 | 74 | def __len__(self): 75 | return len(self.data) 76 | 77 | def __getitem__(self, index): 78 | return self.data.iloc[index] -------------------------------------------------------------------------------- /src/exception/__init__.py: -------------------------------------------------------------------------------- 1 | from src.exception.error import ( 2 | AgentError, 3 | AgentParsingError, 4 | AgentExecutionError, 5 | AgentMaxStepsError, 6 | AgentToolCallError, 7 | AgentToolExecutionError, 8 | AgentGenerationError, 9 | TypeHintParsingException, 10 | DocstringParsingException, 11 | ) 12 | 13 | __all__ = [ 14 | "AgentError", 15 | "AgentParsingError", 16 | "AgentExecutionError", 17 | "AgentMaxStepsError", 18 | "AgentToolCallError", 19 | "AgentToolExecutionError", 20 | "AgentGenerationError", 21 | "TypeHintParsingException", 22 | "DocstringParsingException", 23 | ] -------------------------------------------------------------------------------- /src/exception/error.py: -------------------------------------------------------------------------------- 1 | from typing import Dict 2 | 3 | 4 | class AgentError(Exception): 5 | """Base class for other agent-related exceptions""" 6 | 7 | def __init__(self, message, logger=None): 8 | super().__init__(message) 9 | self.message = message 10 | logger.error(message) 11 | 12 | def dict(self) -> Dict[str, str]: 13 | return {"type": self.__class__.__name__, "message": str(self.message)} 14 | 15 | 16 | class AgentParsingError(AgentError): 17 | """Exception raised for errors in parsing in the agent""" 18 | 19 | pass 20 | 21 | 22 | class AgentExecutionError(AgentError): 23 | """Exception raised for errors in execution in the agent""" 24 | 25 | pass 26 | 27 | 28 | class AgentMaxStepsError(AgentError): 29 | """Exception raised for errors in execution in the agent""" 30 | 31 | pass 32 | 33 | 34 | class AgentToolCallError(AgentExecutionError): 35 | """Exception raised for errors when incorrect arguments are passed to the tool""" 36 | 37 | pass 38 | 39 | 40 | class AgentToolExecutionError(AgentExecutionError): 41 | """Exception raised for errors when executing a tool""" 42 | 43 | pass 44 | 45 | 46 | class AgentGenerationError(AgentError): 47 | """Exception raised for errors in generation in the agent""" 48 | 49 | pass 50 | 51 | class TypeHintParsingException(Exception): 52 | """Exception raised for errors in parsing type hints to generate JSON schemas""" 53 | 54 | 55 | class DocstringParsingException(Exception): 56 | """Exception raised for errors in parsing docstrings to generate JSON schemas""" -------------------------------------------------------------------------------- /src/logger/__init__.py: -------------------------------------------------------------------------------- 1 | from src.logger.logger import logger, LogLevel, AgentLogger, YELLOW_HEX 2 | from src.logger.monitor import Monitor 3 | 4 | __all__ = ["logger", "LogLevel", "AgentLogger", "Monitor", "YELLOW_HEX"] -------------------------------------------------------------------------------- /src/logger/monitor.py: -------------------------------------------------------------------------------- 1 | from rich.text import Text 2 | 3 | class Monitor: 4 | def __init__(self, tracked_model, logger): 5 | self.step_durations = [] 6 | self.tracked_model = tracked_model 7 | self.logger = logger 8 | if getattr(self.tracked_model, "last_input_token_count", "Not found") != "Not found": 9 | self.total_input_token_count = 0 10 | self.total_output_token_count = 0 11 | 12 | def get_total_token_counts(self): 13 | return { 14 | "input": self.total_input_token_count, 15 | "output": self.total_output_token_count, 16 | } 17 | 18 | def reset(self): 19 | self.step_durations = [] 20 | self.total_input_token_count = 0 21 | self.total_output_token_count = 0 22 | 23 | def update_metrics(self, step_log): 24 | """Update the metrics of the monitor. 25 | 26 | Args: 27 | step_log ([`MemoryStep`]): Step log to update the monitor with. 28 | """ 29 | step_duration = step_log.duration 30 | self.step_durations.append(step_duration) 31 | console_outputs = f"[Step {len(self.step_durations)}: Duration {step_duration:.2f} seconds" 32 | 33 | if getattr(self.tracked_model, "last_input_token_count", None) is not None: 34 | self.total_input_token_count += self.tracked_model.last_input_token_count 35 | self.total_output_token_count += self.tracked_model.last_output_token_count 36 | console_outputs += ( 37 | f"| Input tokens: {self.total_input_token_count:,} | Output tokens: {self.total_output_token_count:,}" 38 | ) 39 | console_outputs += "]" 40 | self.logger.log(Text(console_outputs, style="dim"), level=1) -------------------------------------------------------------------------------- /src/memory/__init__.py: -------------------------------------------------------------------------------- 1 | from src.memory.memory import ( 2 | AgentMemory, 3 | MemoryStep, 4 | TaskStep, 5 | ActionStep, 6 | PlanningStep, 7 | SystemPromptStep, 8 | UserPromptStep, 9 | FinalAnswerStep, 10 | ToolCall, 11 | Message 12 | ) 13 | 14 | __all__ = [ 15 | "AgentMemory", 16 | "MemoryStep", 17 | "TaskStep", 18 | "ActionStep", 19 | "PlanningStep", 20 | "SystemPromptStep", 21 | "UserPromptStep", 22 | "FinalAnswerStep", 23 | "ToolCall", 24 | "Message" 25 | ] -------------------------------------------------------------------------------- /src/metric/__init__.py: -------------------------------------------------------------------------------- 1 | from src.metric.gaia_scorer import question_scorer 2 | 3 | __all__ = [ 4 | "question_scorer", 5 | ] -------------------------------------------------------------------------------- /src/models/__init__.py: -------------------------------------------------------------------------------- 1 | from src.models.base import ( 2 | ChatMessage, 3 | MessageRole, 4 | Model, 5 | parse_json_if_needed 6 | ) 7 | from src.models.litellm import LiteLLMModel 8 | from src.models.openaillm import OpenAIServerModel 9 | from src.models.models import ModelManager 10 | 11 | 12 | model_manager = ModelManager() 13 | 14 | __all__ = [ 15 | "Model", 16 | "LiteLLMModel", 17 | "ChatMessage", 18 | "MessageRole", 19 | "OpenAIServerModel", 20 | "parse_json_if_needed", 21 | "model_manager", 22 | "ModelManager", 23 | ] -------------------------------------------------------------------------------- /src/proxy/__init__.py: -------------------------------------------------------------------------------- 1 | from src.proxy.local_proxy import PROXY_URL, HTTP_CLIENT, ASYNC_HTTP_CLIENT, proxy_env 2 | 3 | __all__ = [ 4 | "PROXY_URL", 5 | "HTTP_CLIENT", 6 | "ASYNC_HTTP_CLIENT", 7 | "proxy_env", 8 | ] -------------------------------------------------------------------------------- /src/proxy/local_proxy.py: -------------------------------------------------------------------------------- 1 | import os 2 | import httpx 3 | import openai 4 | import contextlib 5 | from dotenv import load_dotenv 6 | 7 | load_dotenv(verbose=True) 8 | 9 | PROXY_URL = os.getenv('LOCAL_PROXY_BASE', None) 10 | 11 | if PROXY_URL: 12 | TRANSPORT = httpx.HTTPTransport(proxy=httpx.Proxy(url=PROXY_URL)) 13 | HTTP_CLIENT = httpx.Client(transport=TRANSPORT) 14 | ASYNC_TRANSPORT = httpx.AsyncHTTPTransport(proxy=httpx.Proxy(url=PROXY_URL)) 15 | ASYNC_HTTP_CLIENT = httpx.AsyncClient(transport=ASYNC_TRANSPORT) 16 | else: 17 | HTTP_CLIENT = httpx.Client() 18 | ASYNC_HTTP_CLIENT = httpx.AsyncClient() 19 | 20 | @contextlib.contextmanager 21 | def proxy_env(proxy_url: str = PROXY_URL): 22 | os.environ["HTTP_PROXY"] = proxy_url 23 | os.environ["HTTPS_PROXY"] = proxy_url 24 | try: 25 | yield 26 | finally: 27 | del os.environ["HTTP_PROXY"] 28 | del os.environ["HTTPS_PROXY"] 29 | 30 | __all__ = [ 31 | "PROXY_URL", 32 | "HTTP_CLIENT", 33 | "ASYNC_HTTP_CLIENT", 34 | ] -------------------------------------------------------------------------------- /src/registry.py: -------------------------------------------------------------------------------- 1 | from typing import List, Dict, Any 2 | 3 | REGISTED_AGENTS: Dict[str, Any] = {} 4 | REGISTED_TOOLS: Dict[str, Any] = {} 5 | 6 | def register_agent(agent_id_or_cls=None): 7 | """ 8 | Decorator to register an agent class with a unique ID. 9 | 10 | Usage: 11 | @register_agent 12 | class MyAgent: ... 13 | 14 | @register_agent("custom_id") 15 | class MyOtherAgent: ... 16 | """ 17 | def decorator(cls): 18 | # Determine the registration key: use custom ID or class name 19 | agent_id = agent_id_or_cls if isinstance(agent_id_or_cls, str) else cls.__name__ 20 | # Check for duplicate registration 21 | if agent_id in REGISTED_AGENTS: 22 | raise ValueError(f"Agent ID '{agent_id}' is already registered.") 23 | # Register the class (not instance) 24 | REGISTED_AGENTS[agent_id] = cls 25 | return cls 26 | 27 | # Support both @register_agent and @register_agent("custom_id") usages 28 | if callable(agent_id_or_cls): 29 | # Used as @register_agent 30 | return decorator(agent_id_or_cls) 31 | else: 32 | # Used as @register_agent("custom_id") 33 | return decorator 34 | 35 | def register_tool(tool_id_or_cls=None): 36 | """ 37 | Decorator to register a tool class with a unique ID. 38 | 39 | Usage: 40 | @register_tool 41 | class MyTool: ... 42 | 43 | @register_tool("custom_id") 44 | class MyOtherTool: ... 45 | """ 46 | def decorator(cls): 47 | # Determine the registration key: use custom ID or class name 48 | tool_id = tool_id_or_cls if isinstance(tool_id_or_cls, str) else cls.__name__ 49 | 50 | # Check for duplicate registration 51 | if tool_id in REGISTED_TOOLS: 52 | raise ValueError(f"Tool ID '{tool_id}' is already registered.") 53 | 54 | # Register the class (not instance) 55 | REGISTED_TOOLS[tool_id] = cls 56 | return cls 57 | 58 | # Support both @register_tool and @register_tool("custom_id") usages 59 | if callable(tool_id_or_cls): 60 | # Used as @register_tool 61 | return decorator(tool_id_or_cls) 62 | else: 63 | # Used as @register_tool("custom_id") 64 | return decorator -------------------------------------------------------------------------------- /src/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from src.tools.tools import Tool, ToolResult, AsyncTool, make_tool_instance 2 | from src.tools.deep_analyzer import DeepAnalyzerTool 3 | from src.tools.deep_researcher import DeepResearcherTool 4 | from src.tools.python_interpreter import PythonInterpreterTool 5 | from src.tools.auto_browser import AutoBrowserUseTool 6 | from src.tools.planning import PlanningTool 7 | 8 | 9 | __all__ = [ 10 | "Tool", 11 | "ToolResult", 12 | "AsyncTool", 13 | "DeepAnalyzerTool", 14 | "DeepResearcherTool", 15 | "PythonInterpreterTool", 16 | "AutoBrowserUseTool", 17 | "PlanningTool", 18 | "make_tool_instance", 19 | ] -------------------------------------------------------------------------------- /src/tools/archive_searcher.py: -------------------------------------------------------------------------------- 1 | from src.tools import AsyncTool, ToolResult 2 | from src.tools.web_fetcher import WebFetcherTool 3 | import requests 4 | from src.logger import logger 5 | 6 | class ArchiveSearcherTool(AsyncTool): 7 | name: str = "archive_searcher" 8 | description: str = "Given a url, searches the Wayback Machine and returns the archived version of the url that's closest in time to the desired date." 9 | 10 | parameters: dict = { 11 | "type": "object", 12 | "properties": { 13 | "url": { 14 | "type": "string", 15 | "description": "The url you need the archive for.", 16 | }, 17 | "date": { 18 | "type": "string", 19 | "description": "The date that you want to find the archive for. Give this date in the format 'YYYYMMDD', for instance '27 June 2008' is written as '20080627'.", 20 | }, 21 | }, 22 | "required": ["url", "date"], 23 | } 24 | output_type = "any" 25 | 26 | content_fetcher: WebFetcherTool = WebFetcherTool() 27 | 28 | async def forward(self, url, date) -> ToolResult: 29 | no_timestamp_url = f"https://archive.org/wayback/available?url={url}" 30 | archive_url = no_timestamp_url + f"×tamp={date}" 31 | 32 | response = requests.get(archive_url).json() 33 | response_notimestamp = requests.get(no_timestamp_url).json() 34 | 35 | if "archived_snapshots" in response and "closest" in response["archived_snapshots"]: 36 | closest = response["archived_snapshots"]["closest"] 37 | logger.info(f"Archive found! {closest}") 38 | 39 | elif "archived_snapshots" in response_notimestamp and "closest" in response_notimestamp["archived_snapshots"]: 40 | closest = response_notimestamp["archived_snapshots"]["closest"] 41 | logger.info(f"Archive found! {closest}") 42 | else: 43 | return ToolResult( 44 | res = None, 45 | error=f"Your {url=} was not archived on Wayback Machine, try a different url." 46 | 47 | ) 48 | 49 | target_url = closest["url"] 50 | 51 | res = self.content_fetcher.forward(target_url) 52 | 53 | output = f"Web archive for url {url}, snapshot taken at date {closest['timestamp'][:8]}:\n\n" 54 | output += f"Title: {res.title.strip() if res.title else 'NO Title'} \n\n" 55 | output += f"Content: {res.markdown.strip() if res.markdown else 'NO Content'}" 56 | 57 | result = ToolResult( 58 | output=output, 59 | error=None, 60 | ) 61 | return result -------------------------------------------------------------------------------- /src/tools/browser/__init__.py: -------------------------------------------------------------------------------- 1 | from .controller import Controller 2 | from .cdp import CDP 3 | 4 | __all__ = [ 5 | 'Controller', 6 | 'CDP', 7 | ] -------------------------------------------------------------------------------- /src/tools/browser/cdp.py: -------------------------------------------------------------------------------- 1 | import os 2 | import subprocess 3 | import requests 4 | from dotenv import load_dotenv 5 | load_dotenv(verbose=True) 6 | import time 7 | import re 8 | 9 | from src.logger import logger 10 | 11 | class CDP(): 12 | def __init__(self, 13 | chrome_path: str = None, 14 | user_data_dir: str = None, 15 | ): 16 | self.chrome_path = chrome_path if chrome_path else os.getenv("CHROME_DRIVER_PATH") 17 | self.user_data_dir = user_data_dir if user_data_dir else os.getenv("CHROME_USER_DATA_PATH") 18 | 19 | self.process = None 20 | self.process_id = None 21 | 22 | def start(self): 23 | logger.info(f"Starting Chrome with user data dir: {self.user_data_dir}") 24 | 25 | # start chrome with remote debugging port and get the process id 26 | # --disable-gpu --no-sandbox --disable-dev-shm-usage 27 | self.process = subprocess.Popen( 28 | [self.chrome_path, 29 | f"--remote-debugging-port=9222", 30 | f"--disable-gpu", 31 | f"--no-sandbox", 32 | f"--disable-dev-shm-usage", 33 | f"--user-data-dir={self.user_data_dir}"], 34 | ) 35 | 36 | self.process_id = self.process.pid 37 | logger.info(f"Chrome started with pid: {self.process_id}") 38 | 39 | def check(self): 40 | try: 41 | response = requests.get("http://localhost:9222/json") 42 | if response.status_code == 200: 43 | logger.info("Chrome is running") 44 | return True 45 | else: 46 | logger.error("Chrome is not running") 47 | return False 48 | except requests.exceptions.RequestException as e: 49 | logger.error(f"Error checking Chrome status: {e}") 50 | return False 51 | 52 | def stop(self): 53 | logger.info(f"Stopping Chrome with pid: {self.process_id}") 54 | # stop the chrome process 55 | self.process.terminate() 56 | logger.info(f"Chrome stopped") -------------------------------------------------------------------------------- /src/tools/browser/http_server/local/ai_agents_under_threat.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/local/ai_agents_under_threat.pdf -------------------------------------------------------------------------------- /src/tools/browser/http_server/local/sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/local/sample.pdf -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78ms-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78ms-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/78ms-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/78ms-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/83pv-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/83pv-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/90ms-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/90ms-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/90ms-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/90ms-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/90msp-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/90msp-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/90msp-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/90msp-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/90pv-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/90pv-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/90pv-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/90pv-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Add-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Add-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Add-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Add-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Add-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Add-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Add-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Add-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-0.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-1.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-3.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-3.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-4.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-4.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-5.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-5.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-6.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-6.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-CNS1-UCS2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-0.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-1.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-3.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-3.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-4.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-4.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-5.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-5.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-GB1-UCS2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-0.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-1.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-3.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-3.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-4.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-4.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-5.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-5.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-6.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-6.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Japan1-UCS2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-0.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-1.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Adobe-Korea1-UCS2.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/B5pc-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/B5pc-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/B5pc-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/B5pc-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/CNS-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/CNS-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/CNS-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/CNS-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/CNS1-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/CNS1-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/CNS1-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/CNS1-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/CNS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/CNS2-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/CNS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/CNS2-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/ETHK-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/ETHK-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/ETHK-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/ETHK-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/ETen-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/ETen-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/ETen-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/ETen-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/ETenms-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/ETenms-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/ETenms-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/ETenms-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Ext-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Ext-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Ext-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Ext-RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Ext-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Ext-RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Ext-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Ext-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GB-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GB-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GB-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GB-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GB-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GB-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GB-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GB-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBK-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBK-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBK-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBK-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBK2K-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBK2K-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBK2K-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBK2K-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBKp-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBKp-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBKp-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBKp-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBT-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBT-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBT-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBT-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBT-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBT-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBT-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBT-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBTpc-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBTpc-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBTpc-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBTpc-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBpc-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBpc-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/GBpc-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/GBpc-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKdla-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKdla-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKdla-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKdla-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKdlb-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKdlb-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKdlb-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKdlb-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKgccs-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKgccs-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKgccs-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKgccs-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKm314-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKm314-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKm314-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKm314-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKm471-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKm471-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKm471-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKm471-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKscs-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKscs-B5-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/HKscs-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/HKscs-B5-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Hankaku.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Hankaku.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Hiragana.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Hiragana.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSC-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSC-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSC-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSC-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSC-Johab-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSC-Johab-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSC-Johab-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSC-Johab-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-HW-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-HW-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-HW-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-HW-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSCms-UHC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSCpc-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSCpc-EUC-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/KSCpc-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/KSCpc-EUC-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Katakana.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Katakana.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/LICENSE: -------------------------------------------------------------------------------- 1 | %%Copyright: ----------------------------------------------------------- 2 | %%Copyright: Copyright 1990-2009 Adobe Systems Incorporated. 3 | %%Copyright: All rights reserved. 4 | %%Copyright: 5 | %%Copyright: Redistribution and use in source and binary forms, with or 6 | %%Copyright: without modification, are permitted provided that the 7 | %%Copyright: following conditions are met: 8 | %%Copyright: 9 | %%Copyright: Redistributions of source code must retain the above 10 | %%Copyright: copyright notice, this list of conditions and the following 11 | %%Copyright: disclaimer. 12 | %%Copyright: 13 | %%Copyright: Redistributions in binary form must reproduce the above 14 | %%Copyright: copyright notice, this list of conditions and the following 15 | %%Copyright: disclaimer in the documentation and/or other materials 16 | %%Copyright: provided with the distribution. 17 | %%Copyright: 18 | %%Copyright: Neither the name of Adobe Systems Incorporated nor the names 19 | %%Copyright: of its contributors may be used to endorse or promote 20 | %%Copyright: products derived from this software without specific prior 21 | %%Copyright: written permission. 22 | %%Copyright: 23 | %%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 24 | %%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 25 | %%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | %%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | %%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 28 | %%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 29 | %%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | %%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | %%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32 | %%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 33 | %%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 34 | %%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 35 | %%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | %%Copyright: ----------------------------------------------------------- 37 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/NWP-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/NWP-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/NWP-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/NWP-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/RKSJ-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/RKSJ-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/Roman.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/Roman.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UCS2-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UCS2-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF16-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF16-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF8-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniCNS-UTF8-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UCS2-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UCS2-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF16-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF16-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF8-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniGB-UTF8-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-HW-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-HW-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-HW-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-HW-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UCS2-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF16-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF16-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF8-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS-UTF8-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF16-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF16-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF8-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJIS2004-UTF8-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISPro-UCS2-HW-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISPro-UCS2-HW-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISPro-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISPro-UCS2-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISPro-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISPro-UTF8-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX0213-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX0213-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX0213-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX0213-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX02132004-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX02132004-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX02132004-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniJISX02132004-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UCS2-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UCS2-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF16-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF16-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF32-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF32-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF8-H.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/UniKS-UTF8-V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/V.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/cmaps/WP-Symbol.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/cmaps/WP-Symbol.bcmap -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/compressed.tracemonkey-pldi-09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/compressed.tracemonkey-pldi-09.pdf -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/debugger.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Mozilla Foundation 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | :root { 17 | --panel-width: 300px; 18 | } 19 | 20 | #PDFBug, 21 | #PDFBug :is(input, button, select) { 22 | font: message-box; 23 | } 24 | #PDFBug { 25 | color-scheme: only light; 26 | 27 | background-color: white; 28 | color: black; 29 | border: 1px solid rgb(102 102 102); 30 | position: fixed; 31 | top: 32px; 32 | right: 0; 33 | bottom: 0; 34 | font-size: 10px; 35 | padding: 0; 36 | width: var(--panel-width); 37 | } 38 | #PDFBug .controls { 39 | background: rgb(238 238 238); 40 | border-bottom: 1px solid rgb(102 102 102); 41 | padding: 3px; 42 | } 43 | #PDFBug .panels { 44 | inset: 27px 0 0; 45 | overflow: auto; 46 | position: absolute; 47 | } 48 | #PDFBug .panels > div { 49 | padding: 5px; 50 | } 51 | #PDFBug button.active { 52 | font-weight: bold; 53 | } 54 | .debuggerShowText, 55 | .debuggerHideText:hover { 56 | background-color: rgb(255 255 0 / 0.25); 57 | } 58 | #PDFBug .stats { 59 | font-family: courier; 60 | font-size: 10px; 61 | white-space: pre; 62 | } 63 | #PDFBug .stats .title { 64 | font-weight: bold; 65 | } 66 | #PDFBug table { 67 | font-size: 10px; 68 | white-space: pre; 69 | } 70 | #PDFBug table.showText { 71 | border-collapse: collapse; 72 | text-align: center; 73 | } 74 | #PDFBug table.showText, 75 | #PDFBug table.showText :is(tr, td) { 76 | border: 1px solid black; 77 | padding: 1px; 78 | } 79 | #PDFBug table.showText td.advance { 80 | color: grey; 81 | } 82 | 83 | #viewer.textLayer-visible .textLayer { 84 | opacity: 1; 85 | } 86 | 87 | #viewer.textLayer-visible .canvasWrapper { 88 | background-color: rgb(128 255 128); 89 | } 90 | 91 | #viewer.textLayer-visible .canvasWrapper canvas { 92 | mix-blend-mode: screen; 93 | } 94 | 95 | #viewer.textLayer-visible .textLayer span { 96 | background-color: rgb(255 255 0 / 0.1); 97 | color: rgb(0 0 0); 98 | border: solid 1px rgb(255 0 0 / 0.5); 99 | box-sizing: border-box; 100 | } 101 | 102 | #viewer.textLayer-visible .textLayer span[aria-owns] { 103 | background-color: rgb(255 0 0 / 0.3); 104 | } 105 | 106 | #viewer.textLayer-hover .textLayer span:hover { 107 | background-color: rgb(255 255 255); 108 | color: rgb(0 0 0); 109 | } 110 | 111 | #viewer.textLayer-shadow .textLayer span { 112 | background-color: rgb(255 255 255 / 0.6); 113 | color: rgb(0 0 0); 114 | } 115 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/iccs/CGATS001Compat-v2-micro.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/iccs/CGATS001Compat-v2-micro.icc -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/altText_add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/altText_done.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/altText_spinner.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/altText_warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-check.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-comment.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-help.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 16 | 18 | 21 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-insert.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-key.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-newparagraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-noicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-note.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 14 | 21 | 28 | 35 | 42 | 43 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-paperclip.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/annotation-pushpin.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/cursor-editorFreeHighlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/cursor-editorFreeText.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/cursor-editorInk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/editor-toolbar-delete.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/editor-toolbar-edit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/findbarButton-next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/findbarButton-previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/gv-toolbarButton-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/loading-icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/images/loading-icon.gif -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/loading.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/messageBar_closingButton.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/messageBar_info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/messageBar_warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-documentProperties.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-firstPage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-handTool.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-lastPage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-rotateCcw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-rotateCw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-scrollHorizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-scrollPage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-scrollVertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-scrollWrapped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-selectTool.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-spreadEven.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-spreadNone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/secondaryToolbarButton-spreadOdd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-currentOutlineItem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-editorFreeText.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-editorHighlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-editorInk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-editorSignature.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-editorStamp.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-menuArrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-openFile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-pageDown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-pageUp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-presentationMode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-print.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-secondaryToolbarToggle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-sidebarToggle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-viewAttachments.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-viewLayers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-viewOutline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-viewThumbnail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-zoomIn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/toolbarButton-zoomOut.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/treeitem-collapsed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/images/treeitem-expanded.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/locale/locale.json: -------------------------------------------------------------------------------- 1 | {"ach":"ach/viewer.ftl","af":"af/viewer.ftl","an":"an/viewer.ftl","ar":"ar/viewer.ftl","ast":"ast/viewer.ftl","az":"az/viewer.ftl","be":"be/viewer.ftl","bg":"bg/viewer.ftl","bn":"bn/viewer.ftl","bo":"bo/viewer.ftl","br":"br/viewer.ftl","brx":"brx/viewer.ftl","bs":"bs/viewer.ftl","ca":"ca/viewer.ftl","cak":"cak/viewer.ftl","ckb":"ckb/viewer.ftl","cs":"cs/viewer.ftl","cy":"cy/viewer.ftl","da":"da/viewer.ftl","de":"de/viewer.ftl","dsb":"dsb/viewer.ftl","el":"el/viewer.ftl","en-ca":"en-CA/viewer.ftl","en-gb":"en-GB/viewer.ftl","en-us":"en-US/viewer.ftl","eo":"eo/viewer.ftl","es-ar":"es-AR/viewer.ftl","es-cl":"es-CL/viewer.ftl","es-es":"es-ES/viewer.ftl","es-mx":"es-MX/viewer.ftl","et":"et/viewer.ftl","eu":"eu/viewer.ftl","fa":"fa/viewer.ftl","ff":"ff/viewer.ftl","fi":"fi/viewer.ftl","fr":"fr/viewer.ftl","fur":"fur/viewer.ftl","fy-nl":"fy-NL/viewer.ftl","ga-ie":"ga-IE/viewer.ftl","gd":"gd/viewer.ftl","gl":"gl/viewer.ftl","gn":"gn/viewer.ftl","gu-in":"gu-IN/viewer.ftl","he":"he/viewer.ftl","hi-in":"hi-IN/viewer.ftl","hr":"hr/viewer.ftl","hsb":"hsb/viewer.ftl","hu":"hu/viewer.ftl","hy-am":"hy-AM/viewer.ftl","hye":"hye/viewer.ftl","ia":"ia/viewer.ftl","id":"id/viewer.ftl","is":"is/viewer.ftl","it":"it/viewer.ftl","ja":"ja/viewer.ftl","ka":"ka/viewer.ftl","kab":"kab/viewer.ftl","kk":"kk/viewer.ftl","km":"km/viewer.ftl","kn":"kn/viewer.ftl","ko":"ko/viewer.ftl","lij":"lij/viewer.ftl","lo":"lo/viewer.ftl","lt":"lt/viewer.ftl","ltg":"ltg/viewer.ftl","lv":"lv/viewer.ftl","meh":"meh/viewer.ftl","mk":"mk/viewer.ftl","ml":"ml/viewer.ftl","mr":"mr/viewer.ftl","ms":"ms/viewer.ftl","my":"my/viewer.ftl","nb-no":"nb-NO/viewer.ftl","ne-np":"ne-NP/viewer.ftl","nl":"nl/viewer.ftl","nn-no":"nn-NO/viewer.ftl","oc":"oc/viewer.ftl","pa-in":"pa-IN/viewer.ftl","pl":"pl/viewer.ftl","pt-br":"pt-BR/viewer.ftl","pt-pt":"pt-PT/viewer.ftl","rm":"rm/viewer.ftl","ro":"ro/viewer.ftl","ru":"ru/viewer.ftl","sat":"sat/viewer.ftl","sc":"sc/viewer.ftl","scn":"scn/viewer.ftl","sco":"sco/viewer.ftl","si":"si/viewer.ftl","sk":"sk/viewer.ftl","skr":"skr/viewer.ftl","sl":"sl/viewer.ftl","son":"son/viewer.ftl","sq":"sq/viewer.ftl","sr":"sr/viewer.ftl","sv-se":"sv-SE/viewer.ftl","szl":"szl/viewer.ftl","ta":"ta/viewer.ftl","te":"te/viewer.ftl","tg":"tg/viewer.ftl","th":"th/viewer.ftl","tl":"tl/viewer.ftl","tr":"tr/viewer.ftl","trs":"trs/viewer.ftl","uk":"uk/viewer.ftl","ur":"ur/viewer.ftl","uz":"uz/viewer.ftl","vi":"vi/viewer.ftl","wo":"wo/viewer.ftl","xh":"xh/viewer.ftl","zh-cn":"zh-CN/viewer.ftl","zh-tw":"zh-TW/viewer.ftl"} -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/locale/scn/viewer.ftl: -------------------------------------------------------------------------------- 1 | # This Source Code Form is subject to the terms of the Mozilla Public 2 | # License, v. 2.0. If a copy of the MPL was not distributed with this 3 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 | 5 | 6 | ## Main toolbar buttons (tooltips and alt text for images) 7 | 8 | pdfjs-zoom-out-button = 9 | .title = Cchiù nicu 10 | pdfjs-zoom-out-button-label = Cchiù nicu 11 | pdfjs-zoom-in-button = 12 | .title = Cchiù granni 13 | pdfjs-zoom-in-button-label = Cchiù granni 14 | 15 | ## Secondary toolbar and context menu 16 | 17 | 18 | ## Document properties dialog 19 | 20 | 21 | ## Variables: 22 | ## $width (Number) - the width of the (current) page 23 | ## $height (Number) - the height of the (current) page 24 | ## $unit (String) - the unit of measurement of the (current) page 25 | ## $name (String) - the name of the (current) page 26 | ## $orientation (String) - the orientation of the (current) page 27 | 28 | 29 | ## 30 | 31 | # The linearization status of the document; usually called "Fast Web View" in 32 | # English locales of Adobe software. 33 | pdfjs-document-properties-linearized = Vista web lesta: 34 | pdfjs-document-properties-linearized-yes = Se 35 | 36 | ## Print 37 | 38 | pdfjs-print-progress-close-button = Sfai 39 | 40 | ## Tooltips and alt text for side panel toolbar buttons 41 | 42 | 43 | ## Thumbnails panel item (tooltip and alt text for images) 44 | 45 | 46 | ## Find panel button title and messages 47 | 48 | 49 | ## Predefined zoom values 50 | 51 | pdfjs-page-scale-width = Larghizza dâ pàggina 52 | 53 | ## PDF page 54 | 55 | 56 | ## Loading indicator messages 57 | 58 | 59 | ## Annotations 60 | 61 | 62 | ## Password 63 | 64 | pdfjs-password-cancel-button = Sfai 65 | 66 | ## Editing 67 | 68 | 69 | ## Default editor aria labels 70 | 71 | 72 | ## Remove button for the various kind of editor. 73 | 74 | 75 | ## 76 | 77 | 78 | ## Alt-text dialog 79 | 80 | 81 | ## Editor resizers 82 | ## This is used in an aria label to help to understand the role of the resizer. 83 | 84 | 85 | ## Color picker 86 | 87 | 88 | ## Show all highlights 89 | ## This is a toggle button to show/hide all the highlights. 90 | 91 | 92 | ## New alt-text dialog 93 | ## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy. 94 | 95 | 96 | ## Image alt-text settings 97 | 98 | 99 | ## "Annotations removed" bar 100 | 101 | 102 | ## Add a signature dialog 103 | 104 | 105 | ## Tab names 106 | 107 | 108 | ## Tab panels 109 | 110 | 111 | ## Controls 112 | 113 | 114 | ## Dialog buttons 115 | 116 | 117 | ## Main menu for adding/removing signatures 118 | 119 | 120 | ## Editor toolbar 121 | 122 | 123 | ## Edit signature description dialog 124 | 125 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitDingbats.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitDingbats.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixed.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixed.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixedBold.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixedBold.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixedBoldItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixedBoldItalic.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixedItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitFixedItalic.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerif.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerif.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerifBold.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerifBold.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerifBoldItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerifBoldItalic.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerifItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSerifItalic.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSymbol.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/FoxitSymbol.pfb -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/LICENSE_FOXIT: -------------------------------------------------------------------------------- 1 | // Copyright 2014 PDFium Authors. All rights reserved. 2 | // 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-Bold.ttf -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-BoldItalic.ttf -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-Italic.ttf -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/standard_fonts/LiberationSans-Regular.ttf -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/wasm/LICENSE_OPENJPEG: -------------------------------------------------------------------------------- 1 | /* 2 | * The copyright in this software is being made available under the 2-clauses 3 | * BSD License, included below. This software may be subject to other third 4 | * party and contributor rights, including patent rights, and no such rights 5 | * are granted under this license. 6 | * 7 | * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium 8 | * Copyright (c) 2002-2014, Professor Benoit Macq 9 | * Copyright (c) 2003-2014, Antonin Descampe 10 | * Copyright (c) 2003-2009, Francois-Olivier Devaux 11 | * Copyright (c) 2005, Herve Drolon, FreeImage Team 12 | * Copyright (c) 2002-2003, Yannick Verschueren 13 | * Copyright (c) 2001-2003, David Janssens 14 | * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France 15 | * Copyright (c) 2012, CS Systemes d'Information, France 16 | * 17 | * All rights reserved. 18 | * 19 | * Redistribution and use in source and binary forms, with or without 20 | * modification, are permitted provided that the following conditions 21 | * are met: 22 | * 1. Redistributions of source code must retain the above copyright 23 | * notice, this list of conditions and the following disclaimer. 24 | * 2. Redistributions in binary form must reproduce the above copyright 25 | * notice, this list of conditions and the following disclaimer in the 26 | * documentation and/or other materials provided with the distribution. 27 | * 28 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' 29 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 32 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | * POSSIBILITY OF SUCH DAMAGE. 39 | */ 40 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/wasm/LICENSE_PDFJS_OPENJPEG: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024, Mozilla Foundation 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this 7 | list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/wasm/LICENSE_PDFJS_QCMS: -------------------------------------------------------------------------------- 1 | Copyright (c) 2025, Mozilla Foundation 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this 7 | list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/wasm/LICENSE_QCMS: -------------------------------------------------------------------------------- 1 | qcms 2 | Copyright (C) 2009-2024 Mozilla Corporation 3 | Copyright (C) 1998-2007 Marti Maria 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the "Software"), 7 | to deal in the Software without restriction, including without limitation 8 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | and/or sell copies of the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 17 | THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/wasm/openjpeg.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/wasm/openjpeg.wasm -------------------------------------------------------------------------------- /src/tools/browser/http_server/pdf_viewer/wasm/qcms_bg.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyworkAI/DeepResearchAgent/d49646cfedf51cb8cef9a71adb3b5500bb70b974/src/tools/browser/http_server/pdf_viewer/wasm/qcms_bg.wasm -------------------------------------------------------------------------------- /src/tools/browser/http_server/video_viewer/player.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | YouTube Player 6 | 7 | 8 |
9 | 10 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/tools/file_reader.py: -------------------------------------------------------------------------------- 1 | from src.tools import AsyncTool, ToolResult 2 | from src.models import Model 3 | from src.tools.markdown.mdconvert import MarkitdownConverter 4 | 5 | _FILE_READER_DESCRIPTION = """Call this tool to read a file as markdown. 6 | This tool handles the following file extensions: [".html", ".htm", ".xlsx", ".pptx", ".wav", ".mp3", ".m4a", ".flac", ".pdf", ".docx", ".pdb", '.zip'], and all other types of files. 7 | * If the file is an image, use the `deep_analyzer` tool instead! 8 | """ 9 | 10 | class FileReaderTool(AsyncTool): 11 | name: str = "read_file" 12 | description: str = _FILE_READER_DESCRIPTION 13 | parameters: dict = { 14 | "type": "object", 15 | "properties": { 16 | "file_path": { 17 | "type": "string", 18 | "description": "The path to the file you want to read as text. Must be a '.obj' file, like '.pdf'.", 19 | }, 20 | }, 21 | "required": ["file_path"], 22 | "additionalProperties": False, 23 | } 24 | output_type = "any" 25 | 26 | def __init__(self, model: Model, text_limit: int = 50000): 27 | super().__init__() 28 | self.model = model 29 | self.text_limit = text_limit 30 | 31 | self.converter: MarkitdownConverter = MarkitdownConverter( 32 | use_llm=False, 33 | model_id="gpt-4.1", 34 | timeout = 30 35 | ) 36 | 37 | async def forward(self, 38 | file_path: str) -> ToolResult: 39 | """Read a file and return its content as text.""" 40 | 41 | result = self.converter.convert(file_path) 42 | 43 | result = ToolResult( 44 | output=result.text_content, 45 | error=None 46 | ) 47 | return result -------------------------------------------------------------------------------- /src/tools/final_answer.py: -------------------------------------------------------------------------------- 1 | from src.tools.tools import AsyncTool, ToolResult 2 | 3 | 4 | class FinalAnswerTool(AsyncTool): 5 | name = "final_answer" 6 | description = "Provides a final answer to the given problem." 7 | parameters = { 8 | "type": "object", 9 | "properties": { 10 | "answer": { 11 | "type": "string", 12 | "description": "The final answer to the problem.", 13 | }, 14 | }, 15 | "required": ["answer"], 16 | } 17 | output_type = "any" 18 | 19 | async def forward(self, answer: str) -> ToolResult: 20 | result = ToolResult( 21 | output=answer, 22 | error=None, 23 | ) 24 | return result -------------------------------------------------------------------------------- /src/tools/markdown/__init__.py: -------------------------------------------------------------------------------- 1 | from src.tools.markdown.mdconvert import MarkitdownConverter 2 | 3 | __all__ = [ 4 | "MarkitdownConverter", 5 | ] -------------------------------------------------------------------------------- /src/tools/python_interpreter.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import Any, Dict, Optional 3 | 4 | from src.tools.executor.local_python_executor import ( 5 | BASE_BUILTIN_MODULES, 6 | BASE_PYTHON_TOOLS, 7 | evaluate_python_code, 8 | ) 9 | from src.tools import AsyncTool, ToolResult 10 | from src.registry import register_tool 11 | 12 | @register_tool("python_interpreter") 13 | class PythonInterpreterTool(AsyncTool): 14 | name = "python_interpreter" 15 | description = "This is a tool that evaluates python code. It can be used to perform calculations." 16 | parameters = { 17 | "type": "object", 18 | "properties": { 19 | "code": { 20 | "type": "string", 21 | "description": "The python code to run in interpreter.", 22 | }, 23 | }, 24 | "required": ["code"], 25 | } 26 | output_type = "any" 27 | 28 | def __init__(self, *args, authorized_imports=None, **kwargs): 29 | if authorized_imports is None: 30 | self.authorized_imports = list(set(BASE_BUILTIN_MODULES)) 31 | else: 32 | self.authorized_imports = list(set(BASE_BUILTIN_MODULES) | set(authorized_imports)) 33 | self.parameters = { 34 | "type": "object", 35 | "properties": { 36 | "code": { 37 | "type": "string", 38 | "description": ( 39 | "The code snippet to evaluate. All variables used in this snippet must be defined in this same snippet, " 40 | f"else you will get an error. This code can only import the following python libraries: {self.authorized_imports}." 41 | ), 42 | } 43 | }, 44 | "required": ["code"], 45 | } 46 | self.base_python_tools = BASE_PYTHON_TOOLS 47 | self.python_evaluator = evaluate_python_code 48 | super().__init__(*args, **kwargs) 49 | 50 | async def forward(self, code: str) -> ToolResult: 51 | 52 | try: 53 | state = {} 54 | output = str( 55 | self.python_evaluator( 56 | code, 57 | state=state, 58 | static_tools=self.base_python_tools, 59 | authorized_imports=self.authorized_imports, 60 | )[0] # The second element is boolean is_final_answer 61 | ) 62 | 63 | output = f"Stdout:\n{str(state['_print_outputs'])}\nOutput: {output}" 64 | 65 | result = ToolResult( 66 | output=output, 67 | error = None 68 | ) 69 | except Exception as e: 70 | result = ToolResult( 71 | output = None, 72 | error=str(e), 73 | ) 74 | return result -------------------------------------------------------------------------------- /src/tools/search/__init__.py: -------------------------------------------------------------------------------- 1 | from src.tools.search.baidu_search import BaiduSearchEngine 2 | from src.tools.search.bing_search import BingSearchEngine 3 | from src.tools.search.google_search import GoogleSearchEngine 4 | from src.tools.search.ddg_search import DuckDuckGoSearchEngine 5 | from src.tools.search.base import SearchItem, WebSearchEngine 6 | 7 | 8 | __all__ = [ 9 | "BaiduSearchEngine", 10 | "BingSearchEngine", 11 | "GoogleSearchEngine", 12 | "DuckDuckGoSearchEngine", 13 | "SearchItem", 14 | "WebSearchEngine", 15 | ] 16 | -------------------------------------------------------------------------------- /src/tools/search/baidu_search.py: -------------------------------------------------------------------------------- 1 | from baidusearch.baidusearch import search 2 | 3 | from src.tools.search.base import WebSearchEngine, SearchItem 4 | 5 | class BaiduSearchEngine(WebSearchEngine): 6 | async def perform_search(self, query: str, num_results: int = 10, *args, **kwargs): 7 | """ 8 | Baidu search engine. 9 | 10 | Returns results formatted according to SearchItem model. 11 | """ 12 | raw_results = search(query, num_results=num_results) 13 | 14 | # Convert raw results to SearchItem format 15 | results = [] 16 | for i, item in enumerate(raw_results): 17 | 18 | if isinstance(item, str): 19 | # If it's just a URL 20 | results.append( 21 | SearchItem(title=f"Baidu Result {i+1}", url=item, description=None) 22 | ) 23 | elif isinstance(item, dict): 24 | # If it's a dictionary with details 25 | results.append( 26 | SearchItem( 27 | title=item.get("title", f"Baidu Result {i+1}"), 28 | url=item.get("url", ""), 29 | description=item.get("abstract", None), 30 | ) 31 | ) 32 | else: 33 | # Try to get attributes directly 34 | try: 35 | results.append( 36 | SearchItem( 37 | title=getattr(item, "title", f"Baidu Result {i+1}"), 38 | url=getattr(item, "url", ""), 39 | description=getattr(item, "abstract", None), 40 | ) 41 | ) 42 | except Exception: 43 | # Fallback to a basic result 44 | results.append( 45 | SearchItem( 46 | title=f"Baidu Result {i+1}", url=str(item), description=None 47 | ) 48 | ) 49 | 50 | return results -------------------------------------------------------------------------------- /src/tools/search/base.py: -------------------------------------------------------------------------------- 1 | from typing import List, Any, Optional 2 | from pydantic import BaseModel, Field 3 | 4 | class SearchItem(BaseModel): 5 | """Represents a single search result item""" 6 | 7 | title: str = Field(description="The title of the search result") 8 | url: str = Field(description="The URL of the search result") 9 | date: Optional[str] = Field(default=None, description="The date of the search result") 10 | position: Optional[int] = Field(default=None, description="The position of the search result in the list") 11 | source: Optional[str] = Field(default=None, description="The source of the search result") 12 | description: Optional[str] = Field(default=None, description="A description or snippet of the search result") 13 | 14 | def __str__(self) -> str: 15 | """String representation of a search result item.""" 16 | return f"{self.title} - {self.url}" 17 | 18 | class WebSearchEngine(BaseModel): 19 | """Base class for web search engines.""" 20 | 21 | model_config = {"arbitrary_types_allowed": True} 22 | 23 | async def perform_search( 24 | self, query: str, num_results: int = 10, *args, **kwargs 25 | ) -> List[SearchItem]: 26 | """ 27 | Perform a web search and return a list of search items. 28 | 29 | Args: 30 | query (str): The search query to submit to the search engine. 31 | num_results (int, optional): The number of search results to return. Default is 10. 32 | args: Additional arguments. 33 | kwargs: Additional keyword arguments. 34 | 35 | Returns: 36 | List[SearchItem]: A list of SearchItem objects matching the search query. 37 | """ 38 | raise NotImplementedError -------------------------------------------------------------------------------- /src/tools/search/ddg_search.py: -------------------------------------------------------------------------------- 1 | from typing import List 2 | 3 | from duckduckgo_search import DDGS 4 | 5 | from src.tools.search.base import WebSearchEngine, SearchItem 6 | 7 | class DuckDuckGoSearchEngine(WebSearchEngine): 8 | async def perform_search( 9 | self, query: str, num_results: int = 10, *args, **kwargs 10 | ) -> List[SearchItem]: 11 | """ 12 | DuckDuckGo search engine. 13 | 14 | Returns results formatted according to SearchItem model. 15 | """ 16 | raw_results = DDGS().text(query, max_results=num_results) 17 | 18 | results = [] 19 | for i, item in enumerate(raw_results): 20 | if isinstance(item, str): 21 | # If it's just a URL 22 | results.append( 23 | SearchItem( 24 | title=f"DuckDuckGo Result {i + 1}", url=item, description=None 25 | ) 26 | ) 27 | elif isinstance(item, dict): 28 | # Extract data from the dictionary 29 | results.append( 30 | SearchItem( 31 | title=item.get("title", f"DuckDuckGo Result {i + 1}"), 32 | url=item.get("href", ""), 33 | description=item.get("body", None), 34 | ) 35 | ) 36 | else: 37 | # Try to extract attributes directly 38 | try: 39 | results.append( 40 | SearchItem( 41 | title=getattr(item, "title", f"DuckDuckGo Result {i + 1}"), 42 | url=getattr(item, "href", ""), 43 | description=getattr(item, "body", None), 44 | ) 45 | ) 46 | except Exception: 47 | # Fallback 48 | results.append( 49 | SearchItem( 50 | title=f"DuckDuckGo Result {i + 1}", 51 | url=str(item), 52 | description=None, 53 | ) 54 | ) 55 | 56 | return results -------------------------------------------------------------------------------- /src/tools/web_fetcher.py: -------------------------------------------------------------------------------- 1 | from typing import Optional 2 | from markitdown._base_converter import DocumentConverterResult 3 | from crawl4ai import AsyncWebCrawler 4 | 5 | from src.tools.markdown.mdconvert import MarkitdownConverter 6 | from src.tools import AsyncTool 7 | from src.logger import logger 8 | 9 | _WEB_FETCHER_DESCRIPTION = """Visit a webpage at a given URL and return its text. """ 10 | 11 | async def fetch_url(url: str, converter: Optional[MarkitdownConverter] = None) -> Optional[DocumentConverterResult]: 12 | try: 13 | async with AsyncWebCrawler() as crawler: 14 | result = await crawler.arun( 15 | url=url, 16 | ) 17 | 18 | if result: 19 | markdown = result.markdown 20 | 21 | res = DocumentConverterResult( 22 | markdown=markdown, 23 | title=f"Fetched content from {url}", 24 | ) 25 | return res 26 | else: 27 | if converter: 28 | res = converter.convert(result.html) 29 | return res 30 | except Exception as e: 31 | logger.error(f"Error fetching URL: {url}, Error: {e}") 32 | return None 33 | 34 | class WebFetcherTool(AsyncTool): 35 | name = "web_fetcher" 36 | description = _WEB_FETCHER_DESCRIPTION 37 | parameters = { 38 | "type": "object", 39 | "properties": { 40 | "url": { 41 | "type": "string", 42 | "description": "The relative or absolute url of the webpage to visit." 43 | } 44 | }, 45 | "required": ["url"], 46 | "additionalProperties": False 47 | } 48 | output_type = "any" 49 | 50 | def __init(self): 51 | self.converter = MarkitdownConverter( 52 | use_llm=False, 53 | model_id="gpt-4.1", 54 | timeout=30, 55 | ) 56 | 57 | async def forward(self, url: str) -> Optional[DocumentConverterResult]: 58 | """Fetch content from a given URL.""" 59 | 60 | # try to use asyncio to fetch the URL content 61 | try: 62 | res = await fetch_url(url, self.converter) 63 | if not res: 64 | logger.error(f"Failed to fetch content from {url}") 65 | res = DocumentConverterResult( 66 | markdown=f"Failed to fetch content from {url}", 67 | title="Error", 68 | ) 69 | except Exception as e: 70 | logger.error(f"Error fetching content: {e}") 71 | res = DocumentConverterResult( 72 | markdown=f"Failed to fetch content: {e}", 73 | title="Error", 74 | ) 75 | return res 76 | 77 | -------------------------------------------------------------------------------- /src/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from src.utils.path_utils import assemble_project_path 2 | from src.utils.token_utils import get_token_count 3 | from src.utils.image_utils import encode_image, download_image 4 | from src.utils.utils import (escape_code_brackets, 5 | _is_package_available, 6 | BASE_BUILTIN_MODULES, 7 | get_source, 8 | is_valid_name, 9 | instance_to_source, 10 | truncate_content, 11 | encode_image_base64, 12 | make_image_url, 13 | parse_json_blob, 14 | make_json_serializable, 15 | make_init_file, 16 | parse_code_blobs 17 | ) 18 | from src.utils.singleton import Singleton 19 | from src.utils.function_utils import (_convert_type_hints_to_json_schema, 20 | get_imports, 21 | get_json_schema) 22 | 23 | __all__ = [ 24 | "assemble_project_path", 25 | "get_token_count", 26 | "encode_image", 27 | "download_image", 28 | "escape_code_brackets", 29 | "_is_package_available", 30 | "BASE_BUILTIN_MODULES", 31 | "get_source", 32 | "is_valid_name", 33 | "instance_to_source", 34 | "truncate_content", 35 | "Singleton", 36 | "_convert_type_hints_to_json_schema", 37 | "get_imports", 38 | "get_json_schema", 39 | ] -------------------------------------------------------------------------------- /src/utils/image_utils.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import os 3 | import base64 4 | import mimetypes 5 | import uuid 6 | 7 | def download_image(image_url, download_path): 8 | 9 | user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0" 10 | 11 | request_kwargs = { 12 | "headers": {"User-Agent": user_agent}, 13 | "stream": True, 14 | } 15 | 16 | # Send a HTTP request to the URL 17 | response = requests.get(image_url, **request_kwargs) 18 | response.raise_for_status() 19 | content_type = response.headers.get("content-type", "") 20 | 21 | extension = mimetypes.guess_extension(content_type) 22 | if extension is None: 23 | extension = ".download" 24 | 25 | fname = str(uuid.uuid4()) + extension 26 | download_image_path = os.path.join(download_path, fname) 27 | 28 | with open(download_image_path, "wb") as fh: 29 | for chunk in response.iter_content(chunk_size=512): 30 | fh.write(chunk) 31 | 32 | return download_image_path 33 | 34 | def encode_image(image_path): 35 | with open(image_path, "rb") as image_file: 36 | return base64.b64encode(image_file.read()).decode("utf-8") -------------------------------------------------------------------------------- /src/utils/path_utils.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | import os 3 | 4 | def get_project_root(): 5 | root = str(Path(__file__).resolve().parents[2]) 6 | return root 7 | 8 | def assemble_project_path(path): 9 | """Assemble a path relative to the project root directory""" 10 | if not os.path.isabs(path): 11 | path = os.path.join(get_project_root(), path) 12 | return path -------------------------------------------------------------------------------- /src/utils/singleton.py: -------------------------------------------------------------------------------- 1 | """A singleton metaclass for ensuring only one instance of a class.""" 2 | 3 | import abc 4 | 5 | 6 | class Singleton(abc.ABCMeta, type): 7 | """ 8 | Singleton metaclass for ensuring only one instance of a class. 9 | """ 10 | 11 | _instances = {} 12 | 13 | def __call__(cls, *args, **kwargs): 14 | """Call method for the singleton metaclass.""" 15 | if cls not in cls._instances: 16 | cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) 17 | return cls._instances[cls] 18 | 19 | 20 | class AbstractSingleton(abc.ABC, metaclass=Singleton): 21 | """ 22 | Abstract singleton class for ensuring only one instance of a class. 23 | """ 24 | 25 | pass 26 | -------------------------------------------------------------------------------- /src/utils/token_utils.py: -------------------------------------------------------------------------------- 1 | import tiktoken 2 | 3 | def get_token_count(prompt: str, model: str = "gpt-4o") -> int: 4 | """ 5 | Get the number of tokens in a prompt. 6 | :param prompt: The prompt to count tokens for. 7 | :param model: The model to use for tokenization. Default is "gpt-4o". 8 | :return: The number of tokens in the prompt. 9 | """ 10 | encoding = tiktoken.encoding_for_model(model) 11 | return len(encoding.encode(prompt)) -------------------------------------------------------------------------------- /tests/test_analyzer.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import os 5 | import sys 6 | from pathlib import Path 7 | import asyncio 8 | 9 | root = str(Path(__file__).resolve().parents[1]) 10 | sys.path.append(root) 11 | 12 | from src.models import model_manager 13 | from src.tools.deep_analyzer import DeepAnalyzerTool 14 | 15 | if __name__ == "__main__": 16 | model_manager.init_models(use_local_proxy=True) 17 | 18 | deep_analyzer = DeepAnalyzerTool() 19 | 20 | task = """ 21 | Please analyze the attached file or uri and provide a detailed caption. 22 | """ 23 | 24 | response = asyncio.run(deep_analyzer.forward(task=task, source=os.path.join(root, "data/GAIA/2023/validation/6359a0b1-8f7b-499b-9336-840f9ab90688.png"))) 25 | 26 | print(response) -------------------------------------------------------------------------------- /tests/test_browser_use.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import os 5 | import sys 6 | from pathlib import Path 7 | import asyncio 8 | 9 | root = str(Path(__file__).resolve().parents[1]) 10 | sys.path.append(root) 11 | 12 | from src.tools.auto_browser import AutoBrowserUseTool 13 | from src.models import model_manager 14 | 15 | if __name__ == "__main__": 16 | model_manager.init_models(use_local_proxy=False) 17 | 18 | tool = AutoBrowserUseTool() 19 | 20 | task = "Open the video: https://www.youtube.com/watch?v=2s7OebVzJjI. Then jump to the 0:30." 21 | res = asyncio.run(tool.forward(task=task)) 22 | print(res) -------------------------------------------------------------------------------- /tests/test_dataset.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import os 5 | import sys 6 | from pathlib import Path 7 | 8 | root = str(Path(__file__).resolve().parents[1]) 9 | sys.path.append(root) 10 | 11 | from src.dataset.huggingface import HLEDataset 12 | from src.logger import logger 13 | 14 | if __name__ == "__main__": 15 | 16 | logger.init_logger("tmp.log") 17 | 18 | dataset = HLEDataset(path=os.path.join(root, "data", "hle"), split="test", name="hle") 19 | print(len(dataset)) 20 | -------------------------------------------------------------------------------- /tests/test_mdconverter.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | import os 3 | warnings.simplefilter("ignore", DeprecationWarning) 4 | 5 | import sys 6 | from pathlib import Path 7 | import asyncio 8 | 9 | root = str(Path(__file__).resolve().parents[1]) 10 | sys.path.append(root) 11 | 12 | from src.tools.markdown.mdconvert import MarkitdownConverter 13 | from src.models import model_manager 14 | 15 | if __name__ == "__main__": 16 | model_manager.init_models(use_local_proxy=False) 17 | 18 | mdconvert = MarkitdownConverter() 19 | md = mdconvert.convert(os.path.join(root, "data/GAIA/2023/validation/1f975693-876d-457b-a649-393859e79bf3.mp3")) 20 | print(md) 21 | -------------------------------------------------------------------------------- /tests/test_models.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import os 5 | import sys 6 | from pathlib import Path 7 | import asyncio 8 | 9 | root = str(Path(__file__).resolve().parents[1]) 10 | sys.path.append(root) 11 | 12 | from src.models import model_manager 13 | 14 | if __name__ == "__main__": 15 | model_manager.init_models(use_local_proxy=True) 16 | 17 | messages = [ 18 | { 19 | "role": "user", 20 | "content": "What is the capital of France?" 21 | } 22 | ] 23 | 24 | response = asyncio.run(model_manager.registed_models["claude-4-sonnet"]( 25 | messages=messages, 26 | )) 27 | print(response) -------------------------------------------------------------------------------- /tests/test_researcher.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import sys 5 | from pathlib import Path 6 | import asyncio 7 | 8 | root = str(Path(__file__).resolve().parents[1]) 9 | sys.path.append(root) 10 | 11 | from src.models import model_manager 12 | from src.tools.deep_researcher import DeepResearcherTool 13 | 14 | if __name__ == "__main__": 15 | from dotenv import load_dotenv 16 | load_dotenv(verbose=True) 17 | 18 | model_manager.init_models(use_local_proxy=True) 19 | 20 | task = """ 21 | Under DDC 633 on Bielefeld University Library's BASE, as of 2020, from what country was the unknown language article with a flag unique from the others? 22 | """ 23 | 24 | deep_research = DeepResearcherTool() 25 | results = asyncio.run(deep_research.forward(task)) 26 | print(results) -------------------------------------------------------------------------------- /tests/test_web_fetcher.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import os 5 | import sys 6 | from pathlib import Path 7 | import asyncio 8 | 9 | root = str(Path(__file__).resolve().parents[1]) 10 | sys.path.append(root) 11 | 12 | from src.tools.web_fetcher import WebFetcherTool 13 | from src.models import model_manager 14 | 15 | if __name__ == "__main__": 16 | model_manager.init_models(use_local_proxy=False) 17 | 18 | fetcher = WebFetcherTool() 19 | url = "https://www.scientistsforxr.earth/2023-ipcc" 20 | content = asyncio.run(fetcher.forward(url)) 21 | print(content) -------------------------------------------------------------------------------- /tests/test_web_searcher.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | warnings.simplefilter("ignore", DeprecationWarning) 3 | 4 | import os 5 | import sys 6 | from pathlib import Path 7 | import asyncio 8 | 9 | root = str(Path(__file__).resolve().parents[1]) 10 | sys.path.append(root) 11 | 12 | from src.tools.web_searcher import WebSearcherTool 13 | from src.models import model_manager 14 | 15 | if __name__ == "__main__": 16 | model_manager.init_models(use_local_proxy=False) 17 | 18 | web_search = WebSearcherTool() 19 | web_search.fetch_content = True 20 | 21 | task = """ 22 | If Eliud Kipchoge could maintain his record-making marathon pace indefinitely, how many thousand hours would it take him to run the distance between the Earth and the Moon its closest approach? Please use the minimum perigee value on the Wikipedia page for the Moon when carrying out your calculation. Round your result to the nearest 1000 hours and do not use any comma separators if necessary. 23 | """ 24 | instruct = "Please planning the solution step by step and return the final answer only. Do not include any intermediate steps in your final answer." 25 | 26 | 27 | search_response = asyncio.run(web_search.forward( 28 | query=task, 29 | )) 30 | print(search_response.output) --------------------------------------------------------------------------------