@alma-harness/history

中文文档
0.41.0发布于 2026/11/04Apache-2.0TypeScriptES Module零依赖近 30 天下载 1704

原子同位素中立会话历史导入阿尔玛.

中文使用文档

@alma-harness/历史

将中立历史 刻意输入阿尔玛会议 没有供应商, 媒体获取、历史工具执行或财务写入。 主机转换, 来源授权和实际削减仍然是单独的责任.

运行 migrateHistoryImportStore(pool) 作为迁移本金,给予运行时间 在配置的应用角色中登录成员, 然后构建 new PostgresHistoryImportStore(pool, {statementTimeoutMs: 30000}). 移徙 重新使用现有会话表并添加三个FORCE-RLS元数据表加无效 alma_sessions.history_import_generation。运行时不需要超级用户权限. 使用可信任的 schema 搜索路径和正常的被范围化的池合同 .

const first = await imports.append({
  source: {
    scope: {org: 'organization', uid: 'user'}, sessionId: 'conversation',
    source: 'archive', sourceSessionId: 'old-conversation',
    sourceRevision: 'fixed-export-v1', importId: 'migration-1',
  },
  ordinal: 0, previousChecksum: null, final: false,
  entries: [{sourceId: 'message-1', message: {
    role: 'user', blocks: [{type: 'text', text: 'Earlier message'}],
    meta: {at: '2025-01-01T00:00:00.000Z'},
  }}],
});
// Next chunk: same source, ordinal 1, previousChecksum first.checksum.
// Set final only when the entire fixed export has been imported.

read(source) 返回最近不可变的收发/检查点; receipt(source, ordinal) 读前一个. append 计算其SHA256;精确 即使在内容去除后再播放返回原收发. 改变的来源, 内容、顺序、前身、最终旗帜或再利用源条目ID相冲突。 每个 块有1~100个消息,最多1个米B犬UTF-8 JSON和深度64. 所有输入 必须是平庸的 JSON , 带有成型良好的字符串, 有限的数字和闭合的中性 信件/块/元件形状。 所需时间戳按时间顺序排列。 工具必须 在一个块内完成匹配交换;拒绝内置介质。 旋转 跨度不能超过导入历史或切换工具。 布尔 输入元数据中的边框旗可以验证交叉切口而不装入旧的 内容。 拒绝 Sparse/ extra 数组属性和内置数据 URI 。 角色和订货内容都活下来了.

最初必须排除目标。 停下来 全部 写作和维护 改写历史(包括工具流量过期),使消费者远离,直至 最终收据存在。 Live supports between 块块冲突在计数器上。 这个 导入生成 防止被擦除并重新创建的会话冒用 老目标 没有在线双写或与已存在的活历史合并. 旧读取器与已失效的添加剂列相兼容; 旧迁移 重放不会删除它 。 在导入作者前运行匹配的新迁移 .

收据、描述和输入绘图只储存源识别器、散列、, 序列/时间戳元数据和生成。 内容有一份,现有 会话条目。 App 元数据权限为 SELECT/ INSERT; 没有删除/覆盖 API 存在 。 会话擦除可以保存收据, 永远不要重现重放的数据, 并堵住失踪或娱乐后的新块。 整体遗产来源 重新授权仍然是主机水印/蒸发边界。 不清理收据 没有明确的未来留存合同:这样做结束于重新发挥保护作用.

承诺块是原子及其消息和顺序; 重放修复丢失的块 承认。 A 类 final 收据证明进口完成,而不是授权 生产激活。 历史成本/期初余额保持不变;从未 制造型号使用或重新安装进口的文字记录内容.

@alma-harness/history/testing 出口 InMemoryHistoryImportStore,合同 与检查/记录/实况附录的帮助者有关。 这不是第二件书信 会话主机或生产迁移后端。 共享验收套件 运行此引用和 PostgreSQL 导入器,读取实际导入行 结束 PostgresSessionStore。这是可执行的消费者;没有普鲁莫场景 加上,因为它不是一个移徙工具,其来源预算几乎已满.

历史成本来源

migrateHistoricalCostStore(pool) 安装单独的不可移动报告分类账. PostgresHistoricalCostStore 支持相同的范围集合选项; 其测试 引用为 InMemoryHistoricalCostStore也没有写直播费计数器, 结算、审计事件或投影箱。 导入历史从未创建 模式使用。 开口量是历史报告,不是活封顶播种.

await costs.append({
  scope: {org: 'organization', uid: 'user'}, key: 'archive-before-cutover',
  sessionId: 'conversation', source: 'archive', sourceRevision: 'export-v1',
  authorityRevision: 'cutover-v1',
  from: '2025-01-01T00:00:00.000Z', until: '2025-02-01T00:00:00.000Z',
  representation: 'opening', costUsd: 12.5,
});

替代使用 representation: 'itemized' 财务报告和审定财务报表 entries 联 合 国 {sourceId, at, costUsd, model?} (1-1000),无上层金额. 行排序 即时/源ID在散发和相声之前. 美元是有限和非负数的;模式 只是一个不透明的历史标签。 快照是关闭平原JSON,最大一米B. 精确的正态重放保留了原始收件/时间. 更改了关键内容, 任何来源/代表之间重叠的会话间隔和重复的来源 同一范围/来源/修订冲突的身份证。 间距为半开;相邻 间隔有效。 分离边界出口或使用一个开口 以一个不可分割的大间隔来计算和保存外部档案.

get(scope,key) 包括完整的快照. list(scope,{sessionId?,afterKey?,limit?}) 返回 ASCII- key 元数据页(max100),不包含项目数组. summary(scope,sessionId) 返回历史美元和覆盖范围/代表数,不计算时间. 浮动总额遵循现有的成本惯例。 App 角色无法更新/删除 收据或源头映射;内容去除保证保存这些财务记录.

主机必须发布一个版本化的权威 显示地图的遗留会话/来源 身份证发给他们的目标,不包括土著居住区所有的费用. Dashboard 总和可能将不相干的历史总和添加到原生项目中一次 成本; root/batch包容性预测不是额外收费。 活盖 连续性需要一个明确的主机基线:这个分类账从来不会默默地播下它. 东道方拥有出口授权、身份测绘和切换;收据赠款 没有权限运行真正的导入或激活产品.

版本与发布记录

@alma-harness/history 共发布 47 个版本,首次发布于 2026/09/09;过去 12 个月发布了 47 个版本。

版本发布日期距今
0.41.0latest2026/11/045 天前
0.40.02026/10/3011 天前
0.39.22026/10/3011 天前
0.39.12026/10/2912 天前
0.39.02026/10/2912 天前
0.38.02026/10/2912 天前

关于 @alma-harness/history 的常见问题

@alma-harness/history 是什么?

原子同位素中立会话历史导入阿尔玛.

如何安装 @alma-harness/history?

在项目目录运行 npm install @alma-harness/history,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:pg(^8.16.3)、@alma-harness/core(^0.41.0)、@alma-harness/postgres(^0.41.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@alma-harness/history 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@alma-harness/history 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@alma-harness/history 需要什么版本的 Node.js?

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

@alma-harness/history 可以商用吗?

@alma-harness/history 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@alma-harness/history 的下载量有多少?

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

@alma-harness/history 还在维护吗?

最新版本 0.41.0 发布于 2026/11/04(5 天前);至今共发布 47 个版本,其中过去 12 个月发布了 47 个;首次发布于 2026/09/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。