# prts-terrarchive PRTS.chat 为 DeepSeek Harness(DSH)提供的资料插件:把《明日方舟》与 《明日方舟:终末地》的游戏原文、档案,以及社区审校 Wiki、实体图鉴与《泰拉年表》 装进本地资料包,为 Agent 提供带原文行号的检索与引用工具,并可按需接入 PRTS.chat 云端混合检索与 DSH 原生网页工具。 [中文](README.md) | [English](README.en.md) ## 这是什么 本插件为 DSH 提供明日方舟与终末地联合资料检索能力。插件先从 PRTS.chat 取得已批准的 最新 release 与逐文件摘要,再从 ModelScope 镜像或 PRTS.chat 下载本地语料; Agent 可以离线检索并按原文行号阅读材料;可选的 PRTS.chat 云端混合检索用于发现 候选材料,并将结果映射回本地原文核验。由于云端服务承载能力有限,当前为每个用户 每日提供 1000 次 DSH 匿名云端检索调用额度;额度策略可能根据实际运行情况调整。 - **本地检索**:`corpus_search` 用同一组参数同时检索两款游戏, 支持游戏、资料类型、内容形式、角色、活动/任务、Wiki 字段等结构化过滤; - **原文阅读**:`corpus_read` 可按关卡代号、密录名、角色资料类别直接定位, 并可连续阅读整个明日方舟活动或终末地任务;引用格式统一为《篇章名》第 N 行; - **活动时间线**:`timeline_search` 检索 PRTS Wiki《泰拉年表》本地投影, 支持实体别名自动裂变与出处标记反查; - **云端混合检索**:双模块模式下一次 `cloud_search` 默认并行查询两款游戏的图谱、档案、 原文与 Wiki,联合排序后映射回本地篇章; ## 数据来源声明 - **自建 Wiki 数据**:来源于 [littlepangding/arknights_lore_wiki](https://github.com/littlepangding/arknights_lore_wiki)。 - **《泰拉年表》数据**:来源于 [PRTS Wiki《泰拉年表》](https://prts.wiki/w/%E6%B3%B0%E6%8B%89%E5%B9%B4%E8%A1%A8),供本插件的时间线检索使用。 ## 核心特性 | 特性 | 说明 | | --- | --- | | 按需加载 | 工具只挂在「PRTS 模式」预设下,标准/极简等模式不受污染 | | 双游戏资料 | 明日方舟与终末地原文、档案、审校 Wiki、实体与时间线使用统一工具检索 | | 读取去重 | 会话级证据状态跟踪已进入模型上下文的原文,重复/重叠读取自动回放或只补读新行 | | 自带皮肤 | Harness 默认 / PRTS Agent / Endfield AIC / 莱茵生命资料馆 | ## 莱茵生命资料馆 在 **设置 → 插件 → PRTS 语料 → 界面皮肤** 选择「莱茵生命资料馆」,然后在会话中打开 「资料馆」。证据白板、检索阵列和十二槽档案架位于同一个三维场景,底部导航控制镜头平移。 证据板目前提供手动场景预览:图钉固定纸片,拖动整理位置,用红线连接线索;可从搜索结果或阅读器置入资料。 板卡按会话保存在当前浏览器,初次打开的六张布局示例可清空;证据板尚未接入 Agent。 主界面可以直接向 Agent 提问,真实检索状态驱动阵列运动;实际读取或引用触发抽取和归位。 资料按抵达顺序入架,分别标记查得、已读、已引用,保持用户的翻阅位置。 也可以自行搜索、收藏资料、选择原文摘录,再将问题和摘录交给当前 Agent。 「调查记录」展示工具返回内容;阅读器分别标出搜索相关位置和 Agent 实际读过的范围。 原文绑定资料版本,云端无本地定位的资料显示其返回片段。旧会话可以加载更早记录。 长文分页、档案架分页、调查报告、减少动态效果和无 WebGL 时的文字阅读模式均可用。 前端沿用 Three.js + TypeScript + Vite。三维主体、档案循环导航与渲染使用原项目实现和 默认画质;主界面按调查用途重新设计,原版演示档案已全部移除。开发预览读取本地真实资料包,不连接 Agent: ```bash npm ci npm run build:rhine npm run preview:rhine ``` 打开 `http://127.0.0.1:4177`。可通过 `PRTS_RHINE_RELEASES=/path/to/releases` 指定只读资料包目录。 直接预览证据白板:`http://127.0.0.1:4177/?rhineView=board`。 语法检查使用 `npm run check`,测试使用 `npm test`;浏览器检查使用 `npm run test:rhine:browser`(需要 Playwright)。 ## 环境要求 - Web:Node.js **≥ 22.19**,DSH 运行时 **≥ 0.1.2-alpha.2**;当前适配目标为 **0.1.5-alpha.1** - 官方 Electron Desktop:使用与插件兼容的 DSH 桌面版本;桌面自带运行时 - 磁盘空间:语料大小以设置页与 release 清单为准,下载前不会自动占用完整语料空间 ## 安装 ### 当前可用:Web 本地安装 npm 发布正在准备中,目前请从本地源码安装,或使用已内置插件的 PRTS Portable: ```bash npm install --global @deepseek-ai/dsh@0.1.5-alpha.1 git clone https://github.com/HTian-qwq/prts-terrarchive.git cd prts-terrarchive node bin/install.js web ``` 本地安装器把插件加入指定 profile,并创建或迁移 `$DSH_HOME/.agent-presets/prts` 中的 兼容预设。省略第二个参数时使用当前插件目录,也可以传入另一个本地目录或压缩包: ```bash node bin/install.js web /path/to/prts-terrarchive ``` ### npm 发布后:Web 发布后可直接安装插件 bundle,无需额外运行安装脚本: ```bash dsh plugin --profile web add prts-terrarchive@0.2.0 ``` 重启 `dsh web` 后,插件将自带的「PRTS 模式」模板写入宿主的用户预设目录(通常为 `$DSH_HOME/.agent-presets/prts`),模式列表自动发现它;npm 安装不执行 `postinstall`。 默认模式、预设目录配置和正在运行的会话保持不变。已有无标记的 `prts` 预设和用户修改过的 预设完整保留;带插件内容标记且未修改的模板会随插件升级。禁用或卸载插件保留这些用户文件, 不再使用时可从 DSH 的预设管理中删除「PRTS 模式」。 ```bash dsh plugin --profile web remove prts-terrarchive ``` ### 官方 Electron Desktop 官方仓库已有 Electron 实现,目前公开产品页仍以 npm Web 和源码启动为入口,尚未确认 公开发布的官方桌面安装器。此处说明为适配该实现准备的安装方式,插件也尚未发布到 npm。 取得兼容桌面版本、且插件发布到 npm 后,在 **桌面应用的插件管理窗口** 输入 `prts-terrarchive@0.2.0` 安装,随后选用「PRTS 模式」。官方桌面只接受 npm registry 包名和版本,不接受 GitHub 地址、本地目录或 tarball;其 `desktop` profile 由应用管理, 不要运行 `node bin/install.js desktop` 或 `dsh plugin --profile desktop`。 Web 与官方桌面共享默认的 `$DSH_HOME` 用户资料,但各自安装插件。插件包包含界面、地图 模型、贴图、技能和预设,**不包含语料、Node/DSH 运行库或用户数据**。首次使用请在 「设置 → 插件 → PRTS 语料」自行下载语料,切换皮肤无需另下模型和贴图。 PRTS Portable 发行包预装插件、预设和完整语料,解压后无需另行下载语料。 官方 Electron 便携版使用 `build-electron.ps1` 构建,原 WebView2 构建入口继续保留, 详见 [Portable 仓库](https://github.com/HTian-qwq/prts-terrarchive-portable)。 Portable 打包器已放置插件时,仍可使用 `node bin/install.js web --preset-only` 生成或迁移 兼容预设;该选项不调用 DSH CLI。 ### Windows Web 本地安装需要可用的 `dsh.cmd`。安装器经 cmd.exe 调用它,插件路径含换行或 `%` `!` `&` `|` `<` `>` `^` `"` 时会明确报错,请改用不含这些字符的目录。 `DSH` 环境变量可指定 `dsh.cmd` 的绝对路径。官方 DSH 的语料默认保存到 `%USERPROFILE%\.dsh\prts-corpus\releases`;Portable 的会话和设置保存在发行目录的 `userdata`,语料及后续资料更新保存在 `corpus/releases`。 ## 安装后:五步上手 1. **重启** `dsh web` 或所用桌面应用; 2. **设置 → 插件 →「PRTS 语料」**:选择皮肤(Harness 默认 / PRTS Agent / Endfield AIC / 莱茵生命资料馆);皮肤模型、贴图与字体已随插件包安装; 3. **版本管理**:Portable 已附带完整语料;其他安装方式下载双游戏资料(优先 ModelScope 镜像;大小以设置页与当前 release 清单为准)。未安装资料时 PRTS 模式仍可进入;调用本地工具会提醒前往本设置页安装; 4. **新建会话,顶部模式下拉选「PRTS 模式」**; 5. 直接用自然语言提问,或让模型调用下列工具。 ## PRTS 模式的工具面 | 来源 | 工具 | 用途 | | --- | --- | --- | | dsh-base(所有模式共有) | bash/sandbox 等 | 常规 Agent 能力,本插件不裁剪 | | 本插件 | `corpus_search` | 本地语料 grep 检索与目录浏览 | | 本插件 | `corpus_read` | 按玩家可见定位器或自然标题读取官方行号原文 | | 本插件 | `corpus_i18n` | 终末地官方多语言原文查询、名称与档案对照 | | 本插件 | `timeline_search` | 活动时间线检索 / 出处反查 | | 本插件 | `cloud_search` / `cloud_inspect` | PRTS.chat 云端混合检索(默认匿名会话) | | `@deepseek-ai/dsh-tool-web` | `web_search` / `web_fetch` | 公网检索与已知 URL 精读核验 | | `@deepseek-ai/dsh-tool-skill` | skill 加载器 | 按需加载检索策略技能 | | 本插件 | `prts-retrieval` 技能 | 检索配方与字段语义(按需注入,不占 system prompt) | ## 工具详解 ### corpus_i18n — 终末地官方多语言查询 使用带本地化附件的终末地资料包(插件 0.2.0 起支持): ```js corpus_i18n({query: "管理员,你来了。", languages: ["EN", "JP", "KR"]}) corpus_i18n({title: "<检索结果的完整标题>", line: 1, languages: ["EN"]}) ``` 也可用已有 `document_uid` 替代标题。名称/原句默认精确匹配,片段可加 `match_mode:"literal"`;外语反查加 `source_language:"EN"`。返回官方字典中的文本及来源,默认不显示内部文本 ID;显式设 `include_ids:true` 才返回字符串 ID,供 `text_ids` 精确复查。空译文、未映射来源、未安装附件分别报告,不自动生成译文。 角色档案按整条记录、档案库按内容块返回,中文行号只是来源定位,不表示各语言分段相同。长记录会分页,原样提交 `page.continuation` 即可续查。旧资料包仍可搜索和阅读;多语言附件须随新资料版本安装。 构建方式和数据格式见 [官方多语言工具](docs/endfield-official-i18n.md)。 ### corpus_search — 本地语料检索 像 grep 一样搜索本地语料;命中立即返回原行及上下各一行,按文档归并。`query` 使用 短实体名、篇章展示名或原句片段;也可省略 `query`,仅按过滤条件列出资料入口。 | 参数 | 说明 | | --- | --- | | `query` | 搜索词(≤512 码点);在 NFKC 归一化 + 小写后的文本上匹配 | | `games` | 可选游戏过滤;省略时同时搜索 `arknights` 与 `endfield` | | `resource_types` | 资料类型过滤(数组内 OR);明日方舟与终末地可选值见下文 | | `content_types` | 内容形式,例如 `dialogue`、`cutscene`、`radio`、`sns_chat` | | `collection_names` | 明日方舟活动名或终末地任务名,使用同一个字段 | | `match_mode` | `literal`(默认,连续字面匹配)/ `regex`(线性安全子集:字面量、`^`/`$`、`.`、字符类、转义和固定次数 `{n}`;不支持分组、分支及可变量词) | | `character_names` / `story_names` / `activity_names` | 角色 / 篇章 / 活动展示名过滤 | | `entity_names` | 只返回出现指定实体的行(自动展开别名) | | `speakers` | 结构化说话人过滤,只匹配亲口台词 | | `wiki_sections` | Wiki 标签字段过滤(相关活动、剧情总结、角色剧情概括等 16 种) | | `context_terms` | 要求命中附近(±3 行)同时出现的语境词,≤8 个 | | `after` | 下一页的版本绑定可读锚点 `{ data_version, resource_type, title, position }`;与原搜索条件一起原样提交 | 约束:过滤数组每项非空、最多 16 项、单项最长 512 码点。结果预算固定, 保留原搜索条件,并把返回的 `next_after` 原样放入 `after`,可确定性扫描到 `exhausted=true`。锚点使用完整 `data_version`、资料类型和自然标题;资料版本切换后 旧锚点会被拒绝,必须重新搜索。分页不向模型暴露内部签名串。 **明日方舟资料类型(resource_types)**:`story` 官方剧情原文;`character_profile` 档案/招聘/ 潜能;`character_module` 模组;`character_voice` 语音;`character_skin` 时装; `operator_record` 干员密录;`character_bundle` 指定角色的档案+模组+语音+密录; `character_wiki` 规范角色 Wiki;`story_wiki` 活动/密录 Wiki; `character_activity_wiki` 角色×活动辅助 Wiki;`reviewed_wiki` 全部自建 Wiki; `terra_journey` 大地巡旅;`entity_profile` 实体资料;`reference` 时间线等引用资料。 **终末地资料类型**:`original_story` 官方剧情原文;`archive` 官方档案; `knowledge` 知识资料;`wiki` 整理性 Wiki;`character_story` 角色故事; `timeline` 时间线资料;`entity_profile` 实体资料。可配合 `content_types` 区分对话、 过场、广播、通讯、环境对话、SNS 等内容形式。 ### corpus_read — 原文阅读 优先使用游戏内关卡代号、密录名、角色名、活动名或任务名;无法稳定定位时再使用搜索返回的完整标题。 不使用内部 `document_id`、ref 或路径。搜索结果只在同名歧义时给出公开稳定的 `document_uid`;它替代 `title`,不得同时提交两者。同名多合集不会自动合并。 | 用法 | 参数 | | --- | --- | | 明日方舟关卡 | `stage_code`;同代号多篇时加 `story_part`:`before` / `after` / `story`;加 `line` 可定点读上下文 | | 干员密录 | `character_name` + `record_name`;多段密录加 `segment` | | 角色官方资料 | `character_name` + `material`,类别为 `profile/module/voice/skin/recruitment/potential` | | 双模块同名角色消歧 | 在角色定位参数之外加 `game: "arknights"` 或 `game: "endfield"`;无同名歧义时不填 | | 整活动连续阅读 | `activity_name` + `mode: "activity"` | | 终末地任务连续阅读 | `collection_name` + `mode: "collection"`,可选 `content_types` | | 其他资料定点上下文 | `title` + `line` | | 读 Wiki 字段 | `title` + `section`(精确读取标签字段,不含标签行) | | 分页读其他全文 | `title` + `mode: "document"`(`max_lines` 默认 100、上限 500;`max_chars` 默认 12000、上限 100000) | | 同名单篇 | `document_uid` + `line`,或 `document_uid` + `mode: "document"`;不再提交 `title` | | 续读 | 原样提交 `page.continuation`;单篇使用 `line`,活动/任务使用版本绑定的 `position`;旧 `cursor` 仅兼容历史会话 | 每次读取只选一种主定位方式。`max_lines/max_chars` 只限制输出量,不能代替 `line`、`section` 或 `mode`。 重复读取与部分补读保持正常的预算和续页位置。部分补读会用 `coverage` 标明本页复用的上文行及新返回行;全文是否读完仍以 `page.has_more` 为准。 引用格式统一为「《篇章名》第 N 行」。剧情文档只返回请求的原文;剧情总结与活动 时间线必须通过 `timeline_search` 或 Wiki 字段显式检索,不自动夹带。 ### timeline_search — 活动时间线 按活动名、年份及自动展开的实体别名检索活动时间线(PRTS Wiki《泰拉年表》本地投影)。 | 参数 | 说明 | | --- | --- | | `query` | 可选的事件正文短语(≤200 字符) | | `activity_names` | 活动展示名(≤20 项,如「孤星」;接受主线章节号常见写法) | | `entity_names` | 角色/实体展示名(≤20 项,自动经别名图鉴裂变后检索) | | `year_start` / `year_end` | 年份范围(含端点,可单独使用) | | `source_marker` | 反查模式:原样传回结果中的「年表出处:tle_…」标记,返回该事件完整来源 | | `max_results` | 最多返回事件数,默认 20、上限 100 | ### cloud_search / cloud_inspect — 云端混合检索(可选) 用自然语言查询 PRTS.chat 云端的图谱、档案、原文、自建 Wiki 和时间线组合索引。 默认走**匿名会话**(内置 PoW 挑战,无需账号),也可在设置页配置静态 token。 返回末尾的「## 可读取原文」列出已映射到本地篇章的完整标题与行号,直接按 `title + line` 调用 `corpus_read` 核验。`cloud_inspect` 用于复查最近一次云端 检索的状态(回答材料、候选、诊断),`request_id` 由运行时自动注入。 本地资料尚未安装或无法读取时,云端答案仍会返回,并提示本地原文映射不可用;安装或修复资料包后可继续核验原文。 ### web_search / web_fetch — DSH 原生网页工具 由 PRTS 模式挂载:`web_search` 发现网页候选,`web_fetch` 读取已知 URL 正文, 用于语料之外的历史沿革、词源、民俗等公网信息核验。DSH `0.1.2-alpha.1` 起的匿名 HTTP provider 只允许公网 HTTP(S),并包含 DNS 解析校验、连接地址固定、同源重定向 以及响应大小和超时限制。 ## 检索配方 Wiki 资料不是无差别文本池:工具会区分规范角色页、活动/密录页和角色×活动辅助页。 常见问题的组合方式: ```text 凯尔希参加过哪些活动? → corpus_search({ resource_types: ["character_wiki"], character_names: ["凯尔希"], wiki_sections: ["相关活动"] }) 凯尔希在《孤星》里做了什么? → corpus_search({ resource_types: ["story_wiki"], activity_names: ["孤星"], wiki_sections: ["角色剧情概括"], query: "凯尔希" }) 1102 年 1 月发生了什么? → timeline_search({ year_start: 1102, year_end: 1102 }) 某人亲口说过什么? → corpus_search({ speakers: ["阿米娅"], query: "博士" }) ``` 完整字段语义与更多配方见 `skills/prts-retrieval/references/wiki-schema.md` 与 `retrieval-recipes.md`(模型通过 `prts-retrieval` 技能按需读取)。 ## 资料与配置 - 默认资料目录:`$DSH_HOME/prts-corpus/releases`;用户配置:`$DSH_HOME/prts-corpus.json` - 配置分三层:内置默认值 ← `cordis.patch.yml` 行内 config ← 用户文件(设置页写入,立即生效) - 版本检查固定请求 `https://prts.chat` 的 `current`;release、pack 和逐分片摘要均以 PRTS.chat 为信任源,不能被配置改到其他站点。ModelScope 与可配置回退站点只提供 该固定 release 的压缩字节; 文件写入前校验大小和 SHA-256,同一 release 的并发准备由跨进程锁合并 - 设置页通过 Harness Connection 认证 RPC 访问 Host;修改配置后云端工具热注册/注销 读取或搜索期间切换资料版本时,请求会返回可重试的 `PACKAGE_VERSION_MISMATCH`, 重新定位到当前版本后再调用即可。旧任务不会回写新版本的正文或倒排缓存,缓存复用 及跨篇章读取也受同一版本检查约束。 **可配置项**(`$DSH_HOME/prts-corpus.json`,设置页可视化编辑): | 键 | 默认 | 说明 | | --- | --- | --- | | `uiSkin` | `harness` | 皮肤:`harness` / `prts-agent` / `endfield-aic` | | `cloudEnabled` | 裸插件 `false`;官方 PRTS preset `true` | 云端工具开关;安装器生成的 PRTS 模式默认启用匿名云端检索 | | `cloudBaseUrl` | `https://prts.chat` | 云端地址(https,或仅环回主机的 http) | | `cloudToken` | 空 | 静态 Bearer token;留空使用匿名 PoW 会话 | | `cloudGame` | `all` | `all`(一次检索两款游戏)/ `arknights` / `endfield` | | `enabledGames` | `["arknights","endfield"]` | 本地与云端工具允许检索的模块;单模块可只保留其中一项,新会话会装配对应 Skill | | `cloudUserId` | 空 | 匿名会话的稳定用户标识 | | `cloudTimeoutMs` | `90000` | 云端请求超时(1000–600000) | | `cloudMaxResponseBytes` | 32 MiB | 云端响应上限(1 KiB–64 MiB) | | `downloadSiteBaseUrl` | `https://prts.chat` | 仅作为校验哈希后的字节回退站点;不参与选版或签发摘要 | | `downloadOrder` | `["modelscope","site"]` | 下载源顺序 | | `cacheShards` | `24` | 正文分片 LRU 缓存大小(1–128) | 静态 token 绑定保存时的服务源(协议、主机和端口),不会随基础配置或用户配置中的地址变化发送给其他源。旧用户配置若尚无源绑定,请在设置页的令牌框重新输入并保存一次;旧值保留在文件中,重新保存前不会用于请求。只改同源 URL 路径不影响已绑定 token。 若在 preset 的 `prts-corpus.config.enabledGames` 设置基础范围,也应把相同数组传给相邻的 `prts-terrarchive/skill` entry;安装器生成和迁移的官方 PRTS preset 已自动保持两者一致。用户配置文件中的 `enabledGames` 会同时覆盖两边,修改后请新建会话以装配新的模块说明。 实体检索提示会在 `prts-retrieval` Skill 加载后,按当前用户问题写入 DSH 动态上下文快照;新快照会取代旧快照。PRTS 段只列出当前搭载的资料模块、当前问题命中的规范实体与游戏归属,以及与本轮实体相关的再旅者关系。工具调用标题会同时标明本地或云端资料及检索的游戏范围。 **内存说明**:新版资料包附带轻量 `document_catalog`,启动只从目录建立篇章定位、 标题、别名和检索元数据;正文分片在读取或命中后才解压,并由 `cacheShards` 限制缓存 数量。旧资料包仍兼容,但首次初始化需要扫描其正文分片。Node/V8 可能保留已申请的 堆页,因此操作系统看到的常驻内存不会在查询结束后立即回落。 ## 皮肤 设置 → 插件 → PRTS 语料中选择: - **Harness 默认**:不改动宿主外观; - **PRTS Agent**:PRTS 终端风格界面; - **Endfield AIC**:明日方舟:终末地终端风格,含 3D 地图。所需运行代码、模型与贴图已预压缩并随插件包安装,切换皮肤不会触发额外下载。 - **莱茵生命资料馆**:保留 RhineLabUI 原版循环档案阵列,加入手动证据白板、Agent 提问、调查状态、十二槽档案架、阅读和摘录。开发时运行 `npm run build:rhine` 和 `npm run preview:rhine`。 Endfield AIC 的插件代码、UI 集成与地图渲染实现采用 MIT License;其中使用的游戏衍生模型与贴图不属于 MIT 授权范围,仅作为该可选皮肤的组成部分随包提供。具体文件范围见 [GAME_ASSETS.md](GAME_ASSETS.md)。这与「版本管理」下载的语料相互独立:语料按需从 ModelScope 下载,皮肤资源无需另行下载。 ## 开发 ```bash npm run check # 全部源码语法检查 npm test # node --test 全量测试;语料集成用例需本地 data/releases,否则自动跳过 git diff --check # 检查待提交文本 ``` 真实网络下载脚本 `test/real-download.mjs` 不在默认测试集中,避免单元测试意外 下载大型资料。 **目录结构**: ```text src/ index.js 插件入口:工具注册、配置装配、云端热重载 search.js corpus_search 执行层(候选预筛、扫描、签名游标分页) search-projection.js 搜索结果的模型可见投影与渲染 read.js corpus_read 执行层(单篇/活动/终末地任务连续阅读) timeline.js timeline_search 执行层(别名裂变、年份交集、出处反查) store.js 资料包只读访问层(1/2/3-gram 倒排、旧包短词回退、分片 LRU) wiki.js Wiki 文档角色与标签字段解析 entity-recognizer.js 实体别名 Aho-Corasick 自动机 evidence-state.js 会话级证据状态(读取覆盖去重、上下文可见性判定) cloud.js 云端客户端(匿名 PoW 会话、静态 token、限流) cloud-projection.js 云端结果的模型可见投影 source-map.js 云端证据 → 本地篇章映射 installer.js 资料下载器(双源回退、SHA-256 校验、跨进程锁) state.js 三层配置与共享状态 ui.js 设置页 API(Connection RPC)与静态资源 skill.js prts-retrieval 技能注册 lib/ client.js Web 客户端入口(皮肤生命周期、设置 UI 席位) skins/common.css 插件公共控件样式(始终加载) skins/prts-agent.css PRTS Agent 独立皮肤(仅启用时加载) skins/endfield-aic.css Endfield AIC 独立皮肤(仅启用时加载) endfield-map/ 终末地皮肤地图资源(brotli/gzip 预压缩) bin/ install.js 一键安装器 pack-map-assets.mjs 地图资源压缩打包脚本 contracts/ 工具请求/响应 JSON Schema skills/prts-retrieval/ 检索策略技能(字段语义、检索配方) presets/ PRTS 模式模板及用户预设初始化 ``` ## 兼容性 DSH `0.1.2-alpha.1` 与 `0.1.2-alpha.2`(web profile)已完成历史真机验证;其中 `alpha.1` 通过官方 tag 构建并完成安装、预设解析、宿主启动、设置路由和客户端 bundle 加载检查。当前适配目标为 DSH `0.1.5-alpha.1`,共享 Connection Fetch 通道支持 Web 与官方 Electron 源码实现;Web 同时保留 HTTP 路由。预设初始化已在 `0.1.5-alpha.1` 和 `0.1.3-alpha.1` 的真实源码 Loader 上验证冷启动、启停、卸载及 现有普通会话挂载保持不变。尚未完成 Windows Electron 实机端到端验证。 Electron 便携构建固定 `0.1.5-alpha.1` 官方 tag,原 WebView2 构建仍固定 `0.1.3-alpha.1`;两者发行前均需通过静态审计与真实 Host 冒烟。 自定义部署若关闭 `includeUserRoot` 且没有其它 `trust: user` 的预设目录,插件不会写入 预设或更改 roots;部署者需先启用用户预设功能。插件依赖宿主内部接口(`ctx.tools`、 `agent/pre-step`、Connection Fetch、agent 预设、客户端 slots/theme);DSH 大版本升级后 请按「安装 → 重启 → 设置页 → PRTS 模式 → 语料工具 → 网页工具 → 皮肤 → 版本热切换」 过一遍冒烟。 ## 许可证与第三方内容 本项目按以下边界提供和授权内容: - **原创代码与文档**:采用 [MIT License](LICENSE)。 - **游戏相关内容**:《明日方舟》《明日方舟:终末地》相关名称、商标、图像、模型、贴图、游戏数据及其他游戏素材不属于 MIT 授权范围,其权利归各自权利人所有。终末地皮肤所携带资源的具体范围见 [GAME_ASSETS.md](GAME_ASSETS.md)。 - **语料数据**:完整语料不随 Git 仓库或插件代码分发;用户通过插件下载的 PRTS.chat 资料集适用 [明日方舟资料集](https://modelscope.cn/datasets/HTiantian/prts-agent-corpus-arknights) 与 [终末地资料集](https://modelscope.cn/datasets/HTiantian/prts-agent-corpus-endfield) 页面标明的许可证、来源声明和使用条款,不因本项目采用 MIT License 而改变。 本项目为非官方社区项目,与相关游戏的开发商、发行商及其关联方不存在隶属、赞助或背书关系。完整声明见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。