# @adelie/server 中文文档

规范地址：https://npmcn.com/package/%40adelie/server/

版本：0\.6\.5
npm 元数据更新时间：2026-11-07T02:04:19.999Z
中文译文更新时间：2026-11-06T17:56:35.817Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40adelie/server
原文对照：https://npmcn.com/package/%40adelie/server/?lang=original
源码仓库：https://github.com/lmliheng/Adelie

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

- 包体积（解压后）：29.7 MB，457 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：18 个
- 首次发布：2026-10-17T01:12:41.631Z
- 最新版本发布：2026-11-07T02:04:19.815Z
- 近 30 天下载量：2529（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 19 个）

## 中文简介

Adelie网络服务器:多用户认证与授权,Session执行与SSE流化,以及用法核算,构建于@adelie/core上.

## 安装

```sh
npm install @adelie/server
```

也可以使用：`pnpm add @adelie/server`、`yarn add @adelie/server`、`bun add @adelie/server`

## README

# @ adelie/ 服务器

Adelie Web后端——SDK"人"边界的Web执行. HTTP 载有即时输入、批准和中断; Server-Sent Events 流出 OmniMessage 输出。 添加多用户认证、 项目授权、 会话运行时间、 排程和使用核算 `@adelie/core`。 。 。 .

## 建筑

-   **HTTP 密码**: 浩诺+ `@hono/node-server`; 数据 `http` 模块(src/http/app.ts)从每个模块组装业务表面 `HttpModule.routes` 贡献和约束没有端口(测试驱动它通过 `app.request()`(三); `index.ts` 是启动条目(dotenv,优雅的关闭).
-   **存储**: SQLite 通过节点的内置 `node:sqlite` (WAL)只持有索引和汇总(用户、认证会话、项目授权、代理/会议索引、使用、UI预览、错误记录)。 代理状态、追踪和工作空间作为文件保留 `~/.adelie/data/<project>/agents/<agent>/`与SDK和CLI完全共享.
-   **运行时间**:会话管理器保留活动会话(获得或恢复或康复、每会场变换、运行/压缩驱动);批准表面为SSE `approval_request` 和决定每次重新读取存储的核准模式; 中断等待核准以拒绝中止; 调度器起火 `agent_state/schedule/*.toml` 在服务运行时执行任务.
-   **证监会**: 每道单曲事件 ids , 带有有边框的回放缓冲器 (1000 事件 / 2MB); 重新连接从 `Last-Event-ID` 或收到 `resync_required`;心跳每20秒评论一次.
-   **使用量**数字 : `token_usage` 事件逐行持续;费用在查询时根据目前的按模型定价计算.
-   **终端**数字 : `src/terminal/` 运行 pty 会话服务器侧(node-pty),并将每个字节输入到一个无头的xterm,所以守护进程——而不是浏览器——拥有屏幕. 控制是JSON通过HTTP(`/api/terminals`: 列表 / 创建 / 捕获 / 密钥 / 杀死; 创建接受 `cwd`, (中文(简体) ), `name`, (中文(简体) ), `cols`编号 :`rows` (单位:千美元) `shell` 覆盖; 字节流是二进制 WebSocket at `/api/terminals/:id/stream` (单位:千美元)`[opcode, slot, payload]`,输出组合成 ~5ms 窗口,并立即冲出。 在附加服务器时会使当前网格返回到一个ANSI还原流中,所以一个再装入或第二个设备会重建精确的屏幕——回滚,颜色,光标和DEC输入模式——同时外壳会一直运行. 网络应用程序两次浮出水面:一个内应用码头(Ctrl+)`, Codex-style) and the standalone`最终 `page (`{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢`attaches an existing terminal — the dock's detach handoff —`\========================================================== (============================= (=============================================================================================== (======================================================================`/`将一个新的参数化。 会话运行在进程(没有叉子终端工人);这个模块是唯一能触摸节点-pty的东西,这就是如果负载要求它会分裂的地方.

完整路由表和SSE协议的记载见 [服务器 API 引用](https://lmliheng.github.io/Adelie/docs/server-api)。通过 `@adelie/server/api`。 。 。 .

## 环境

| 变量 | 含义 | 默认 |
| --- | --- | --- |
| `PORT` 编号 : `HOST` | 听取端口/ 地址 | `4000` 编号 : `127.0.0.1` |
| `ADELIE_HOME` (曾经是) `PENGUIN_HOME`(中文(简体) ) | 数据根( 与 SDK/ CLI 共享) | `~/.adelie/data` |
| `ADELIE_WEB_DB` (曾经是) `PENGUIN_WEB_DB`(中文(简体) ) | SQLite 文件路径 | `<root>/web.db` |
| `ADELIE_WEB_DIST` (曾经是) `PENGUIN_WEB_DIST`(中文(简体) ) | 前端构建 dir( 静态托管 + SPA 后退当下) | `../web/dist`,或捆绑 `web-dist/` 在 npm 软件包中 |
| `ADELIE_TRUST_PROXY` | 信托 `x-forwarded-proto` (单位:千美元)`1` 以启用 : 它在 HTTPS 上打开热更新网络门并标记会话 cookie `Secure` – 仅在反向代理后设置/剪切页眉本身 | 未设置( 未信任) |
| `ADELIE_CLI_ENTRY` (曾经是) `PENGUIN_CLI_ENTRY`(中文(简体) ) | 向代理服务器提供的 CLI 条目脚本: 它被写入 `<root>/bin/penguin` 并放在每个命令的路径前 | `penguin server|web` 设置在名称下, 桌面外壳会通过预重命名的 ; 否则此服务器的输入是开始的, 当它有一个 |

上面的每个部署变量都会用括号读取拼写:其写作器在外 此寄存器( 桌面 shell 的发射环境, 现有部署的单位文件, an 更古老的发射台脚本),所以两个名字都被接受,而那些编剧则移动过来——见: `packages/core/src/state/boundary-env.ts`。 。 。 .

`.env` 在进程 cwd 中自动加载.

## 运行

```bash
pnpm --filter @adelie/server dev     # tsx watch (front end via the Vite dev proxy)
pnpm --filter @adelie/server build   # tsup → dist/
pnpm --filter @adelie/server start   # node dist/index.js
```

`pnpm typecheck / test` 运行 tsc 和 vitest(测试使用临时根 + 内膜 DB;没有端口,没有LLM 的活电话) .

## 安全说明(已知MVP限制)

-   **中国证监会**: 会话饼干是 `SameSite=Lax` 并只接受 `Content-Type: application/json`;还没有CSRF标志.
-   **登录节流**:在连续5次失败后,每个用户名的指数回转(1倍于60斯的上限), `429 too_many_attempts` 窗口内,在成功时重置;内存,所以重启即可清除. 未知用户名被相同的节制, 因此它不是一个账户存在预告器 。 一个倒置代理仍然可以为公共部署添加IP级限制.
-   **内建管理员 `admin` 以随机密码播种,该密码被散开并隐去** (单位:千美元)`ADELIE_SEED_ADMIN_PASSWORD` 把它钉入测试/e2e). 在设定出密码之前,每个开始会打印出第一个登录链接,在浏览器中签名以选择一个;一个横幅会一直提醒直到初始旗帜被清除.
-   密码的使用 `node:crypto` 挤压( s)`scrypt$N$r$p$salt$hash`时间保障平等。 一个会话是一行 `auth_sessions` (cookie holds a manual sorder,行其sha256;它在重启后活了下来,续延已就位的过期,并登录删除行. 课会持续30天,并进行滑动更新.
-   模型证书在项目所隐藏的0600配置文件中现场直播;API总是掩盖它们.
-   **终端是运行服务器的 OS 账户的外壳**,即API最有特权的东西——它们没有项目范围. 一个终端只可见于创建它的账户(有人的ID回答404,不是403)和流 WebSocket 检查 `Origin` 在会话 cookie上,因为一个WebSocket握手不受CORS约束. 请不要显示您不会给 SSH 账户的终端部署 .
-   在反向代理后, 禁用 SSE 路径的响应缓冲( 服务器已经发送) `X-Accel-Buffering: no`)和设置 `ADELIE_TRUST_PROXY=1` 与 `x-forwarded-proto` 转发后会话 cookie 标记 `Secure` ——单发头是不值得信任的,所以没有选入HTTPS部署就发行了它的饼干而不用旗.

部分 [爱德莉](https://github.com/lmliheng/Adelie) • Apache-2.0

## 常见问题

### @adelie/server 是什么？

Adelie网络服务器:多用户认证与授权,Session执行与SSE流化,以及用法核算,构建于@adelie/core上\.

### 如何安装 @adelie/server？

在项目目录运行 npm install @adelie/server，或使用 pnpm add / yarn add / bun add。

### @adelie/server 支持 TypeScript 吗？

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

### @adelie/server 支持 ESM 还是 CommonJS？

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

### @adelie/server 需要什么版本的 Node\.js？

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

### @adelie/server 可以商用吗？

@adelie/server 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @adelie/server 的下载量有多少？

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

### @adelie/server 还在维护吗？

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

