# @chainlesschain/personal-data-hub 中文文档

规范地址：https://npmcn.com/package/%40chainlesschain/personal-data-hub/

版本：0\.4\.66
npm 元数据更新时间：2026-10-22T20:24:03.250Z
中文译文更新时间：2026-11-09T18:36:19.533Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40chainlesschain/personal-data-hub
原文对照：https://npmcn.com/package/%40chainlesschain/personal-data-hub/?lang=original
项目主页：https://github.com/chainlesschain/chainlesschain#readme
源码仓库：https://github.com/chainlesschain/chainlesschain

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：3.7 MB，334 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=22\.12\.0
- 运行依赖：1 个
- 首次发布：2026-05-19T11:33:05.351Z
- 最新版本发布：2026-10-22T20:24:02.717Z
- 近 30 天下载量：1910（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：63（近 12 个月 63 个）

## 中文简介

个人数据中心 — UnitedSchema + 校验器 + KG 接取个人中间软件的帮助器

## 安装

```sh
npm install @chainlesschain/personal-data-hub
```

也可以使用：`pnpm add @chainlesschain/personal-data-hub`、`yarn add @chainlesschain/personal-data-hub`、`bun add @chainlesschain/personal-data-hub`

## README

# @ chainlesschain/ person- data- hub

软件包版本 : `@chainlesschain/personal-data-hub@0.4.66`当前CLI配对 公共释放状况记录在 [发布和升级指南](https://npmcn.com/package/docs-site/docs/chainlesschain/agent-platform-release.md)。 。 。 .

出版要求准确发布承诺的 Linux, Windows 和 macOS 本地 测试矩阵, GitHub Actions npm OIDC 信任出版, 以及公共档案 核查。 在 CLI 之前公布所需的儿童包, 在下游验证 依赖版本,然后在CLI公开后发布IDE扩展. CLI的出版既要求 `CLI CI` 财务报告和审定财务报表 `CLI Strict Sandbox` 全部配置时 操作系统.

发表 `0.4.63` 发布时采用了耐用预测收据, 不完全开发回收、定界收件保留和适配能力 与国别倡议报告 `0.166.90`。 。 。 .

个人数据中心 — UnionSchema, 验证器, 批量帮助器, SQLCipher 本地断层, 以及“ 数据返回个人” 的适配器Registry 中间软件.

> **v. 4.0 (与ChainlessChain v 5.0.3.99, 2026-06-08相接的舰只).** 0-13阶段 十三个阶段计划 [`docs/design/Personal_Data_Hub_Architecture.md`](https://npmcn.com/package/docs/design/Personal_Data_Hub_Architecture.md) 已经着陆,加上多平台收集层。 基础是 不变: schema + 验证 + UUID v7(第0阶段); SQLCipher localVault + 可插接密钥提供者+迁移(第1阶段);适配器注册+KG/RAG 引出(第2阶段); 具有硬度的自然语言分析引擎 拒绝非本地 LLMS 的隐私门, 除非呼叫者选择使用 (第3阶段);和生产桥梁- **电脑电脑** {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}我还得说 Ollama / Volcengine / Anthropic / 双子座 / DeepSeek ),, **CcKgSink (英语)**, (中文(简体) ), **CcRagSink (英语)** ——被注入到桌面/CLI条目中,因此这个软件包保持脱钩(第3.5阶段).
> 
> **92份适配器合同出口并登记.** 这是能力 库存,而不是声称每个默认实例都进行了实地核实 现场收藏:该集包括现场当地/官方收藏家,离线 导入解析器、自定义接合器和实验性策略读取器。 电子邮件 IMAP, Alipay帐单,9个AI-chat小贩,WeChat / QQ/微博/bilibili/ Douyin 小洪修 / 图提 / 克来绍 / Douban social, Telegram / WhatsApp 腾讯, 道宝/JD/美通/平都多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多 Baidu-map / Tencent-map / Ctrip / 12306 / Didi出行,库古/Ximalaya音频, 保持/Joyrun健身,系统数据(接触/呼叫/sms/位置), 和开发者-活动集(git / shell / vscodium / vscodium / surke-code / claude-code / 喷气管-ide / hbuilderx ) 浏览器-历史 / 本地文件 / win- recent. 见 `lib/adapters/` 全文 列表中选择一个选项.
> 
> **断层根法证(固生装置):** 超过 cookie/ sign- based pDH 的本地加密 DB 可以直接通过 **方法 B** (无键) `/proc/<pid>/mem` 内存扫描——引擎不可知论, 抗调试)或 **方法 C** (佛罗里达州) `sqlcipher_export` 在线解密, 外加 SQLite 叶页 **救援人员** (单位:千美元)`--unaligned`) 恢复简单文字 页面来自腐败的迷宫垃圾堆。 见 `docs/internal/pdh-db-decryption-runbook.md`。 。 。 .
> 
> **V. 4.0 (v 5.0.3.99)中新建:** 适配器 **准备** ——从中分出 松动 `healthCheck` 同步闸门进入真正的准备/ 需要 设置/ 无法使用 判决`registry.readiness()`)有一个一行的原因,所以"配置看起来 好吧,但没有什么收集" 不再沉默 `adapter-guide.js` 单源导入步骤再利用到网壳/桌面/CLI/ Android; 新的本地直通读取源(Douyin, WeChat PC,QQ-NT, DingTalk,,), Feishu, WeRead, Apple Health, NetEase Music; 电子邮件-bill LLM 漏洞填充 (第5.5阶段);和iOS加密备份解密(第7.5b阶段).
> 
> **收藏集成硬化(2026-07-25):** 工厂支持银行, 文档、阅读和视频快照,加上DCEP,现在共享一个界限 JSON- 文件边界:只有正则文件,没有符号链接,64 MiB 默认 / 256 MiB 硬限制,精确 BigInt 文件身份和修订检查,严格 schema / sevent-kind验证,路径安全错误,以及稳定的源ID. 现场JSON收藏家现在通过AI聊天共享一份认证页面合同, 金融、阅读、文件、录像、音频/音乐、政府、健身、商业、, 招募,以及社会来源。 HTML/登录失败、商业错误和 策略漂移失败被关闭; 只有公认的空页结束一个未验证的 自定义端点扫描,而旧行和非空短页则继续扫描. 归档时间与来源分离 `watermarkAt`,以及银行/阅读/录像 选择退出保留先前共享的水印 。 亚行需要一击准备 (c) CLI和Web小组暴露联系人/应用程序/SMS/ android系统数据的通话/媒体选择退出。 崔克,汤城,和迪迪没有 或默默地发出零行无源。 百分点 Docs 导出递归将每个目录和文件绑入其犬形根 并保留相接处的旧水印,并联,或路径交换.
> 
> **收集-集成后续 (2026-07-25):** 消费的40个适配器 `schemaVersion + events[]` 快照现在使用共享的绑定导入器 认证和同步,包括所需的阵列/类型验证和稳定 来源身份. `system-data-android` 在前面验证内置快照 私人、独家中继; 桥集拒绝未知的页面形状或 和亚行的准备状态区分 亚行失踪 探测失败 无设备 未经授权/离线设备 失踪 选择,以及多个设备。 请求序列`ADB_SERIAL` 或者说 `--serial`)与每个收集命令相接. 电子邮件 JSON 快照和 苹果卫生 `export.xml` 现在使用有边框的,只使用正则文件,无同义链接, 身份检查的导入; 电子邮件还需要计划版本1和 严格记录.
> 
> Ctrip, Tongcung, 和Didi企业的活集现在接受CLI / 电子一发证书合同: `--cookie-file` 加号 `--account-id`。 。 。 . 两个网关都注入受限的HTTPS/JSON源传输,每个源 请求通过登记册核算,仅使用账户编号 以获得一个散列的水印瞄准镜。 饼干和账号都不是 在适配器、地壳行或审计日志中持续.
> 
> Didi 消费者`travel-didi-consumer`也支持这个一发合同, 但故意没有内在的顺序终点。 过 `--source-url` (或 `CC_PDH_SOURCE_URL`) 从用户授权获取的 HTTPS URL 届会。 适配器只接受免认证的默认端口 URL `xiaojukeji.com` 或其子域,不保留 URL,并拒绝 未识别/错误回复页面,而不推进水印.
> 
> 同样的瞬间证明和要求会计方法现在涵盖 Ximalaya),克古音乐(Kugou Music),QQ音乐(QQ Music),天相克(Tianyancha),BOSS齐平(BOSS Zhipin),杜班(Douban),CSDN,, 东赫迪,iQIYI,Tencent Video,Xigua Video,和卡姆斯坎纳. 运行时间 `accountId` 值产生单独的散列范围,而 CLI 和 Electron 输入相同的 HTTPS/JSON 运输,而不是依赖 占位符或环境获取执行.
> 
> 源信 祖耶邦 阿里帕德 花威学习 网易音乐 现在读 用那一发子弹 `cookie + accountId` 合同也一样。 他们的遗产 WhatWG-fatch客户端 由相同的捆绑运输包裹并被固定 每个客户端使用的准确的官方 API 主机, 因此运行时选项无法 将含有 Cookie 的请求重定向到任意服务器 .
> 
> 现在每个现场的Cookie收藏家都宣布 持续触发和源头请求 配额。 三个多流媒体收集器和三个视频收集器使用 a 30分/分,500分/天的预算,因此其限定的默认扫描仍适合现有 客户超时;出勤率较低的来源保留更严格的限制。 读取进程 每集25本书(硬帽100),推进不透明的散列书光标 稍后同步恢复下一批, 而不是尝试无法完成 1 001 - 请求扫描。 其30分/分、1 200分/天的配额可涵盖全部 500册周期跨可续期分批.
> 
> 版本 `pdh-partitioned-v1` 检查站保持独立流 取出水印来. `audio-ximalaya`, (中文(简体) ), `music-qq`,以及 `music-kugou` 是第一个 迁移,如此不完整或被禁用流不会推进无关的 流经. 对于明确和分割的战略,同步/审计遥测 仅披露了策略、字节长度和HMAC-SHA-256摘要 随机进程- 本地密钥; 检查点的准确值仅保留在 Vault 存储中 和直接同步报告.
> 
> 明确的文件导入已默认为保留检查点的重放: 它们确实 不继承或替换活源光标, 即使快照包含 新的记录。 只有持续来源明确返回 `fileCheckpointMode() === "shared"` 重用持久光标; 初始 例外是AI-chat cookie shitchoff、一个已拉开的 WeChat 数据库以及一个 Tencent Conference profile/database, 以及完全扫描的握手方式仍然适用. 迪迪 迪迪 消费者 克特里普 通城 梅赛德斯 我 12306 JSON/ JSONL 导入也使用限定的正则文件边界,同时保留 它们现有的数组、对象封和JSONL格式。 Alipay 账单 CSV/ ZIP进口使用字节保留变体,因此GBK/GB18030保持不变; 归档和充气的 CSV 字节数、 条目数、 中心目录边框和 经典- ZIP 形状在提取前被检查, 并选择路径或条目 名称不存档.
> 
> 编辑 `lib/**` 需要缓冲软件包版本,通过 GitHub 动作 npm OIDC 工作流程,并更新 Android `USR_VERSION` sentinel, 或真设备继续运行 stale 代码 (见隐蔽-风险-陷阱#27/#28).

## 这里面是什么

```
lib/
├── constants.js      enum values (entity types, subtypes, capturedBy, ...)
├── ids.js            UUID v7 (hand-rolled RFC 9562, ~30 LOC, no dep)
├── schemas.js        per-entity validators (Person/Event/Place/Item/Topic)
├── batch.js          NormalizedBatch helpers (empty/merge/validate/partition)
├── migrations.js     LocalVault schema (events/persons/places/items/topics
│                     /sync_watermarks/audit_log/raw_events) + versioning
├── key-providers.js  InMemoryKeyProvider + FileKeyProvider + KeyProvider
│                     contract for platform Keystore impls in later phases
├── vault.js          LocalVault — SQLCipher AES-256, transactional putBatch,
│                     typed put/get, queryEvents, watermarks, audit, key
│                     rotation (WAL-safe), destroy
├── adapter-spec.js   PersonalDataAdapter contract + assertAdapter check
├── adapter-readiness.js readiness() — ready/needs_setup/unavailable + reason,
│                     split out from the loose healthCheck sync gate
├── adapter-guide.js  category-driven import guides (single source of import
│                     steps reused across web-shell / desktop / CLI / Android)
├── snapshot-file.js  bounded, stable, schema-aware JSON snapshot import
├── source-page.js    fail-closed recognition for paginated JSON source lists
├── adapters/         92 exported adapter contracts (email-imap, alipay-bill, ai-chat-history,
│                     wechat / wechat-pc, qq-pc, dingtalk-pc, feishu-pc, weread,
│                     apple-health, netease-music, social-*, shopping-*,
│                     travel-*, system-data, git-activity, vscode, vscodium, cursor, claude-code,
│                     jetbrains-ide, hbuilderx, ...)
├── kg-derive.js      UnifiedSchema → KG triples (rdf:type / by / involves /
│                     happened-at / etc.) — engine-agnostic
├── rag-derive.js     UnifiedSchema → RAG (text, metadata) docs for indexing
│                     into BM25 + vector retrievers
├── registry.js       AdapterRegistry — register/list, syncAdapter with full
│                     pipeline (health → sync → archive raw → normalize →
│                     partition valid/invalid → vault → KG sink → RAG sink
│                     → watermark → audit), syncAll, pluggable kgSink/ragSink
├── mock-adapter.js   reference impl + test fixture (deterministic seeded)
├── query-parser.js   heuristic time-window + filter + intent extraction
│                     from natural-language questions
├── prompt-builder.js fact summarization + system/user prompt construction
│                     (system prompt is fact-free; facts go in user role as
│                     marked-untrusted JSON) + citation parser + validator
├── llm-client.js     MockLLMClient (tests) + OllamaClient (default standalone)
│                     conforming to the chat({messages}) → {text, usage}
│                     contract. Production plugs in CcLLMAdapter wrapping
│                     the existing desktop-app-vue llm-manager.
├── analysis.js       AnalysisEngine — orchestrates parseQuery → vault facts
│                     (optional RAG augmentation) → buildPrompt → llm.chat →
│                     parseCitations → validateCitations → audit. Hard
│                     privacy gate refuses non-local LLMs without opt-in.
├── bridges/
│   ├── cc-llm-adapter.js   wraps cc llm-manager.chat → LLMClient
│   ├── cc-kg-sink.js       hub triples → cc addEntity + addRelation
│   ├── cc-rag-sink.js      hub RagDocs → cc BM25 (+ optional vector)
│   └── index.js            re-exports
└── index.js          re-exports
```

## 5个核心实体

镜像 设计文件第5.1节. 每个适配器都使其生行正常化 这五种类型,所以KG / RAG / 分析层呈现出一致的形状.

| 类型 | 实例 |
| --- | --- |
| 个人 | 自我/ 联系人/ 商家/ 代理商 |
| 活动 | 发文/命令/支付/访问/邮/ai-message/ai-image-generation/. |
| 地点 | 家、餐厅、妈妈家 |
| 项目 | 产品/链接/介质/文档 |
| 专题 | "妈妈的健康"/"蟒蛇学习"/"AI与DeepSeek的对话" |

所有实体共享 `BaseEntity` 字段 :

-   `id` ——UUID v7(按时间顺序排列)
-   `source` —— 说 `{ adapter, adapterVersion, capturedAt, capturedBy, originalId? }`
-   `ingestedAt` 时间戳
-   `confidence` -0.1,可选
-   `extra` 适用于适配器特定字段的无计划包

## 使用量

```js
const {
  newId,
  validate,
  validatePerson,
  validateBatch,
  partitionBatch,
  PERSON_SUBTYPES,
  EVENT_SUBTYPES,
} = require("@chainlesschain/personal-data-hub");

const person = {
  id: newId(),
  type: "person",
  subtype: PERSON_SUBTYPES.CONTACT,
  names: ["妈妈", "陈某某"],
  identifiers: { phone: ["138-0000-1111"] },
  ingestedAt: Date.now(),
  source: {
    adapter: "wechat",
    adapterVersion: "0.1.0",
    capturedAt: Date.now(),
    capturedBy: "sqlite",
    originalId: "wxid_xyz",
  },
};

const { valid, errors } = validatePerson(person);
// → { valid: true, errors: [] }
```

## 验证器从不投掷

所有验证符返回 `{ valid: boolean, errors: string[] }`。这样就可以 接收管道的适配器 收集每条坏行 在一通过并运送到 查看队列, 而不是在第一个损坏的窗口上失败 从平面第三方数据源输入.

```js
const { partitionBatch } = require("@chainlesschain/personal-data-hub");

const { valid, invalid, invalidReasons } = partitionBatch(rawBatch);
// commit `valid` to vault, spool `invalid` to review queue
```

## 本地断层快速演示

```js
const fs = require("fs"),
  os = require("os"),
  path = require("path");
const {
  LocalVault,
  generateKeyHex,
  newId,
  emptyBatch,
  PERSON_SUBTYPES,
  EVENT_SUBTYPES,
} = require("@chainlesschain/personal-data-hub");

const v = new LocalVault({
  path: path.join(os.homedir(), ".chainlesschain", "hub.db"),
  key: generateKeyHex(), // production: pull from a KeyProvider
});
v.open();

const now = Date.now();
const mom = {
  id: newId(),
  type: "person",
  subtype: PERSON_SUBTYPES.CONTACT,
  names: ["妈妈"],
  identifiers: { phone: ["13800001111"] },
  ingestedAt: now,
  source: {
    adapter: "demo",
    adapterVersion: "0.1.0",
    capturedAt: now,
    capturedBy: "manual",
  },
};
const order = {
  id: newId(),
  type: "event",
  subtype: EVENT_SUBTYPES.ORDER,
  occurredAt: now - 86400000,
  actor: "person-self",
  participants: [mom.id],
  content: {
    title: "妈妈生日蛋白粉",
    amount: { value: 288.5, currency: "CNY", direction: "out" },
  },
  ingestedAt: now,
  source: {
    adapter: "demo",
    adapterVersion: "0.1.0",
    capturedAt: now,
    capturedBy: "manual",
    originalId: "ord-42",
  },
};

v.putBatch({ ...emptyBatch(), persons: [mom], events: [order] });

// Query
const orders = v.queryEvents({ subtype: "order" });

// Adapter dedup before ingest
const exists = v.findBySource("events", "demo", "ord-42");

// Sync watermark
v.setWatermark("demo", "INBOX", { watermark: "42", lastSyncedAt: now });
const wm = v.getWatermark("demo", "INBOX");

// Rotate the master key (WAL-safe — swaps journal mode transparently)
v.rotateKey(generateKeyHex());

v.close();
```

## 长期KG/RAG预测(引入2026-10-06)

现在加密的金库记录每个正常实体的预期投影 在同一交易中修改其插入、更新或删除。 KG 和 RAG 软件 交货时分别确认订正。 收集的源头检查站可以 因此,在指数交付失败时提前;检查 `derivationStatus` 打开 同步报告或以下命令以区分两种结果。 下沉归来 错误和抛出失败仍然可见,可以重试.

```bash
cc hub derivation-status --json
cc hub derivation-status --adapter local-files --scope "account-scope" --json
cc hub retry-derivations --limit 100 --json
cc hub derivation-state event <entity-id> --json
cc hub delete-entity event <entity-id> --confirm --json
```

`retry-derivations` 接受 `--adapter`, (中文(简体) ), `--scope`,1至1000个限制 (默认100). 它读取了最新的教条实体并删除了墓碑; 它不重放存档源有效载荷. `derivation-state` 返回来源 身份 修改 操作 以及这次运行的交货收据 实体有效载荷。 实体类型为: `event`, (中文(简体) ), `person`, (中文(简体) ), `place`, (中文(简体) ), `item`,以及 `topic`。 。 。 .

索引的RAG文档包括: `metadata.derivation` 包含实体类型、身份、需要 投影修订和变换版本。 依赖性变化也可推动 该修订;它不是一个不可改变的原始源版本或完整的答案 引文史资料. `AnalysisEngine.ask()` 现在返回 `citationEvidence` 页:1 有效引用,以及 `retrieveContext()` 返回其中包含的事实 即时行动 每个条目记录现有源元数据和SHA-256 `JSON.stringify(summarizeFact(entity))`;重复的ID被标记为模糊. 这是一张逐个通话的快照,不是一个坚持不懈的回答历史或新鲜感 在源更改后检查.

现有汇使用裸露的ID,因此实体类型(包括 保留墓碑)失败 `DERIVATION_ID_CONFLICT` 在任何水槽突变之前. 这种记录需要修复身份,而不是重复重复.

`delete-entity` 删除 **正规实体**在解剖学上记录其 墓碑,并试图 范围指数排出。 报告结果 删除与索引交付失败分开。 原始档案尚存; 明确后再进口或重新授权可以恢复实体。 此命令 不执行隐私删除或删除上游平台记录. 删除一个 KG 实体使其关系升级; 依赖性修正原因 将目标删除或恢复时重新考虑的实体.

CLI 和桌面目前都使用内相 BM25 索引和内相 KG (英语). 每个登记册都创造了新一代的消费者,并从持久的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的、可持续的的、可持续的、可持续的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的、可持续的、可持续的、可持续的的、可持续的、可持续的的、可持续的的、可持续的的、可持续的、可持续的、可持续的、可持续的的、可持续的、可持续的的、可持续的的、可持续的的、可持续的、可持续的的、可持续的的、可持续的、可持续的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的、可持续的的的、 初始化时的理想状态,包括以前承认的实体. 最多100页的1 000个交货开始排水;剩余工作可见 通过状态和重试。 KG 重放使用稳定关系ID, 替换 实体属性,并调节其拥有的退出关系,同时 保留无关的手工关系。 RAG 更新替换旧文本,以及 已配置的目的地独立确认更新和清除 .

可选矢量桥需要一等能 `index(docs)` 财务报告和审定财务报表 `remove(ids)` 适应器. **目前,两个生产主机都没有给矢量目的地供电.** 中断 `running` 同一消费者的交货结果不明 并被屏蔽; 过期时间不授权重放。 新消费者 世代适用于新创建的麻黄指数,而不是自动恢复 一个未知的外部副作用。 登记处现在记录消费者生命周期 并试图在正常的宿主关闭时 停止其无所事事的瞬间产生. 明确、有界限的清理可以删除所选的非运行收据 已经退休的一代人 活跃而持续的消费者,未知运行 年长的未登记一代人仍然受到保护。 来源意图, 删除墓碑,在加密金库中保留生命周期标记; 碰撞生成和解和收缩仍然是后续工作。 见 [保留消费者收据](https://npmcn.com/package/docs/research/palantir/pdh-consumer-retention.md) 对于生命周期 API 及其限制.

```bash
cc hub derivation-consumers --kind ephemeral --state retired --limit 100 --json
cc hub prune-derivations --consumer <retired-consumer-id> --limit 100 --confirm --json
```

与WS主题相同的操作 `personal-data-hub.derivation-status`, (中文(简体) ), `.derivation-state`, (中文(简体) ), `.retry-derivations`,以及 `.delete-entity`; 注册桌面 IPC 等同 使用情况 `personal-data-hub:`请求使用 `adapter`, (中文(简体) ), `scope`, (中文(简体) ), `limit`,或 `entityType`编号 :`entityId` 适用;需要删除 `confirm: true`。 。 。 . 这些表面继承了现有的经认证的共享故障访问政策. 适配器/镜片过滤器选择工作;它们不是对象级的授权 政策。 未包括专门的前端控制和对象级政策 在这个变化中.

嵌入式使用,通过 `kgSink`, (中文(简体) ), `ragSink`, (中文(简体) ), `kgRemove`,以及 `ragRemove` 调用 改为 `AdapterRegistry`稳定 `consumerId` 仅适合持久性 现有收据仍然有效的目的地。 默认新消费者身份 匹配当前主机拥有的麻黄指数.

## 关键供应商

生产建设 注入特定平台的密钥 DPAPI / keychain / Android keystore / iOS keychain (并可选地包接) 互联网档案馆的存檔,存档日期2013-12-20 )的结果为U-Key/SIMKey硬件键. 执行此四法 合同:

```js
{
  async get(name)         // returns hex or null
  async set(name, hexKey) // store hex (validate it's 64 hex chars first)
  async del(name)
  async has(name)
}
```

货船 `InMemoryKeyProvider` (测试)和 `FileKeyProvider` (dev倒计时,在磁盘上存储0600-perm文件). 建议的密钥名称 :

-   `vault:<vault-id>` 金库主密钥
-   `vault:<vault-id>:prev` 为紧急恢复保留了轮调前钥匙
-   `adapter:<name>:cookie` 后相适配器使用

## 测试

```bash
cd packages/personal-data-hub
npm test
```

**2040次测试** 覆盖121个文件,涵盖ID生成,所有5个实体验证器, 批量帮助者、关键提供者、金库打开/迁移、实体往返旅行、, 用回滚、 原始事件存档、 查询事件设置交易批次 过滤器 + 标记、同步水印、审计日志、密钥旋转(WAL安全), 销毁、统计、适配器-光谱断言、KG 三进制、RAG doc 衍生,MockAdapter 决定性行为, 完整的注册同步 E2E (包括保健、中同步故障恢复、沉积故障) )),以及1k事件 <30s摄入活口门.

## 不在此包中( 尚未)

| 关切 | 住在这里 |
| --- | --- |
| 平台钥匙提供者(DPAPI/Keychain/Keystore) | 桌面-应用-vue 主进程桥(包运合同+InMemory/File供应商) |
| Qdrant 向量检索 | 可选注入桥; 当前的 CLI/ 桌面 PDH 主机 |
| AI 分析技能 | `skills/personal-analysis-*/` (5个内置分析技能) |
| 原生 SQLCipher 构建 | `better-sqlite3-multiple-ciphers` ——主机/电动ABI双载荷在cc条目被处理 |

## 许可证

麻省理工学院

## 常见问题

### @chainlesschain/personal-data-hub 是什么？

个人数据中心 — UnitedSchema \+ 校验器 \+ KG 接取个人中间软件的帮助器

### 如何安装 @chainlesschain/personal-data-hub？

在项目目录运行 npm install @chainlesschain/personal-data-hub，或使用 pnpm add / yarn add / bun add。

### @chainlesschain/personal-data-hub 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/chainlesschain\_\_personal-data-hub 是否存在。

### @chainlesschain/personal-data-hub 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @chainlesschain/personal-data-hub 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.12\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @chainlesschain/personal-data-hub 可以商用吗？

@chainlesschain/personal-data-hub 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @chainlesschain/personal-data-hub 的下载量有多少？

根据 npm 官方下载统计，@chainlesschain/personal-data-hub 在 2026/10/10 – 2026/11/08 这 30 天内被下载 1,910 次，日均约 64 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @chainlesschain/personal-data-hub 还在维护吗？

最新版本 0\.4\.66 发布于 2026/10/23（17 天前）；至今共发布 63 个版本，其中过去 12 个月发布了 63 个；首次发布于 2026/05/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

