@researai/deepscientist 1.5.15 → 1.5.17
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 +385 -104
- package/bin/ds.js +1241 -110
- package/docs/en/00_QUICK_START.md +100 -19
- package/docs/en/01_SETTINGS_REFERENCE.md +34 -1
- package/docs/en/02_START_RESEARCH_GUIDE.md +7 -0
- package/docs/en/05_TUI_GUIDE.md +6 -0
- package/docs/en/06_RUNTIME_AND_CANVAS.md +4 -3
- package/docs/en/09_DOCTOR.md +25 -8
- package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
- package/docs/en/15_CODEX_PROVIDER_SETUP.md +37 -11
- package/docs/en/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
- package/docs/en/19_LOCAL_BROWSER_AUTH.md +70 -0
- package/docs/en/20_WORKSPACE_MODES_GUIDE.md +250 -0
- package/docs/en/21_LOCAL_MODEL_BACKENDS_GUIDE.md +283 -0
- package/docs/en/91_DEVELOPMENT.md +237 -0
- package/docs/en/README.md +24 -2
- package/docs/zh/00_QUICK_START.md +89 -19
- package/docs/zh/01_SETTINGS_REFERENCE.md +34 -1
- package/docs/zh/02_START_RESEARCH_GUIDE.md +7 -0
- package/docs/zh/05_TUI_GUIDE.md +6 -0
- package/docs/zh/09_DOCTOR.md +26 -9
- package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
- package/docs/zh/15_CODEX_PROVIDER_SETUP.md +37 -11
- package/docs/zh/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
- package/docs/zh/19_LOCAL_BROWSER_AUTH.md +68 -0
- package/docs/zh/20_WORKSPACE_MODES_GUIDE.md +251 -0
- package/docs/zh/21_LOCAL_MODEL_BACKENDS_GUIDE.md +281 -0
- package/docs/zh/README.md +24 -2
- package/install.sh +46 -4
- package/package.json +2 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/acp/envelope.py +6 -0
- package/src/deepscientist/artifact/service.py +647 -22
- package/src/deepscientist/bash_exec/service.py +234 -9
- package/src/deepscientist/bridges/connectors.py +8 -2
- package/src/deepscientist/cli.py +115 -19
- package/src/deepscientist/codex_cli_compat.py +367 -22
- package/src/deepscientist/config/models.py +2 -1
- package/src/deepscientist/config/service.py +183 -13
- package/src/deepscientist/daemon/api/handlers.py +255 -31
- package/src/deepscientist/daemon/api/router.py +9 -0
- package/src/deepscientist/daemon/app.py +1146 -105
- package/src/deepscientist/diagnostics/__init__.py +6 -0
- package/src/deepscientist/diagnostics/runner_failures.py +130 -0
- package/src/deepscientist/doctor.py +207 -3
- package/src/deepscientist/gitops/__init__.py +10 -1
- package/src/deepscientist/gitops/diff.py +129 -0
- package/src/deepscientist/gitops/service.py +4 -1
- package/src/deepscientist/mcp/server.py +39 -0
- package/src/deepscientist/prompts/builder.py +275 -34
- package/src/deepscientist/quest/layout.py +15 -2
- package/src/deepscientist/quest/service.py +707 -55
- package/src/deepscientist/quest/stage_views.py +6 -1
- package/src/deepscientist/runners/codex.py +143 -43
- package/src/deepscientist/shared.py +19 -0
- package/src/deepscientist/skills/__init__.py +2 -2
- package/src/deepscientist/skills/installer.py +196 -5
- package/src/deepscientist/skills/registry.py +66 -0
- package/src/prompts/connectors/qq.md +18 -8
- package/src/prompts/connectors/weixin.md +16 -6
- package/src/prompts/contracts/shared_interaction.md +14 -2
- package/src/prompts/system.md +23 -5
- package/src/prompts/system_copilot.md +56 -0
- package/src/skills/analysis-campaign/SKILL.md +1 -0
- package/src/skills/baseline/SKILL.md +8 -0
- package/src/skills/decision/SKILL.md +8 -0
- package/src/skills/experiment/SKILL.md +8 -0
- package/src/skills/figure-polish/SKILL.md +1 -0
- package/src/skills/finalize/SKILL.md +1 -0
- package/src/skills/idea/SKILL.md +1 -0
- package/src/skills/intake-audit/SKILL.md +8 -0
- package/src/skills/mentor/SKILL.md +217 -0
- package/src/skills/mentor/references/correction-rules.md +210 -0
- package/src/skills/mentor/references/knowledge-profile.md +91 -0
- package/src/skills/mentor/references/persona-profile.md +138 -0
- package/src/skills/mentor/references/taste-profile.md +128 -0
- package/src/skills/mentor/references/thought-style-profile.md +138 -0
- package/src/skills/mentor/references/work-profile.md +289 -0
- package/src/skills/mentor/references/workflow-profile.md +240 -0
- package/src/skills/optimize/SKILL.md +1 -0
- package/src/skills/rebuttal/SKILL.md +1 -0
- package/src/skills/review/SKILL.md +1 -0
- package/src/skills/scout/SKILL.md +8 -0
- package/src/skills/write/SKILL.md +1 -0
- package/src/tui/dist/app/AppContainer.js +19 -11
- package/src/tui/dist/index.js +4 -1
- package/src/tui/dist/lib/api.js +33 -3
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/AiManusChatView-Bv-Z8YpU.js +204 -0
- package/src/ui/dist/assets/AnalysisPlugin-BCKAfjba.js +1 -0
- package/src/ui/dist/assets/CliPlugin-BCKcpc35.js +109 -0
- package/src/ui/dist/assets/CodeEditorPlugin-DbOfSJ8K.js +2 -0
- package/src/ui/dist/assets/CodeViewerPlugin-CbaFRrUU.js +270 -0
- package/src/ui/dist/assets/DocViewerPlugin-DAjLVeQD.js +7 -0
- package/src/ui/dist/assets/GitCommitViewerPlugin-CIUqbUDO.js +1 -0
- package/src/ui/dist/assets/GitDiffViewerPlugin-CQACjoAA.js +6 -0
- package/src/ui/dist/assets/GitSnapshotViewer-0r4nLPke.js +30 -0
- package/src/ui/dist/assets/ImageViewerPlugin-nBOmI2v_.js +26 -0
- package/src/ui/dist/assets/LabCopilotPanel-BHxOxF4z.js +14 -0
- package/src/ui/dist/assets/LabPlugin-BKoZGs95.js +22 -0
- package/src/ui/dist/assets/LatexPlugin-ZwtV8pIp.js +25 -0
- package/src/ui/dist/assets/MarkdownViewerPlugin-DKqVfKyW.js +128 -0
- package/src/ui/dist/assets/MarketplacePlugin-BwxStZ9D.js +13 -0
- package/src/ui/dist/assets/NotebookEditor-BEQhaQbt.js +81 -0
- package/src/ui/dist/assets/{NotebookEditor-CccQYZjX.css → NotebookEditor-BHH8rdGj.css} +1 -1
- package/src/ui/dist/assets/NotebookEditor-BOr3x3Ej.css +1 -0
- package/src/ui/dist/assets/NotebookEditor-DB9N_T9q.js +361 -0
- package/src/ui/dist/assets/PdfLoader-Cy5jtWrr.css +1 -0
- package/src/ui/dist/assets/PdfLoader-eWBONbQP.js +16 -0
- package/src/ui/dist/assets/PdfMarkdownPlugin-D22YOZL3.js +1 -0
- package/src/ui/dist/assets/PdfViewerPlugin-c-RK9DLM.js +17 -0
- package/src/ui/dist/assets/PdfViewerPlugin-nwwE-fjJ.css +1 -0
- package/src/ui/dist/assets/SearchPlugin-CxF9ytAx.js +16 -0
- package/src/ui/dist/assets/SearchPlugin-DA4en4hK.css +1 -0
- package/src/ui/dist/assets/TextViewerPlugin-C5xqeeUH.js +54 -0
- package/src/ui/dist/assets/VNCViewer-BoLGLnHz.js +11 -0
- package/src/ui/dist/assets/bot-DREQOxzP.js +6 -0
- package/src/ui/dist/assets/browser-CTB2jwNe.js +8 -0
- package/src/ui/dist/assets/chevron-up-C9Qpx4DE.js +6 -0
- package/src/ui/dist/assets/code-WlFHE7z_.js +6 -0
- package/src/ui/dist/assets/file-content-BZMz3RYp.js +1 -0
- package/src/ui/dist/assets/file-diff-panel-CQhw0jS2.js +1 -0
- package/src/ui/dist/assets/file-jump-queue-DA-SdG__.js +1 -0
- package/src/ui/dist/assets/file-socket-CfQPKQKj.js +1 -0
- package/src/ui/dist/assets/git-commit-horizontal-DxZ8DCZh.js +6 -0
- package/src/ui/dist/assets/image-Bgl4VIyx.js +6 -0
- package/src/ui/dist/assets/index-BpV6lusQ.css +33 -0
- package/src/ui/dist/assets/index-CBNVuWcP.js +2496 -0
- package/src/ui/dist/assets/index-CwNu1aH4.js +11 -0
- package/src/ui/dist/assets/index-DrUnlf6K.js +1 -0
- package/src/ui/dist/assets/index-NW-h8VzN.js +1 -0
- package/src/ui/dist/assets/monaco-CiHMMNH_.js +1 -0
- package/src/ui/dist/assets/pdf-effect-queue-J8OnM0jE.js +6 -0
- package/src/ui/dist/assets/plugin-monaco-C8UgLomw.js +19 -0
- package/src/ui/dist/assets/plugin-notebook-HbW2K-1c.js +169 -0
- package/src/ui/dist/assets/plugin-pdf-CR8hgQBV.js +357 -0
- package/src/ui/dist/assets/plugin-terminal-MXFIPun8.js +227 -0
- package/src/ui/dist/assets/popover-CLc0pPP8.js +1 -0
- package/src/ui/dist/assets/project-sync-C9IdzdZW.js +1 -0
- package/src/ui/dist/assets/select-Cs2PmzwL.js +11 -0
- package/src/ui/dist/assets/sigma-ClKcHAXm.js +6 -0
- package/src/ui/dist/assets/trash-DwpbFr3w.js +11 -0
- package/src/ui/dist/assets/useCliAccess-NQ8m0Let.js +1 -0
- package/src/ui/dist/assets/useFileDiffOverlay-FuhcnKiw.js +1 -0
- package/src/ui/dist/assets/wrap-text-BC-Hltpd.js +11 -0
- package/src/ui/dist/assets/zoom-out-E_gaeAxL.js +11 -0
- package/src/ui/dist/index.html +5 -2
- package/src/ui/dist/assets/AiManusChatView-DDjbFnbt.js +0 -26597
- package/src/ui/dist/assets/AnalysisPlugin-Yb5IdmaU.js +0 -123
- package/src/ui/dist/assets/CliPlugin-e64sreyu.js +0 -31037
- package/src/ui/dist/assets/CodeEditorPlugin-C4D2TIkU.js +0 -427
- package/src/ui/dist/assets/CodeViewerPlugin-BVoNZIvC.js +0 -905
- package/src/ui/dist/assets/DocViewerPlugin-CLChbllo.js +0 -278
- package/src/ui/dist/assets/GitDiffViewerPlugin-C4xeFyFQ.js +0 -2661
- package/src/ui/dist/assets/ImageViewerPlugin-OiMUAcLi.js +0 -500
- package/src/ui/dist/assets/LabCopilotPanel-BjD2ThQF.js +0 -4104
- package/src/ui/dist/assets/LabPlugin-DQPg-NrB.js +0 -2677
- package/src/ui/dist/assets/LatexPlugin-CI05XAV9.js +0 -1792
- package/src/ui/dist/assets/MarkdownViewerPlugin-DpeBLYZf.js +0 -308
- package/src/ui/dist/assets/MarketplacePlugin-DolE58Q2.js +0 -413
- package/src/ui/dist/assets/NotebookEditor-7Qm2rSWD.js +0 -4214
- package/src/ui/dist/assets/NotebookEditor-C1kWaxKi.js +0 -84873
- package/src/ui/dist/assets/NotebookEditor-C3VQ7ylN.css +0 -1405
- package/src/ui/dist/assets/PdfLoader-BfOHw8Zw.js +0 -25468
- package/src/ui/dist/assets/PdfLoader-C-Y707R3.css +0 -49
- package/src/ui/dist/assets/PdfMarkdownPlugin-BulDREv1.js +0 -409
- package/src/ui/dist/assets/PdfViewerPlugin-C-daaOaL.js +0 -3095
- package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +0 -3627
- package/src/ui/dist/assets/SearchPlugin-CjpaiJ3A.js +0 -741
- package/src/ui/dist/assets/SearchPlugin-DDMrGDkh.css +0 -379
- package/src/ui/dist/assets/TextViewerPlugin-BxIyqPQC.js +0 -472
- package/src/ui/dist/assets/VNCViewer-HAg9mF7M.js +0 -18821
- package/src/ui/dist/assets/awareness-C0NPR2Dj.js +0 -292
- package/src/ui/dist/assets/bot-0DYntytV.js +0 -21
- package/src/ui/dist/assets/browser-BAcuE0Xj.js +0 -2895
- package/src/ui/dist/assets/code-B20Slj_w.js +0 -17
- package/src/ui/dist/assets/file-content-DT24KFma.js +0 -377
- package/src/ui/dist/assets/file-diff-panel-DK13YPql.js +0 -92
- package/src/ui/dist/assets/file-jump-queue-r5XKgJEV.js +0 -16
- package/src/ui/dist/assets/file-socket-B4T2o4nR.js +0 -58
- package/src/ui/dist/assets/function-B5QZkkHC.js +0 -1895
- package/src/ui/dist/assets/image-DSeR_sDS.js +0 -18
- package/src/ui/dist/assets/index-BrFje2Uk.js +0 -120
- package/src/ui/dist/assets/index-BwRJaoTl.js +0 -25
- package/src/ui/dist/assets/index-D_E4281X.js +0 -221322
- package/src/ui/dist/assets/index-DnYB3xb1.js +0 -159
- package/src/ui/dist/assets/index-G7AcWcMu.css +0 -12594
- package/src/ui/dist/assets/monaco-LExaAN3Y.js +0 -623
- package/src/ui/dist/assets/pdf-effect-queue-BJk5okWJ.js +0 -47
- package/src/ui/dist/assets/pdf_viewer-e0g1is2C.js +0 -8206
- package/src/ui/dist/assets/popover-D3Gg_FoV.js +0 -476
- package/src/ui/dist/assets/project-sync-C_ygLlVU.js +0 -297
- package/src/ui/dist/assets/select-CpAK6uWm.js +0 -1690
- package/src/ui/dist/assets/sigma-DEccaSgk.js +0 -22
- package/src/ui/dist/assets/square-check-big-uUfyVsbD.js +0 -17
- package/src/ui/dist/assets/trash-CXvwwSe8.js +0 -32
- package/src/ui/dist/assets/useCliAccess-Bnop4mgR.js +0 -957
- package/src/ui/dist/assets/useFileDiffOverlay-B8eUAX0I.js +0 -53
- package/src/ui/dist/assets/wrap-text-9vbOBpkW.js +0 -35
- package/src/ui/dist/assets/yjs-DncrqiZ8.js +0 -11243
- package/src/ui/dist/assets/zoom-out-BgVMmOW4.js +0 -34
|
@@ -13,7 +13,7 @@ You will do four things:
|
|
|
13
13
|
|
|
14
14
|
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.
|
|
15
15
|
|
|
16
|
-
Current platform support: DeepScientist fully supports Linux and macOS. Native Windows support is currently experimental
|
|
16
|
+
Current platform support: DeepScientist fully supports Linux and macOS. Native Windows support is currently experimental (strongly recommend WSL2 when you want the closest Linux-like terminal behavior).
|
|
17
17
|
|
|
18
18
|
## Safety First: Isolate Before You Start
|
|
19
19
|
|
|
@@ -37,7 +37,7 @@ 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
|
|
40
|
+
- default OpenAI login path: `codex login` (or just `codex`)
|
|
41
41
|
- provider-backed path: one working Codex profile such as `minimax`, `glm`, `ark`, or `bailian`
|
|
42
42
|
- a model or API credential if your project needs external inference
|
|
43
43
|
- GPU or server access if your experiments are compute-heavy
|
|
@@ -47,6 +47,7 @@ Prepare these first:
|
|
|
47
47
|
|
|
48
48
|
If you are still choosing a coding plan or subscription, these are practical starting points:
|
|
49
49
|
|
|
50
|
+
- If you just want one simple starting recommendation, start with GPT-5.4 using `xhigh` reasoning effort, or Gemini 3 Pro using `gemini-3-pro-preview`.
|
|
50
51
|
- ChatGPT pricing: https://openai.com/chatgpt/pricing/
|
|
51
52
|
- ChatGPT Plus help: https://help.openai.com/en/articles/6950777-what-is-chatgpt-plus%3F.eps
|
|
52
53
|
- MiniMax Coding Plan: https://platform.minimaxi.com/docs/guides/pricing-codingplan
|
|
@@ -54,13 +55,15 @@ If you are still choosing a coding plan or subscription, these are practical sta
|
|
|
54
55
|
- Alibaba Cloud Bailian Coding Plan: https://help.aliyun.com/zh/model-studio/coding-plan
|
|
55
56
|
- Volcengine Ark Coding Plan: https://www.volcengine.com/docs/82379/1925115?lang=zh
|
|
56
57
|
|
|
58
|
+
If you plan to use Qwen through Alibaba Bailian, use the Bailian **Coding Plan** endpoint only. The generic Bailian or DashScope Qwen API is not supported in the Codex-backed DeepScientist path.
|
|
59
|
+
|
|
57
60
|
If you plan to use a provider-backed Codex profile instead of the default OpenAI login flow, read this next:
|
|
58
61
|
|
|
59
62
|
- [15 Codex Provider Setup](./15_CODEX_PROVIDER_SETUP.md)
|
|
60
63
|
|
|
61
64
|
## 1. Install Node.js and DeepScientist
|
|
62
65
|
|
|
63
|
-
DeepScientist fully supports Linux and macOS. Native Windows support is currently experimental
|
|
66
|
+
DeepScientist fully supports Linux and macOS. Native Windows support is currently experimental (strongly recommend WSL2 when you want the most reliable Linux-like shell behavior).
|
|
64
67
|
|
|
65
68
|
Before installing DeepScientist itself, install Node.js from the official page:
|
|
66
69
|
|
|
@@ -85,6 +88,15 @@ DeepScientist depends on a working Codex CLI. It prefers the `codex` already ava
|
|
|
85
88
|
npm install -g @openai/codex
|
|
86
89
|
```
|
|
87
90
|
|
|
91
|
+
If you want the most reliable path, verify the command immediately:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
which codex
|
|
95
|
+
codex login
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
If `which codex` prints nothing, the issue is usually the npm global bin path rather than DeepScientist itself. Fix the shell PATH first, then rerun `npm install -g @openai/codex`.
|
|
99
|
+
|
|
88
100
|
If you want local PDF compilation later, also run:
|
|
89
101
|
|
|
90
102
|
```bash
|
|
@@ -102,10 +114,10 @@ Choose one of these two paths.
|
|
|
102
114
|
Run:
|
|
103
115
|
|
|
104
116
|
```bash
|
|
105
|
-
codex
|
|
117
|
+
codex login
|
|
106
118
|
```
|
|
107
119
|
|
|
108
|
-
If
|
|
120
|
+
If you prefer the interactive first-run flow, run:
|
|
109
121
|
|
|
110
122
|
```bash
|
|
111
123
|
codex
|
|
@@ -121,7 +133,7 @@ ds doctor
|
|
|
121
133
|
|
|
122
134
|
### 2.2 Provider-backed Codex profile path
|
|
123
135
|
|
|
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:
|
|
136
|
+
If you already use a named Codex profile for MiniMax, GLM, Volcengine Ark, Alibaba Bailian Coding Plan, or another provider-backed path, verify that profile first in a terminal:
|
|
125
137
|
|
|
126
138
|
```bash
|
|
127
139
|
codex --profile m27
|
|
@@ -148,18 +160,21 @@ ds --codex /absolute/path/to/codex --codex-profile m27
|
|
|
148
160
|
|
|
149
161
|
`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
162
|
|
|
151
|
-
DeepScientist blocks startup until Codex can pass a real hello probe.
|
|
163
|
+
DeepScientist blocks startup until Codex can pass a real hello probe. The current default runner model in `~/DeepScientist/config/runners.yaml` is `inherit`. If your existing config still pins an explicit model while your provider expects the model to come from the profile itself, change it to `model: inherit`, or simply launch with `--codex-profile <name>` and let that session inherit the profile-defined model.
|
|
152
164
|
|
|
153
165
|
MiniMax note:
|
|
154
166
|
|
|
155
167
|
- if the current `@openai/codex` latest does not work with MiniMax, install `npm install -g @openai/codex@0.57.0`
|
|
168
|
+
- when DeepScientist detects a MiniMax profile on startup and the installed Codex CLI is not `0.57.0`, it now offers to reinstall `0.57.0` automatically in interactive terminal launches
|
|
156
169
|
- 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`
|
|
170
|
+
- for plain terminal `codex --profile <name>` checks, clear `OPENAI_API_KEY` and `OPENAI_BASE_URL` in the current shell before exporting `MINIMAX_API_KEY`
|
|
158
171
|
- use `https://api.minimaxi.com/v1`
|
|
159
172
|
- 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
|
|
173
|
+
- the locally verified DeepScientist model names are `MiniMax-M2.7` and `MiniMax-M2.5`
|
|
174
|
+
- for `m25`, use `MiniMax-M2.5`, not `codex-MiniMax-M2.5`
|
|
161
175
|
- DeepScientist can auto-adapt MiniMax's profile-only `model_provider` / `model` config shape during probe and runtime
|
|
162
|
-
-
|
|
176
|
+
- DeepScientist also strips conflicting `OPENAI_*` auth variables automatically for providers that set `requires_openai_auth = false`
|
|
177
|
+
- if you also want plain terminal `codex --profile <name>` to work directly, add `model_provider = "minimax"` and the matching top-level model such as `MiniMax-M2.7` or `MiniMax-M2.5` to `~/.codex/config.toml`
|
|
163
178
|
- DeepScientist automatically downgrades `xhigh` to `high` when it detects an older Codex CLI that does not support `xhigh`
|
|
164
179
|
|
|
165
180
|
## 3. Start the Local Runtime
|
|
@@ -192,6 +207,18 @@ ds --here
|
|
|
192
207
|
|
|
193
208
|
This is equivalent to `ds --home "$PWD/DeepScientist"`.
|
|
194
209
|
|
|
210
|
+
Important:
|
|
211
|
+
* if you start DeepScientist with `ds --here` or an explicit `--home <path>`, later management commands such as `ds --status` and `ds --stop` should use the same DeepScientist home
|
|
212
|
+
* using the same `DEEPSCIENTIST_HOME` or `DS_HOME` environment variable for those commands is also fine
|
|
213
|
+
* otherwise, the CLI may fall back to the default `~/DeepScientist`, which can make a reachable daemon look like an unverified one
|
|
214
|
+
|
|
215
|
+
For example, when using a non-default home, run:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
ds --status --home /path/to/DeepScientist
|
|
219
|
+
ds --stop --home /path/to/DeepScientist
|
|
220
|
+
```
|
|
221
|
+
|
|
195
222
|
If you want another port, run:
|
|
196
223
|
|
|
197
224
|
```bash
|
|
@@ -200,13 +227,14 @@ ds --port 21000
|
|
|
200
227
|
|
|
201
228
|
This keeps everything the same, but serves the web UI on port `21000`.
|
|
202
229
|
|
|
203
|
-
By default,
|
|
230
|
+
By default, DeepScientist starts without a local browser password gate.
|
|
204
231
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
232
|
+
- open the normal local URL manually if the browser does not open automatically, such as `http://127.0.0.1:20999`
|
|
233
|
+
- if you want a generated local browser password for one launch, run `ds --auth true`
|
|
234
|
+
- on authenticated launches, DeepScientist prints the generated password in the terminal
|
|
235
|
+
- if the browser is not authenticated yet, DeepScientist shows a password modal before loading the landing page and workspace
|
|
236
|
+
- after the first successful login, the browser keeps the local session and later visits usually do not need the password again
|
|
237
|
+
- if you need to look up the password again for an authenticated launch, check the launch terminal or run `ds --status`
|
|
210
238
|
|
|
211
239
|
## 4. Open the Home Page
|
|
212
240
|
|
|
@@ -220,10 +248,18 @@ After 12 hours of running, the projects surface will often look more like this:
|
|
|
220
248
|
|
|
221
249
|
The two main entry points are:
|
|
222
250
|
|
|
223
|
-
- `Start Research
|
|
251
|
+
- `Start Research` or `Start Experiment`: begin a new project flow
|
|
224
252
|
- `Open Project`: reopen an existing project
|
|
225
253
|
|
|
226
|
-
For your first run, click `Start Research`.
|
|
254
|
+
For your first run, click `Start Research` or `Start Experiment`.
|
|
255
|
+
|
|
256
|
+
Important update:
|
|
257
|
+
|
|
258
|
+
- the product now asks you to choose a start style first
|
|
259
|
+
- `Copilot` creates a quieter project that waits for your first instruction
|
|
260
|
+
- `Autonomous` creates the standard DeepScientist project and starts moving immediately
|
|
261
|
+
|
|
262
|
+
If you are unsure which one to choose, read [20 Workspace Modes Guide](./20_WORKSPACE_MODES_GUIDE.md) first.
|
|
227
263
|
|
|
228
264
|
## 5. Create Your First Project With A Worked Example
|
|
229
265
|
|
|
@@ -236,7 +272,7 @@ The example task is:
|
|
|
236
272
|
- study how to improve truth-preserving collaboration under mixed correct and incorrect social signals
|
|
237
273
|
- use two local inference endpoints to keep throughput high
|
|
238
274
|
|
|
239
|
-
Click `Start Research` to
|
|
275
|
+
Click `Start Research` / `Start Experiment`, then choose `Autonomous Mode` to follow the flow below.
|
|
240
276
|
|
|
241
277
|

|
|
242
278
|
|
|
@@ -400,6 +436,12 @@ Check status:
|
|
|
400
436
|
ds --status
|
|
401
437
|
```
|
|
402
438
|
|
|
439
|
+
If you started DeepScientist with a non-default home, specify it explicitly:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
ds --status --home /path/to/DeepScientist
|
|
443
|
+
```
|
|
444
|
+
|
|
403
445
|
This shows whether the local runtime is up.
|
|
404
446
|
|
|
405
447
|
Stop the daemon:
|
|
@@ -408,8 +450,47 @@ Stop the daemon:
|
|
|
408
450
|
ds --stop
|
|
409
451
|
```
|
|
410
452
|
|
|
453
|
+
If you started DeepScientist with a non-default home, specify it explicitly:
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
ds --stop --home /path/to/DeepScientist
|
|
457
|
+
```
|
|
458
|
+
|
|
411
459
|
This stops the local DeepScientist daemon.
|
|
412
460
|
|
|
461
|
+
Uninstall code and runtime, but keep local data:
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
ds uninstall
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
If you started DeepScientist with a non-default home, specify it explicitly:
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
ds uninstall --home /path/to/DeepScientist --yes
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
This removes launcher wrappers, local runtime code, and install-local code trees, but preserves:
|
|
474
|
+
|
|
475
|
+
- `quests/`
|
|
476
|
+
- `memory/`
|
|
477
|
+
- `config/`
|
|
478
|
+
- `logs/`
|
|
479
|
+
- `plugins/`
|
|
480
|
+
- `cache/`
|
|
481
|
+
|
|
482
|
+
If you installed DeepScientist from npm and also want to remove the global npm package itself, run this after `ds uninstall`:
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
npm uninstall -g @researai/deepscientist
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
If you really want to delete local data too, remove the DeepScientist home manually after uninstall:
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
rm -rf /path/to/DeepScientist
|
|
492
|
+
```
|
|
493
|
+
|
|
413
494
|
Run diagnostics:
|
|
414
495
|
|
|
415
496
|
```bash
|
|
@@ -52,6 +52,7 @@ daemon:
|
|
|
52
52
|
ui:
|
|
53
53
|
host: 0.0.0.0
|
|
54
54
|
port: 20999
|
|
55
|
+
auth_enabled: false
|
|
55
56
|
auto_open_browser: true
|
|
56
57
|
default_mode: both
|
|
57
58
|
logging:
|
|
@@ -165,6 +166,17 @@ acp:
|
|
|
165
166
|
- UI label: `UI port`
|
|
166
167
|
- Meaning: listening port for the local UI server.
|
|
167
168
|
|
|
169
|
+
**`ui.auth_enabled`**
|
|
170
|
+
|
|
171
|
+
- Type: `boolean`
|
|
172
|
+
- Default: `false`
|
|
173
|
+
- UI label: `Require local password`
|
|
174
|
+
- Meaning: require a locally generated 16-character browser password for the web workspace and all `/api/*` routes.
|
|
175
|
+
- Behavior:
|
|
176
|
+
- `true`: `ds` prints the generated password in the terminal, the browser prompts for the password if no valid local login exists, and successful login persists in the browser.
|
|
177
|
+
- `false`: disable the local password gate and keep the plain local URL behavior.
|
|
178
|
+
- CLI override: `ds --auth true` or `ds --auth false`
|
|
179
|
+
|
|
168
180
|
**`ui.auto_open_browser`**
|
|
169
181
|
|
|
170
182
|
- Type: `boolean`
|
|
@@ -263,6 +275,7 @@ Palette selection is no longer exposed in `Settings` or `config.yaml`.
|
|
|
263
275
|
- Default: `true`
|
|
264
276
|
- UI label: `Sync project skills on create`
|
|
265
277
|
- Meaning: mirror skills into project-local runner homes when a project is created.
|
|
278
|
+
- Prompt note: this also seeds the managed quest-local prompt mirror under `.codex/prompts/`.
|
|
266
279
|
|
|
267
280
|
**`skills.sync_quest_on_open`**
|
|
268
281
|
|
|
@@ -270,6 +283,26 @@ Palette selection is no longer exposed in `Settings` or `config.yaml`.
|
|
|
270
283
|
- Default: `true`
|
|
271
284
|
- UI label: `Sync project skills on open`
|
|
272
285
|
- Meaning: refresh project-local skill mirrors when an existing project is opened.
|
|
286
|
+
- Prompt note: this refreshes quest-local skill and prompt mirrors for quests discovered under the configured DeepScientist home.
|
|
287
|
+
|
|
288
|
+
Managed prompt behavior:
|
|
289
|
+
|
|
290
|
+
- DeepScientist now treats `.codex/prompts/` as a managed active prompt tree rather than as a permanent hand-edited override.
|
|
291
|
+
- Before each real runner turn, it compares the active quest-local prompt tree against the current repository `src/prompts/` tree and automatically repairs drift.
|
|
292
|
+
- If the active prompt tree differs, the previous tree is backed up under `.codex/prompt_versions/<backup_id>/` before the new active copy is written.
|
|
293
|
+
- This run-time prompt sync happens against the actual quest root used for the turn, so it still works even when a quest lives outside the default `home/quests` path.
|
|
294
|
+
- Runtime override: `ds daemon --prompt-version latest` uses the managed active tree, while `ds daemon --prompt-version <official_version>` runs that daemon session against the newest backup recorded for that formal DeepScientist version.
|
|
295
|
+
- If you need one exact historical backup rather than the newest backup for that version, you may still pass the exact backup directory name from `.codex/prompt_versions/`.
|
|
296
|
+
- The same override also exists for one-off CLI runs: `ds run --prompt-version <official_version> ...`.
|
|
297
|
+
|
|
298
|
+
Managed auto-continue behavior:
|
|
299
|
+
|
|
300
|
+
- `workspace_mode = copilot`
|
|
301
|
+
- after the current requested unit, DeepScientist normally parks and waits for the next user message or `/resume`
|
|
302
|
+
- `workspace_mode = autonomous`
|
|
303
|
+
- if no real external long-running task exists yet, DeepScientist keeps using the next turns to prepare, launch, or durably route that real task
|
|
304
|
+
- once a real external long-running task exists, auto-continue becomes low-frequency monitoring, roughly every `240` seconds by default
|
|
305
|
+
- Auto-continue prompts now also carry a compact resume spine: latest user message, latest assistant checkpoint, latest run summary, recent memory cues, and current `bash_exec` state
|
|
273
306
|
|
|
274
307
|
### Connector policy
|
|
275
308
|
|
|
@@ -432,7 +465,7 @@ claude:
|
|
|
432
465
|
- `Test` behavior: checks whether the binary is on `PATH`.
|
|
433
466
|
- Resolution order for `codex`: env override, explicit path, local `PATH`, then bundled fallback.
|
|
434
467
|
- One-off note: you can temporarily override this with `ds --codex /absolute/path/to/codex`.
|
|
435
|
-
- First-run note: DeepScientist does not finish Codex authentication for you. Before the first `ds`, make sure `codex
|
|
468
|
+
- First-run note: DeepScientist does not finish Codex authentication for you. Before the first `ds`, make sure `codex login` (or just `codex`) has completed successfully.
|
|
436
469
|
- Repair note: if the bundled dependency is missing after `npm install -g @researai/deepscientist`, install Codex explicitly with `npm install -g @openai/codex`.
|
|
437
470
|
|
|
438
471
|
**`config_dir`**
|
|
@@ -316,9 +316,16 @@ This is the main public knob for round depth.
|
|
|
316
316
|
|
|
317
317
|
- `autonomous`
|
|
318
318
|
- the agent should keep choosing ordinary routes on its own
|
|
319
|
+
- after one turn finishes, it should keep moving automatically: if no real long-running external task exists yet, keep preparing or launching it; once a real long-running external task exists, background monitoring should become low-frequency instead of sub-minute polling
|
|
319
320
|
- `user_gated`
|
|
320
321
|
- the agent may raise a blocking decision only when continuation truly depends on the user
|
|
321
322
|
|
|
323
|
+
Practical note on workspace mode:
|
|
324
|
+
|
|
325
|
+
- DeepScientist also distinguishes a user-directed `copilot` workspace mode from the default `autonomous` mode.
|
|
326
|
+
- In `copilot`, completing the current requested unit should normally park and wait for the next user message or `/resume`.
|
|
327
|
+
- In `autonomous`, the quest should not park just because no long-running task is active yet; it should keep pushing toward the next real long-running unit of work.
|
|
328
|
+
|
|
322
329
|
### Launch mode
|
|
323
330
|
|
|
324
331
|
**`launch_mode`**
|
package/docs/en/05_TUI_GUIDE.md
CHANGED
|
@@ -58,6 +58,7 @@ ds --stop
|
|
|
58
58
|
Meaning:
|
|
59
59
|
|
|
60
60
|
- `ds`: start the daemon, print the local Web URL, try to open the browser, then exit.
|
|
61
|
+
If you launch with `ds --auth true`, DeepScientist also prints the generated local browser password for that launch.
|
|
61
62
|
- `ds --tui`: start the daemon and enter the terminal workspace.
|
|
62
63
|
- `ds --both`: open Web and TUI together.
|
|
63
64
|
- `ds --status`: inspect daemon status.
|
|
@@ -71,6 +72,11 @@ When the TUI opens, the first useful signals are:
|
|
|
71
72
|
- the local Web URL
|
|
72
73
|
- which quests are available to switch to
|
|
73
74
|
|
|
75
|
+
If local browser auth is enabled, treat that printed Web URL as the source of truth.
|
|
76
|
+
|
|
77
|
+
- open the exact printed URL first
|
|
78
|
+
- `Ctrl+O` reopens the Web workspace with the same local password token when TUI already has it
|
|
79
|
+
|
|
74
80
|
If the welcome area says `request mode`, the current terminal session is not bound to a quest yet.
|
|
75
81
|
|
|
76
82
|
The correct next move is not plain text. Do one of these first:
|
|
@@ -246,9 +246,10 @@ The current authoritative runner path is Codex.
|
|
|
246
246
|
|
|
247
247
|
The Codex runner:
|
|
248
248
|
|
|
249
|
-
- prepares
|
|
250
|
-
-
|
|
251
|
-
-
|
|
249
|
+
- prepares an isolated runtime home under `.ds/codex-home/`
|
|
250
|
+
- inherits the configured Codex home semantics (`config.toml`, `auth.json`, `skills/`, `agents/`, `prompts/`)
|
|
251
|
+
- overlays quest-local `.codex/skills/` and `.codex/prompts/` on top of that runtime copy
|
|
252
|
+
- injects DeepScientist built-in MCP servers into `.ds/codex-home/config.toml`
|
|
252
253
|
- runs `codex --search exec --json --cd <quest_root> --skip-git-repo-check --model <model> -`
|
|
253
254
|
|
|
254
255
|
The injected built-in MCP namespaces are exactly:
|
package/docs/en/09_DOCTOR.md
CHANGED
|
@@ -15,7 +15,7 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
15
15
|
Default OpenAI path:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
codex
|
|
18
|
+
codex login
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Provider-backed profile path:
|
|
@@ -55,10 +55,18 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
55
55
|
- whether required config files are valid
|
|
56
56
|
- whether the current release is still using `codex` as the runnable runner
|
|
57
57
|
- whether the Codex CLI can be found and passes a startup probe
|
|
58
|
+
- whether a recent quest runtime failure already points to a known provider / protocol / retry problem
|
|
58
59
|
- whether an optional local `pdflatex` runtime is available for paper PDF compilation
|
|
59
60
|
- whether the web and TUI bundles exist
|
|
60
61
|
- whether the configured web port is free or already running the correct daemon
|
|
61
62
|
|
|
63
|
+
`ds doctor` now tries to render failed checks in a more operational form:
|
|
64
|
+
|
|
65
|
+
- `Problem`: what failed
|
|
66
|
+
- `Why`: why DeepScientist believes it failed
|
|
67
|
+
- `Fix`: the concrete next steps to try
|
|
68
|
+
- `Evidence`: the quest/run/request clues that matched the diagnosis
|
|
69
|
+
|
|
62
70
|
## Common fixes
|
|
63
71
|
|
|
64
72
|
### Codex is missing
|
|
@@ -80,10 +88,10 @@ npm install -g @openai/codex
|
|
|
80
88
|
Run:
|
|
81
89
|
|
|
82
90
|
```bash
|
|
83
|
-
codex
|
|
91
|
+
codex login
|
|
84
92
|
```
|
|
85
93
|
|
|
86
|
-
If
|
|
94
|
+
If you prefer the interactive first-run flow, run `codex` and finish the setup there.
|
|
87
95
|
|
|
88
96
|
Finish login once, then rerun `ds doctor`.
|
|
89
97
|
|
|
@@ -109,19 +117,25 @@ Also check:
|
|
|
109
117
|
|
|
110
118
|
- the same shell still exports the provider API key
|
|
111
119
|
- the profile points at the provider's Coding Plan endpoint, not the generic API endpoint
|
|
120
|
+
- if you are using Qwen through Alibaba Bailian, use the Bailian Coding Plan endpoint only; the generic Bailian or DashScope Qwen API is not supported here
|
|
112
121
|
- `~/DeepScientist/config/runners.yaml` uses `model: inherit` if the provider expects the model to come from the profile itself
|
|
113
122
|
|
|
114
123
|
MiniMax-specific note:
|
|
115
124
|
|
|
116
125
|
- if MiniMax fails on the current `@openai/codex` latest, install `npm install -g @openai/codex@0.57.0`
|
|
126
|
+
- when DeepScientist detects a MiniMax profile on startup and the installed Codex CLI is not `0.57.0`, it now offers to reinstall `0.57.0` automatically in interactive terminal launches
|
|
117
127
|
- 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`
|
|
128
|
+
- for plain terminal `codex --profile <name>` checks, clear `OPENAI_API_KEY` and `OPENAI_BASE_URL` in the current shell before exporting `MINIMAX_API_KEY`
|
|
119
129
|
- use `https://api.minimaxi.com/v1`
|
|
120
130
|
- 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
|
|
131
|
+
- the locally verified DeepScientist model names are `MiniMax-M2.7` and `MiniMax-M2.5`
|
|
132
|
+
- for `m25`, use `MiniMax-M2.5`, not `codex-MiniMax-M2.5`
|
|
122
133
|
- DeepScientist can auto-adapt MiniMax's profile-only `model_provider` / `model` config shape during probe and runtime
|
|
123
|
-
-
|
|
134
|
+
- DeepScientist also strips conflicting `OPENAI_*` auth variables automatically for providers that set `requires_openai_auth = false`
|
|
135
|
+
- if you also want plain terminal `codex --profile <name>` to work directly, put `model_provider = "minimax"` and the matching top-level model such as `MiniMax-M2.7` or `MiniMax-M2.5` in `~/.codex/config.toml`
|
|
124
136
|
- DeepScientist automatically downgrades `xhigh` to `high` when it detects a Codex CLI older than `0.63.0`
|
|
137
|
+
- if the provider returns `tool call result does not follow tool call (2013)`, treat it as a request-ordering/protocol error rather than a transient network failure
|
|
138
|
+
- if the provider returns malformed tool-call argument errors such as `invalid function arguments json string` or `failed to parse tool call arguments`, fix the tool-call serialization path before retrying again
|
|
125
139
|
|
|
126
140
|
### The configured Codex model is unavailable
|
|
127
141
|
|
|
@@ -147,7 +161,7 @@ Normally `ds` will bootstrap a local `uv` automatically. If that bootstrap fails
|
|
|
147
161
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
148
162
|
```
|
|
149
163
|
|
|
150
|
-
On Windows PowerShell:
|
|
164
|
+
On Windows PowerShell (still strongly recommend WSL2 for regular DeepScientist use):
|
|
151
165
|
|
|
152
166
|
```powershell
|
|
153
167
|
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
@@ -229,4 +243,7 @@ Set it back to disabled in:
|
|
|
229
243
|
## Notes
|
|
230
244
|
|
|
231
245
|
- `ds docker` is kept as a compatibility alias, but the official command is `ds doctor`.
|
|
232
|
-
- The
|
|
246
|
+
- The default browser URL stays in the plain local form, for example `http://127.0.0.1:20999`.
|
|
247
|
+
- When local browser auth is enabled, DeepScientist shows a password modal before loading the workspace.
|
|
248
|
+
- You can view the current password in the launch terminal or through `ds --status`.
|
|
249
|
+
- By default the password modal is disabled; use `ds --auth true` when you want the local browser password gate for one launch.
|
|
@@ -56,6 +56,14 @@ In practice:
|
|
|
56
56
|
- `SKILL.md` files define stage-specific execution discipline
|
|
57
57
|
- `mcp/server.py` defines the built-in tool surface
|
|
58
58
|
|
|
59
|
+
Managed quest-local prompt mirror:
|
|
60
|
+
|
|
61
|
+
- DeepScientist still reads prompt fragments from `quest_root/.codex/prompts/` first when they exist.
|
|
62
|
+
- But that tree is now managed automatically rather than assumed to be a permanent manual fork.
|
|
63
|
+
- Before each real runner turn, DeepScientist compares the active quest-local prompt tree against the repository `src/prompts/` tree and refreshes the active copy when the source changed or the local copy drifted.
|
|
64
|
+
- Before that refresh, the previous active tree is backed up under `quest_root/.codex/prompt_versions/<backup_id>/`.
|
|
65
|
+
- This means an old quest uses the latest prompt contracts by default, while historical prompt trees remain available for explicit replay.
|
|
66
|
+
|
|
59
67
|
## 3. How one turn prompt is assembled
|
|
60
68
|
|
|
61
69
|
The current runtime assembles the turn prompt in roughly this order:
|
|
@@ -72,11 +80,12 @@ The current runtime assembles the turn prompt in roughly this order:
|
|
|
72
80
|
10. research delivery policy
|
|
73
81
|
11. paper and evidence snapshot
|
|
74
82
|
12. retry recovery packet when this is a retry turn
|
|
75
|
-
13.
|
|
76
|
-
14.
|
|
77
|
-
15.
|
|
78
|
-
16.
|
|
79
|
-
17. current
|
|
83
|
+
13. resume context spine when this is an auto-continue turn
|
|
84
|
+
14. interaction style block
|
|
85
|
+
15. priority memory for this turn
|
|
86
|
+
16. recent conversation window
|
|
87
|
+
17. current turn attachments
|
|
88
|
+
18. current user message
|
|
80
89
|
|
|
81
90
|
That order matters.
|
|
82
91
|
|
|
@@ -210,6 +219,16 @@ If `Start Research` behavior feels wrong, you usually need to inspect:
|
|
|
210
219
|
- `src/deepscientist/prompts/builder.py`
|
|
211
220
|
- the stage skill the quest is currently using
|
|
212
221
|
|
|
222
|
+
It also carries the key mode split for continuation:
|
|
223
|
+
|
|
224
|
+
- `workspace_mode = copilot`
|
|
225
|
+
- request-scoped help
|
|
226
|
+
- complete one useful unit, then normally park and wait for the next user message or `/resume`
|
|
227
|
+
- `workspace_mode = autonomous`
|
|
228
|
+
- keep advancing without waiting for the user
|
|
229
|
+
- if no real long-running external task exists yet, keep using the next turns to prepare, launch, or durably decide that real unit of work
|
|
230
|
+
- once a real long-running external task exists, background auto-continue turns become low-frequency monitoring passes
|
|
231
|
+
|
|
213
232
|
### 4.8 Interaction style
|
|
214
233
|
|
|
215
234
|
This block tells the model how to speak on this turn.
|
|
@@ -229,7 +248,27 @@ This is why DeepScientist can keep the same runtime but behave differently acros
|
|
|
229
248
|
- writing stages
|
|
230
249
|
- waiting-for-decision stages
|
|
231
250
|
|
|
232
|
-
|
|
251
|
+
It now also encodes the auto-continue cadence split:
|
|
252
|
+
|
|
253
|
+
- autonomous preparation / launch work may continue quickly across turns
|
|
254
|
+
- monitoring an already-running external task should switch to low-frequency checks, roughly every `240` seconds by default
|
|
255
|
+
- copilot mode should usually stop after the current requested unit instead of auto-continuing
|
|
256
|
+
|
|
257
|
+
### 4.9 Resume context spine
|
|
258
|
+
|
|
259
|
+
On auto-continue turns, the prompt now injects a compact resume spine so the model does not restart from a vague stage label alone.
|
|
260
|
+
|
|
261
|
+
It includes:
|
|
262
|
+
|
|
263
|
+
- the latest durable user message
|
|
264
|
+
- the latest assistant checkpoint
|
|
265
|
+
- the latest run result summary
|
|
266
|
+
- a few recent memory cues
|
|
267
|
+
- current `bash_exec` state, including whether a long-running shell session is active
|
|
268
|
+
|
|
269
|
+
This is the main reason auto-continue turns can stay grounded in the latest intent and latest checkpoint instead of drifting into generic stage narration.
|
|
270
|
+
|
|
271
|
+
### 4.10 Priority memory
|
|
233
272
|
|
|
234
273
|
DeepScientist does not inject memory randomly.
|
|
235
274
|
|
|
@@ -246,22 +285,33 @@ This means the prompt is stage-biased on purpose.
|
|
|
246
285
|
|
|
247
286
|
The agent should not see the same memory bundle on every turn.
|
|
248
287
|
|
|
249
|
-
## 5.
|
|
288
|
+
## 5. Managed local prompt copies and historical versions
|
|
250
289
|
|
|
251
|
-
|
|
290
|
+
The active quest-local prompt tree lives under:
|
|
252
291
|
|
|
253
292
|
- `.codex/prompts/system.md`
|
|
254
293
|
- `.codex/prompts/contracts/shared_interaction.md`
|
|
255
294
|
- `.codex/prompts/connectors/<connector>.md`
|
|
256
295
|
|
|
257
|
-
|
|
296
|
+
Repository defaults still live under `src/prompts/`.
|
|
297
|
+
|
|
298
|
+
Important behavior change:
|
|
299
|
+
|
|
300
|
+
- `.codex/prompts/` is no longer best understood as a permanent hand-maintained override tree.
|
|
301
|
+
- On each real run, DeepScientist repairs the active quest-local copy back to the current repository prompt source when they differ.
|
|
302
|
+
- Manual edits to the active copy are therefore treated as drift: they are backed up and then replaced on the next run.
|
|
303
|
+
- Historical copies are preserved under `.codex/prompt_versions/<backup_id>/`.
|
|
304
|
+
|
|
305
|
+
If you need to run a quest against an older prompt version intentionally, start the daemon or one-off run with the official DeepScientist version number:
|
|
306
|
+
|
|
307
|
+
- `ds daemon --prompt-version <official_version>`
|
|
308
|
+
- `ds run --prompt-version <official_version> ...`
|
|
258
309
|
|
|
259
|
-
|
|
260
|
-
- quest-local prompt overrides live under `.codex/prompts/`
|
|
310
|
+
DeepScientist resolves that to the newest backup recorded for that formal version. If you need one exact backup rather than “latest backup for version X”, you may still pass the exact backup directory name.
|
|
261
311
|
|
|
262
|
-
Use
|
|
312
|
+
Use `latest` to stay on the managed active prompt tree.
|
|
263
313
|
|
|
264
|
-
|
|
314
|
+
If a prompt change should affect normal future behavior, change the repository prompt source instead of editing only one quest-local active copy.
|
|
265
315
|
|
|
266
316
|
## 6. How skills are structured
|
|
267
317
|
|