@earendil-works/pi-session-backend-sqlite-node

中文文档
0.99.2发布于 2026/10/01MITTypeScriptES Module构建来源已验证近 30 天下载 2.5万

@ earendil- works/ pi- agent- 核心会话的节点 sqlite 会话后端

中文使用文档

@earendil-works/pi-session-后端-sqlite-node

节点 node:sqlite 会话后端 @earendil-works/pi-agent-core。 。 。 .

import { BACKGROUND_CONTEXT } from "@earendil-works/pi-agent-core";
import {
  createNodeSqliteFactory,
  SqliteSessionRepo,
} from "@earendil-works/pi-session-backend-sqlite-node";

const repository = new SqliteSessionRepo({
  directory: "/var/lib/pi/sessions",
  databaseFactory: createNodeSqliteFactory(),
});

const session = await repository.create({}, BACKGROUND_CONTEXT);
const main = await session.createBranch("main", null, BACKGROUND_CONTEXT);
await main.appendMessage(
  { role: "user", content: "hello", timestamp: Date.now() },
  BACKGROUND_CONTEXT,
);
await session.close(BACKGROUND_CONTEXT);
await repository.close(BACKGROUND_CONTEXT);

默认布局每个会话创建一个文件 directory仅包含 ASCII 字母,数字, _,以及 - 保留 {sessionId}.sqlite;每个其它ID使用一个 ~- 其UTF-16编码单元的前置基底64url编码. 耐用ID不变,返回/列出的元数据包含犬形物理路径. 过 databasePath 将多个会话放置在一个支持的共享容器中;其母部分在需要时被创建.

数据库厂区分了有意创作,不创作读写开放,不创作只读开放. 会议 open() 并删除在配置的存储器外拒绝元数据,从不创建缺失的数据库。 列表为只读和最优. 伪造故意允许一个外源元数据路径:它读取的是准确的已存在的容器只读,从不以相同的ID来替代一个活跃的本地会话.

东道主的生命周期,而不是这个后端,保证每个会话有一个可写所有者. 在另一个进程中直接打开同一会话写入是不支持的 。 该寄存器拒绝一个ID的重叠本地创建/开/叉/删除所有权,但不会执行跨进程租赁,锁定,栅栏,心跳,或接管. 主机在删除前必须关闭工人.

同一寄存器库中打开的源的叉子会将它的快照放在源的承诺队列上. 其他任何来源,包括由现场会议工作人员持有的渠道,都使用独立的只读连接和推迟的WAL交易;后来的工人承诺可能完成,而快照仍然开放。 共享容器删除只删除选定的会话行 。 仓库关闭等待每次公开会话清理尝试,然后报告出错 。 软件包不导出搜索服务或FTS索引;搜索是单独的S3投影.

版本与发布记录

@earendil-works/pi-session-backend-sqlite-node 共发布 14 个版本,首次发布于 2026/08/06;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.99.2latest2026/10/011 个月前
0.99.12026/09/301 个月前
0.99.02026/09/301 个月前
0.87.12026/09/231 个月前
0.87.02026/09/221 个月前
0.86.12026/09/201 个月前

关于 @earendil-works/pi-session-backend-sqlite-node 的常见问题

@earendil-works/pi-session-backend-sqlite-node 是什么?

@ earendil- works/ pi- agent- 核心会话的节点 sqlite 会话后端

如何安装 @earendil-works/pi-session-backend-sqlite-node?

在项目目录运行 npm install @earendil-works/pi-session-backend-sqlite-node,或使用 pnpm add / yarn add / bun add。

@earendil-works/pi-session-backend-sqlite-node 支持 TypeScript 吗?

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

@earendil-works/pi-session-backend-sqlite-node 支持 ESM 还是 CommonJS?

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

@earendil-works/pi-session-backend-sqlite-node 需要什么版本的 Node.js?

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

@earendil-works/pi-session-backend-sqlite-node 可以商用吗?

@earendil-works/pi-session-backend-sqlite-node 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@earendil-works/pi-session-backend-sqlite-node 的下载量有多少?

根据 npm 官方下载统计,@earendil-works/pi-session-backend-sqlite-node 在 2026/10/13 – 2026/11/11 这 30 天内被下载 25,391 次,日均约 846 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@earendil-works/pi-session-backend-sqlite-node 还在维护吗?

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