# @daugasauron/dolly 中文文档

规范地址：https://npmcn.com/package/%40daugasauron/dolly/

版本：0\.1\.5
npm 元数据更新时间：2026-11-07T03:12:46.738Z
中文译文更新时间：2026-11-12T07:01:48.860Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：699 kB，84 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2026-10-29T22:32:57.454Z
- 最新版本发布：2026-11-07T03:12:46.526Z
- 近 30 天下载量：2718（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 8 个）

## 中文简介

Dolly的运行时间:在浏览器标签中为hem64提供类似POSIX的用户空间. 用启动器运行图像 () .

## 安装

```sh
npm install @daugasauron/dolly
```

也可以使用：`pnpm add @daugasauron/dolly`、`yarn add @daugasauron/dolly`、`bun add @daugasauron/dolly`

## README

# 内嵌多莉

Dolly 是一个像 POSIX 的用于 wasm64 的用户空间, 它运行在浏览器标签: a Wasm 内核、 私人怀斯姆记忆中的程序, 以及连接到 浏览器。 这些 npm 包将其放入自己的一页. 他们的第一个用途是 替换网络前端的代理( e)`docs/agent-frontend.md` 页:1.

| 软件包 | 它所持有的 |
| --- | --- |
| `@daugasauron/dolly` | 运行时间 : `boot()`,内核,进程运行时间,其图像构建器,以及作为自身机械的主机模块(`runtime`, (中文(简体) ), `http`, (中文(简体) ), `threads`, (中文(简体) ), `dso`, (中文(简体) ), `stack`, (中文(简体) ), `nena`, (中文(简体) ), `snapshot`, (中文(简体) ), `packages`(中文(简体) ) |
| `@daugasauron/dolly-host-NAME` | 每个设备主机模块: `display` (Ghostty的终端和程序的帧), `input`, (中文(简体) ), `gpu`, (中文(简体) ), `audio`, (中文(简体) ), `microphone`, (中文(简体) ), `touch`, (中文(简体) ), `download` (截至 `dolly-host-save`: npm 不使用新名称的单词, `upload`, (中文(简体) ), `html`, (中文(简体) ), `sockets`, (中文(简体) ), `pty` |
| `@daugasauron/dolly-image-NAME` | 图像目录 `boot()`数字 : `default` (外壳,它的文本工具,终端,卷曲, `amy`, (中文(简体) ), `nena`, (中文(简体) ), `ps`, (中文(简体) ), `html`, (中文(简体) ), `pi-minimal` (用 JavaScript 的 Pi 编码代理, 外壳, POSIX 工具, 卷曲, riggrep 和 fd, 打开 `display`, (中文(简体) ), `input`, (中文(简体) ), `download` 财务报告和审定财务报表 `html` 单是:README的"Pi with npm","活活活活活活", `python-data` (单位:千美元)`default` 与Python 3.14,pip, C编译器,NumPy,熊猫,Matplotlib和海生. 它的README给安装线和 `FROM` 一行的食谱建在它上面。 内容 `amy-index.txt` 列出图像持有的软件包, 所以 `amy list` 财务报告和审定财务报表 `amy info` 描述他们 |
| `@daugasauron/dolly-package-NAME` | 用于您自己图像的软件包 : `git` (有diff和补丁), `cc` (带有 Make 的 C 和 C++ 编译器), `python` (3.14 有管道;它带来 `libffi` 财务报告和审定财务报表 `cc`, (中文(简体) ), `numpy`, (中文(简体) ), `pandas`, (中文(简体) ), `matplotlib`, (中文(简体) ), `seaborn` 财务报告和审定财务报表 `python-dateutil`它的目录保存着它的目录,元数据,包和食谱,就像一个图像一样,没有什么可以启动的;它取决于它安装的软件包,所以npm用它安装它们 |
| `@daugasauron/dolly-build` | 这个 `dolly-build` 命令:带有自己图像的工程, `FROM` `pi-minimal` 带着包裹 `INSTALL`s, 在浏览器中建入静态主机服务站点( 下方“ 您自己的图像 ) |

```sh
npm install @daugasauron/dolly @daugasauron/dolly-image-default \
  @daugasauron/dolly-host-display @daugasauron/dolly-host-input @daugasauron/dolly-host-save \
  @daugasauron/dolly-host-upload @daugasauron/dolly-host-html
```

每个主机模块和图像都取决于运行时间本身的版本,以及 在它安装的软件包上也有一个软件包。 图像或软件包不依赖于 它所声明的主机模块:用它安装它们( 它们的README 命名它们), 所以 并肩并肩躺着 `node_modules/@daugasauron/`。 。 。 . 不,不,不,不,不,不,不,不。 亚伦2号,后期需要 `nodeLinker: node-modules` 内 `.yarnrc.yml`: Plig'n'Play 没有文件可供服务.

## 一页

```html
<!doctype html>
<meta charset="utf-8">
<main id="dolly" style="position:fixed;inset:0"></main>
<script type="module">
  import { boot } from "./node_modules/@daugasauron/dolly/src/browser.mjs";
  import { images, image, modules } from "./node_modules/@daugasauron/dolly-image-default/index.mjs";
  const dolly = await boot(document.querySelector("#dolly"), { images, image, modules });
</script>
```

`boot(element, options)` 运行图像在 `element`,页面大小。 这个 一旦图像程序启动, 即可解析到会话上的页面控件 (单位:千美元)`hostModules`, (中文(简体) ), `visibleTerminalText()`, (中文(简体) ), `waitForInteractiveTerminal(pattern)`, (中文(简体) ), 接下来 `submit(command)` 和每个模块添加的东西) 显示元素中的失败。 多莉所显示的 模块的按钮, 相互间的对话和指标,留在里面 `element`及其样式 仅选择此位置; 输入到页外的自控键中 页面的.

| 选项 | 含义 |
| --- | --- |
| `images` | 图像目录的 URL : `dist/dolly-images.json`图像的元数据 和包,他们的食谱,所有的数据. `@daugasauron/dolly-image-default`是因为 `index.mjs` 出口它自己。 页面有一个图像目录 。 包会读出一个图像 留在原产地的私人存储器中, 所以它会重新开始而不下载它们(`src/pack-store.mjs`(中文(简体) ) |
| `image` | 要运行的图像, 名称 |
| `modules` | 区域 URL `module.json` 该页面的每个主机模块。 登记簿会装入这些和没有其它的; 图像的 `REQUIRES HOST` 一定在他们中间 |
| `site` | 可选:服务多利自有页面的网站的URL(`session/`, (中文(简体) ), `sessions/`, (中文(简体) ), `docs/`就像多莉的网站一样 鉴于已保存的会话名称本身在标签的 URL 作为网站的会话路由和模块链接到这些页面 |
| `http` | 可选 `{ policy, relays }` 用于HTTP经纪人,该页面是一个网络边缘(docs/http.md). 没有策略, 程序可能获取 HTTPS URL |
| `files` | 可选 `{ "/absolute/path": text or Uint8Array }`,在程序启动前在图像上写入: 皮的指示和技能(`docs/agent-frontend.md`),开始脚本. 程序可以读取;它们不是为了秘密 |
| `session` | 可选: 此浏览器中保存的会话名称, 当它被保存为新开始时打开( S)`files` 绝不然, 这需要 `snapshot@0`,其保存(Ctrl+Shift+S)在浏览器的存储中为页面的出处保存一个会话,并在没有页面的页面上保存一个会话 `site`在标签地址中将其命名为 `?session=NAME` 给回这里的页面 |

页面,而不是图像,选择模块和策略,先于 图像运行。 一个程序只能通过它们才能到达浏览器的任何部分.

## 更多主机模块

`default` 声明 `nena@0`,所以一个会话可以启用页面上的模块,并且 图像不声明。 安装其软件包并添加其 `module.json`数字 :

```sh
npm install @daugasauron/dolly-host-gpu @daugasauron/dolly-host-microphone @daugasauron/dolly-host-pty
```

```js
const gpu = new URL("./node_modules/@daugasauron/dolly-host-gpu/module.json", location.href).href;
const dolly = await boot(element, { images, image, modules: [...modules, gpu] });
```

`nena enable gpu` 然后给出 GPU 程序,或者,如果浏览器没有 WebGPU 适配器,无法打开的设备 `ENODEV`。 。 。 .

## 颜色

终端的颜色和弹出是页面的,而不是图像的. 设定 这些在样式表的元素(或上方)上与页面相匹配; 未确定,他们是多莉的:

```css
#dolly {
  --dolly-background: #262626;          /* the terminal's and the popups' */
  --dolly-color: #e8e3d7;               /* their text */
  --dolly-accent: #f2d45c;              /* the cursor and the selection; the popups' headings, buttons, focus */
  --dolly-display-palette-1: #e8e3d7;   /* -0 to -15: the 16 colours programs name */
}
```

未设置, 16个颜色程序名称中, 有黑色(`-0`)是背景,黄色 和亮黄色(`-3`, (中文(简体) ), `-11`口音,明亮的黑色(`-8`(中文(简体) ) `#77736c` 财务报告和审定财务报表 其它的文本颜色,所以一个程序会像它的文本一样显示红色。 A 类 值可以是任何 CSS 颜色; 不计为未设置的颜色 。 终点站 a. 以任何规则或媒体查询方式,在启动时和在改变时使用 弹出一开.

## 弹出

`html@0` 在终端的弹出中显示一个程序的 HTML 文档 bot() 的元素: 报告,或提交字段返回到 程序( Pi ) `ask_user` 财务报告和审定财务报表 `show_html`) (中文(简体) ). 弹出取文件的文本, 标题、清单、表格和表格,没有其他内容;其外观是: 页面的:上面的颜色和这些,未设置多莉的:

```css
#dolly {
  --dolly-html-font: ui-monospace, monospace;
  --dolly-html-color-scheme: dark;       /* the form controls' own colours */
  --dolly-html-font-file: none;          /* or url(…): the font of the first family above */
}
```

弹出本身没有加载任何内容: 页面获取字体文件, 一次, 手 弹出它的字节; 没有一个, 系统的名称字体。 页面读取 每次弹出时属性。 多莉的网站集 `"Dolly IosevkaTerm SemiBold", monospace` 及其字体文件.

## 服务

-   服务已安装的套件, 如它们说谎: 运行时会找到自己的文件 除了自己,和 `dolly-image-default`是因为 `index.mjs` 查找 安装在下面的软件包 `node_modules/@daugasauron/`。 。 。 .
-   发送 `Cross-Origin-Opener-Policy: same-origin` 财务报告和审定财务报表 `Cross-Origin-Embedder-Policy: require-corp` 与页面: Dolly 需要共享 内存,浏览器只给一个跨源孤立的页面.
-   服务 `.wasm` 作为 `application/wasm`, (中文(简体) ), `.mjs` 作为 `text/javascript` 财务报告和审定财务报表 `.json` 作为 `application/json`: 浏览器导入主机模块的显示和图像 目录的目录和元数据只使用该类型.
-   不需要捆绑:这些是ES模块,工人和Wasm文件.

## 你自己的画像

`dolly-build` 构建一个 Dolly 文件 (`docs/dollyfile.md` (储存库) `FROM` 已安装 `pi-minimal`,带有目录为 安装在它旁边的站点上: 任何静态主机都充当它的目录 谎言。 构建在一个无头浏览器中运行, 并安装了运行时间 构建器, 随着目录图像的构建; 命令为软件包服务 它在127.0.0.1上,并写下它交回的东西。 没有它,也没有它的网站, 从网络获取的页面或图像: `npm install`,则 软件包按住每个文件。 构建的浏览器到达服务器和 URL 食谱本身 `SOURCE` 单行;其本身的要求(其供应商的更新, 时钟和自动填充)前往拒绝它们的命令的代理.

```sh
npm install @daugasauron/dolly-build @daugasauron/dolly-package-git
npx dolly-build init my-pi git
npx dolly-build Dollyfile-my-pi my-pi
```

-   `dolly-build init NAME [PACKAGE…]` 写一个软件包所在的工程 并拒绝在文件中写入 : `Dollyfile-NAME` (主机模块) 联 合 国 `pi-minimal` 和每个包裹, `FROM` `pi-minimal` 财务报告和审定财务报表 `INSTALL` 各笔捐款 包在已安装的针,行用于 Pi 指示,一个技能,一个扩展, 启动 Pi 的工具和脚本,以及 `pi-minimal`是因为 `ENTRY`和 `public/`, (中文(简体) ), 页面文件 : `index.html` (策略、弹出字体和 `workspace/` 财务报告和审定财务报表 `theme.json` 页:1 `boot()`是因为 `files`列表中 `workspace.json`, (中文(简体) ), `theme.json` (沙盒的颜色:Pi的主题,写在图像上) 靴子,它的背景,文本,口音和哑音 页面设置为终端 和弹出 `workspace/README.md`除非项目有一个,a `.gitignore` 页:1 `node_modules/` 和现场。 它命名了主机模块 软件包,当软件包需要一个时,该页面缺少(`python`是因为 `sockets`) (中文(简体) ). 寄存器README的"Pi with npm"表示每个文件的用途.
-   食谱是宣布沙盒的地方 在前面添加行 `ENTRY`数字 : `FILE` 和一个文件的正体(缩入4个空格), `INSTALL` 软件包 其目录被安装(它需要的每个软件包都随它而来,所以) `python` 带来 `cc`, (中文(简体) ), `SLOP` 在构建时运行图像工具. `FROM` 携带 base 的文件、环境和导出,但不包括主机模块或 `ENTRY`,所以请 食谱重复这些;一个包的 `REQUIRES HOST` 菜谱里一定有排行, 而建筑名称 一个缺失。 配方最多为128个基B; `/workspace` 实值 绝不是图像的一部分( e)`boot()`是因为 `files` 在每个靴子上写项目).
-   `dolly-build Dollyfile-NAME OUT` 写入网站 `OUT`,替换它的一个 上面写着: `public/`, (中文(简体) ), `workspace.json` (文件编号: `public/workspace/`),运行时间(`dolly/`),设备主机模块 声明(`dolly-host-NAME/`, (中文(简体) ), `coi-serviceworker.js` 财务报告和审定财务报表 `image/`,图像的 目录作为图像包列出(其目录、元数据和包、 食谱,它是从,它的 `amy-index.txt` 还有一个 `index.mjs`) (中文(简体) ). 页面 进口 `./dolly/src/browser.mjs` 财务报告和审定财务报表 `./image/index.mjs`。图像此食谱 在这个运行时间的基础上构建,所以更改为 `public/` 一个人需要几秒钟. `--browser chrome` (默认的), `chromium` 或者说 `firefox` (Playwright's, after `npx playwright-core install chromium` 或者说 `firefox`) (中文(简体) ). 两个命令在安装软件包的地方运行: `node_modules/@daugasauron/` 持有(npm,pnpm和Yarn 1). 一行 , 继续 指定一个没有安装的软件包所持有的图像名称 .
-   服务 `OUT` 与任何静态文件服务器, `python3 -m http.server -d OUT` 打开 诀竟 当主机发送隔离头(上面的"服务")时 页面是孤立的;如果没有, `init`页面登记册 `coi-serviceworker.js`,将它们添加到网站的响应中,并装入 又是在它下边.
-   食谱可能开始 `FROM` 另一个已安装的图像, `python-data` 说: 软件包的 README 给出 `FROM` 排行,食谱重复图像 `REQUIRES HOST` 列(项目自有脚本的FILE和在构建时运行的SLOP) (见a/cn.9/wg.iii/wp.83,附件). `init` 只写 Pi 的工程; 页面输入 `public/index.html` 是一个 如上面“一页”所示,进口 `./dolly/src/browser.mjs` 财务报告和审定财务报表 `./image/index.mjs`, (中文(简体) ), 线条 `init`注册页 `coi-serviceworker.js` 为东道主服务 没有标题.
-   为已安装的版本构建图像: 软件包更新后 平分针是其它的(`init` 在一个空目录中写出新的目录),它 被重新构建。 两个版本的软件包 `node_modules` 失败的建设, 命名两者.

## 主机模块

主机模块是一个带有 `module.json`;其提供者得到它 需要从运行时间到登记册,设备模块导入 其目录外无所出. `host/README.md` 在存储器中描述 接口.

## 常见问题

### @daugasauron/dolly 是什么？

Dolly的运行时间:在浏览器标签中为hem64提供类似POSIX的用户空间\. 用启动器运行图像 \(\) \.

### 如何安装 @daugasauron/dolly？

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

### @daugasauron/dolly 支持 TypeScript 吗？

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

### @daugasauron/dolly 支持 ESM 还是 CommonJS？

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

### @daugasauron/dolly 可以商用吗？

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

### @daugasauron/dolly 的下载量有多少？

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

### @daugasauron/dolly 还在维护吗？

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

