psyclaw 0.24.0 → 0.25.1
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 +46 -53
- package/{dist/apps → apps}/panel/index.html +28 -50
- package/package.json +10 -20
- 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 +729 -0
- package/scripts/build_preprint_figures.py +238 -0
- package/scripts/build_three_line_table_fixture.py +56 -0
- package/scripts/build_whitepaper_docx.py +768 -0
- package/scripts/check-branding.mjs +159 -0
- package/scripts/copy-panel.mjs +11 -0
- package/scripts/rebrand-pi.mjs +291 -0
- package/scripts/verify_docx.py +41 -0
- package/skills/core/citation-audit/SKILL.md +9 -9
- package/skills/core/evidence-capture/SKILL.md +9 -9
- package/skills/core/manifest.json +15 -15
- package/skills/core/research-brief/SKILL.md +8 -8
- package/skills/core/research-intake/SKILL.md +9 -9
- package/dist/src/adapters/pi/extension.d.ts +0 -19
- package/dist/src/adapters/pi/extension.js +0 -735
- package/dist/src/adapters/pi/extension.js.map +0 -1
- package/dist/src/adapters/pi/model.d.ts +0 -72
- package/dist/src/adapters/pi/model.js +0 -152
- package/dist/src/adapters/pi/model.js.map +0 -1
- package/dist/src/adapters/pi/resources.d.ts +0 -23
- package/dist/src/adapters/pi/resources.js +0 -54
- package/dist/src/adapters/pi/resources.js.map +0 -1
- package/dist/src/adapters/pi/rpc.d.ts +0 -56
- package/dist/src/adapters/pi/rpc.js +0 -248
- package/dist/src/adapters/pi/rpc.js.map +0 -1
- package/dist/src/adapters/pi/session.d.ts +0 -30
- package/dist/src/adapters/pi/session.js +0 -64
- package/dist/src/adapters/pi/session.js.map +0 -1
- package/dist/src/agents/catalog.d.ts +0 -30
- package/dist/src/agents/catalog.js +0 -118
- package/dist/src/agents/catalog.js.map +0 -1
- package/dist/src/agents/discover.d.ts +0 -28
- package/dist/src/agents/discover.js +0 -127
- package/dist/src/agents/discover.js.map +0 -1
- package/dist/src/agents/import.d.ts +0 -67
- package/dist/src/agents/import.js +0 -801
- package/dist/src/agents/import.js.map +0 -1
- package/dist/src/analysis/hooks.d.ts +0 -81
- package/dist/src/analysis/hooks.js +0 -139
- package/dist/src/analysis/hooks.js.map +0 -1
- package/dist/src/analysis/pre-registration.d.ts +0 -18
- package/dist/src/analysis/pre-registration.js +0 -86
- package/dist/src/analysis/pre-registration.js.map +0 -1
- package/dist/src/branding.d.ts +0 -43
- package/dist/src/branding.js +0 -127
- package/dist/src/branding.js.map +0 -1
- package/dist/src/chat.d.ts +0 -16
- package/dist/src/chat.js +0 -67
- package/dist/src/chat.js.map +0 -1
- package/dist/src/cli.d.ts +0 -2
- package/dist/src/cli.js +0 -316
- package/dist/src/cli.js.map +0 -1
- package/dist/src/core/citations.d.ts +0 -44
- package/dist/src/core/citations.js +0 -48
- package/dist/src/core/citations.js.map +0 -1
- package/dist/src/core/contracts.d.ts +0 -119
- package/dist/src/core/contracts.js +0 -2
- package/dist/src/core/contracts.js.map +0 -1
- package/dist/src/core/docx.d.ts +0 -11
- package/dist/src/core/docx.js +0 -46
- package/dist/src/core/docx.js.map +0 -1
- package/dist/src/core/doi.d.ts +0 -41
- package/dist/src/core/doi.js +0 -82
- package/dist/src/core/doi.js.map +0 -1
- package/dist/src/core/evidence-policy.d.ts +0 -24
- package/dist/src/core/evidence-policy.js +0 -308
- package/dist/src/core/evidence-policy.js.map +0 -1
- package/dist/src/core/filekind.d.ts +0 -15
- package/dist/src/core/filekind.js +0 -82
- package/dist/src/core/filekind.js.map +0 -1
- package/dist/src/core/hash.d.ts +0 -2
- package/dist/src/core/hash.js +0 -17
- package/dist/src/core/hash.js.map +0 -1
- package/dist/src/core/pricing.d.ts +0 -38
- package/dist/src/core/pricing.js +0 -110
- package/dist/src/core/pricing.js.map +0 -1
- package/dist/src/core/redact.d.ts +0 -12
- package/dist/src/core/redact.js +0 -48
- package/dist/src/core/redact.js.map +0 -1
- package/dist/src/core/references.d.ts +0 -55
- package/dist/src/core/references.js +0 -102
- package/dist/src/core/references.js.map +0 -1
- package/dist/src/core/schemas.d.ts +0 -162
- package/dist/src/core/schemas.js +0 -160
- package/dist/src/core/schemas.js.map +0 -1
- package/dist/src/extension.d.ts +0 -1
- package/dist/src/extension.js +0 -2
- package/dist/src/extension.js.map +0 -1
- package/dist/src/index.d.ts +0 -72
- package/dist/src/index.js +0 -73
- package/dist/src/index.js.map +0 -1
- package/dist/src/install/installer.d.ts +0 -147
- package/dist/src/install/installer.js +0 -743
- package/dist/src/install/installer.js.map +0 -1
- package/dist/src/integrations/contracts.d.ts +0 -35
- package/dist/src/integrations/contracts.js +0 -27
- package/dist/src/integrations/contracts.js.map +0 -1
- package/dist/src/integrations/mcp.d.ts +0 -155
- package/dist/src/integrations/mcp.js +0 -826
- package/dist/src/integrations/mcp.js.map +0 -1
- package/dist/src/knowledge-map/contracts.d.ts +0 -20
- package/dist/src/knowledge-map/contracts.js +0 -2
- package/dist/src/knowledge-map/contracts.js.map +0 -1
- package/dist/src/knowledge-map/index.d.ts +0 -4
- package/dist/src/knowledge-map/index.js +0 -39
- package/dist/src/knowledge-map/index.js.map +0 -1
- package/dist/src/literature/contracts.d.ts +0 -106
- package/dist/src/literature/contracts.js +0 -2
- package/dist/src/literature/contracts.js.map +0 -1
- package/dist/src/literature/fulltext.d.ts +0 -7
- package/dist/src/literature/fulltext.js +0 -24
- package/dist/src/literature/fulltext.js.map +0 -1
- package/dist/src/literature/knowledge-map.d.ts +0 -2
- package/dist/src/literature/knowledge-map.js +0 -20
- package/dist/src/literature/knowledge-map.js.map +0 -1
- package/dist/src/literature/ledger.d.ts +0 -3
- package/dist/src/literature/ledger.js +0 -17
- package/dist/src/literature/ledger.js.map +0 -1
- package/dist/src/literature/metadata.d.ts +0 -6
- package/dist/src/literature/metadata.js +0 -32
- package/dist/src/literature/metadata.js.map +0 -1
- package/dist/src/memory/store.d.ts +0 -22
- package/dist/src/memory/store.js +0 -73
- package/dist/src/memory/store.js.map +0 -1
- package/dist/src/orchestration/contracts.d.ts +0 -61
- package/dist/src/orchestration/contracts.js +0 -2
- package/dist/src/orchestration/contracts.js.map +0 -1
- package/dist/src/orchestration/pi-executor.d.ts +0 -28
- package/dist/src/orchestration/pi-executor.js +0 -169
- package/dist/src/orchestration/pi-executor.js.map +0 -1
- package/dist/src/orchestration/runner.d.ts +0 -196
- package/dist/src/orchestration/runner.js +0 -991
- package/dist/src/orchestration/runner.js.map +0 -1
- package/dist/src/orchestration/scheduler.d.ts +0 -8
- package/dist/src/orchestration/scheduler.js +0 -335
- package/dist/src/orchestration/scheduler.js.map +0 -1
- package/dist/src/panel/events.d.ts +0 -20
- package/dist/src/panel/events.js +0 -93
- package/dist/src/panel/events.js.map +0 -1
- package/dist/src/panel/extension.d.ts +0 -8
- package/dist/src/panel/extension.js +0 -114
- package/dist/src/panel/extension.js.map +0 -1
- package/dist/src/panel/literature-map.d.ts +0 -26
- package/dist/src/panel/literature-map.js +0 -34
- package/dist/src/panel/literature-map.js.map +0 -1
- package/dist/src/panel/projection.d.ts +0 -51
- package/dist/src/panel/projection.js +0 -288
- package/dist/src/panel/projection.js.map +0 -1
- package/dist/src/panel/server.d.ts +0 -46
- package/dist/src/panel/server.js +0 -1610
- package/dist/src/panel/server.js.map +0 -1
- package/dist/src/panel/usage.d.ts +0 -53
- package/dist/src/panel/usage.js +0 -150
- package/dist/src/panel/usage.js.map +0 -1
- package/dist/src/project/bootstrap.d.ts +0 -10
- package/dist/src/project/bootstrap.js +0 -83
- package/dist/src/project/bootstrap.js.map +0 -1
- package/dist/src/project/hitl.d.ts +0 -12
- package/dist/src/project/hitl.js +0 -43
- package/dist/src/project/hitl.js.map +0 -1
- package/dist/src/project/jsonl.d.ts +0 -16
- package/dist/src/project/jsonl.js +0 -93
- package/dist/src/project/jsonl.js.map +0 -1
- package/dist/src/project/manuscript.d.ts +0 -21
- package/dist/src/project/manuscript.js +0 -74
- package/dist/src/project/manuscript.js.map +0 -1
- package/dist/src/project/paths.d.ts +0 -38
- package/dist/src/project/paths.js +0 -166
- package/dist/src/project/paths.js.map +0 -1
- package/dist/src/project/versions.d.ts +0 -10
- package/dist/src/project/versions.js +0 -14
- package/dist/src/project/versions.js.map +0 -1
- package/dist/src/psyclaw-theme.d.ts +0 -88
- package/dist/src/psyclaw-theme.js +0 -89
- package/dist/src/psyclaw-theme.js.map +0 -1
- package/dist/src/research/brief.d.ts +0 -11
- package/dist/src/research/brief.js +0 -81
- package/dist/src/research/brief.js.map +0 -1
- package/dist/src/research/ledger.d.ts +0 -12
- package/dist/src/research/ledger.js +0 -43
- package/dist/src/research/ledger.js.map +0 -1
- package/dist/src/run.d.ts +0 -20
- package/dist/src/run.js +0 -34
- package/dist/src/run.js.map +0 -1
- package/dist/src/setup.d.ts +0 -54
- package/dist/src/setup.js +0 -221
- package/dist/src/setup.js.map +0 -1
- package/dist/src/skills/contracts.d.ts +0 -105
- package/dist/src/skills/contracts.js +0 -3
- package/dist/src/skills/contracts.js.map +0 -1
- package/dist/src/skills/preflight.d.ts +0 -10
- package/dist/src/skills/preflight.js +0 -39
- package/dist/src/skills/preflight.js.map +0 -1
- package/dist/src/skills/registry.d.ts +0 -28
- package/dist/src/skills/registry.js +0 -556
- package/dist/src/skills/registry.js.map +0 -1
- package/dist/src/style/artifact.d.ts +0 -6
- package/dist/src/style/artifact.js +0 -61
- package/dist/src/style/artifact.js.map +0 -1
- package/dist/src/style/cli-ui.d.ts +0 -41
- package/dist/src/style/cli-ui.js +0 -119
- package/dist/src/style/cli-ui.js.map +0 -1
- package/dist/src/style/contracts.d.ts +0 -34
- package/dist/src/style/contracts.js +0 -2
- package/dist/src/style/contracts.js.map +0 -1
- package/dist/src/style/registry.d.ts +0 -16
- package/dist/src/style/registry.js +0 -50
- package/dist/src/style/registry.js.map +0 -1
- package/dist/src/trust/manifest.d.ts +0 -42
- package/dist/src/trust/manifest.js +0 -53
- package/dist/src/trust/manifest.js.map +0 -1
- package/dist/src/trust/sbom.d.ts +0 -54
- package/dist/src/trust/sbom.js +0 -77
- package/dist/src/trust/sbom.js.map +0 -1
- package/dist/src/tui/app.d.ts +0 -3
- package/dist/src/tui/app.js +0 -103
- package/dist/src/tui/app.js.map +0 -1
- package/dist/src/tui/model.d.ts +0 -13
- package/dist/src/tui/model.js +0 -25
- package/dist/src/tui/model.js.map +0 -1
- package/dist/src/updates/check.d.ts +0 -43
- package/dist/src/updates/check.js +0 -68
- package/dist/src/updates/check.js.map +0 -1
- package/dist/src/updates/manifest.d.ts +0 -19
- package/dist/src/updates/manifest.js +0 -58
- package/dist/src/updates/manifest.js.map +0 -1
- package/dist/src/updates/registry.d.ts +0 -21
- package/dist/src/updates/registry.js +0 -82
- package/dist/src/updates/registry.js.map +0 -1
- package/dist/src/updates/skills.d.ts +0 -15
- package/dist/src/updates/skills.js +0 -39
- package/dist/src/updates/skills.js.map +0 -1
- package/dist/src/updates/status.d.ts +0 -7
- package/dist/src/updates/status.js +0 -37
- package/dist/src/updates/status.js.map +0 -1
- package/dist/src/updates/update.d.ts +0 -43
- package/dist/src/updates/update.js +0 -126
- package/dist/src/updates/update.js.map +0 -1
- package/dist/src/wizard.d.ts +0 -7
- package/dist/src/wizard.js +0 -90
- package/dist/src/wizard.js.map +0 -1
- package/dist/src/workflows/analysis-delegation.d.ts +0 -3
- package/dist/src/workflows/analysis-delegation.js +0 -96
- package/dist/src/workflows/analysis-delegation.js.map +0 -1
- package/dist/src/workflows/expert-review-runner.d.ts +0 -29
- package/dist/src/workflows/expert-review-runner.js +0 -35
- package/dist/src/workflows/expert-review-runner.js.map +0 -1
- package/dist/src/workflows/expert-review.d.ts +0 -140
- package/dist/src/workflows/expert-review.js +0 -111
- package/dist/src/workflows/expert-review.js.map +0 -1
- package/dist/src/workflows/institutional-fulltext.d.ts +0 -16
- package/dist/src/workflows/institutional-fulltext.js +0 -110
- package/dist/src/workflows/institutional-fulltext.js.map +0 -1
- package/dist/src/workflows/literature-review.d.ts +0 -3
- package/dist/src/workflows/literature-review.js +0 -76
- package/dist/src/workflows/literature-review.js.map +0 -1
- package/dist/src/workflows/meta-analysis.d.ts +0 -38
- package/dist/src/workflows/meta-analysis.js +0 -185
- package/dist/src/workflows/meta-analysis.js.map +0 -1
- package/dist/src/workflows/publish.d.ts +0 -51
- package/dist/src/workflows/publish.js +0 -153
- package/dist/src/workflows/publish.js.map +0 -1
- package/dist/src/workflows/spec.d.ts +0 -51
- package/dist/src/workflows/spec.js +0 -157
- package/dist/src/workflows/spec.js.map +0 -1
- package/dist/src/workflows/style-contract.d.ts +0 -24
- package/dist/src/workflows/style-contract.js +0 -23
- package/dist/src/workflows/style-contract.js.map +0 -1
- package/dist/src/workflows/writing-review.d.ts +0 -15
- package/dist/src/workflows/writing-review.js +0 -82
- package/dist/src/workflows/writing-review.js.map +0 -1
- package/package.json.psyclaw +0 -21
package/README.md
CHANGED
|
@@ -1,67 +1,60 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
> v0.24.0 adopts the audited 0.4.1 predecessor Node/Pi baseline as an independent
|
|
4
|
-
> PsyClaw product. PsyClaw v0.23.0 remains intact in Git history, its
|
|
5
|
-
> `v0.23.0` tag, documentation, and existing release assets.
|
|
1
|
+
# psyclaw
|
|
6
2
|
|
|
7
3
|
面向社会科学研究者的 Pi 科研智能体层。
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
psyclaw
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
22
|
-
- [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
pnpm
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
node dist/src/cli.js
|
|
36
|
-
node dist/src/cli.js
|
|
37
|
-
node dist/src/cli.js
|
|
38
|
-
node dist/src/cli.js
|
|
39
|
-
node dist/src/cli.js
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/
|
|
44
|
-
/
|
|
45
|
-
/
|
|
46
|
-
/mcp
|
|
47
|
-
/
|
|
48
|
-
|
|
49
|
-
/install skill|mcp <id> # 生成安装预检计划
|
|
50
|
-
pnpm exec pi --extension ./dist/src/extension.js --approve # 未安装 package 时的临时入口
|
|
51
|
-
pi --extension ./dist/src/panel/extension.js # 可选:在 Pi 中启停 /panel
|
|
5
|
+
## 版本沿革
|
|
6
|
+
|
|
7
|
+
`PsyClaw v0.25.1` 以 `psypi v0.4.1` 的完整实现为基线完成产品改名和源码迁移。`F:\Projects\psypi\psypi` 保留为历史仓库;此后的正式开发、发布和 `psyclaw` 命令均以本仓库为准。为避免中断已有模型、主题、扩展和 Skill 配置,运行时继续兼容既有 Pi profile;研究项目状态则统一写入 `.psyclaw/`。
|
|
8
|
+
|
|
9
|
+
psyclaw 的目标不是再造一个重量级 Agent,而是在官方 Pi 之上提供少量、可审计、可组合的科研契约:研究项目状态、Claim-Evidence-Provenance 账本、完整性门禁、可恢复工作流、受控记忆和按需技能。统计计算交给成熟库或外接 MCP;Pi 的会话、模型、Skill、Package 和 TUI/RPC 能力继续由 Pi 提供。
|
|
10
|
+
|
|
11
|
+
当前仓库已完成第一条 M1/MVP-0 可运行切片,并落地 M2 的技能注册与受限多智能体编排基础、M3 的只读并行契约、真实 stdio MCP transport(argv/显式 env/超时隔离)、Skill 恶意正文 preflight、许可证/SBOM 门与 M4 的 literature-review/analysis-delegation/writing-review 三个 workflow 包。官方 Pi 的 `AgentSession`、`SessionManager`、`DefaultResourceLoader`、模型网关和严格 JSONL RPC 已由 adapter 接入;完成项目级 package 安装后提供原生只读 `/agents` 多智能体入口,面板扩展可选安装。联网检索、统计计算和并行写入仍按规划后置。先阅读:
|
|
12
|
+
|
|
13
|
+
- [开工纪要](docs/开工纪要.md)
|
|
14
|
+
- [架构蓝图](docs/架构蓝图.md)
|
|
15
|
+
- [多智能体开发与运行框架](docs/多智能体开发与运行框架.md)
|
|
16
|
+
- [评测框架](docs/评测框架.md)
|
|
17
|
+
- [技能与生态准入清单](docs/技能与生态准入清单.md)
|
|
18
|
+
- [威胁模型](docs/威胁模型.md)
|
|
19
|
+
|
|
20
|
+
代号:`psyclaw`。当前可用命令:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
pnpm install
|
|
24
|
+
pnpm build
|
|
25
|
+
pnpm exec pi install -l . # 一次性把 psyclaw 作为项目级 Pi package 启用
|
|
26
|
+
pnpm exec pi --approve # 运行 Pi 时信任已审查的项目 package
|
|
27
|
+
node dist/src/cli.js init "研究问题" --paradigm survey-observational
|
|
28
|
+
node dist/src/cli.js evidence add notes/source.md --level user
|
|
29
|
+
node dist/src/cli.js brief
|
|
30
|
+
node dist/src/cli.js workflow literature-review
|
|
31
|
+
node dist/src/cli.js serve --port 8787
|
|
32
|
+
node dist/src/cli.js agents
|
|
33
|
+
node dist/src/cli.js install claude-code --yes # 当前 agent 全局命令仍为 discover-only
|
|
34
|
+
node dist/src/cli.js import claude-code --yes
|
|
35
|
+
node dist/src/cli.js shell
|
|
36
|
+
/skills # 查看推荐 Skill 的启用状态
|
|
37
|
+
/skills enable <skill-id> # 启用项目级 Skill
|
|
38
|
+
/skills disable <skill-id> # 禁用项目级 Skill
|
|
39
|
+
/mcp # 查看推荐 MCP 的启用状态
|
|
40
|
+
/mcp enable <mcp-id> # 启用项目级 MCP
|
|
41
|
+
/mcp disable <mcp-id> # 禁用项目级 MCP
|
|
42
|
+
/install skill|mcp <id> # 生成安装预检计划
|
|
43
|
+
pnpm exec pi --extension ./dist/src/extension.js --approve # 未安装 package 时的临时入口
|
|
44
|
+
pi --extension ./dist/src/panel/extension.js # 可选:在 Pi 中启停 /panel
|
|
52
45
|
```
|
|
53
46
|
|
|
54
47
|
在 `pi-workbench` 中使用时,先在研究项目根目录安装 psyclaw package:
|
|
55
48
|
|
|
56
49
|
```text
|
|
57
|
-
pi install -l F:\Projects\psyclaw
|
|
50
|
+
pi install -l F:\Projects\psyclaw\psyclaw
|
|
58
51
|
pi-workbench
|
|
59
52
|
```
|
|
60
53
|
|
|
61
54
|
workbench 启动的每个 Pi 会话都会加载 psyclaw 的 `/research`、`/brief`、`/agents` 和 `/panel` 命令。在 Pi 中执行 `/panel` 后,用浏览器打开提示的 `http://127.0.0.1:8787` 地址即可查看当前项目的只读运行状态。
|
|
62
55
|
|
|
63
56
|
`brief` 与 `workflow` 在证据门禁失败时退出码为 `2`,并保留 manifest 与 HANDOFF,不生成貌似完成的正文。`serve` 启动本机面板:运行事实、Agent/Skill 和模型目录为只读;模型配置表单是唯一明确的本地写入入口,会将 provider 元数据写入 Pi `models.json`,API key 交给 Pi `auth.json` 管理。
|
|
64
|
-
|
|
65
|
-
内置 agent 下载器/安装器:`agents`/`scan` 只读识别本机其他智能体(Claude Code、OpenAI Codex、Gemini CLI、opencode、Aider、Cursor、Windsurf、Continue、Orca、Copilot CLI)的配置与技能目录,绝不读取凭据内容;安装计划必须有来源、版本、artifact SHA、许可证/依赖审计和 SBOM,缺任何一项都会 `blocked`。当前 agent catalog 只有全局 npm/pipx 命令,尚未绑定可验证 staging artifact,因此即使人工确认也保持 `agent-staging-required`,不会执行全局安装;`import <id> --yes` 将其他 agent 的允许 Skill 文件以来源/SHA-256 溯源导入 `.psyclaw/imports/`;`shell` 启动 ink 交互式表格 TUI(↑/↓ 选择、`i` 安装、`m` 导入、`r` 重扫、`q` 退出)。
|
|
66
|
-
|
|
67
|
-
Pi 集成分两层:完成一次 `pi install -l .` 后,项目级 package 默认加载 `src/extension.ts`,注册研究命令和原生只读 `/agents`;未安装时可用上面的 `--extension` 临时入口。worker 通过独立 Pi RPC 子进程、`read/grep/find/ls` 工具和结构化 WorkerReport 回传,但进程边界仍不是 OS sandbox。`src/panel/extension.ts` 是可选扩展,使用 `/panel [--port 8787]` 启停仅绑定 `127.0.0.1` 的只读可视化界面。面板的 Agents/Skills 下载页只展示发现结果、来源、版本、许可证、SHA、风险和审批前计划;模型页读取 Pi 本地模型注册表,并在没有对应注册项时显示 psyclaw 的 DeepSeek 模板元数据。页面只显示环境变量名称,不接收或显示 API key;`configured` 只表示环境变量存在,不代表实际认证成功。模型适配沿用 Pi `models.json`/`registerProvider` 契约,DeepSeek helper 只输出 `$DEEPSEEK_API_KEY` 引用。
|
|
57
|
+
|
|
58
|
+
内置 agent 下载器/安装器:`agents`/`scan` 只读识别本机其他智能体(Claude Code、OpenAI Codex、Gemini CLI、opencode、Aider、Cursor、Windsurf、Continue、Orca、Copilot CLI)的配置与技能目录,绝不读取凭据内容;安装计划必须有来源、版本、artifact SHA、许可证/依赖审计和 SBOM,缺任何一项都会 `blocked`。当前 agent catalog 只有全局 npm/pipx 命令,尚未绑定可验证 staging artifact,因此即使人工确认也保持 `agent-staging-required`,不会执行全局安装;`import <id> --yes` 将其他 agent 的允许 Skill 文件以来源/SHA-256 溯源导入 `.psyclaw/imports/`;`shell` 启动 ink 交互式表格 TUI(↑/↓ 选择、`i` 安装、`m` 导入、`r` 重扫、`q` 退出)。
|
|
59
|
+
|
|
60
|
+
Pi 集成分两层:完成一次 `pi install -l .` 后,项目级 package 默认加载 `src/extension.ts`,注册研究命令和原生只读 `/agents`;未安装时可用上面的 `--extension` 临时入口。worker 通过独立 Pi RPC 子进程、`read/grep/find/ls` 工具和结构化 WorkerReport 回传,但进程边界仍不是 OS sandbox。`src/panel/extension.ts` 是可选扩展,使用 `/panel [--port 8787]` 启停仅绑定 `127.0.0.1` 的只读可视化界面。面板的 Agents/Skills 下载页只展示发现结果、来源、版本、许可证、SHA、风险和审批前计划;模型页读取 Pi 本地模型注册表,并在没有对应注册项时显示 psyclaw 的 DeepSeek 模板元数据。页面只显示环境变量名称,不接收或显示 API key;`configured` 只表示环境变量存在,不代表实际认证成功。模型适配沿用 Pi `models.json`/`registerProvider` 契约,DeepSeek helper 只输出 `$DEEPSEEK_API_KEY` 引用。
|
|
@@ -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,28 +316,6 @@
|
|
|
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
|
-
}
|
|
341
319
|
.pulse-dot {
|
|
342
320
|
width: 7px;
|
|
343
321
|
height: 7px;
|
|
@@ -1122,9 +1100,9 @@
|
|
|
1122
1100
|
<a href="#" class="brand">
|
|
1123
1101
|
<div class="brand-logo">ψ</div>
|
|
1124
1102
|
<div>
|
|
1125
|
-
<div class="brand-title">
|
|
1103
|
+
<div class="brand-title">psyclaw</div>
|
|
1126
1104
|
</div>
|
|
1127
|
-
<span class="brand-tag">工作台 v0.
|
|
1105
|
+
<span class="brand-tag">工作台 v0.3.2</span>
|
|
1128
1106
|
</a>
|
|
1129
1107
|
|
|
1130
1108
|
<!-- Main Navigation Tabs -->
|
|
@@ -1188,7 +1166,7 @@
|
|
|
1188
1166
|
<div class="msg-bubble assistant">
|
|
1189
1167
|
<div class="msg-avatar">ψ</div>
|
|
1190
1168
|
<div class="msg-content">
|
|
1191
|
-
<strong>您好,我是
|
|
1169
|
+
<strong>您好,我是 psyclaw 科研智能助手。</strong><br>
|
|
1192
1170
|
我基于严密的证据链(Claim-Evidence Ledger)工作。您可以直接向我提问、委托文献综述核验、审查统计方案,或点击上方的快速快捷指令开始。
|
|
1193
1171
|
</div>
|
|
1194
1172
|
</div>
|
|
@@ -1443,7 +1421,7 @@
|
|
|
1443
1421
|
<span class="pill neutral" id="probe-status-pill"><span class="dot"></span> 尚无论断</span>
|
|
1444
1422
|
<span class="detail-key mono" id="probe-claim-id">—</span>
|
|
1445
1423
|
</div>
|
|
1446
|
-
|
|
1424
|
+
|
|
1447
1425
|
<div>
|
|
1448
1426
|
<h4 style="font-size:1.02rem;color:var(--ink);margin-bottom:0.3rem;" id="probe-source-title">(从真实证据账本加载)</h4>
|
|
1449
1427
|
<div class="mono" style="font-size:0.78rem;color:var(--ink-muted);" id="probe-doi-link">DOI: —</div>
|
|
@@ -2675,11 +2653,11 @@ function applyClaimProbe(idx) {
|
|
|
2675
2653
|
});
|
|
2676
2654
|
const data = PANEL_CLAIMS[idx];
|
|
2677
2655
|
document.getElementById("probe-claim-id").textContent = data.id;
|
|
2678
|
-
|
|
2656
|
+
|
|
2679
2657
|
const statusPill = document.getElementById("probe-status-pill");
|
|
2680
2658
|
statusPill.className = data.statusClass;
|
|
2681
2659
|
statusPill.innerHTML = `<span class="dot"></span> ${data.status}`;
|
|
2682
|
-
|
|
2660
|
+
|
|
2683
2661
|
document.getElementById("probe-source-title").textContent = data.title;
|
|
2684
2662
|
const doiEl = document.getElementById("probe-doi-link");
|
|
2685
2663
|
if (data.doiUrl !== "#") {
|
|
@@ -2811,7 +2789,7 @@ function selectAuditorClaim(idx) {
|
|
|
2811
2789
|
document.getElementById("audit-input-doi").value = d.doi;
|
|
2812
2790
|
document.getElementById("audit-input-quote").value = d.quote;
|
|
2813
2791
|
document.getElementById("audit-select-status").value = d.status.includes("缺口") || d.status.includes("不足") ? "uncertain" : "verified";
|
|
2814
|
-
|
|
2792
|
+
|
|
2815
2793
|
const pill = document.getElementById("auditor-status-pill");
|
|
2816
2794
|
pill.className = d.statusClass;
|
|
2817
2795
|
pill.textContent = d.status;
|
package/package.json
CHANGED
|
@@ -1,28 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "psyclaw",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A standalone, evidence-grounded social-science research agent that bundles Pi with
|
|
3
|
+
"version": "0.25.1",
|
|
4
|
+
"description": "A standalone, evidence-grounded social-science research agent — a conversation-driven agent that bundles the Pi runtime with psyclaw's research contracts, evidence gates, and workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/Exekiel179/psyclaw.git"
|
|
10
|
-
},
|
|
11
|
-
"homepage": "https://github.com/Exekiel179/psyclaw#readme",
|
|
12
|
-
"bugs": {
|
|
13
|
-
"url": "https://github.com/Exekiel179/psyclaw/issues"
|
|
14
|
-
},
|
|
15
|
-
"publishConfig": {
|
|
16
|
-
"access": "public",
|
|
17
|
-
"registry": "https://registry.npmjs.org/"
|
|
18
|
-
},
|
|
19
7
|
"bin": {
|
|
20
8
|
"psyclaw": "dist/src/cli.js"
|
|
21
9
|
},
|
|
22
10
|
"files": [
|
|
23
11
|
"dist",
|
|
24
12
|
"skills",
|
|
25
|
-
"
|
|
13
|
+
"apps/panel",
|
|
14
|
+
"scripts"
|
|
26
15
|
],
|
|
27
16
|
"engines": {
|
|
28
17
|
"node": ">=22.19.0"
|
|
@@ -38,22 +27,23 @@
|
|
|
38
27
|
"packageManager": "pnpm@10.28.2",
|
|
39
28
|
"pi": {
|
|
40
29
|
"extensions": [
|
|
41
|
-
"./
|
|
42
|
-
"./
|
|
30
|
+
"./src/extension.ts",
|
|
31
|
+
"./src/panel/extension.ts"
|
|
43
32
|
],
|
|
44
33
|
"skills": [
|
|
45
34
|
"./skills/core"
|
|
46
35
|
]
|
|
47
36
|
},
|
|
48
37
|
"scripts": {
|
|
49
|
-
"build": "tsc -p tsconfig.json && node scripts/copy-panel.mjs",
|
|
38
|
+
"build": "node scripts/rebrand-pi.mjs && tsc -p tsconfig.json && node scripts/copy-panel.mjs",
|
|
50
39
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
51
40
|
"test": "vitest run",
|
|
52
41
|
"test:watch": "vitest",
|
|
53
42
|
"eval": "tsx evals/harness.ts",
|
|
54
43
|
"eval:modules": "tsx evals/modules.ts",
|
|
55
|
-
"
|
|
56
|
-
"
|
|
44
|
+
"rebrand": "node scripts/rebrand-pi.mjs",
|
|
45
|
+
"postinstall": "node scripts/rebrand-pi.mjs",
|
|
46
|
+
"prepublishOnly": "pnpm build"
|
|
57
47
|
},
|
|
58
48
|
"dependencies": {
|
|
59
49
|
"@earendil-works/pi-ai": "0.84.1",
|
|
Binary file
|
|
Binary file
|