D
@wishp3/dsh-friend-persona
v0.1.1 · 3 天前发布
角色卡存取、预设注册、人格提示词分区
README
@wishp3/dsh-friend-persona
角色卡存取、酒馆卡导入、预设注册、人格提示词分区。
Host 入口仍是 src/index.ts(由接线任务挂载)。本包已导出的模块:
src/store.ts — 角色卡 CRUD、默认角色种子、数据根解析src/tavern-import.ts — SillyTavern PNG / JSON 导入数据根目录解析优先级
resolveFriendDataDir({ dshHome?, override?, env?, homedir? }) 是纯函数,不会写死 ~/.dsh。第一个非空值生效:
1. options.override — 直接指定 friend 数据根(已含 friend/,测试注入用)
2. 环境变量 FRIEND_DATA_DIR — 同样是 friend 数据根
3. options.dshHome — 拼成 <dshHome>/friend
4. 环境变量 DSH_HOME — 拼成 <DSH_HOME>/friend(冒烟脚本的隔离临时 home 走这条)
5. <homedir || os.homedir()>/.dsh/friend
角色卡路径:<friendDataDir>/characters/<slug>/persona.json。
单元测试一律把 override 指到 os.tmpdir();读取默认回退时传入 env: {},避免本机真实 DSH_HOME 泄漏进断言。
角色卡 schema
写入前校验这些字段(手写类型守卫,不引入 zod,也不运行时依赖 @deepseek-ai/schemastery):
| 字段 | 类型 | 约束 |
版本兼容矩阵
| DSH 版本 | 状态 | 说明 |
|---|---|---|
dsh@0.1.0-rc.6 | ✅ 兼容 | cordis patch ✅ |
dsh@0.1.0 | ✅ 兼容 | 标准 patch ✅ |
dsh@0.2.0 | ⚠️ 待验证 | 待实测(API 可能在变) |
dsh@0.3.0+ | ❓ 未知 | 尚未发布 |
💡 兼容矩阵每周末自动跑实测,欢迎 PR 修正
元数据
- License
- MIT
- npm
- @wishp3/dsh-friend-persona
- Repo
- https://github.com/wanghehe123/dsh-Friend.git
- Engines
{}- Weekly DL
- 0
- Monthly DL
- 0
- dsh.bundle
{"client":{"platform":"web","inject":[]}}