@researai/deepscientist 1.5.11 → 1.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/bin/ds.js +375 -61
- package/docs/en/00_QUICK_START.md +55 -4
- package/docs/en/01_SETTINGS_REFERENCE.md +15 -0
- package/docs/en/02_START_RESEARCH_GUIDE.md +68 -4
- package/docs/en/09_DOCTOR.md +48 -4
- package/docs/en/12_GUIDED_WORKFLOW_TOUR.md +21 -2
- package/docs/en/15_CODEX_PROVIDER_SETUP.md +382 -0
- package/docs/en/README.md +4 -0
- package/docs/zh/00_QUICK_START.md +54 -3
- package/docs/zh/01_SETTINGS_REFERENCE.md +15 -0
- package/docs/zh/02_START_RESEARCH_GUIDE.md +69 -3
- package/docs/zh/09_DOCTOR.md +48 -2
- package/docs/zh/12_GUIDED_WORKFLOW_TOUR.md +21 -2
- package/docs/zh/15_CODEX_PROVIDER_SETUP.md +383 -0
- package/docs/zh/README.md +4 -1
- package/package.json +2 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/bash_exec/monitor.py +7 -5
- package/src/deepscientist/bash_exec/service.py +84 -21
- package/src/deepscientist/channels/local.py +3 -3
- package/src/deepscientist/channels/qq.py +7 -7
- package/src/deepscientist/channels/relay.py +7 -7
- package/src/deepscientist/channels/weixin_ilink.py +90 -19
- package/src/deepscientist/cli.py +3 -0
- package/src/deepscientist/codex_cli_compat.py +117 -0
- package/src/deepscientist/config/models.py +1 -0
- package/src/deepscientist/config/service.py +173 -25
- package/src/deepscientist/daemon/app.py +314 -6
- package/src/deepscientist/doctor.py +1 -5
- package/src/deepscientist/mcp/server.py +124 -3
- package/src/deepscientist/prompts/builder.py +113 -11
- package/src/deepscientist/quest/service.py +247 -31
- package/src/deepscientist/runners/codex.py +132 -24
- package/src/deepscientist/runners/runtime_overrides.py +9 -0
- package/src/deepscientist/shared.py +33 -14
- package/src/prompts/connectors/qq.md +2 -1
- package/src/prompts/connectors/weixin.md +2 -1
- package/src/prompts/contracts/shared_interaction.md +4 -1
- package/src/prompts/system.md +59 -9
- package/src/skills/analysis-campaign/SKILL.md +46 -6
- package/src/skills/analysis-campaign/references/campaign-plan-template.md +21 -8
- package/src/skills/baseline/SKILL.md +1 -1
- package/src/skills/baseline/references/artifact-payload-examples.md +39 -0
- package/src/skills/decision/SKILL.md +1 -1
- package/src/skills/experiment/SKILL.md +1 -1
- package/src/skills/finalize/SKILL.md +1 -1
- package/src/skills/idea/SKILL.md +1 -1
- package/src/skills/intake-audit/SKILL.md +1 -1
- package/src/skills/rebuttal/SKILL.md +74 -1
- package/src/skills/rebuttal/references/response-letter-template.md +55 -11
- package/src/skills/review/SKILL.md +118 -1
- package/src/skills/review/references/experiment-todo-template.md +23 -0
- package/src/skills/review/references/review-report-template.md +16 -0
- package/src/skills/review/references/revision-log-template.md +4 -0
- package/src/skills/scout/SKILL.md +1 -1
- package/src/skills/write/SKILL.md +168 -7
- package/src/skills/write/references/paper-experiment-matrix-template.md +131 -0
- package/src/tui/dist/lib/connectorConfig.js +90 -0
- package/src/tui/dist/lib/qr.js +21 -0
- package/src/tui/package.json +2 -1
- package/src/ui/dist/assets/{AiManusChatView-D0mTXG4-.js → AiManusChatView-CnJcXynW.js} +12 -12
- package/src/ui/dist/assets/{AnalysisPlugin-Db0cTXxm.js → AnalysisPlugin-DeyzPEhV.js} +1 -1
- package/src/ui/dist/assets/{CliPlugin-DrV8je02.js → CliPlugin-CB1YODQn.js} +9 -9
- package/src/ui/dist/assets/{CodeEditorPlugin-QXMSCH71.js → CodeEditorPlugin-B-xicq1e.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-7hhtWj_E.js → CodeViewerPlugin-DT54ysXa.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-BWMSnRJe.js → DocViewerPlugin-DQtKT-VD.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-7J9h9Vy_.js → GitDiffViewerPlugin-hqHbCfnv.js} +20 -20
- package/src/ui/dist/assets/{ImageViewerPlugin-CHJl_0lr.js → ImageViewerPlugin-OcVo33jV.js} +5 -5
- package/src/ui/dist/assets/{LabCopilotPanel-1qSow1es.js → LabCopilotPanel-DdGwhEUV.js} +11 -11
- package/src/ui/dist/assets/{LabPlugin-eQpPPCEp.js → LabPlugin-Ciz1gDaX.js} +2 -2
- package/src/ui/dist/assets/{LatexPlugin-BwRfi89Z.js → LatexPlugin-BhmjNQRC.js} +37 -11
- package/src/ui/dist/assets/{MarkdownViewerPlugin-836PVQWV.js → MarkdownViewerPlugin-BzdVH9Bx.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-C2y_556i.js → MarketplacePlugin-DmyHspXt.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-DIX7Mlzu.js → NotebookEditor-BMXKrDRk.js} +1 -1
- package/src/ui/dist/assets/{NotebookEditor-BRzJbGsn.js → NotebookEditor-BTVYRGkm.js} +11 -11
- package/src/ui/dist/assets/{PdfLoader-DzRaTAlq.js → PdfLoader-CvcjJHXv.js} +1 -1
- package/src/ui/dist/assets/{PdfMarkdownPlugin-DZUfIUnp.js → PdfMarkdownPlugin-DW2ej8Vk.js} +2 -2
- package/src/ui/dist/assets/{PdfViewerPlugin-BwtICzue.js → PdfViewerPlugin-CmlDxbhU.js} +10 -10
- package/src/ui/dist/assets/{SearchPlugin-DHeIAMsx.js → SearchPlugin-DAjQZPSv.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-C3tCmFox.js → TextViewerPlugin-C-nVAZb_.js} +5 -5
- package/src/ui/dist/assets/{VNCViewer-CQsKVm3t.js → VNCViewer-D7-dIYon.js} +10 -10
- package/src/ui/dist/assets/{bot-BEA2vWuK.js → bot-C_G4WtNI.js} +1 -1
- package/src/ui/dist/assets/{code-XfbSR8K2.js → code-Cd7WfiWq.js} +1 -1
- package/src/ui/dist/assets/{file-content-BjxNaIfy.js → file-content-B57zsL9y.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-D_lLVQk0.js → file-diff-panel-DVoheLFq.js} +1 -1
- package/src/ui/dist/assets/{file-socket-D9x_5vlY.js → file-socket-B5kXFxZP.js} +1 -1
- package/src/ui/dist/assets/{image-BhWT33W1.js → image-LLOjkMHF.js} +1 -1
- package/src/ui/dist/assets/{index-Dqj-Mjb4.css → index-BQG-1s2o.css} +40 -2
- package/src/ui/dist/assets/{index--c4iXtuy.js → index-C3r2iGrp.js} +12 -12
- package/src/ui/dist/assets/{index-DZTZ8mWP.js → index-CLQauncb.js} +911 -120
- package/src/ui/dist/assets/{index-PJbSbPTy.js → index-Dxa2eYMY.js} +1 -1
- package/src/ui/dist/assets/{index-BDxipwrC.js → index-hOUOWbW2.js} +2 -2
- package/src/ui/dist/assets/{monaco-K8izTGgo.js → monaco-BGGAEii3.js} +1 -1
- package/src/ui/dist/assets/{pdf-effect-queue-DfBors6y.js → pdf-effect-queue-DlEr1_y5.js} +1 -1
- package/src/ui/dist/assets/{popover-yFK1J4fL.js → popover-CWJbJuYY.js} +1 -1
- package/src/ui/dist/assets/{project-sync-PENr2zcz.js → project-sync-CRJiucYO.js} +18 -4
- package/src/ui/dist/assets/{select-CAbJDfYv.js → select-CoHB7pvH.js} +2 -2
- package/src/ui/dist/assets/{sigma-DEuYJqTl.js → sigma-D5aJWR8J.js} +1 -1
- package/src/ui/dist/assets/{square-check-big-omoSUmcd.js → square-check-big-DUK_mnkS.js} +1 -1
- package/src/ui/dist/assets/{trash--F119N47.js → trash-ChU3SEE3.js} +1 -1
- package/src/ui/dist/assets/{useCliAccess-D31UR23I.js → useCliAccess-BrJBV3tY.js} +1 -1
- package/src/ui/dist/assets/{useFileDiffOverlay-BH6KcMzq.js → useFileDiffOverlay-C2OQaVWc.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-CZ613PM5.js → wrap-text-C7Qqh-om.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-BgDLAv3z.js → zoom-out-rtX0FKya.js} +1 -1
- package/src/ui/dist/index.html +2 -2
|
@@ -36,7 +36,9 @@ See the full notice here:
|
|
|
36
36
|
Prepare these first:
|
|
37
37
|
|
|
38
38
|
- Node.js `>=18.18` and npm `>=9`; install them from the official download page: https://nodejs.org/en/download
|
|
39
|
-
-
|
|
39
|
+
- one working Codex path:
|
|
40
|
+
- default OpenAI login path: `codex --login` (or `codex`)
|
|
41
|
+
- provider-backed path: one working Codex profile such as `minimax`, `glm`, `ark`, or `bailian`
|
|
40
42
|
- a model or API credential if your project needs external inference
|
|
41
43
|
- GPU or server access if your experiments are compute-heavy
|
|
42
44
|
- if you plan to run DeepScientist for real work, prepare Docker or another isolated environment and a dedicated non-root user
|
|
@@ -52,6 +54,10 @@ If you are still choosing a coding plan or subscription, these are practical sta
|
|
|
52
54
|
- Alibaba Cloud Bailian Coding Plan: https://help.aliyun.com/zh/model-studio/coding-plan
|
|
53
55
|
- Volcengine Ark Coding Plan: https://www.volcengine.com/docs/82379/1925115?lang=zh
|
|
54
56
|
|
|
57
|
+
If you plan to use a provider-backed Codex profile instead of the default OpenAI login flow, read this next:
|
|
58
|
+
|
|
59
|
+
- [15 Codex Provider Setup](./15_CODEX_PROVIDER_SETUP.md)
|
|
60
|
+
|
|
55
61
|
## 1. Install Node.js and DeepScientist
|
|
56
62
|
|
|
57
63
|
DeepScientist currently supports Linux and macOS only.
|
|
@@ -73,7 +79,7 @@ npm install -g @researai/deepscientist
|
|
|
73
79
|
|
|
74
80
|
This installs the `ds` command globally.
|
|
75
81
|
|
|
76
|
-
DeepScientist depends on a working Codex CLI.
|
|
82
|
+
DeepScientist depends on a working Codex CLI. It prefers the `codex` already available on your machine and only falls back to the bundled npm dependency when no local Codex path is available. If `codex` is still missing afterward, repair it explicitly:
|
|
77
83
|
|
|
78
84
|
```bash
|
|
79
85
|
npm install -g @openai/codex
|
|
@@ -89,6 +95,10 @@ This installs a lightweight TinyTeX runtime for local paper compilation.
|
|
|
89
95
|
|
|
90
96
|
## 2. Finish Codex Setup Before The First `ds`
|
|
91
97
|
|
|
98
|
+
Choose one of these two paths.
|
|
99
|
+
|
|
100
|
+
### 2.1 Default OpenAI login path
|
|
101
|
+
|
|
92
102
|
Run:
|
|
93
103
|
|
|
94
104
|
```bash
|
|
@@ -103,13 +113,54 @@ codex
|
|
|
103
113
|
|
|
104
114
|
and finish the interactive authentication there.
|
|
105
115
|
|
|
106
|
-
Then verify
|
|
116
|
+
Then verify:
|
|
107
117
|
|
|
108
118
|
```bash
|
|
109
119
|
ds doctor
|
|
110
120
|
```
|
|
111
121
|
|
|
112
|
-
|
|
122
|
+
### 2.2 Provider-backed Codex profile path
|
|
123
|
+
|
|
124
|
+
If you already use a named Codex profile for MiniMax, GLM, Volcengine Ark, Alibaba Bailian, or another provider-backed path, verify that profile first in a terminal:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
codex --profile m27
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Then run DeepScientist through the same profile:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
ds doctor --codex-profile m27
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
and later:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
ds --codex-profile m27
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
If you need one specific Codex binary for this run, add `--codex` too:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
ds doctor --codex /absolute/path/to/codex --codex-profile m27
|
|
146
|
+
ds --codex /absolute/path/to/codex --codex-profile m27
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
`m27` is the MiniMax profile name used consistently in this repo. MiniMax's own page currently uses `m21`, but the profile name is only a local alias; if you created a different name, use that same name in all commands.
|
|
150
|
+
|
|
151
|
+
DeepScientist blocks startup until Codex can pass a real hello probe. By default, the runner model in `~/DeepScientist/config/runners.yaml` is `gpt-5.4`. If your profile expects the model to come from the profile itself, use `model: inherit` in `runners.yaml`, or simply launch with `--codex-profile <name>` and let that session inherit the profile-defined model.
|
|
152
|
+
|
|
153
|
+
MiniMax note:
|
|
154
|
+
|
|
155
|
+
- if the current `@openai/codex` latest does not work with MiniMax, install `npm install -g @openai/codex@0.57.0`
|
|
156
|
+
- create a MiniMax `Coding Plan Key` first
|
|
157
|
+
- clear `OPENAI_API_KEY` and `OPENAI_BASE_URL` in the current shell before exporting `MINIMAX_API_KEY`
|
|
158
|
+
- use `https://api.minimaxi.com/v1`
|
|
159
|
+
- the `codex-MiniMax-*` model names shown on MiniMax's current Codex CLI page did not pass reliably through Codex CLI in local testing with the provided key
|
|
160
|
+
- the locally verified working model name is `MiniMax-M2.7`
|
|
161
|
+
- DeepScientist can auto-adapt MiniMax's profile-only `model_provider` / `model` config shape during probe and runtime
|
|
162
|
+
- if you also want plain terminal `codex --profile <name>` to work directly, add `model_provider = "minimax"` and `model = "MiniMax-M2.7"` at the top level of `~/.codex/config.toml`
|
|
163
|
+
- DeepScientist automatically downgrades `xhigh` to `high` when it detects an older Codex CLI that does not support `xhigh`
|
|
113
164
|
|
|
114
165
|
## 3. Start the Local Runtime
|
|
115
166
|
|
|
@@ -392,6 +392,7 @@ codex:
|
|
|
392
392
|
enabled: true
|
|
393
393
|
binary: codex
|
|
394
394
|
config_dir: ~/.codex
|
|
395
|
+
profile: ""
|
|
395
396
|
model: gpt-5.4
|
|
396
397
|
model_reasoning_effort: xhigh
|
|
397
398
|
approval_policy: on-request
|
|
@@ -429,6 +430,8 @@ claude:
|
|
|
429
430
|
- UI label: `Binary`
|
|
430
431
|
- Meaning: command name or absolute path used to launch the runner.
|
|
431
432
|
- `Test` behavior: checks whether the binary is on `PATH`.
|
|
433
|
+
- Resolution order for `codex`: env override, explicit path, local `PATH`, then bundled fallback.
|
|
434
|
+
- One-off note: you can temporarily override this with `ds --codex /absolute/path/to/codex`.
|
|
432
435
|
- First-run note: DeepScientist does not finish Codex authentication for you. Before the first `ds`, make sure `codex --login` (or `codex`) has completed successfully.
|
|
433
436
|
- Repair note: if the bundled dependency is missing after `npm install -g @researai/deepscientist`, install Codex explicitly with `npm install -g @openai/codex`.
|
|
434
437
|
|
|
@@ -439,6 +442,16 @@ claude:
|
|
|
439
442
|
- UI label: `Config directory`
|
|
440
443
|
- Meaning: global runner home for auth and global config.
|
|
441
444
|
|
|
445
|
+
**`profile`**
|
|
446
|
+
|
|
447
|
+
- Type: `string`
|
|
448
|
+
- Default: `""`
|
|
449
|
+
- UI label: `Codex profile`
|
|
450
|
+
- Meaning: optional Codex profile name passed through as `codex --profile <name>`.
|
|
451
|
+
- Use this when your Codex CLI is already configured for a provider-backed setup such as MiniMax, GLM, Volcengine Ark, or Alibaba Bailian.
|
|
452
|
+
- One-off note: you can also leave this field empty and launch with `ds --codex-profile <name>`.
|
|
453
|
+
- Combined note: one-off profile and binary overrides can be combined as `ds --codex /absolute/path/to/codex --codex-profile <name>`.
|
|
454
|
+
|
|
442
455
|
**`model`**
|
|
443
456
|
|
|
444
457
|
- Type: `string`
|
|
@@ -446,6 +459,7 @@ claude:
|
|
|
446
459
|
- UI label: `Default model`
|
|
447
460
|
- Meaning: default model used when a project does not override it.
|
|
448
461
|
- Startup note: DeepScientist's Codex readiness probe uses this configured model first. If your Codex account cannot access it, DeepScientist falls back to the current Codex default model and persists `model: inherit`.
|
|
462
|
+
- Provider-profile note: when `profile` is set, `model: inherit` is usually the right choice so the Codex profile itself controls the provider model.
|
|
449
463
|
|
|
450
464
|
**`model_reasoning_effort`**
|
|
451
465
|
|
|
@@ -454,6 +468,7 @@ claude:
|
|
|
454
468
|
- UI label: `Reasoning effort`
|
|
455
469
|
- Allowed values: `""`, `minimal`, `low`, `medium`, `high`, `xhigh`
|
|
456
470
|
- Meaning: default reasoning intensity.
|
|
471
|
+
- Compatibility note: when DeepScientist detects a Codex CLI older than `0.63.0`, it automatically downgrades `xhigh` to `high` for the startup probe and runner command. This covers MiniMax's currently recommended `@openai/codex@0.57.0` path.
|
|
457
472
|
|
|
458
473
|
**`approval_policy`**
|
|
459
474
|
|
|
@@ -115,13 +115,21 @@ type StartResearchTemplate = {
|
|
|
115
115
|
baseline_variant_id: string
|
|
116
116
|
baseline_urls: string
|
|
117
117
|
paper_urls: string
|
|
118
|
+
review_materials: string
|
|
118
119
|
runtime_constraints: string
|
|
119
120
|
objectives: string
|
|
120
121
|
need_research_paper: boolean
|
|
121
122
|
research_intensity: 'light' | 'balanced' | 'sprint'
|
|
122
123
|
decision_policy: 'autonomous' | 'user_gated'
|
|
123
124
|
launch_mode: 'standard' | 'custom'
|
|
124
|
-
custom_profile: 'continue_existing_state' | 'revision_rebuttal' | 'freeform'
|
|
125
|
+
custom_profile: 'continue_existing_state' | 'review_audit' | 'revision_rebuttal' | 'freeform'
|
|
126
|
+
review_followup_policy: 'audit_only' | 'auto_execute_followups' | 'user_gated_followups'
|
|
127
|
+
baseline_execution_policy:
|
|
128
|
+
| 'auto'
|
|
129
|
+
| 'must_reproduce_or_verify'
|
|
130
|
+
| 'reuse_existing_only'
|
|
131
|
+
| 'skip_unless_blocking'
|
|
132
|
+
manuscript_edit_mode: 'none' | 'copy_ready_text' | 'latex_required'
|
|
125
133
|
entry_state_summary: string
|
|
126
134
|
review_summary: string
|
|
127
135
|
custom_brief: string
|
|
@@ -179,6 +187,9 @@ The dialog submits:
|
|
|
179
187
|
decision_policy,
|
|
180
188
|
launch_mode,
|
|
181
189
|
custom_profile,
|
|
190
|
+
review_followup_policy,
|
|
191
|
+
baseline_execution_policy,
|
|
192
|
+
manuscript_edit_mode,
|
|
182
193
|
scope,
|
|
183
194
|
baseline_mode,
|
|
184
195
|
resource_policy,
|
|
@@ -188,6 +199,7 @@ The dialog submits:
|
|
|
188
199
|
objectives: string[],
|
|
189
200
|
baseline_urls: string[],
|
|
190
201
|
paper_urls: string[],
|
|
202
|
+
review_materials: string[],
|
|
191
203
|
entry_state_summary,
|
|
192
204
|
review_summary,
|
|
193
205
|
custom_brief,
|
|
@@ -256,12 +268,18 @@ The dialog submits:
|
|
|
256
268
|
|
|
257
269
|
**`baseline_urls`**
|
|
258
270
|
|
|
259
|
-
- Fallback source links when there is no registered reusable baseline.
|
|
271
|
+
- Fallback source links or absolute local file/folder paths when there is no registered reusable baseline.
|
|
260
272
|
- Submitted as `string[]`.
|
|
261
273
|
|
|
262
274
|
**`paper_urls`**
|
|
263
275
|
|
|
264
|
-
- Papers, repos, benchmarks, or
|
|
276
|
+
- Papers, repos, manuscripts, benchmarks, leaderboards, or absolute local file/folder paths that shape early scouting or writing work.
|
|
277
|
+
- Submitted as `string[]`.
|
|
278
|
+
|
|
279
|
+
**`review_materials`**
|
|
280
|
+
|
|
281
|
+
- Only meaningful for `review_audit` or `revision_rebuttal`.
|
|
282
|
+
- Use one URL or one absolute local file/folder path per line for reviewer comments, decision letters, meta-review notes, or revision packets.
|
|
265
283
|
- Submitted as `string[]`.
|
|
266
284
|
|
|
267
285
|
### Constraints and objectives
|
|
@@ -317,12 +335,49 @@ Only meaningful when `launch_mode = custom`.
|
|
|
317
335
|
- `continue_existing_state`
|
|
318
336
|
- start by auditing existing baselines, results, drafts, or mixed project assets
|
|
319
337
|
- prompt builder should steer the agent toward `intake-audit`
|
|
338
|
+
- `review_audit`
|
|
339
|
+
- start from a substantial draft or paper package that needs an independent skeptical audit
|
|
340
|
+
- prompt builder should steer the agent toward `review`
|
|
320
341
|
- `revision_rebuttal`
|
|
321
342
|
- start from reviewer comments, revision packets, or a rebuttal task
|
|
322
343
|
- prompt builder should steer the agent toward `rebuttal`
|
|
323
344
|
- `freeform`
|
|
345
|
+
- use this as the “Other” path
|
|
324
346
|
- follow a custom brief with minimal forced workflow assumptions
|
|
325
347
|
|
|
348
|
+
**`baseline_execution_policy`**
|
|
349
|
+
|
|
350
|
+
- Only meaningful when `launch_mode = custom`.
|
|
351
|
+
- `auto`
|
|
352
|
+
- let the startup contract and current evidence decide
|
|
353
|
+
- `must_reproduce_or_verify`
|
|
354
|
+
- verify or recover the rebuttal-critical baseline/comparator before reviewer-linked follow-up work
|
|
355
|
+
- `reuse_existing_only`
|
|
356
|
+
- trust the current baseline/results unless they are inconsistent or unusable
|
|
357
|
+
- `skip_unless_blocking`
|
|
358
|
+
- skip baseline reruns unless a named review/rebuttal item truly depends on a missing comparator
|
|
359
|
+
|
|
360
|
+
**`review_followup_policy`**
|
|
361
|
+
|
|
362
|
+
- Mainly meaningful for `review_audit`.
|
|
363
|
+
- `audit_only`
|
|
364
|
+
- stop after the audit artifacts and route recommendation
|
|
365
|
+
- `auto_execute_followups`
|
|
366
|
+
- continue automatically into the justified experiments and manuscript deltas after the audit
|
|
367
|
+
- `user_gated_followups`
|
|
368
|
+
- finish the audit first, then ask for approval before expensive follow-up work
|
|
369
|
+
|
|
370
|
+
**`manuscript_edit_mode`**
|
|
371
|
+
|
|
372
|
+
- Mainly meaningful for `review_audit` and `revision_rebuttal`.
|
|
373
|
+
- `none`
|
|
374
|
+
- planning artifacts only
|
|
375
|
+
- `copy_ready_text`
|
|
376
|
+
- produce section-level revision text that is ready to paste into the manuscript
|
|
377
|
+
- `latex_required`
|
|
378
|
+
- prefer the provided LaTeX tree as the writing surface and produce LaTeX-ready replacement text
|
|
379
|
+
- if you choose this mode, it is best to provide the LaTeX source tree via local path / folder input
|
|
380
|
+
|
|
326
381
|
**`entry_state_summary`**
|
|
327
382
|
|
|
328
383
|
- Plain-language summary of what already exists.
|
|
@@ -378,6 +433,9 @@ Custom launch behavior is explicit:
|
|
|
378
433
|
- `custom + continue_existing_state`
|
|
379
434
|
- tells the agent to audit and normalize existing assets first
|
|
380
435
|
- explicitly prefers `intake-audit`
|
|
436
|
+
- `custom + review_audit`
|
|
437
|
+
- tells the agent that the current draft/paper state is the active contract
|
|
438
|
+
- explicitly prefers `review`
|
|
381
439
|
- `custom + revision_rebuttal`
|
|
382
440
|
- tells the agent to interpret reviewer comments and current paper state first
|
|
383
441
|
- explicitly prefers `rebuttal`
|
|
@@ -477,6 +535,9 @@ Custom launch behavior is explicit:
|
|
|
477
535
|
"decision_policy": "user_gated",
|
|
478
536
|
"launch_mode": "custom",
|
|
479
537
|
"custom_profile": "revision_rebuttal",
|
|
538
|
+
"review_followup_policy": "audit_only",
|
|
539
|
+
"baseline_execution_policy": "skip_unless_blocking",
|
|
540
|
+
"manuscript_edit_mode": "latex_required",
|
|
480
541
|
"scope": "baseline_plus_direction",
|
|
481
542
|
"baseline_mode": "restore_from_url",
|
|
482
543
|
"resource_policy": "balanced",
|
|
@@ -490,6 +551,9 @@ Custom launch behavior is explicit:
|
|
|
490
551
|
],
|
|
491
552
|
"baseline_urls": [],
|
|
492
553
|
"paper_urls": [],
|
|
554
|
+
"review_materials": [
|
|
555
|
+
"/absolute/path/to/review-comments.md"
|
|
556
|
+
],
|
|
493
557
|
"entry_state_summary": "A draft and previous experiment outputs already exist.",
|
|
494
558
|
"review_summary": "Reviewers asked for one stronger ablation, one extra baseline, and a clearer limitation paragraph.",
|
|
495
559
|
"custom_brief": "Treat the current manuscript and review packet as the active contract."
|
|
@@ -500,7 +564,7 @@ Custom launch behavior is explicit:
|
|
|
500
564
|
## Operational implications
|
|
501
565
|
|
|
502
566
|
- The startup contract is durable project state, not only UI state.
|
|
503
|
-
- Prompt building later reads `launch_mode`, `custom_profile`, and
|
|
567
|
+
- Prompt building later reads `launch_mode`, `custom_profile`, `review_followup_policy`, `baseline_execution_policy`, `manuscript_edit_mode`, `entry_state_summary`, `review_summary`, `review_materials`, and `custom_brief` again.
|
|
504
568
|
- This means `Start Research` shapes not just the first turn, but later routing decisions too.
|
|
505
569
|
|
|
506
570
|
## Validation checklist
|
package/docs/en/09_DOCTOR.md
CHANGED
|
@@ -10,20 +10,26 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
10
10
|
npm install -g @researai/deepscientist
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
2. Make sure Codex is
|
|
13
|
+
2. Make sure Codex itself is working first:
|
|
14
|
+
|
|
15
|
+
Default OpenAI path:
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
18
|
codex --login
|
|
17
19
|
```
|
|
18
20
|
|
|
21
|
+
Provider-backed profile path:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
codex --profile m27
|
|
25
|
+
```
|
|
26
|
+
|
|
19
27
|
If `codex` is missing, repair it explicitly with:
|
|
20
28
|
|
|
21
29
|
```bash
|
|
22
30
|
npm install -g @openai/codex
|
|
23
31
|
```
|
|
24
32
|
|
|
25
|
-
If your Codex CLI version does not expose `--login`, run `codex` and finish the interactive setup there.
|
|
26
|
-
|
|
27
33
|
3. Try to start DeepScientist:
|
|
28
34
|
|
|
29
35
|
```bash
|
|
@@ -57,7 +63,7 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
57
63
|
|
|
58
64
|
### Codex is missing
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
DeepScientist prefers the `codex` already available on your machine and only uses the bundled dependency as fallback. If neither is present, run the package install again so the bundled Codex dependency is present:
|
|
61
67
|
|
|
62
68
|
```bash
|
|
63
69
|
npm install -g @researai/deepscientist
|
|
@@ -81,6 +87,42 @@ If your Codex CLI version does not expose `--login`, run `codex` and finish the
|
|
|
81
87
|
|
|
82
88
|
Finish login once, then rerun `ds doctor`.
|
|
83
89
|
|
|
90
|
+
### Codex profile works in the terminal, but DeepScientist still fails
|
|
91
|
+
|
|
92
|
+
Run DeepScientist with the same profile explicitly:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
ds doctor --codex-profile m27
|
|
96
|
+
ds --codex-profile m27
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
If your working Codex CLI is not the one on `PATH`, point DeepScientist at it explicitly:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
ds doctor --codex /absolute/path/to/codex --codex-profile m27
|
|
103
|
+
ds --codex /absolute/path/to/codex --codex-profile m27
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`m27` is the MiniMax profile name used consistently in this repo. MiniMax's own page currently uses `m21`, but the profile name is only a local alias; if you created a different name, use that same name in both commands.
|
|
107
|
+
|
|
108
|
+
Also check:
|
|
109
|
+
|
|
110
|
+
- the same shell still exports the provider API key
|
|
111
|
+
- the profile points at the provider's Coding Plan endpoint, not the generic API endpoint
|
|
112
|
+
- `~/DeepScientist/config/runners.yaml` uses `model: inherit` if the provider expects the model to come from the profile itself
|
|
113
|
+
|
|
114
|
+
MiniMax-specific note:
|
|
115
|
+
|
|
116
|
+
- if MiniMax fails on the current `@openai/codex` latest, install `npm install -g @openai/codex@0.57.0`
|
|
117
|
+
- create a MiniMax `Coding Plan Key` first
|
|
118
|
+
- clear `OPENAI_API_KEY` and `OPENAI_BASE_URL` in the current shell before exporting `MINIMAX_API_KEY`
|
|
119
|
+
- use `https://api.minimaxi.com/v1`
|
|
120
|
+
- the `codex-MiniMax-*` model names shown on MiniMax's current Codex CLI page did not pass reliably through Codex CLI in local testing with the provided key
|
|
121
|
+
- the locally verified working model name is `MiniMax-M2.7`
|
|
122
|
+
- DeepScientist can auto-adapt MiniMax's profile-only `model_provider` / `model` config shape during probe and runtime
|
|
123
|
+
- if you also want plain terminal `codex --profile <name>` to work directly, put `model_provider = "minimax"` and `model = "MiniMax-M2.7"` at the top level of `~/.codex/config.toml`
|
|
124
|
+
- DeepScientist automatically downgrades `xhigh` to `high` when it detects a Codex CLI older than `0.63.0`
|
|
125
|
+
|
|
84
126
|
### The configured Codex model is unavailable
|
|
85
127
|
|
|
86
128
|
DeepScientist blocks startup until Codex passes a real startup hello probe. In the current release, that probe first uses the runner model configured in:
|
|
@@ -95,6 +137,8 @@ The default is `gpt-5.4`. If your Codex account or CLI config cannot access that
|
|
|
95
137
|
ds doctor
|
|
96
138
|
```
|
|
97
139
|
|
|
140
|
+
For provider-backed Codex profiles, `model: inherit` is usually the right default.
|
|
141
|
+
|
|
98
142
|
### `uv` is missing
|
|
99
143
|
|
|
100
144
|
Normally `ds` will bootstrap a local `uv` automatically. If that bootstrap fails, install it manually:
|
|
@@ -118,12 +118,12 @@ Good pattern:
|
|
|
118
118
|
|
|
119
119
|
Use these fields to reduce ambiguity before the first round starts.
|
|
120
120
|
|
|
121
|
-
Put repositories in `Baseline links` when:
|
|
121
|
+
Put repositories or absolute local file/folder paths in `Baseline links` when:
|
|
122
122
|
|
|
123
123
|
- the quest should restore a known repo
|
|
124
124
|
- the baseline must come from a specific official implementation
|
|
125
125
|
|
|
126
|
-
Put papers or important external references in `
|
|
126
|
+
Put papers, manuscript paths, or important external references in `Paper / reference sources` when:
|
|
127
127
|
|
|
128
128
|
- the task is defined by a paper
|
|
129
129
|
- the expected protocol comes from prior work
|
|
@@ -131,6 +131,9 @@ Put papers or important external references in `Reference papers / repos` when:
|
|
|
131
131
|
|
|
132
132
|
If you already know the baseline and paper, do not hide them in the main request. Put them in the dedicated fields.
|
|
133
133
|
|
|
134
|
+
These reference fields are not web-only.
|
|
135
|
+
You can use network links, absolute local file paths, or absolute local folder paths.
|
|
136
|
+
|
|
134
137
|
### 4.5 Reusable baseline
|
|
135
138
|
|
|
136
139
|
Use this only when you already imported a trusted reusable baseline into the registry.
|
|
@@ -177,6 +180,22 @@ Why these defaults are usually correct:
|
|
|
177
180
|
- `Standard` keeps the workflow on the ordinary path
|
|
178
181
|
- `Research paper = On` keeps analysis and writing in scope
|
|
179
182
|
|
|
183
|
+
If you switch `Launch mode` to `Custom`, choose the custom task type explicitly:
|
|
184
|
+
|
|
185
|
+
- `Continue existing state`
|
|
186
|
+
- for reuse-first work on an existing quest state
|
|
187
|
+
- `Review`
|
|
188
|
+
- for an independent skeptical audit of a substantial draft or paper package
|
|
189
|
+
- `Rebuttal / revision`
|
|
190
|
+
- for reviewer-driven work where comments must be mapped into experiments, manuscript deltas, and a response letter
|
|
191
|
+
- `Other / freeform`
|
|
192
|
+
- for everything else that does not fit the standard custom types
|
|
193
|
+
|
|
194
|
+
If you choose `Review`, also decide:
|
|
195
|
+
|
|
196
|
+
- whether the system should stop after the audit or continue automatically into follow-up experiments and manuscript updates
|
|
197
|
+
- whether manuscript-facing output should be ordinary copy-ready text or LaTeX-ready text
|
|
198
|
+
|
|
180
199
|
### 4.8 Runtime constraints
|
|
181
200
|
|
|
182
201
|
Use this field for hard rules, not wishes.
|