# 导入与导出 在作品菜单中打开 **导入 / 导出**。正文的章节设置、卷设置,设定的更多操作,规划的更多操作和写作预设也有快捷入口,会预先选好相应内容。 ## 带走哪些内容 | 内容 | 选择范围 | 文件 | | --- | --- | --- | | 正文 | 全书、某卷、勾选章节 | 催更姬数据包、TXT、Markdown | | 设定 | 单条、人物或世界、分组、全部 | 催更姬数据包 | | 规划 | 一张或多张画布 | 催更姬数据包,保留布局、箭头、框和便签 | | 写作预设 | 当前作品整套要求 | 催更姬数据包,使用编辑后的提示词及顺序 | | 作品 | 一本或多本 | 催更姬数据包,包含历史与回收站 | | 完整工作库 | 全部作品和运行记录 | 全库备份,另含绑定会话、请求记录和日志 | 导出使用已保存内容;正在编辑的设定和预设请先保存,正文等待自动保存完成。TXT 和 Markdown 只带当前正文和标题,数据包保留所选章节的版本历史。回收站章节仅随完整作品或工作库备份携带。 “携带关联正文与设定”会沿正文来源和设定依赖收集文件内的相关内容,预览列出额外携带的项目。只保留所选设定之间的关系;不扩散到所有相邻节点。不携带时移除缺失引用,并报告受影响的内容;缺少正文证据的规划从“已写入正文”变为“准备采用”。 ## 把内容带进来 选择或拖入文件后,页面自动识别格式,显示可选内容和预览,再选择目标作品并确认。支持催更姬新数据包、原有单本或全库备份、旧项目 JSON、酒馆角色卡 JSON/PNG、世界书 JSON、提示词预设 JSON,以及 TXT / Markdown 正文。正文文件会按章节标题拆分,也可以作为一个片段导入;UTF-8 和常见 GB18030 正文可以读取。 - **恢复备份**保留原 ID、正文历史与版本。相同作品跳过,同 ID 不同内容拒绝覆盖。全库恢复同时核对绑定、请求和日志;也可以从全库备份只选择几部作品。 - **复用内容**创建新 ID,可新建作品,或把正文、设定、规划、预设加入已有作品。内部来源、分组、连线和版本引用一起重映射。规划加入独立画布,同名页与分组加“导入”后缀以便区分。设定需重新确认;预设整体停用,支持追加或替换,核对后到写作预设页面启用。 完整作品备份可以切换到复用方式,再只提取其中的正文、设定、规划或预设。多套酒馆提示词排列可在预览时选择。酒馆触发、装填规则和脚本仍不执行,详见[设定导入](tavern-import.md)和[预设说明](presets.md)。 每次确认前重新校验文件和目标作品。如果预览后有人编辑过作品,导入会停止;点击 **刷新预览** 后重新核对。已成功导入的相同内容与范围再次选择会返回原结果,不重复创建。 导入前自动生成 `backups/before-transfer-*/workspace.json`,这个文件本身是可识别的全库备份。内容、运行记录、日志附件使用同一个可恢复事务提交,中断后先恢复,再允许下一次读取或重试。DSH 的聊天、附件和 API 配置由 DSH 管理,不在小说数据包中。 ## 维护边界 `src/contracts/transfer.ts` 定义共享契约;`application/transfer/recognize.ts` 识别文件并复用既有解析器,`packages.ts` 负责范围及关联,`copy.ts` 负责新 ID 与引用重映射,`service.ts` 负责锁、预览、备份和事务提交。业务数据仍通过 ProjectStore 保存,不绕过索引直接修改文件。 `client/features/transfer` 集中管理页面、范围选择、文件读取和下载。原作品、设定、预设入口只传递预选范围;旧 `workspace.*`、`novel.import/export` 和酒馆、预设 RPC 保持可用。新增 `transfer.*` 仅用于作者界面,未扩展 Agent 工具或自动上下文。 验证:`tests/transfer.test.js` / `transfer-rpc.test.js` 覆盖范围、关联、旧格式、文件校验、恢复与复用、版本冲突、请求重试和事务中断;`npm run test:transfer` 在临时数据目录使用真实页面验证文件上传、下载和布局。