@researai/deepscientist 1.5.9 → 1.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +112 -99
  2. package/assets/branding/connector-qq.png +0 -0
  3. package/assets/branding/connector-rokid.png +0 -0
  4. package/assets/branding/connector-weixin.png +0 -0
  5. package/assets/branding/projects.png +0 -0
  6. package/bin/ds.js +519 -63
  7. package/docs/assets/branding/projects.png +0 -0
  8. package/docs/en/00_QUICK_START.md +338 -68
  9. package/docs/en/01_SETTINGS_REFERENCE.md +14 -0
  10. package/docs/en/02_START_RESEARCH_GUIDE.md +180 -4
  11. package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +62 -179
  12. package/docs/en/09_DOCTOR.md +66 -5
  13. package/docs/en/10_WEIXIN_CONNECTOR_GUIDE.md +137 -0
  14. package/docs/en/11_LICENSE_AND_RISK.md +256 -0
  15. package/docs/en/12_GUIDED_WORKFLOW_TOUR.md +446 -0
  16. package/docs/en/13_CORE_ARCHITECTURE_GUIDE.md +297 -0
  17. package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +506 -0
  18. package/docs/en/15_CODEX_PROVIDER_SETUP.md +284 -0
  19. package/docs/en/99_ACKNOWLEDGEMENTS.md +4 -1
  20. package/docs/en/README.md +83 -0
  21. package/docs/images/lingzhu/rokid-agent-platform-create.png +0 -0
  22. package/docs/images/weixin/weixin-plugin-entry.png +0 -0
  23. package/docs/images/weixin/weixin-plugin-entry.svg +33 -0
  24. package/docs/images/weixin/weixin-qr-confirm.svg +30 -0
  25. package/docs/images/weixin/weixin-quest-media-flow.svg +44 -0
  26. package/docs/images/weixin/weixin-settings-bind.svg +57 -0
  27. package/docs/zh/00_QUICK_START.md +345 -72
  28. package/docs/zh/01_SETTINGS_REFERENCE.md +14 -0
  29. package/docs/zh/02_START_RESEARCH_GUIDE.md +181 -3
  30. package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +62 -193
  31. package/docs/zh/09_DOCTOR.md +68 -5
  32. package/docs/zh/10_WEIXIN_CONNECTOR_GUIDE.md +144 -0
  33. package/docs/zh/11_LICENSE_AND_RISK.md +256 -0
  34. package/docs/zh/12_GUIDED_WORKFLOW_TOUR.md +442 -0
  35. package/docs/zh/13_CORE_ARCHITECTURE_GUIDE.md +296 -0
  36. package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +506 -0
  37. package/docs/zh/15_CODEX_PROVIDER_SETUP.md +285 -0
  38. package/docs/zh/99_ACKNOWLEDGEMENTS.md +4 -1
  39. package/docs/zh/README.md +129 -0
  40. package/install.sh +0 -34
  41. package/package.json +2 -2
  42. package/pyproject.toml +1 -1
  43. package/src/deepscientist/__init__.py +1 -1
  44. package/src/deepscientist/annotations.py +343 -0
  45. package/src/deepscientist/artifact/arxiv.py +484 -37
  46. package/src/deepscientist/artifact/service.py +574 -108
  47. package/src/deepscientist/arxiv_library.py +275 -0
  48. package/src/deepscientist/bash_exec/monitor.py +7 -5
  49. package/src/deepscientist/bash_exec/service.py +93 -21
  50. package/src/deepscientist/bridges/builtins.py +2 -0
  51. package/src/deepscientist/bridges/connectors.py +447 -0
  52. package/src/deepscientist/channels/__init__.py +2 -0
  53. package/src/deepscientist/channels/builtins.py +3 -1
  54. package/src/deepscientist/channels/local.py +3 -3
  55. package/src/deepscientist/channels/qq.py +8 -8
  56. package/src/deepscientist/channels/qq_gateway.py +1 -1
  57. package/src/deepscientist/channels/relay.py +14 -8
  58. package/src/deepscientist/channels/weixin.py +59 -0
  59. package/src/deepscientist/channels/weixin_ilink.py +388 -0
  60. package/src/deepscientist/config/models.py +23 -2
  61. package/src/deepscientist/config/service.py +539 -67
  62. package/src/deepscientist/connector/__init__.py +4 -0
  63. package/src/deepscientist/connector/connector_profiles.py +481 -0
  64. package/src/deepscientist/connector/lingzhu_support.py +668 -0
  65. package/src/deepscientist/connector/qq_profiles.py +206 -0
  66. package/src/deepscientist/connector/weixin_support.py +663 -0
  67. package/src/deepscientist/connector_profiles.py +1 -374
  68. package/src/deepscientist/connector_runtime.py +2 -0
  69. package/src/deepscientist/daemon/api/handlers.py +165 -5
  70. package/src/deepscientist/daemon/api/router.py +13 -1
  71. package/src/deepscientist/daemon/app.py +1444 -67
  72. package/src/deepscientist/doctor.py +4 -5
  73. package/src/deepscientist/gitops/diff.py +120 -29
  74. package/src/deepscientist/lingzhu_support.py +1 -182
  75. package/src/deepscientist/mcp/server.py +135 -7
  76. package/src/deepscientist/prompts/builder.py +128 -11
  77. package/src/deepscientist/qq_profiles.py +1 -196
  78. package/src/deepscientist/quest/node_traces.py +23 -0
  79. package/src/deepscientist/quest/service.py +359 -74
  80. package/src/deepscientist/quest/stage_views.py +71 -5
  81. package/src/deepscientist/runners/codex.py +170 -19
  82. package/src/deepscientist/runners/runtime_overrides.py +6 -0
  83. package/src/deepscientist/shared.py +33 -14
  84. package/src/deepscientist/weixin_support.py +1 -0
  85. package/src/prompts/connectors/lingzhu.md +3 -1
  86. package/src/prompts/connectors/qq.md +2 -1
  87. package/src/prompts/connectors/weixin.md +231 -0
  88. package/src/prompts/contracts/shared_interaction.md +4 -1
  89. package/src/prompts/system.md +61 -9
  90. package/src/skills/analysis-campaign/SKILL.md +46 -6
  91. package/src/skills/analysis-campaign/references/campaign-plan-template.md +21 -8
  92. package/src/skills/baseline/SKILL.md +1 -1
  93. package/src/skills/decision/SKILL.md +1 -1
  94. package/src/skills/experiment/SKILL.md +1 -1
  95. package/src/skills/finalize/SKILL.md +1 -1
  96. package/src/skills/idea/SKILL.md +1 -1
  97. package/src/skills/intake-audit/SKILL.md +1 -1
  98. package/src/skills/rebuttal/SKILL.md +74 -1
  99. package/src/skills/rebuttal/references/response-letter-template.md +55 -11
  100. package/src/skills/review/SKILL.md +118 -1
  101. package/src/skills/review/references/experiment-todo-template.md +23 -0
  102. package/src/skills/review/references/review-report-template.md +16 -0
  103. package/src/skills/review/references/revision-log-template.md +4 -0
  104. package/src/skills/scout/SKILL.md +1 -1
  105. package/src/skills/write/SKILL.md +168 -7
  106. package/src/skills/write/references/paper-experiment-matrix-template.md +131 -0
  107. package/src/tui/package.json +1 -1
  108. package/src/ui/dist/assets/{AiManusChatView-BKZ103sn.js → AiManusChatView-CnJcXynW.js} +156 -48
  109. package/src/ui/dist/assets/{AnalysisPlugin-mTTzGAlK.js → AnalysisPlugin-DeyzPEhV.js} +1 -1
  110. package/src/ui/dist/assets/{CliPlugin-BH58n3GY.js → CliPlugin-CB1YODQn.js} +164 -9
  111. package/src/ui/dist/assets/{CodeEditorPlugin-BKGRUH7e.js → CodeEditorPlugin-B-xicq1e.js} +8 -8
  112. package/src/ui/dist/assets/{CodeViewerPlugin-BMADwFWJ.js → CodeViewerPlugin-DT54ysXa.js} +5 -5
  113. package/src/ui/dist/assets/{DocViewerPlugin-ZOnTIHLN.js → DocViewerPlugin-DQtKT-VD.js} +3 -3
  114. package/src/ui/dist/assets/{GitDiffViewerPlugin-CQ7h1Djm.js → GitDiffViewerPlugin-hqHbCfnv.js} +20 -21
  115. package/src/ui/dist/assets/{ImageViewerPlugin-GVS5MsnC.js → ImageViewerPlugin-OcVo33jV.js} +5 -5
  116. package/src/ui/dist/assets/{LabCopilotPanel-BZNv1JML.js → LabCopilotPanel-DdGwhEUV.js} +11 -11
  117. package/src/ui/dist/assets/{LabPlugin-TWcJsdQA.js → LabPlugin-Ciz1gDaX.js} +2 -1
  118. package/src/ui/dist/assets/{LatexPlugin-DIjHiR2x.js → LatexPlugin-BhmjNQRC.js} +37 -11
  119. package/src/ui/dist/assets/{MarkdownViewerPlugin-D3ooGAH0.js → MarkdownViewerPlugin-BzdVH9Bx.js} +4 -4
  120. package/src/ui/dist/assets/{MarketplacePlugin-DfVfE9hN.js → MarketplacePlugin-DmyHspXt.js} +3 -3
  121. package/src/ui/dist/assets/{NotebookEditor-DDl0_Mc0.js → NotebookEditor-BMXKrDRk.js} +1 -1
  122. package/src/ui/dist/assets/{NotebookEditor-s8JhzuX1.js → NotebookEditor-BTVYRGkm.js} +12 -12
  123. package/src/ui/dist/assets/{PdfLoader-C2Sf6SJM.js → PdfLoader-CvcjJHXv.js} +14 -7
  124. package/src/ui/dist/assets/{PdfMarkdownPlugin-CXFLoIsa.js → PdfMarkdownPlugin-DW2ej8Vk.js} +73 -6
  125. package/src/ui/dist/assets/{PdfViewerPlugin-BYTmz2fK.js → PdfViewerPlugin-CmlDxbhU.js} +103 -34
  126. package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +3627 -0
  127. package/src/ui/dist/assets/{SearchPlugin-CjWBI1O9.js → SearchPlugin-DAjQZPSv.js} +1 -1
  128. package/src/ui/dist/assets/{TextViewerPlugin-DdOBU3-S.js → TextViewerPlugin-C-nVAZb_.js} +5 -4
  129. package/src/ui/dist/assets/{VNCViewer-B8HGgLwQ.js → VNCViewer-D7-dIYon.js} +10 -10
  130. package/src/ui/dist/assets/bot-C_G4WtNI.js +21 -0
  131. package/src/ui/dist/assets/branding/logo-rokid.png +0 -0
  132. package/src/ui/dist/assets/browser-BAcuE0Xj.js +2895 -0
  133. package/src/ui/dist/assets/{code-BWAY76JP.js → code-Cd7WfiWq.js} +1 -1
  134. package/src/ui/dist/assets/{file-content-C1NwU5oQ.js → file-content-B57zsL9y.js} +1 -1
  135. package/src/ui/dist/assets/{file-diff-panel-CywslwB9.js → file-diff-panel-DVoheLFq.js} +1 -1
  136. package/src/ui/dist/assets/{file-socket-B4kzuOBQ.js → file-socket-B5kXFxZP.js} +1 -1
  137. package/src/ui/dist/assets/{image-D-NZM-6P.js → image-LLOjkMHF.js} +1 -1
  138. package/src/ui/dist/assets/{index-DGIYDuTv.css → index-BQG-1s2o.css} +40 -13
  139. package/src/ui/dist/assets/{index-DHZJ_0TI.js → index-C3r2iGrp.js} +12 -12
  140. package/src/ui/dist/assets/{index-7Chr1g9c.js → index-CLQauncb.js} +15050 -9561
  141. package/src/ui/dist/assets/index-Dxa2eYMY.js +25 -0
  142. package/src/ui/dist/assets/{index-BdM1Gqfr.js → index-hOUOWbW2.js} +2 -2
  143. package/src/ui/dist/assets/{monaco-Cb2uKKe6.js → monaco-BGGAEii3.js} +1 -1
  144. package/src/ui/dist/assets/{pdf-effect-queue-DSw_D3RV.js → pdf-effect-queue-DlEr1_y5.js} +16 -1
  145. package/src/ui/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
  146. package/src/ui/dist/assets/{popover-Bg72DGgT.js → popover-CWJbJuYY.js} +1 -1
  147. package/src/ui/dist/assets/{project-sync-Ce_0BglY.js → project-sync-CRJiucYO.js} +18 -77
  148. package/src/ui/dist/assets/select-CoHB7pvH.js +1690 -0
  149. package/src/ui/dist/assets/{sigma-DPaACDrh.js → sigma-D5aJWR8J.js} +1 -1
  150. package/src/ui/dist/assets/{index-CDxNdQdz.js → square-check-big-DUK_mnkS.js} +2 -13
  151. package/src/ui/dist/assets/{trash-BvTgE5__.js → trash-ChU3SEE3.js} +1 -1
  152. package/src/ui/dist/assets/{useCliAccess-CgPeMOwP.js → useCliAccess-BrJBV3tY.js} +1 -1
  153. package/src/ui/dist/assets/{useFileDiffOverlay-xPhz7P5B.js → useFileDiffOverlay-C2OQaVWc.js} +1 -1
  154. package/src/ui/dist/assets/{wrap-text-C3Un3YQr.js → wrap-text-C7Qqh-om.js} +1 -1
  155. package/src/ui/dist/assets/{zoom-out-BgxLa0Ri.js → zoom-out-rtX0FKya.js} +1 -1
  156. package/src/ui/dist/index.html +2 -2
  157. package/src/ui/dist/assets/AutoFigurePlugin-BGxN8Umr.css +0 -3056
  158. package/src/ui/dist/assets/AutoFigurePlugin-C_wWw4AP.js +0 -8149
  159. package/src/ui/dist/assets/PdfViewerPlugin-BJXtIwj_.css +0 -260
  160. package/src/ui/dist/assets/Stepper-B0Dd8CxK.js +0 -158
  161. package/src/ui/dist/assets/bibtex-CKaefIN2.js +0 -189
  162. package/src/ui/dist/assets/file-utils-H2fjA46S.js +0 -109
  163. package/src/ui/dist/assets/message-square-BzjLiXir.js +0 -16
  164. package/src/ui/dist/assets/pdfjs-DU1YE8WO.js +0 -3
  165. package/src/ui/dist/assets/tooltip-C_mA6R0w.js +0 -108
@@ -0,0 +1,137 @@
1
+ # 10 Weixin Connector Guide: Bind Personal WeChat To DeepScientist
2
+
3
+ This guide explains the built-in DeepScientist Weixin connector.
4
+
5
+ DeepScientist already includes the Weixin iLink runtime. You do not need to install OpenClaw, run `npx`, or configure a separate local bridge. The only required binding action is:
6
+
7
+ 1. open `Settings > Connectors > WeChat`
8
+ 2. click `Bind WeChat`
9
+ 3. scan the QR code with WeChat
10
+ 4. confirm the login inside WeChat
11
+
12
+ After confirmation, DeepScientist saves the Weixin connector automatically and starts long polling.
13
+
14
+ ## 1. What this connector does
15
+
16
+ After binding succeeds, DeepScientist can:
17
+
18
+ - receive WeChat text messages
19
+ - receive WeChat image, video, and file attachments
20
+ - copy inbound attachments into the active quest under `userfiles/weixin/...`
21
+ - send text replies back to the same WeChat context
22
+ - send native WeChat images, videos, and files when the agent attaches a real local file
23
+
24
+ Inbound media is materialized into the quest, not kept only in an ephemeral connector cache. The current path shape is:
25
+
26
+ ```text
27
+ ~/DeepScientist/quests/<quest_id>/userfiles/weixin/<message_batch>/
28
+ ```
29
+
30
+ That makes Weixin media behave much closer to the QQ path: the quest receives durable local files that the agent can read.
31
+
32
+ ![DeepScientist Weixin binding overview](../images/weixin/weixin-settings-bind.svg)
33
+
34
+ ## 2. Before you bind
35
+
36
+ Check these items first:
37
+
38
+ - DeepScientist daemon and web UI are already running
39
+ - you can open `Settings > Connectors > WeChat`
40
+ - you have a real personal WeChat account on the phone that will scan the QR code
41
+
42
+ This reference screenshot is only there to remind you to use the phone that already holds the target WeChat account. The actual binding still happens from the DeepScientist QR modal, not from a separate `npx` tool.
43
+
44
+ ![WeChat app reference](../images/weixin/weixin-plugin-entry.png)
45
+
46
+ ## 3. Bind from the Settings page
47
+
48
+ Open:
49
+
50
+ - [Settings > Connectors > WeChat](/settings/connectors#connector-weixin)
51
+
52
+ Then:
53
+
54
+ 1. click `Bind WeChat`
55
+ 2. wait for DeepScientist to generate the QR code
56
+ 3. scan it with WeChat
57
+ 4. confirm the login on the phone
58
+
59
+ Important points:
60
+
61
+ - the modal only shows the QR code because DeepScientist already knows the full iLink login flow
62
+ - there is no manual `bot_token` form during binding
63
+ - there is no extra Save button inside the QR modal
64
+ - when the platform returns `bot_token` and account ids, DeepScientist persists them automatically
65
+
66
+ After success, the WeChat card shows:
67
+
68
+ - `Bot account`
69
+ - `Owner account`
70
+
71
+ That is the saved connector binding.
72
+
73
+ ![QR scan and confirmation flow](../images/weixin/weixin-qr-confirm.svg)
74
+
75
+ ## 4. Verify with one text or media message
76
+
77
+ After the QR login succeeds:
78
+
79
+ 1. bind a quest to the Weixin connector from `Start Research` or the project surface
80
+ 2. send one text, image, video, or file message from WeChat
81
+ 3. let DeepScientist ingest it into the quest
82
+ 4. confirm the reply arrives in the same WeChat thread
83
+
84
+ Current behavior:
85
+
86
+ - inbound text enters the quest as the user message
87
+ - inbound image, video, and file attachments are downloaded and copied into quest-local `userfiles/weixin/...`
88
+ - media-only inbound messages are no longer dropped
89
+ - outbound text replies use the runtime-managed `context_token`
90
+ - outbound image, video, and file delivery works when the agent sends a real local file path
91
+
92
+ ![Quest-local media flow](../images/weixin/weixin-quest-media-flow.svg)
93
+
94
+ ## 5. What the agent should do with Weixin media
95
+
96
+ For ordinary user guidance, the important rule is simple:
97
+
98
+ - if the agent only needs to answer with text, normal message replies are enough
99
+ - if the agent needs to send a native WeChat image, video, or file, it must send a real local file from the quest
100
+
101
+ In practice, that means the agent should prefer quest-local files such as:
102
+
103
+ ```text
104
+ artifacts/...
105
+ experiments/...
106
+ paper/...
107
+ userfiles/...
108
+ ```
109
+
110
+ instead of depending on an arbitrary external URL.
111
+
112
+ ## 6. Troubleshooting
113
+
114
+ ### QR code keeps waiting
115
+
116
+ Check:
117
+
118
+ - the phone is scanning with the same WeChat account you want to bind
119
+ - the phone finished the confirmation step inside WeChat
120
+ - DeepScientist is still running while you wait
121
+
122
+ If the QR expires, DeepScientist refreshes it automatically.
123
+
124
+ ### I only see text, but not inbound media
125
+
126
+ Re-test with a real image, video, or file. After a successful inbound media message, confirm that the quest now contains:
127
+
128
+ ```text
129
+ userfiles/weixin/<message_batch>/manifest.json
130
+ ```
131
+
132
+ and the copied media file next to it.
133
+
134
+ ## 7. References
135
+
136
+ - Runoob personal WeChat guide: https://www.runoob.com/ai-agent/openclaw-weixin.html
137
+ - Upstream Weixin protocol reference: https://github.com/hao-ji-xing/openclaw-weixin/blob/main/weixin-bot-api.md
@@ -0,0 +1,256 @@
1
+ # 11 License And Risk Notice
2
+
3
+ This document does two things:
4
+
5
+ 1. clarifies the DeepScientist open-source license and responsibility boundary
6
+ 2. lists the main risks that you, not the project maintainers, must control
7
+
8
+ This is not legal advice. If you plan to use DeepScientist in a company environment, production environment, external-facing service, or regulated workflow, have your own legal, security, and operations teams review it again.
9
+
10
+ ## 1. License And Responsibility Boundary
11
+
12
+ DeepScientist is released under the Apache License 2.0.
13
+
14
+ The full license text is in the repository root:
15
+
16
+ - [LICENSE](../../LICENSE)
17
+
18
+ The practical meaning is:
19
+
20
+ - DeepScientist is distributed under Apache 2.0
21
+ - DeepScientist is provided on an "AS IS" basis, without warranties
22
+ - the project authors and maintainers are not responsible for any direct or indirect consequence caused by using, deploying, modifying, redistributing, or exposing DeepScientist
23
+ - you are responsible for runtime environment control, permission boundaries, public exposure, third-party account binding, output review, data handling, and compliance
24
+
25
+ In other words, DeepScientist is a high-capability automation system. It is not a managed service and it is not a security-audited guarantee layer. You must control the operating boundary yourself.
26
+
27
+ ## 2. Main Risk Areas
28
+
29
+ These risks are real, and they compound each other.
30
+
31
+ ### 2.1 Host And Server Damage
32
+
33
+ DeepScientist can drive models to execute commands, modify files, install dependencies, run scripts, and read or write project directories.
34
+
35
+ That means it can:
36
+
37
+ - delete, overwrite, or corrupt files
38
+ - modify Git state, branches, or worktree contents
39
+ - install the wrong dependency set or contaminate the runtime environment
40
+ - remove logs, caches, experiment results, or intermediate outputs
41
+ - consume GPU, CPU, disk, or network resources incorrectly
42
+ - interfere with other services on the same machine, or even make a server unstable
43
+
44
+ If you run it directly on a high-privilege host, production machine, shared development server, or a system holding important data, the risk increases substantially.
45
+
46
+ ### 2.2 Fabricated Results, Wrong Conclusions, And Research Risk
47
+
48
+ DeepScientist is model-driven. It does not guarantee truth.
49
+
50
+ It may:
51
+
52
+ - fabricate metrics, logs, tables, or experiment results
53
+ - invent citations, prior work summaries, or baseline comparisons
54
+ - drift away from the intended task or evaluation protocol
55
+ - produce analyses that sound plausible but are not reproducible
56
+ - write conclusions that are too strong for the available evidence
57
+
58
+ Any experiment result, paper text, chart, citation, conclusion, or reviewer response must be reviewed by a human before you treat it as trustworthy.
59
+
60
+ ### 2.3 Data Loss, Corruption, And Irreversible Changes
61
+
62
+ Even without obvious malicious behavior, automation can still produce irreversible damage.
63
+
64
+ Examples:
65
+
66
+ - quest files get overwritten
67
+ - uncommitted local edits get polluted
68
+ - auto-generated files mix into final result directories
69
+ - a bad script corrupts datasets or experiment folders at scale
70
+ - an external connector receives outputs that should not have been sent
71
+
72
+ If your data, projects, or paper drafts are not backed up, this kind of damage may be difficult to recover from.
73
+
74
+ ### 2.4 Secret, Credential, And Privacy Leakage
75
+
76
+ DeepScientist may touch sensitive material such as:
77
+
78
+ - API keys
79
+ - environment variables
80
+ - private repository locations
81
+ - research data
82
+ - connector tokens
83
+ - WeChat, QQ, Lingzhu, or other external account bindings
84
+
85
+ If you:
86
+
87
+ - expose the site publicly
88
+ - share the DeepScientist page casually
89
+ - allow untrusted users into the runtime environment
90
+ - send config files, logs, screenshots, or quest files that contain sensitive material
91
+
92
+ you may leak:
93
+
94
+ - model credentials
95
+ - connector identities
96
+ - WeChat or QQ messaging authority
97
+ - project data, experiment material, or private content
98
+
99
+ Once connectors are bound, the risk is no longer only "can someone open the page?" but also "can someone misuse the linked external account?"
100
+
101
+ ### 2.5 Public Exposure And Unauthorized Access
102
+
103
+ If you bind DeepScientist to `0.0.0.0`, a public IP, a reverse proxy, a tunnel, or a public domain, you are exposing an automation-capable system to the outside.
104
+
105
+ That can lead to:
106
+
107
+ - unauthorized access
108
+ - session probing or replay
109
+ - misuse of connector callback or polling contexts
110
+ - external visibility into project pages, settings pages, or logs
111
+ - accidental disclosure of internal paths, ports, or service topology
112
+
113
+ If WeChat, QQ, or other connectors are also bound, the impact is larger.
114
+
115
+ Unless you fully understand the consequences, do not casually share the site address and do not expose the operational UI to uncontrolled users.
116
+
117
+ ### 2.6 Third-Party Platform And Account Compliance
118
+
119
+ DeepScientist can integrate with QQ, WeChat, Lingzhu, and other external platforms.
120
+
121
+ You are responsible for:
122
+
123
+ - third-party platform terms-of-service risk
124
+ - account suspension, rate-limit, restriction, or audit risk
125
+ - abuse complaints caused by automated outbound messages
126
+ - privacy and compliance issues caused by relaying data or files through those platforms
127
+
128
+ The project maintainers do not guarantee that your usage will satisfy local law, internal policy, or platform rules.
129
+
130
+ ### 2.7 Malicious Inputs, Prompt Injection, And Supply-Chain Risk
131
+
132
+ DeepScientist can read:
133
+
134
+ - repositories
135
+ - papers
136
+ - web pages
137
+ - issues, PRs, or READMEs
138
+ - uploaded attachments
139
+ - connector messages and files
140
+
141
+ Any of those can contain:
142
+
143
+ - malicious commands
144
+ - prompt injection
145
+ - misleading instructions
146
+ - fake benchmarks
147
+ - dependency installation steps with backdoors
148
+
149
+ If the model follows those instructions, the resulting behavior can become much more dangerous.
150
+
151
+ ### 2.8 Resource, Cost, And Abuse Risk
152
+
153
+ DeepScientist may run for a long time, call models repeatedly, download dependencies, execute experiments, and produce large numbers of files.
154
+
155
+ You are responsible for:
156
+
157
+ - API cost growth
158
+ - GPU or CPU occupation
159
+ - disk growth caused by logs, caches, artifacts, or datasets
160
+ - long-running load, overheating, or service contention
161
+
162
+ ## 3. Minimum Safety Practices Strongly Recommended
163
+
164
+ If you plan to use DeepScientist seriously, at least do the following.
165
+
166
+ ### 3.1 Prefer Docker Or Another Isolated Environment
167
+
168
+ Strongly prefer running DeepScientist inside Docker, a virtual machine, or an equivalent isolation boundary instead of running it directly on a privileged host.
169
+
170
+ The goal is simple:
171
+
172
+ - reduce filesystem blast radius
173
+ - reduce process privilege
174
+ - reduce network exposure
175
+ - reduce recovery cost when something goes wrong
176
+
177
+ ### 3.2 Always Use A Non-Root Account
178
+
179
+ Strong recommendation:
180
+
181
+ - run DeepScientist under a dedicated non-root user
182
+ - do not start it as `root`
183
+ - do not give it default write access to the whole machine
184
+ - do not let it touch sensitive host directories by default
185
+
186
+ If you must run it on a server, least privilege matters even more.
187
+
188
+ ### 3.3 Do Not Run It Directly On Production Or Critical Machines
189
+
190
+ Avoid running DeepScientist directly on:
191
+
192
+ - production database hosts
193
+ - live business servers
194
+ - control machines that store core source code and secrets
195
+ - shared bastion hosts
196
+ - desktops that hold important personal or commercial data
197
+
198
+ ### 3.4 Do Not Casually Share The Site Address Or Public Entry
199
+
200
+ Unless you already have proper access control in place, do not:
201
+
202
+ - post the DeepScientist URL in public groups
203
+ - map a `0.0.0.0`-bound port directly to the public internet
204
+ - publish an unauthenticated reverse-proxy address
205
+ - give other people direct operational access to a runtime that already has connectors bound
206
+
207
+ This is not only a page-viewing risk. It is also a credential and connector-authority leakage risk.
208
+
209
+ ### 3.5 Minimize Credential And Connector Privilege
210
+
211
+ Recommended:
212
+
213
+ - use separate test accounts for QQ, WeChat, or Lingzhu bindings
214
+ - avoid exposing your highest-value primary accounts to experimental runtimes
215
+ - do not keep every token in a single shared home directory
216
+ - rotate keys and connector tokens regularly
217
+ - keep outbound authority as narrow as possible
218
+
219
+ ### 3.6 Review Every Important Result Manually
220
+
221
+ Do not directly trust:
222
+
223
+ - experiment metrics
224
+ - charts
225
+ - paper sections
226
+ - related work summaries
227
+ - citation lists
228
+ - ablation claims
229
+ - statuses like "reproduced successfully"
230
+
231
+ The correct approach is to:
232
+
233
+ - inspect raw files
234
+ - inspect runtime logs
235
+ - inspect scripts and configs
236
+ - rerun key experiments
237
+ - spot-check citations and numbers
238
+
239
+ ### 3.7 Prepare Backup And Rollback
240
+
241
+ At minimum:
242
+
243
+ - put important quests under Git
244
+ - back up `~/DeepScientist`
245
+ - snapshot important data directories
246
+ - separate production data from experimental data
247
+
248
+ ## 4. Short Version
249
+
250
+ The shortest safe summary is:
251
+
252
+ 1. DeepScientist is released under Apache 2.0.
253
+ 2. The project authors and maintainers are not responsible for any consequence caused by your use of DeepScientist.
254
+ 3. It may damage a server, delete files, leak credentials, send wrong external messages, or fabricate results.
255
+ 4. Strongly prefer Docker or an equivalent isolated environment, and always run under a non-root account.
256
+ 5. Do not casually share the site address, and do not expose a runtime with bound WeChat, QQ, or other connectors to uncontrolled users.