psyclaw 0.25.1 → 0.26.0
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 +111 -60
- package/{apps → dist/apps}/panel/index.html +50 -28
- package/dist/src/adapters/pi/extension.d.ts +19 -0
- package/dist/src/adapters/pi/extension.js +735 -0
- package/dist/src/adapters/pi/extension.js.map +1 -0
- package/dist/src/adapters/pi/model.d.ts +72 -0
- package/dist/src/adapters/pi/model.js +152 -0
- package/dist/src/adapters/pi/model.js.map +1 -0
- package/dist/src/adapters/pi/resources.d.ts +23 -0
- package/dist/src/adapters/pi/resources.js +54 -0
- package/dist/src/adapters/pi/resources.js.map +1 -0
- package/dist/src/adapters/pi/rpc.d.ts +58 -0
- package/dist/src/adapters/pi/rpc.js +253 -0
- package/dist/src/adapters/pi/rpc.js.map +1 -0
- package/dist/src/adapters/pi/session.d.ts +30 -0
- package/dist/src/adapters/pi/session.js +64 -0
- package/dist/src/adapters/pi/session.js.map +1 -0
- package/dist/src/agents/catalog.d.ts +30 -0
- package/dist/src/agents/catalog.js +118 -0
- package/dist/src/agents/catalog.js.map +1 -0
- package/dist/src/agents/discover.d.ts +28 -0
- package/dist/src/agents/discover.js +127 -0
- package/dist/src/agents/discover.js.map +1 -0
- package/dist/src/agents/import.d.ts +67 -0
- package/dist/src/agents/import.js +789 -0
- package/dist/src/agents/import.js.map +1 -0
- package/dist/src/analysis/hooks.d.ts +81 -0
- package/dist/src/analysis/hooks.js +139 -0
- package/dist/src/analysis/hooks.js.map +1 -0
- package/dist/src/analysis/pre-registration.d.ts +18 -0
- package/dist/src/analysis/pre-registration.js +86 -0
- package/dist/src/analysis/pre-registration.js.map +1 -0
- package/dist/src/branding.d.ts +44 -0
- package/dist/src/branding.js +128 -0
- package/dist/src/branding.js.map +1 -0
- package/dist/src/chat.d.ts +16 -0
- package/dist/src/chat.js +95 -0
- package/dist/src/chat.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +316 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/core/citations.d.ts +44 -0
- package/dist/src/core/citations.js +48 -0
- package/dist/src/core/citations.js.map +1 -0
- package/dist/src/core/contracts.d.ts +119 -0
- package/dist/src/core/contracts.js +2 -0
- package/dist/src/core/contracts.js.map +1 -0
- package/dist/src/core/docx.d.ts +11 -0
- package/dist/src/core/docx.js +46 -0
- package/dist/src/core/docx.js.map +1 -0
- package/dist/src/core/doi.d.ts +41 -0
- package/dist/src/core/doi.js +82 -0
- package/dist/src/core/doi.js.map +1 -0
- package/dist/src/core/evidence-policy.d.ts +24 -0
- package/dist/src/core/evidence-policy.js +308 -0
- package/dist/src/core/evidence-policy.js.map +1 -0
- package/dist/src/core/filekind.d.ts +15 -0
- package/dist/src/core/filekind.js +82 -0
- package/dist/src/core/filekind.js.map +1 -0
- package/dist/src/core/hash.d.ts +2 -0
- package/dist/src/core/hash.js +17 -0
- package/dist/src/core/hash.js.map +1 -0
- package/dist/src/core/pricing.d.ts +38 -0
- package/dist/src/core/pricing.js +110 -0
- package/dist/src/core/pricing.js.map +1 -0
- package/dist/src/core/redact.d.ts +12 -0
- package/dist/src/core/redact.js +48 -0
- package/dist/src/core/redact.js.map +1 -0
- package/dist/src/core/references.d.ts +55 -0
- package/dist/src/core/references.js +102 -0
- package/dist/src/core/references.js.map +1 -0
- package/dist/src/core/schemas.d.ts +162 -0
- package/dist/src/core/schemas.js +160 -0
- package/dist/src/core/schemas.js.map +1 -0
- package/dist/src/extension.d.ts +1 -0
- package/dist/src/extension.js +2 -0
- package/dist/src/extension.js.map +1 -0
- package/dist/src/index.d.ts +72 -0
- package/dist/src/index.js +73 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/install/installer.d.ts +147 -0
- package/dist/src/install/installer.js +721 -0
- package/dist/src/install/installer.js.map +1 -0
- package/dist/src/integrations/contracts.d.ts +35 -0
- package/dist/src/integrations/contracts.js +27 -0
- package/dist/src/integrations/contracts.js.map +1 -0
- package/dist/src/integrations/mcp.d.ts +155 -0
- package/dist/src/integrations/mcp.js +826 -0
- package/dist/src/integrations/mcp.js.map +1 -0
- package/dist/src/knowledge-map/contracts.d.ts +20 -0
- package/dist/src/knowledge-map/contracts.js +2 -0
- package/dist/src/knowledge-map/contracts.js.map +1 -0
- package/dist/src/knowledge-map/index.d.ts +4 -0
- package/dist/src/knowledge-map/index.js +39 -0
- package/dist/src/knowledge-map/index.js.map +1 -0
- package/dist/src/literature/contracts.d.ts +106 -0
- package/dist/src/literature/contracts.js +2 -0
- package/dist/src/literature/contracts.js.map +1 -0
- package/dist/src/literature/fulltext.d.ts +7 -0
- package/dist/src/literature/fulltext.js +24 -0
- package/dist/src/literature/fulltext.js.map +1 -0
- package/dist/src/literature/knowledge-map.d.ts +2 -0
- package/dist/src/literature/knowledge-map.js +20 -0
- package/dist/src/literature/knowledge-map.js.map +1 -0
- package/dist/src/literature/ledger.d.ts +3 -0
- package/dist/src/literature/ledger.js +17 -0
- package/dist/src/literature/ledger.js.map +1 -0
- package/dist/src/literature/metadata.d.ts +6 -0
- package/dist/src/literature/metadata.js +32 -0
- package/dist/src/literature/metadata.js.map +1 -0
- package/dist/src/memory/store.d.ts +22 -0
- package/dist/src/memory/store.js +73 -0
- package/dist/src/memory/store.js.map +1 -0
- package/dist/src/orchestration/contracts.d.ts +61 -0
- package/dist/src/orchestration/contracts.js +2 -0
- package/dist/src/orchestration/contracts.js.map +1 -0
- package/dist/src/orchestration/pi-executor.d.ts +28 -0
- package/dist/src/orchestration/pi-executor.js +169 -0
- package/dist/src/orchestration/pi-executor.js.map +1 -0
- package/dist/src/orchestration/runner.d.ts +196 -0
- package/dist/src/orchestration/runner.js +991 -0
- package/dist/src/orchestration/runner.js.map +1 -0
- package/dist/src/orchestration/scheduler.d.ts +8 -0
- package/dist/src/orchestration/scheduler.js +335 -0
- package/dist/src/orchestration/scheduler.js.map +1 -0
- package/dist/src/panel/events.d.ts +20 -0
- package/dist/src/panel/events.js +93 -0
- package/dist/src/panel/events.js.map +1 -0
- package/dist/src/panel/extension.d.ts +8 -0
- package/dist/src/panel/extension.js +115 -0
- package/dist/src/panel/extension.js.map +1 -0
- package/dist/src/panel/literature-map.d.ts +26 -0
- package/dist/src/panel/literature-map.js +34 -0
- package/dist/src/panel/literature-map.js.map +1 -0
- package/dist/src/panel/projection.d.ts +51 -0
- package/dist/src/panel/projection.js +288 -0
- package/dist/src/panel/projection.js.map +1 -0
- package/dist/src/panel/server.d.ts +46 -0
- package/dist/src/panel/server.js +1610 -0
- package/dist/src/panel/server.js.map +1 -0
- package/dist/src/panel/usage.d.ts +53 -0
- package/dist/src/panel/usage.js +150 -0
- package/dist/src/panel/usage.js.map +1 -0
- package/dist/src/project/bootstrap.d.ts +10 -0
- package/dist/src/project/bootstrap.js +83 -0
- package/dist/src/project/bootstrap.js.map +1 -0
- package/dist/src/project/hitl.d.ts +12 -0
- package/dist/src/project/hitl.js +43 -0
- package/dist/src/project/hitl.js.map +1 -0
- package/dist/src/project/jsonl.d.ts +16 -0
- package/dist/src/project/jsonl.js +93 -0
- package/dist/src/project/jsonl.js.map +1 -0
- package/dist/src/project/manuscript.d.ts +21 -0
- package/dist/src/project/manuscript.js +74 -0
- package/dist/src/project/manuscript.js.map +1 -0
- package/dist/src/project/paths.d.ts +38 -0
- package/dist/src/project/paths.js +166 -0
- package/dist/src/project/paths.js.map +1 -0
- package/dist/src/project/versions.d.ts +10 -0
- package/dist/src/project/versions.js +14 -0
- package/dist/src/project/versions.js.map +1 -0
- package/dist/src/psyclaw-theme.d.ts +88 -0
- package/dist/src/psyclaw-theme.js +89 -0
- package/dist/src/psyclaw-theme.js.map +1 -0
- package/dist/src/research/brief.d.ts +11 -0
- package/dist/src/research/brief.js +81 -0
- package/dist/src/research/brief.js.map +1 -0
- package/dist/src/research/ledger.d.ts +12 -0
- package/dist/src/research/ledger.js +43 -0
- package/dist/src/research/ledger.js.map +1 -0
- package/dist/src/run.d.ts +20 -0
- package/dist/src/run.js +34 -0
- package/dist/src/run.js.map +1 -0
- package/dist/src/setup.d.ts +54 -0
- package/dist/src/setup.js +221 -0
- package/dist/src/setup.js.map +1 -0
- package/dist/src/skills/contracts.d.ts +105 -0
- package/dist/src/skills/contracts.js +3 -0
- package/dist/src/skills/contracts.js.map +1 -0
- package/dist/src/skills/preflight.d.ts +10 -0
- package/dist/src/skills/preflight.js +39 -0
- package/dist/src/skills/preflight.js.map +1 -0
- package/dist/src/skills/registry.d.ts +28 -0
- package/dist/src/skills/registry.js +540 -0
- package/dist/src/skills/registry.js.map +1 -0
- package/dist/src/style/artifact.d.ts +6 -0
- package/dist/src/style/artifact.js +61 -0
- package/dist/src/style/artifact.js.map +1 -0
- package/dist/src/style/cli-ui.d.ts +41 -0
- package/dist/src/style/cli-ui.js +119 -0
- package/dist/src/style/cli-ui.js.map +1 -0
- package/dist/src/style/contracts.d.ts +34 -0
- package/dist/src/style/contracts.js +2 -0
- package/dist/src/style/contracts.js.map +1 -0
- package/dist/src/style/registry.d.ts +16 -0
- package/dist/src/style/registry.js +50 -0
- package/dist/src/style/registry.js.map +1 -0
- package/dist/src/trust/manifest.d.ts +42 -0
- package/dist/src/trust/manifest.js +53 -0
- package/dist/src/trust/manifest.js.map +1 -0
- package/dist/src/trust/sbom.d.ts +54 -0
- package/dist/src/trust/sbom.js +77 -0
- package/dist/src/trust/sbom.js.map +1 -0
- package/dist/src/tui/app.d.ts +3 -0
- package/dist/src/tui/app.js +103 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/model.d.ts +13 -0
- package/dist/src/tui/model.js +25 -0
- package/dist/src/tui/model.js.map +1 -0
- package/dist/src/updates/check.d.ts +43 -0
- package/dist/src/updates/check.js +68 -0
- package/dist/src/updates/check.js.map +1 -0
- package/dist/src/updates/manifest.d.ts +19 -0
- package/dist/src/updates/manifest.js +58 -0
- package/dist/src/updates/manifest.js.map +1 -0
- package/dist/src/updates/registry.d.ts +21 -0
- package/dist/src/updates/registry.js +82 -0
- package/dist/src/updates/registry.js.map +1 -0
- package/dist/src/updates/skills.d.ts +15 -0
- package/dist/src/updates/skills.js +39 -0
- package/dist/src/updates/skills.js.map +1 -0
- package/dist/src/updates/status.d.ts +7 -0
- package/dist/src/updates/status.js +37 -0
- package/dist/src/updates/status.js.map +1 -0
- package/dist/src/updates/update.d.ts +43 -0
- package/dist/src/updates/update.js +128 -0
- package/dist/src/updates/update.js.map +1 -0
- package/dist/src/wizard.d.ts +7 -0
- package/dist/src/wizard.js +90 -0
- package/dist/src/wizard.js.map +1 -0
- package/dist/src/workflows/analysis-delegation.d.ts +3 -0
- package/dist/src/workflows/analysis-delegation.js +96 -0
- package/dist/src/workflows/analysis-delegation.js.map +1 -0
- package/dist/src/workflows/expert-review-runner.d.ts +29 -0
- package/dist/src/workflows/expert-review-runner.js +35 -0
- package/dist/src/workflows/expert-review-runner.js.map +1 -0
- package/dist/src/workflows/expert-review.d.ts +140 -0
- package/dist/src/workflows/expert-review.js +111 -0
- package/dist/src/workflows/expert-review.js.map +1 -0
- package/dist/src/workflows/institutional-fulltext.d.ts +16 -0
- package/dist/src/workflows/institutional-fulltext.js +110 -0
- package/dist/src/workflows/institutional-fulltext.js.map +1 -0
- package/dist/src/workflows/literature-review.d.ts +3 -0
- package/dist/src/workflows/literature-review.js +76 -0
- package/dist/src/workflows/literature-review.js.map +1 -0
- package/dist/src/workflows/meta-analysis.d.ts +38 -0
- package/dist/src/workflows/meta-analysis.js +185 -0
- package/dist/src/workflows/meta-analysis.js.map +1 -0
- package/dist/src/workflows/publish.d.ts +51 -0
- package/dist/src/workflows/publish.js +153 -0
- package/dist/src/workflows/publish.js.map +1 -0
- package/dist/src/workflows/spec.d.ts +51 -0
- package/dist/src/workflows/spec.js +157 -0
- package/dist/src/workflows/spec.js.map +1 -0
- package/dist/src/workflows/style-contract.d.ts +24 -0
- package/dist/src/workflows/style-contract.js +23 -0
- package/dist/src/workflows/style-contract.js.map +1 -0
- package/dist/src/workflows/writing-review.d.ts +15 -0
- package/dist/src/workflows/writing-review.js +82 -0
- package/dist/src/workflows/writing-review.js.map +1 -0
- package/package.json +20 -8
- package/scripts/rebrand-pi.mjs +6 -5
- package/scripts/__pycache__/build_dist.cpython-314.pyc +0 -0
- package/scripts/__pycache__/build_whitepaper_docx.cpython-314.pyc +0 -0
- package/scripts/build_preprint_docx.py +0 -729
- package/scripts/build_preprint_figures.py +0 -238
- package/scripts/build_three_line_table_fixture.py +0 -56
- package/scripts/build_whitepaper_docx.py +0 -768
- package/scripts/check-branding.mjs +0 -159
- package/scripts/copy-panel.mjs +0 -11
- package/scripts/verify_docx.py +0 -41
package/README.md
CHANGED
|
@@ -1,60 +1,111 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
1
|
+
# PsyClaw
|
|
2
|
+
|
|
3
|
+
PsyClaw 是面向社会科学研究的 Pi 工作台。它把研究项目、证据来源、Claim-Evidence 账本、完整性门禁、人工裁决、可恢复工作流和本地面板接到官方 Pi runtime 上;它不替代统计软件,也不会把未经核验的引用、结果或审稿意见写成事实。
|
|
4
|
+
|
|
5
|
+
当前版本:`0.26.0`。本仓库以 `psypi v0.4.1` 的完整工作台为功能基线完成改名;`psypi` 仓库保留为历史仓库,正式命令和后续发布均使用 `psyclaw`。
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
需要 Node.js `>=22.19.0`。官方 npm 源:
|
|
10
|
+
|
|
11
|
+
```powershell
|
|
12
|
+
npm install -g psyclaw@0.26.0
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
中国大陆网络较慢或无法访问官方源时:
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
npm install -g psyclaw@0.26.0 --registry=https://registry.npmmirror.com
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
确认命令入口:
|
|
22
|
+
|
|
23
|
+
```powershell
|
|
24
|
+
psyclaw --help
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
直接运行 `psyclaw` 会启动交互研究工作台;首次没有模型配置时会进入配置向导。也可显式运行 `psyclaw wizard`,或使用 `psyclaw setup --provider deepseek`。不要把 API key 写进项目、README 或 Git 仓库。
|
|
28
|
+
|
|
29
|
+
## 五分钟开始
|
|
30
|
+
|
|
31
|
+
在新的研究目录中建立项目:
|
|
32
|
+
|
|
33
|
+
```powershell
|
|
34
|
+
mkdir my-study
|
|
35
|
+
cd my-study
|
|
36
|
+
psyclaw init "社交支持与研究生心理健康的关系" --paradigm survey-observational
|
|
37
|
+
psyclaw
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
初始化会建立 `.psyclaw/`、`data/raw/`、`data/clean/`、`notes/` 和 `outputs/`。`data/raw/` 是只读保护区;把经确认可用于分析的派生数据放在 `data/clean/`。
|
|
41
|
+
|
|
42
|
+
登记本地材料并生成离线证据简报:
|
|
43
|
+
|
|
44
|
+
```powershell
|
|
45
|
+
psyclaw evidence add notes\source.md --level user
|
|
46
|
+
psyclaw brief
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 常用入口
|
|
50
|
+
|
|
51
|
+
| 需求 | 命令或操作 |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| 启动研究对话 | `psyclaw` 或 `psyclaw chat` |
|
|
54
|
+
| 创建研究项目 | `psyclaw init <goal> --paradigm <profile>` |
|
|
55
|
+
| 登记本地证据 | `psyclaw evidence add <path> --level user\|fulltext` |
|
|
56
|
+
| 生成离线简报 | `psyclaw brief` |
|
|
57
|
+
| 创建人工裁决模板 | `psyclaw hitl init` |
|
|
58
|
+
| 写研究移交记录 | `psyclaw handoff` |
|
|
59
|
+
| 扫描本机其他 Agent | `psyclaw agents` |
|
|
60
|
+
| 查看 Pi runtime 更新 | `psyclaw check-updates` |
|
|
61
|
+
| 更新 Pi runtime | `psyclaw update --yes` |
|
|
62
|
+
| 打开科研面板 | 在对话中输入 `/panel` |
|
|
63
|
+
|
|
64
|
+
`psyclaw update` 只更新捆绑的 Pi runtime;它不是从 Git 拉取 PsyClaw 源码。全局安装用户通过 `npm install -g psyclaw@<version>` 获取 PsyClaw 新版本;本仓库开发者直接修改源码并构建。
|
|
65
|
+
|
|
66
|
+
## 开发者本地安装
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
pnpm install
|
|
70
|
+
pnpm build
|
|
71
|
+
npm link
|
|
72
|
+
psyclaw --help
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
开发阶段不需要执行 `psyclaw update`。它会更新 Pi 依赖,不会同步本仓库代码。
|
|
76
|
+
|
|
77
|
+
## 从旧 Python 版迁移
|
|
78
|
+
|
|
79
|
+
如果启动时出现 `ModuleNotFoundError: No module named 'psyclaw.cli'`,终端仍解析到旧 Python 安装的 `psyclaw.exe`,而不是 npm 版本。先检查命令顺序:
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
Get-Command psyclaw -All
|
|
83
|
+
where.exe psyclaw
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
保留 npm 的 `psyclaw.cmd`,移除或下调旧 Python 入口所在目录后重新打开终端,再安装当前版本:
|
|
87
|
+
|
|
88
|
+
```powershell
|
|
89
|
+
npm uninstall -g psyclaw
|
|
90
|
+
npm install -g psyclaw@0.26.0
|
|
91
|
+
psyclaw --help
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Python 的卸载器提示 `No files were found to uninstall` 时,不要手工删除不明目录;先用上述命令定位旧入口,再在对应 Python 环境中修复或移除它。
|
|
95
|
+
|
|
96
|
+
## 文档
|
|
97
|
+
|
|
98
|
+
- [PsyClaw v0.26.0 使用白皮书](docs/PsyClaw使用白皮书_v0.26.0.md)
|
|
99
|
+
- [项目范围与里程碑](docs/开工纪要.md)
|
|
100
|
+
- [架构蓝图](docs/架构蓝图.md)
|
|
101
|
+
- [评测框架](docs/评测框架.md)
|
|
102
|
+
- [文档与交付物规范](docs/文档规范.md)
|
|
103
|
+
|
|
104
|
+
## 边界
|
|
105
|
+
|
|
106
|
+
- PsyClaw 复用官方 Pi 的 session、model、skill、package 和 extension runtime,不维护 fork。
|
|
107
|
+
- 统计计算委托 Python/R、SPSS/Stata/Mplus 或受信任 MCP;输出必须保存脚本、输入指纹和环境信息。
|
|
108
|
+
- Skill、Plugin 和 MCP 默认只发现、不执行;启用前需要来源、版本/ref、哈希、许可证和依赖状态。
|
|
109
|
+
- 没有可定位证据的事实性 Claim 必须是 `uncertain` 或被阻断;没有审批记录的副作用不能被当作完成。
|
|
110
|
+
|
|
111
|
+
许可证:MIT。
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>
|
|
6
|
+
<title>PsyClaw 科研工作台 & 交互中心</title>
|
|
7
7
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
8
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
9
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
|
@@ -19,24 +19,24 @@
|
|
|
19
19
|
--bg-inner: #090d14;
|
|
20
20
|
--line: rgba(255, 255, 255, 0.08);
|
|
21
21
|
--line-highlight: rgba(46, 196, 182, 0.28);
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
--ink: #f0f4fc;
|
|
24
24
|
--ink-muted: #8e9bb2;
|
|
25
25
|
--ink-faint: #5a667d;
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
--accent: #2ec4b6;
|
|
28
28
|
--accent-glow: rgba(46, 196, 182, 0.25);
|
|
29
29
|
--accent-ink: #64e5d9;
|
|
30
30
|
--accent-bg: rgba(46, 196, 182, 0.12);
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
--ok: #22c55e;
|
|
33
33
|
--ok-bg: rgba(34, 197, 94, 0.12);
|
|
34
34
|
--ok-ink: #4ade80;
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
--warn: #f59e0b;
|
|
37
37
|
--warn-bg: rgba(245, 158, 11, 0.12);
|
|
38
38
|
--warn-ink: #fbbf24;
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
--crit: #f43f5e;
|
|
41
41
|
--crit-bg: rgba(244, 63, 94, 0.12);
|
|
42
42
|
--crit-ink: #fb7185;
|
|
@@ -54,24 +54,24 @@
|
|
|
54
54
|
--bg-inner: #f1f5f9;
|
|
55
55
|
--line: rgba(0, 0, 0, 0.09);
|
|
56
56
|
--line-highlight: rgba(13, 148, 136, 0.4);
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
--ink: #0f172a;
|
|
59
59
|
--ink-muted: #475569;
|
|
60
60
|
--ink-faint: #94a3b8;
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
--accent: #0d9488;
|
|
63
63
|
--accent-glow: rgba(13, 148, 136, 0.2);
|
|
64
64
|
--accent-ink: #0f766e;
|
|
65
65
|
--accent-bg: rgba(13, 148, 136, 0.1);
|
|
66
|
-
|
|
66
|
+
|
|
67
67
|
--ok: #16a34a;
|
|
68
68
|
--ok-bg: rgba(22, 163, 74, 0.1);
|
|
69
69
|
--ok-ink: #15803d;
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
--warn: #d97706;
|
|
72
72
|
--warn-bg: rgba(217, 119, 6, 0.1);
|
|
73
73
|
--warn-ink: #b45309;
|
|
74
|
-
|
|
74
|
+
|
|
75
75
|
--crit: #e11d48;
|
|
76
76
|
--crit-bg: rgba(225, 29, 72, 0.1);
|
|
77
77
|
--crit-ink: #be123c;
|
|
@@ -89,24 +89,24 @@
|
|
|
89
89
|
--bg-inner: #ece4d2;
|
|
90
90
|
--line: rgba(80, 60, 40, 0.12);
|
|
91
91
|
--line-highlight: rgba(180, 83, 9, 0.38);
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
--ink: #2b261f;
|
|
94
94
|
--ink-muted: #665c4e;
|
|
95
95
|
--ink-faint: #9c907e;
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
--accent: #b45309;
|
|
98
98
|
--accent-glow: rgba(180, 83, 9, 0.2);
|
|
99
99
|
--accent-ink: #92400e;
|
|
100
100
|
--accent-bg: rgba(180, 83, 9, 0.1);
|
|
101
|
-
|
|
101
|
+
|
|
102
102
|
--ok: #2e7d32;
|
|
103
103
|
--ok-bg: rgba(46, 125, 50, 0.1);
|
|
104
104
|
--ok-ink: #1b5e20;
|
|
105
|
-
|
|
105
|
+
|
|
106
106
|
--warn: #c2410c;
|
|
107
107
|
--warn-bg: rgba(194, 65, 12, 0.1);
|
|
108
108
|
--warn-ink: #9a3412;
|
|
109
|
-
|
|
109
|
+
|
|
110
110
|
--crit: #b91c1c;
|
|
111
111
|
--crit-bg: rgba(185, 28, 28, 0.1);
|
|
112
112
|
--crit-ink: #991b1b;
|
|
@@ -124,24 +124,24 @@
|
|
|
124
124
|
--bg-inner: #0b1120;
|
|
125
125
|
--line: rgba(148, 163, 184, 0.14);
|
|
126
126
|
--line-highlight: rgba(56, 189, 248, 0.38);
|
|
127
|
-
|
|
127
|
+
|
|
128
128
|
--ink: #f8fafc;
|
|
129
129
|
--ink-muted: #94a3b8;
|
|
130
130
|
--ink-faint: #64748b;
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
--accent: #38bdf8;
|
|
133
133
|
--accent-glow: rgba(56, 189, 248, 0.25);
|
|
134
134
|
--accent-ink: #7dd3fc;
|
|
135
135
|
--accent-bg: rgba(56, 189, 248, 0.12);
|
|
136
|
-
|
|
136
|
+
|
|
137
137
|
--ok: #22c55e;
|
|
138
138
|
--ok-bg: rgba(34, 197, 94, 0.12);
|
|
139
139
|
--ok-ink: #4ade80;
|
|
140
|
-
|
|
140
|
+
|
|
141
141
|
--warn: #f59e0b;
|
|
142
142
|
--warn-bg: rgba(245, 158, 11, 0.12);
|
|
143
143
|
--warn-ink: #fbbf24;
|
|
144
|
-
|
|
144
|
+
|
|
145
145
|
--crit: #f43f5e;
|
|
146
146
|
--crit-bg: rgba(244, 63, 94, 0.12);
|
|
147
147
|
--crit-ink: #fb7185;
|
|
@@ -316,6 +316,28 @@
|
|
|
316
316
|
font-size: 0.75rem;
|
|
317
317
|
font-weight: 600;
|
|
318
318
|
}
|
|
319
|
+
@media (max-width: 430px) {
|
|
320
|
+
.header { padding: 0.65rem 0.75rem; }
|
|
321
|
+
.header-inner {
|
|
322
|
+
display: grid;
|
|
323
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
324
|
+
gap: 0.6rem;
|
|
325
|
+
width: 100%;
|
|
326
|
+
}
|
|
327
|
+
.brand { min-width: 0; gap: 0.5rem; }
|
|
328
|
+
.brand-tag { display: none; }
|
|
329
|
+
.nav-tabs {
|
|
330
|
+
grid-column: 1 / -1;
|
|
331
|
+
grid-row: 2;
|
|
332
|
+
min-width: 0;
|
|
333
|
+
width: 100%;
|
|
334
|
+
}
|
|
335
|
+
.header-status { gap: 0.35rem; }
|
|
336
|
+
.theme-btn { padding-inline: 5px; }
|
|
337
|
+
.pulse-indicator { padding-inline: 0.45rem; }
|
|
338
|
+
#heartbeat-text { display: none; }
|
|
339
|
+
main { padding: 1rem 0.75rem 4rem; }
|
|
340
|
+
}
|
|
319
341
|
.pulse-dot {
|
|
320
342
|
width: 7px;
|
|
321
343
|
height: 7px;
|
|
@@ -1100,9 +1122,9 @@
|
|
|
1100
1122
|
<a href="#" class="brand">
|
|
1101
1123
|
<div class="brand-logo">ψ</div>
|
|
1102
1124
|
<div>
|
|
1103
|
-
<div class="brand-title">
|
|
1125
|
+
<div class="brand-title">PsyClaw</div>
|
|
1104
1126
|
</div>
|
|
1105
|
-
<span class="brand-tag">工作台 v0.
|
|
1127
|
+
<span class="brand-tag">工作台 v0.24.0</span>
|
|
1106
1128
|
</a>
|
|
1107
1129
|
|
|
1108
1130
|
<!-- Main Navigation Tabs -->
|
|
@@ -1166,7 +1188,7 @@
|
|
|
1166
1188
|
<div class="msg-bubble assistant">
|
|
1167
1189
|
<div class="msg-avatar">ψ</div>
|
|
1168
1190
|
<div class="msg-content">
|
|
1169
|
-
<strong>您好,我是
|
|
1191
|
+
<strong>您好,我是 PsyClaw 科研智能助手。</strong><br>
|
|
1170
1192
|
我基于严密的证据链(Claim-Evidence Ledger)工作。您可以直接向我提问、委托文献综述核验、审查统计方案,或点击上方的快速快捷指令开始。
|
|
1171
1193
|
</div>
|
|
1172
1194
|
</div>
|
|
@@ -1421,7 +1443,7 @@
|
|
|
1421
1443
|
<span class="pill neutral" id="probe-status-pill"><span class="dot"></span> 尚无论断</span>
|
|
1422
1444
|
<span class="detail-key mono" id="probe-claim-id">—</span>
|
|
1423
1445
|
</div>
|
|
1424
|
-
|
|
1446
|
+
|
|
1425
1447
|
<div>
|
|
1426
1448
|
<h4 style="font-size:1.02rem;color:var(--ink);margin-bottom:0.3rem;" id="probe-source-title">(从真实证据账本加载)</h4>
|
|
1427
1449
|
<div class="mono" style="font-size:0.78rem;color:var(--ink-muted);" id="probe-doi-link">DOI: —</div>
|
|
@@ -2653,11 +2675,11 @@ function applyClaimProbe(idx) {
|
|
|
2653
2675
|
});
|
|
2654
2676
|
const data = PANEL_CLAIMS[idx];
|
|
2655
2677
|
document.getElementById("probe-claim-id").textContent = data.id;
|
|
2656
|
-
|
|
2678
|
+
|
|
2657
2679
|
const statusPill = document.getElementById("probe-status-pill");
|
|
2658
2680
|
statusPill.className = data.statusClass;
|
|
2659
2681
|
statusPill.innerHTML = `<span class="dot"></span> ${data.status}`;
|
|
2660
|
-
|
|
2682
|
+
|
|
2661
2683
|
document.getElementById("probe-source-title").textContent = data.title;
|
|
2662
2684
|
const doiEl = document.getElementById("probe-doi-link");
|
|
2663
2685
|
if (data.doiUrl !== "#") {
|
|
@@ -2789,7 +2811,7 @@ function selectAuditorClaim(idx) {
|
|
|
2789
2811
|
document.getElementById("audit-input-doi").value = d.doi;
|
|
2790
2812
|
document.getElementById("audit-input-quote").value = d.quote;
|
|
2791
2813
|
document.getElementById("audit-select-status").value = d.status.includes("缺口") || d.status.includes("不足") ? "uncertain" : "verified";
|
|
2792
|
-
|
|
2814
|
+
|
|
2793
2815
|
const pill = document.getElementById("auditor-status-pill");
|
|
2794
2816
|
pill.className = d.statusClass;
|
|
2795
2817
|
pill.textContent = d.status;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
type ToolTextContent = {
|
|
3
|
+
type: "text";
|
|
4
|
+
text: string;
|
|
5
|
+
};
|
|
6
|
+
interface ToolResultShape {
|
|
7
|
+
content: ToolTextContent[];
|
|
8
|
+
details: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Explicit workflow dispatch shared by the workbench's direct (`workflow`
|
|
12
|
+
* parameter) and natural-language routed paths, so every workflow result has
|
|
13
|
+
* the same `psyclaw/workflow-result/v1` contract.
|
|
14
|
+
*/
|
|
15
|
+
export declare function runWorkflowTool(root: string, workflow: string, target?: string, nStudies?: number): Promise<ToolResultShape>;
|
|
16
|
+
/** Turn a natural-language meta-analysis request into a searchable target. */
|
|
17
|
+
export declare function cleanMetaTarget(request: string): string;
|
|
18
|
+
export default function psyclawExtension(pi: ExtensionAPI): void;
|
|
19
|
+
export {};
|