@researai/deepscientist 1.5.1 → 1.5.2

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 (97) hide show
  1. package/README.md +47 -1
  2. package/bin/ds.js +1823 -121
  3. package/docs/en/00_QUICK_START.md +38 -20
  4. package/docs/en/01_SETTINGS_REFERENCE.md +20 -20
  5. package/docs/en/02_START_RESEARCH_GUIDE.md +11 -11
  6. package/docs/en/03_QQ_CONNECTOR_GUIDE.md +10 -10
  7. package/docs/en/05_TUI_GUIDE.md +1 -1
  8. package/docs/en/09_DOCTOR.md +48 -4
  9. package/docs/en/90_ARCHITECTURE.md +4 -2
  10. package/docs/zh/00_QUICK_START.md +38 -20
  11. package/docs/zh/01_SETTINGS_REFERENCE.md +21 -21
  12. package/docs/zh/02_START_RESEARCH_GUIDE.md +19 -19
  13. package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +10 -10
  14. package/docs/zh/05_TUI_GUIDE.md +1 -1
  15. package/docs/zh/09_DOCTOR.md +46 -4
  16. package/install.sh +9 -8
  17. package/package.json +2 -1
  18. package/pyproject.toml +1 -1
  19. package/src/deepscientist/__init__.py +6 -1
  20. package/src/deepscientist/artifact/service.py +552 -25
  21. package/src/deepscientist/config/service.py +1 -1
  22. package/src/deepscientist/daemon/api/handlers.py +18 -1
  23. package/src/deepscientist/daemon/api/router.py +2 -0
  24. package/src/deepscientist/daemon/app.py +90 -1
  25. package/src/deepscientist/doctor.py +69 -2
  26. package/src/deepscientist/gitops/diff.py +3 -0
  27. package/src/deepscientist/home.py +25 -2
  28. package/src/deepscientist/mcp/context.py +3 -1
  29. package/src/deepscientist/mcp/server.py +6 -0
  30. package/src/deepscientist/prompts/builder.py +41 -0
  31. package/src/deepscientist/quest/layout.py +1 -0
  32. package/src/deepscientist/quest/service.py +70 -12
  33. package/src/deepscientist/quest/stage_views.py +46 -0
  34. package/src/deepscientist/runners/codex.py +2 -0
  35. package/src/deepscientist/shared.py +44 -17
  36. package/src/prompts/connectors/lingzhu.md +3 -0
  37. package/src/prompts/system.md +38 -5
  38. package/src/skills/analysis-campaign/SKILL.md +24 -1
  39. package/src/skills/baseline/SKILL.md +7 -1
  40. package/src/skills/decision/SKILL.md +3 -2
  41. package/src/skills/experiment/SKILL.md +17 -1
  42. package/src/skills/finalize/SKILL.md +4 -1
  43. package/src/skills/idea/SKILL.md +1 -1
  44. package/src/skills/intake-audit/SKILL.md +1 -1
  45. package/src/skills/rebuttal/SKILL.md +3 -1
  46. package/src/skills/review/SKILL.md +3 -1
  47. package/src/skills/scout/SKILL.md +1 -1
  48. package/src/skills/write/SKILL.md +1 -1
  49. package/src/tui/package.json +1 -1
  50. package/src/ui/dist/assets/{AiManusChatView-w5lF2Ttt.js → AiManusChatView-CZpg376x.js} +64 -68
  51. package/src/ui/dist/assets/{AnalysisPlugin-DJOED79I.js → AnalysisPlugin-CtHA22g3.js} +1 -1
  52. package/src/ui/dist/assets/{AutoFigurePlugin-DaG61Y0M.js → AutoFigurePlugin-BSWmLMmF.js} +5 -5
  53. package/src/ui/dist/assets/{CliPlugin-CV4LqUB_.js → CliPlugin-CJ7jdm_s.js} +9 -9
  54. package/src/ui/dist/assets/{CodeEditorPlugin-DylfAea4.js → CodeEditorPlugin-DhInVGFf.js} +8 -8
  55. package/src/ui/dist/assets/{CodeViewerPlugin-F7saY0LM.js → CodeViewerPlugin-D1n8S9r5.js} +5 -5
  56. package/src/ui/dist/assets/{DocViewerPlugin-COP0c7jf.js → DocViewerPlugin-C4XM_kqk.js} +3 -3
  57. package/src/ui/dist/assets/{GitDiffViewerPlugin-CAS05pT9.js → GitDiffViewerPlugin-W6kS9r6v.js} +1 -1
  58. package/src/ui/dist/assets/{ImageViewerPlugin-Bco1CN_w.js → ImageViewerPlugin-DPeUx_Oz.js} +5 -5
  59. package/src/ui/dist/assets/{LabCopilotPanel-CvMlCD99.js → LabCopilotPanel-eAelUaub.js} +10 -10
  60. package/src/ui/dist/assets/{LabPlugin-BYankkE4.js → LabPlugin-BbOrBxKY.js} +1 -1
  61. package/src/ui/dist/assets/{LatexPlugin-LDSMR-t-.js → LatexPlugin-C-HhkVXY.js} +7 -7
  62. package/src/ui/dist/assets/{MarkdownViewerPlugin-B7o80jgm.js → MarkdownViewerPlugin-BDIzIBfh.js} +4 -4
  63. package/src/ui/dist/assets/{MarketplacePlugin-CM6ZOcpC.js → MarketplacePlugin-DAOJphwr.js} +3 -3
  64. package/src/ui/dist/assets/{NotebookEditor-Dc61cXmK.js → NotebookEditor-BsoMvDoU.js} +1 -1
  65. package/src/ui/dist/assets/{PdfLoader-DWowuQwx.js → PdfLoader-fiC7RtHf.js} +1 -1
  66. package/src/ui/dist/assets/{PdfMarkdownPlugin-BsJM1q_a.js → PdfMarkdownPlugin-C5OxZBFK.js} +3 -3
  67. package/src/ui/dist/assets/{PdfViewerPlugin-DB2eEEFQ.js → PdfViewerPlugin-CAbxQebk.js} +10 -10
  68. package/src/ui/dist/assets/{SearchPlugin-CraThSvt.js → SearchPlugin-SE33Lb9B.js} +1 -1
  69. package/src/ui/dist/assets/{Stepper-CgocRTPq.js → Stepper-0Av7GfV7.js} +1 -1
  70. package/src/ui/dist/assets/{TextViewerPlugin-B1JGhKtd.js → TextViewerPlugin-Daf2gJDI.js} +4 -4
  71. package/src/ui/dist/assets/{VNCViewer-CclFC7FM.js → VNCViewer-BKrMUIOX.js} +9 -9
  72. package/src/ui/dist/assets/{bibtex-D3IKsMl7.js → bibtex-JBdOEe45.js} +1 -1
  73. package/src/ui/dist/assets/{code-BP37Xx0p.js → code-B0TDFCZz.js} +1 -1
  74. package/src/ui/dist/assets/{file-content-BAJSu-9r.js → file-content-3YtrSacz.js} +1 -1
  75. package/src/ui/dist/assets/{file-diff-panel-DUGeCTuy.js → file-diff-panel-CJEg5OG1.js} +1 -1
  76. package/src/ui/dist/assets/{file-socket-CXc1Ojf7.js → file-socket-CYQYdmB1.js} +1 -1
  77. package/src/ui/dist/assets/{file-utils-2J21jt7M.js → file-utils-Cd1C9Ppl.js} +1 -1
  78. package/src/ui/dist/assets/{image-CMMmgvcn.js → image-B33ctrvC.js} +1 -1
  79. package/src/ui/dist/assets/{index-s7aHnNQ4.js → index-9CLPVeZh.js} +1 -1
  80. package/src/ui/dist/assets/{index-CWgMgpow.js → index-BNQWqmJ2.js} +11 -11
  81. package/src/ui/dist/assets/{index-DmwmJmbW.js → index-BVXsmS7V.js} +15808 -14025
  82. package/src/ui/dist/assets/{index-BaVumsQT.js → index-Buw_N1VQ.js} +2 -2
  83. package/src/ui/dist/assets/{index-KGt-z-dD.css → index-SwmFAld3.css} +2700 -2
  84. package/src/ui/dist/assets/{message-square-CQRfX0Am.js → message-square-D0cUJ9yU.js} +1 -1
  85. package/src/ui/dist/assets/{monaco-B4TbdsrF.js → monaco-UZLYkp2n.js} +1 -1
  86. package/src/ui/dist/assets/{popover-B8Rokodk.js → popover-CTeiY-dK.js} +1 -1
  87. package/src/ui/dist/assets/{project-sync-D_i96KH4.js → project-sync-Dbs01Xky.js} +1 -1
  88. package/src/ui/dist/assets/{sigma-D12PnzCN.js → sigma-CM08S-xT.js} +1 -1
  89. package/src/ui/dist/assets/{tooltip-B6YrI4aJ.js → tooltip-pDtzvU9p.js} +1 -1
  90. package/src/ui/dist/assets/{trash-Bc8jGp0V.js → trash-YvPCP-da.js} +1 -1
  91. package/src/ui/dist/assets/{useCliAccess-mXVCYSZ-.js → useCliAccess-Bavi74Ac.js} +1 -1
  92. package/src/ui/dist/assets/{useFileDiffOverlay-Bg6b9H9K.js → useFileDiffOverlay-CVXY6oeg.js} +1 -1
  93. package/src/ui/dist/assets/{wrap-text-Drh5GEnL.js → wrap-text-Cf4flRW7.js} +1 -1
  94. package/src/ui/dist/assets/{zoom-out-CJj9DZLn.js → zoom-out-Hb0Z1YpT.js} +1 -1
  95. package/src/ui/dist/index.html +2 -2
  96. package/uv.lock +1155 -0
  97. package/src/ui/dist/assets/LabPlugin-D9jVIo0A.css +0 -2698
@@ -1,22 +1,22 @@
1
- # 00 Quick Start: Launch DeepScientist and Run Your First Quest
1
+ # 00 Quick Start: Launch DeepScientist and Run Your First Project
2
2
 
3
- This is the fastest way to go from installation to a running quest.
3
+ This is the fastest way to go from installation to a running project.
4
4
 
5
5
  You will do four things:
6
6
 
7
7
  1. install DeepScientist
8
8
  2. start the local runtime
9
- 3. create a new quest from the home page
10
- 4. reopen old quests from the quest list
9
+ 3. create a new project from the home page
10
+ 4. reopen old projects from the project list
11
11
 
12
12
  The screenshots in this guide use the current live web UI at `deepscientist.cc:20999` as an example. Your local UI at `127.0.0.1:20999` should look the same or very close.
13
13
 
14
14
  ## 1. Install
15
15
 
16
- Install Codex and DeepScientist globally:
16
+ Install DeepScientist globally:
17
17
 
18
18
  ```bash
19
- npm install -g @openai/codex @researai/deepscientist
19
+ npm install -g @researai/deepscientist
20
20
  ```
21
21
 
22
22
  If you plan to compile LaTeX locally later, you can also install the lightweight PDF runtime:
@@ -33,6 +33,12 @@ Start the local daemon and web workspace:
33
33
  ds
34
34
  ```
35
35
 
36
+ DeepScientist now uses `uv` to manage a locked local Python runtime. If a conda environment is active and already provides Python `>=3.11`, `ds` will prefer that environment automatically. Otherwise `uv` will provision a managed Python under the DeepScientist home.
37
+
38
+ If `uv` is missing on your machine, `ds` will bootstrap a local copy automatically during the first start. The npm package also ships with the Codex CLI dependency, so you do not need a separate `npm install -g @openai/codex`. You may still need to run `codex` once later to finish login.
39
+
40
+ By default, the DeepScientist home is `~/DeepScientist` on macOS and Linux, and `%USERPROFILE%\\DeepScientist` on Windows. You can override it with `ds --home <path>`.
41
+
36
42
  By default, the web UI is served at:
37
43
 
38
44
  ```text
@@ -41,6 +47,18 @@ http://127.0.0.1:20999
41
47
 
42
48
  If the browser does not open automatically, paste that address into your browser manually.
43
49
 
50
+ If you want another port:
51
+
52
+ ```bash
53
+ ds --port 21000
54
+ ```
55
+
56
+ If you want the web UI to bind on all interfaces:
57
+
58
+ ```bash
59
+ ds --host 0.0.0.0 --port 21000
60
+ ```
61
+
44
62
  ## 3. Understand the Home Page
45
63
 
46
64
  When DeepScientist starts, open the home page at `/`.
@@ -49,22 +67,22 @@ When DeepScientist starts, open the home page at `/`.
49
67
 
50
68
  The home page is intentionally simple. The two main entry buttons are:
51
69
 
52
- - `Start Research`: create a new quest and launch a new research run
53
- - `List Quest`: reopen an existing quest
70
+ - `Start Research`: create a new project and launch a new research run
71
+ - `Open Project`: reopen an existing project
54
72
 
55
73
  If you are using DeepScientist for the first time, start with `Start Research`.
56
74
 
57
- ## 4. Create a New Quest With Start Research
75
+ ## 4. Create a New Project With Start Research
58
76
 
59
77
  Click `Start Research` to open the launch dialog.
60
78
 
61
79
  ![Start Research dialog](../images/quickstart/01-start-research.png)
62
80
 
63
- This dialog creates a new quest repository and writes the startup contract for the agent.
81
+ This dialog creates a new project repository and writes the startup contract for the agent.
64
82
 
65
83
  The most important fields are:
66
84
 
67
- - `Quest ID`: usually auto-generated in sequence such as `00`, `01`, `02`
85
+ - `Project ID`: usually auto-generated in sequence such as `00`, `01`, `02`
68
86
  - `Primary request` / research goal: the actual scientific task you want the agent to work on
69
87
  - `Reuse Baseline`: optional; choose an existing baseline if you want to continue from an earlier result
70
88
  - `Research intensity`: how aggressive the run should be
@@ -81,29 +99,29 @@ For a first test, keep it simple:
81
99
 
82
100
  Then click the final `Start Research` action in the dialog.
83
101
 
84
- ## 5. Reopen an Existing Quest With List Quest
102
+ ## 5. Reopen an Existing Project With Open Project
85
103
 
86
- Click `List Quest` on the home page to open the existing quest list.
104
+ Click `Open Project` on the home page to open the existing project list.
87
105
 
88
- ![List Quest dialog](../images/quickstart/02-list-quest.png)
106
+ ![Open Project dialog](../images/quickstart/02-list-quest.png)
89
107
 
90
108
  Use this dialog when you want to:
91
109
 
92
- - reopen a quest that is already running or already finished
93
- - search by quest title or quest id
110
+ - reopen a project that is already running or already finished
111
+ - search by project title or project id
94
112
  - jump back into a previous workspace quickly
95
113
 
96
- Each row corresponds to one quest repository. Click a quest card to open it.
114
+ Each row corresponds to one project repository. Click a project card to open it.
97
115
 
98
- ## 6. What Happens After Opening a Quest
116
+ ## 6. What Happens After Opening a Project
99
117
 
100
- After you create or open a quest, DeepScientist takes you to the workspace page for that quest.
118
+ After you create or open a project, DeepScientist takes you to the workspace page for that project.
101
119
 
102
120
  Inside the workspace, the usual flow is:
103
121
 
104
122
  1. watch agent progress in Copilot / Studio
105
123
  2. inspect files, notes, and generated artifacts
106
- 3. use Canvas to understand the current quest graph and stage progress
124
+ 3. use Canvas to understand the current project graph and stage progress
107
125
  4. stop the run only when you intentionally want to interrupt it
108
126
 
109
127
  ## 7. Useful Runtime Commands
@@ -92,9 +92,9 @@ acp:
92
92
  - Type: `string`
93
93
  - Default: the installed DeepScientist home, usually `~/DeepScientist`
94
94
  - UI label: `Home path`
95
- - Meaning: root directory for config, quests, memory, plugins, logs, and cache.
95
+ - Meaning: root directory for config, projects, memory, plugins, logs, and cache.
96
96
  - When to change: only when you intentionally installed DeepScientist somewhere else.
97
- - Notes: this is not a single quest path; it is the runtime root.
97
+ - Notes: this is not a single project path; it is the runtime root.
98
98
 
99
99
  **`default_runner`**
100
100
 
@@ -102,7 +102,7 @@ acp:
102
102
  - Default: `codex`
103
103
  - Allowed values: currently `codex`, `claude`
104
104
  - UI label: `Default runner`
105
- - Meaning: runner used when a quest does not override it.
105
+ - Meaning: runner used when a project does not override it.
106
106
  - Notes: in the current branch, `codex` is the primary path and `claude` remains a reserved slot.
107
107
 
108
108
  **`default_locale`**
@@ -120,15 +120,15 @@ acp:
120
120
  - Type: `boolean`
121
121
  - Default: `true`
122
122
  - UI label: `Restore sessions on start`
123
- - Meaning: restore previous quest sessions when the daemon starts.
123
+ - Meaning: restore previous project sessions when the daemon starts.
124
124
 
125
125
  **`daemon.max_concurrent_quests`**
126
126
 
127
127
  - Type: `number`
128
128
  - Default: `1`
129
- - UI label: `Max concurrent quests`
130
- - Meaning: upper bound on how many quests may run at the same time.
131
- - Recommendation: keep `1` unless you intentionally want parallel quest execution.
129
+ - UI label: `Max concurrent projects`
130
+ - Meaning: upper bound on how many projects may run at the same time.
131
+ - Recommendation: keep `1` unless you intentionally want parallel project execution.
132
132
 
133
133
  **`daemon.ack_timeout_ms`**
134
134
 
@@ -202,7 +202,7 @@ acp:
202
202
  - Type: `boolean`
203
203
  - Default: `true`
204
204
  - UI label: `Auto-checkpoint`
205
- - Meaning: create Git checkpoints automatically during quest progress.
205
+ - Meaning: create Git checkpoints automatically during project progress.
206
206
 
207
207
  **`git.auto_push`**
208
208
 
@@ -252,15 +252,15 @@ Palette selection is no longer exposed in `Settings` or `config.yaml`.
252
252
 
253
253
  - Type: `boolean`
254
254
  - Default: `true`
255
- - UI label: `Sync quest skills on create`
256
- - Meaning: mirror skills into quest-local runner homes when a quest is created.
255
+ - UI label: `Sync project skills on create`
256
+ - Meaning: mirror skills into project-local runner homes when a project is created.
257
257
 
258
258
  **`skills.sync_quest_on_open`**
259
259
 
260
260
  - Type: `boolean`
261
261
  - Default: `true`
262
- - UI label: `Sync quest skills on open`
263
- - Meaning: refresh quest-local skill mirrors when an existing quest is opened.
262
+ - UI label: `Sync project skills on open`
263
+ - Meaning: refresh project-local skill mirrors when an existing project is opened.
264
264
 
265
265
  ### Connector policy
266
266
 
@@ -271,7 +271,7 @@ These fields are global connector behaviors, not per-platform credentials.
271
271
  - Type: `boolean`
272
272
  - Default: `true`
273
273
  - UI label: `Auto-ack incoming messages`
274
- - Meaning: send a short acknowledgment before the full quest response completes.
274
+ - Meaning: send a short acknowledgment before the full project response completes.
275
275
 
276
276
  **`connectors.milestone_push`**
277
277
 
@@ -285,7 +285,7 @@ These fields are global connector behaviors, not per-platform credentials.
285
285
  - Type: `boolean`
286
286
  - Default: `true`
287
287
  - UI label: `Enable direct chat`
288
- - Meaning: allow connectors to continue quests from direct messages.
288
+ - Meaning: allow connectors to continue projects from direct messages.
289
289
 
290
290
  ### Cloud link
291
291
 
@@ -371,7 +371,7 @@ These settings are compatibility knobs for ACP-style external consumers.
371
371
 
372
372
  ### Summary
373
373
 
374
- `runners.yaml` defines which runner executes quests and what its default model, approval policy, sandbox, and retry behavior should be. In the current open-source release:
374
+ `runners.yaml` defines which runner executes projects and what its default model, approval policy, sandbox, and retry behavior should be. In the current open-source release:
375
375
 
376
376
  - `codex`: primary path, enabled by default
377
377
  - `claude`: TODO / reserved slot, disabled by default, not runnable yet
@@ -433,7 +433,7 @@ claude:
433
433
  - Type: `string`
434
434
  - Default: `codex=gpt-5.4`, `claude=inherit`
435
435
  - UI label: `Default model`
436
- - Meaning: default model used when a quest does not override it.
436
+ - Meaning: default model used when a project does not override it.
437
437
 
438
438
  **`model_reasoning_effort`**
439
439
 
@@ -534,7 +534,7 @@ Current design rules:
534
534
 
535
535
  - prefer no-public-callback transports
536
536
  - keep webhook / relay fields only as legacy or fallback paths
537
- - treat connectors as alternate quest control surfaces, not disconnected notification bots
537
+ - treat connectors as alternate project control surfaces, not disconnected notification bots
538
538
 
539
539
  ### Top-level routing
540
540
 
@@ -586,7 +586,7 @@ These fields appear across multiple connectors:
586
586
 
587
587
  - Type: `boolean`
588
588
  - Default: usually `true`
589
- - Meaning: direct messages automatically follow the current active quest.
589
+ - Meaning: direct messages automatically follow the current active project.
590
590
 
591
591
  ### `telegram`
592
592
 
@@ -969,7 +969,7 @@ allow_unsigned: false
969
969
 
970
970
  ### Summary
971
971
 
972
- This file configures external MCP servers. It does not configure built-in `memory`, `artifact`, or `bash_exec`, and it does not store quest-local MCP state.
972
+ This file configures external MCP servers. It does not configure built-in `memory`, `artifact`, or `bash_exec`, and it does not store project-local MCP state.
973
973
 
974
974
  ### Schema
975
975
 
@@ -992,7 +992,7 @@ servers:
992
992
 
993
993
  - Type: `boolean`
994
994
  - Default: new cards start as `false`
995
- - Meaning: only enabled external MCP servers are exposed to quests or runners.
995
+ - Meaning: only enabled external MCP servers are exposed to projects or runners.
996
996
 
997
997
  **`servers.<server_id>.transport`**
998
998
 
@@ -9,10 +9,10 @@ Implementation sources:
9
9
 
10
10
  ## What the dialog does
11
11
 
12
- `Start Research` is not only a “new quest” form. It does four things together:
12
+ `Start Research` is not only a “new project” form. It does four things together:
13
13
 
14
14
  1. collects structured kickoff context
15
- 2. compiles that context into the first quest prompt
15
+ 2. compiles that context into the first project prompt
16
16
  3. binds an optional reusable baseline
17
17
  4. persists a structured `startup_contract` for later prompt building
18
18
 
@@ -105,17 +105,17 @@ The dialog submits:
105
105
 
106
106
  ## Field reference
107
107
 
108
- ### Core quest identity
108
+ ### Core project identity
109
109
 
110
110
  **`title`**
111
111
 
112
- - Human-readable quest title.
112
+ - Human-readable project title.
113
113
  - Used in cards and workspace headers.
114
114
  - Does not need to equal `quest_id`.
115
115
 
116
116
  **`quest_id`**
117
117
 
118
- - Stable quest identifier and directory name.
118
+ - Stable project identifier stored in `quest_id` and used as the directory name.
119
119
  - By default the runtime suggests the next sequential id.
120
120
  - Manual override is allowed.
121
121
 
@@ -166,7 +166,7 @@ The dialog submits:
166
166
 
167
167
  **`need_research_paper`**
168
168
 
169
- - `true`: the quest should keep going through analysis and writing readiness.
169
+ - `true`: the project should keep going through analysis and writing readiness.
170
170
  - `false`: optimize for the strongest justified algorithmic result and avoid default paper routing.
171
171
 
172
172
  ### High-level control knobs
@@ -203,7 +203,7 @@ This is the main public knob for round depth.
203
203
  Only meaningful when `launch_mode = custom`.
204
204
 
205
205
  - `continue_existing_state`
206
- - start by auditing existing baselines, results, drafts, or mixed quest assets
206
+ - start by auditing existing baselines, results, drafts, or mixed project assets
207
207
  - prompt builder should steer the agent toward `intake-audit`
208
208
  - `revision_rebuttal`
209
209
  - start from reviewer comments, revision packets, or a rebuttal task
@@ -247,7 +247,7 @@ Override rule:
247
247
 
248
248
  `compileStartResearchPrompt(...)` writes a human-readable kickoff prompt containing:
249
249
 
250
- - quest bootstrap
250
+ - project bootstrap
251
251
  - primary research request
252
252
  - research goals
253
253
  - baseline context
@@ -318,8 +318,8 @@ Custom launch behavior is explicit:
318
318
 
319
319
  ```json
320
320
  {
321
- "title": "Continue retrieval quest",
322
- "goal": "Continue the existing retrieval quest and decide whether a fresh main run is still needed.",
321
+ "title": "Continue retrieval project",
322
+ "goal": "Continue the existing retrieval project and decide whether a fresh main run is still needed.",
323
323
  "quest_id": "013",
324
324
  "requested_baseline_ref": null,
325
325
  "startup_contract": {
@@ -387,7 +387,7 @@ Custom launch behavior is explicit:
387
387
 
388
388
  ## Operational implications
389
389
 
390
- - The startup contract is durable quest state, not only UI state.
390
+ - The startup contract is durable project state, not only UI state.
391
391
  - Prompt building later reads `launch_mode`, `custom_profile`, and related summaries again.
392
392
  - This means `Start Research` shapes not just the first turn, but later routing decisions too.
393
393
 
@@ -16,7 +16,7 @@ If you previously followed an OpenClaw or NanoClaw article, note the key differe
16
16
  After finishing this guide, you should be able to:
17
17
 
18
18
  - chat with DeepScientist from QQ private messages
19
- - let QQ auto-bind to the latest active quest
19
+ - let QQ auto-bind to the latest active project
20
20
  - use `/new`, `/use latest`, `/status`, and related commands from QQ
21
21
  - see the detected `openid` in the `Settings` page
22
22
  - run safe readiness checks and send probes from the `Settings` page
@@ -219,7 +219,7 @@ When the connector is fully working, you should usually see all of these:
219
219
  - `Detected OpenID` is no longer empty in `Settings > Connectors > QQ`
220
220
  - the `Snapshot` panel shows a discovered target and the bound target is no longer empty
221
221
  - clicking `Send probe` again no longer reports an empty delivery target
222
- - if a latest quest already exists, plain text continues that quest automatically; if no quest exists yet, the bot returns help instead
222
+ - if a latest project already exists, plain text continues that project automatically; if no project exists yet, the bot returns help instead
223
223
 
224
224
  ### 5.2 Error quick decoder
225
225
 
@@ -239,17 +239,17 @@ Common commands:
239
239
  | Command | Meaning |
240
240
  | --- | --- |
241
241
  | `/help` | Show help |
242
- | `/projects` or `/list` | List quests |
243
- | `/use <quest_id>` | Bind a specific quest |
244
- | `/use latest` | Bind the newest quest |
245
- | `/new <goal>` | Create a new quest and bind the current QQ conversation |
246
- | `/status` | Show the current quest status |
242
+ | `/projects` or `/list` | List projects |
243
+ | `/use <quest_id>` | Bind a specific project |
244
+ | `/use latest` | Bind the newest project |
245
+ | `/new <goal>` | Create a new project and bind the current QQ conversation |
246
+ | `/status` | Show the current project status |
247
247
 
248
248
  Recommended usage:
249
249
 
250
- - if a latest quest already exists, plain text usually continues that quest
251
- - if there is no quest yet, start with `/new <goal>`
252
- - if you want to switch to another quest, send `/use <quest_id>` explicitly
250
+ - if a latest project already exists, plain text usually continues that project
251
+ - if there is no project yet, start with `/new <goal>`
252
+ - if you want to switch to another project, send `/use <quest_id>` explicitly
253
253
 
254
254
  ## 7. Most common mistakes
255
255
 
@@ -9,7 +9,7 @@ For the current runtime control flow, prompt/skill execution model, MCP surface,
9
9
  Use the current workspace install:
10
10
 
11
11
  ```bash
12
- pip install -e .
12
+ uv sync
13
13
  npm install
14
14
  ```
15
15
 
@@ -4,10 +4,10 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
4
4
 
5
5
  ## Recommended flow
6
6
 
7
- 1. Install DeepScientist and Codex:
7
+ 1. Install DeepScientist:
8
8
 
9
9
  ```bash
10
- npm install -g @openai/codex @researai/deepscientist
10
+ npm install -g @researai/deepscientist
11
11
  ```
12
12
 
13
13
  2. Try to start DeepScientist:
@@ -30,6 +30,7 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
30
30
 
31
31
  - local Python runtime health
32
32
  - whether `~/DeepScientist` exists and is writable
33
+ - whether `uv` is available to manage the local Python runtime
33
34
  - whether `git` is installed and configured
34
35
  - whether required config files are valid
35
36
  - whether the current release is still using `codex` as the runnable runner
@@ -42,10 +43,10 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
42
43
 
43
44
  ### Codex is missing
44
45
 
45
- Run:
46
+ Run the package install again so the bundled Codex dependency is present:
46
47
 
47
48
  ```bash
48
- npm install -g @openai/codex
49
+ npm install -g @researai/deepscientist
49
50
  ```
50
51
 
51
52
  ### Codex is installed but not logged in
@@ -58,6 +59,20 @@ codex
58
59
 
59
60
  Finish login once, then rerun `ds doctor`.
60
61
 
62
+ ### `uv` is missing
63
+
64
+ Normally `ds` will bootstrap a local `uv` automatically. If that bootstrap fails, install it manually:
65
+
66
+ ```bash
67
+ curl -LsSf https://astral.sh/uv/install.sh | sh
68
+ ```
69
+
70
+ On Windows PowerShell:
71
+
72
+ ```powershell
73
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
74
+ ```
75
+
61
76
  ### Local paper PDF compilation is unavailable
62
77
 
63
78
  DeepScientist can compile papers without a full TeX Live install if you add a lightweight TinyTeX runtime:
@@ -84,6 +99,35 @@ If another service already uses the port, change `ui.port` in:
84
99
  ~/DeepScientist/config/config.yaml
85
100
  ```
86
101
 
102
+ Or start on another port directly:
103
+
104
+ ```bash
105
+ ds --port 21000
106
+ ```
107
+
108
+ ### Python `3.10` or older is active
109
+
110
+ DeepScientist still prefers the active conda environment when it already satisfies Python `>=3.11`.
111
+
112
+ If your current conda environment is too old, either activate a newer one:
113
+
114
+ ```bash
115
+ conda activate ds311
116
+ python3 --version
117
+ which python3
118
+ ds
119
+ ```
120
+
121
+ Or create a suitable one:
122
+
123
+ ```bash
124
+ conda create -n ds311 python=3.11 -y
125
+ conda activate ds311
126
+ ds
127
+ ```
128
+
129
+ If you do nothing, `ds` can still bootstrap a managed `uv` + Python runtime automatically under the DeepScientist home.
130
+
87
131
  ### Git user identity is missing
88
132
 
89
133
  Run:
@@ -42,7 +42,7 @@ The normal user path is:
42
42
 
43
43
  1. `npm install -g @researai/deepscientist`
44
44
  2. run `ds`
45
- 3. `bin/ds.js` ensures the local Python runtime is ready under `~/DeepScientist/runtime/venv`
45
+ 3. `bin/ds.js` ensures a locked uv-managed Python runtime is ready under `~/DeepScientist/runtime/python-env`
46
46
  4. the launcher starts the Python daemon
47
47
  5. the daemon serves the web workspace and shared API surface
48
48
  6. the TUI and web UI both consume the same daemon contracts
@@ -57,7 +57,9 @@ Key directories:
57
57
 
58
58
  - `runtime/`
59
59
  - launcher-managed runtime state
60
- - Python venv
60
+ - uv-managed Python environment
61
+ - uv-managed Python installs
62
+ - uv cache
61
63
  - built bundle helpers
62
64
  - managed local tool installs under `runtime/tools/`
63
65
  - `config/`
@@ -1,22 +1,22 @@
1
- # 00 快速开始:启动 DeepScientist 并运行第一个 Quest
1
+ # 00 快速开始:启动 DeepScientist 并运行第一个项目
2
2
 
3
- 这份文档面向第一次使用 DeepScientist 的用户,目标是让你从安装直接走到“成功启动并跑起来一个 quest”。
3
+ 这份文档面向第一次使用 DeepScientist 的用户,目标是让你从安装直接走到“成功启动并跑起来一个项目”。
4
4
 
5
5
  你只需要完成四步:
6
6
 
7
7
  1. 安装 DeepScientist
8
8
  2. 启动本地运行时
9
- 3. 在首页创建一个新 quest
10
- 4. 从 quest 列表重新打开已有任务
9
+ 3. 在首页创建一个新项目
10
+ 4. 从项目列表重新打开已有任务
11
11
 
12
12
  本文中的截图直接使用当前在线页面 `deepscientist.cc:20999` 作为示例。你本地运行后的页面 `127.0.0.1:20999` 通常会与它保持一致或非常接近。
13
13
 
14
14
  ## 1. 安装
15
15
 
16
- 先全局安装 Codex 和 DeepScientist:
16
+ 全局安装 DeepScientist:
17
17
 
18
18
  ```bash
19
- npm install -g @openai/codex @researai/deepscientist
19
+ npm install -g @researai/deepscientist
20
20
  ```
21
21
 
22
22
  如果你后续还要在本地编译论文 PDF,也可以顺手安装轻量级 LaTeX 运行时:
@@ -33,6 +33,12 @@ ds latex install-runtime
33
33
  ds
34
34
  ```
35
35
 
36
+ DeepScientist 现在使用 `uv` 管理锁定的本地 Python 运行时。如果你已经激活了 conda 环境,且其中的 Python 满足 `>=3.11`,`ds` 会优先使用它;否则 `uv` 会自动在 DeepScientist home 下准备受管 Python。
37
+
38
+ 如果你的机器上还没有 `uv`,第一次运行 `ds` 时会自动在本地安装一份。npm 包本身也已经带上了 Codex CLI 依赖,因此不需要再单独执行 `npm install -g @openai/codex`;但你后续仍然可能需要手动运行一次 `codex` 完成登录。
39
+
40
+ 默认情况下,DeepScientist home 在 macOS / Linux 上是 `~/DeepScientist`,在 Windows 上是 `%USERPROFILE%\\DeepScientist`。如果你希望放到别的路径,可以直接使用 `ds --home <path>`。
41
+
36
42
  默认情况下,网页会运行在:
37
43
 
38
44
  ```text
@@ -41,6 +47,18 @@ http://127.0.0.1:20999
41
47
 
42
48
  如果浏览器没有自动打开,就手动访问这个地址。
43
49
 
50
+ 如果你想改端口,可以直接运行:
51
+
52
+ ```bash
53
+ ds --port 21000
54
+ ```
55
+
56
+ 如果你希望绑定到所有网卡地址:
57
+
58
+ ```bash
59
+ ds --host 0.0.0.0 --port 21000
60
+ ```
61
+
44
62
  ## 3. 认识首页
45
63
 
46
64
  启动完成后,先打开 `/` 首页。
@@ -49,12 +67,12 @@ http://127.0.0.1:20999
49
67
 
50
68
  首页故意做得很简单,核心只有两个按钮:
51
69
 
52
- - `Start Research`:创建一个新的 quest,并立刻启动新的研究任务
53
- - `List Quest`:打开已有 quest 列表,重新进入已经存在的任务
70
+ - `Start Research`:创建一个新的项目,并立刻启动新的研究任务
71
+ - `打开项目`:打开已有项目列表,重新进入已经存在的任务
54
72
 
55
73
  如果你是第一次使用,建议先从 `Start Research` 开始。
56
74
 
57
- ## 4. 使用 Start Research 创建新 Quest
75
+ ## 4. 使用 Start Research 创建新项目
58
76
 
59
77
  点击 `Start Research`,会弹出启动表单。
60
78
 
@@ -64,7 +82,7 @@ http://127.0.0.1:20999
64
82
 
65
83
  最重要的字段是:
66
84
 
67
- - `Quest ID`:通常会自动按顺序生成,例如 `00`、`01`、`02`
85
+ - `项目 ID`:通常会自动按顺序生成,例如 `00`、`01`、`02`
68
86
  - `Primary request` / 研究目标:你真正希望 agent 完成的科研任务
69
87
  - `Reuse Baseline`:可选;如果你要复用已有 baseline,就在这里选择
70
88
  - `Research intensity`:本次研究的投入强度
@@ -81,29 +99,29 @@ http://127.0.0.1:20999
81
99
 
82
100
  最后点击弹窗底部的 `Start Research` 即可正式启动。
83
101
 
84
- ## 5. 使用 List Quest 打开已有任务
102
+ ## 5. 使用“打开项目”重新进入已有任务
85
103
 
86
- 点击首页上的 `List Quest`,会打开 quest 列表。
104
+ 点击首页上的 `打开项目`,会打开项目列表。
87
105
 
88
- ![List Quest 弹窗](../images/quickstart/02-list-quest.png)
106
+ ![打开项目 弹窗](../images/quickstart/02-list-quest.png)
89
107
 
90
108
  这个列表适合以下场景:
91
109
 
92
- - 重新进入一个已经在运行中的 quest
93
- - 打开一个以前已经完成或已经创建过的 quest
94
- - quest 标题或 quest id 搜索目标任务
110
+ - 重新进入一个已经在运行中的项目
111
+ - 打开一个以前已经完成或已经创建过的项目
112
+ - 按项目标题或项目 ID 搜索目标任务
95
113
 
96
- 列表中的每一行都对应一个 quest 仓库。点击对应卡片即可进入该 quest 的工作区。
114
+ 列表中的每一行都对应一个项目仓库。点击对应卡片即可进入该项目的工作区。
97
115
 
98
- ## 6. 打开 Quest 之后会发生什么
116
+ ## 6. 打开项目之后会发生什么
99
117
 
100
- 创建或打开 quest 后,DeepScientist 会进入这个 quest 的工作区页面。
118
+ 创建或打开项目后,DeepScientist 会进入这个项目的工作区页面。
101
119
 
102
120
  通常你会在里面做这些事情:
103
121
 
104
122
  1. 在 Copilot / Studio 中观察 agent 的实时进展
105
123
  2. 查看文件、笔记和生成出来的 artifact
106
- 3. 在 Canvas 中理解当前 quest 的图结构与阶段进展
124
+ 3. 在 Canvas 中理解当前项目的图结构与阶段进展
107
125
  4. 只有在你明确想中断时,才主动停止任务
108
126
 
109
127
  ## 7. 常用运行命令