# @ai-matrx/applets 中文文档

规范地址：https://npmcn.com/package/%40ai-matrx/applets/

版本：0\.19\.15
npm 元数据更新时间：2026-10-30T12:42:16.825Z
中文译文更新时间：2026-11-05T19:03:24.148Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40ai-matrx/applets
原文对照：https://npmcn.com/package/%40ai-matrx/applets/?lang=original
项目主页：https://github.com/AI-Matrix-Engine/aidream/tree/main/apps/shared/applets#readme
源码仓库：https://github.com/AI-Matrix-Engine/aidream

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

- 包体积（解压后）：2.8 MB，52 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：8 个
- peer 依赖：react \>=18\.0\.0，react-dom \>=18\.0\.0
- 首次发布：2026-10-06T16:25:31.452Z
- 最新版本发布：2026-10-30T12:42:16.638Z
- 近 30 天下载量：48421（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：129（近 12 个月 129 个）

## 中文简介

AI Matrx Applets: 合同类型和 AppletHost 门路,用于测试和开发的内置主机, React 帧钩 Applet 代码导入(使用Rows, 使用Job, 使用Value, 使用Action, Pages, Applet, Kind),和 MountApplet, 用于编译存储的多

## 安装

```sh
npm install @ai-matrx/applets
```

也可以使用：`pnpm add @ai-matrx/applets`、`yarn add @ai-matrx/applets`、`bun add @ai-matrx/applets`

## README

# @ai- matrx/ 应用程序

Applet是自定义接口,一个代理基于一个人自己的数据和平台 特性。 这个包是Applet和任何主机之间的出入口.

| 条目 | 这是什么 |
| --- | --- |
| `@ai-matrx/applets` | 合同类型和 `AppletHost` 接口。 没有反应. |
| `@ai-matrx/applets/host` | `createMemoryHost(spec)` ——用于测试和开发的内存宿主. |
| `@ai-matrx/applets/react` | Applet 代码导入内容 : `useRows`, (中文(简体) ), `useJob`, (中文(简体) ), `useConversation`, (中文(简体) ), `WritingBox`, (中文(简体) ), `useValue`, (中文(简体) ), `useAction`, (中文(简体) ), `Pages`,, , , , , , , , |
| `@ai-matrx/applets/platform` | `createPlatformHost(opts)` ——直播平台上真正的主机;每个客户端都注入. |
| `@ai-matrx/applets/frame` | `mountApplet(record, host, scope)` ——编译被存储的Applet并渲染出. |

```tsx
import { createMemoryHost } from "@ai-matrx/applets/host";
import { mountApplet } from "@ai-matrx/applets/frame";

const host = createMemoryHost({ record, tables: { posts: { columns, rows } } });
const mounted = mountApplet(record, host, { entries: [], shadowDangerousGlobals: true });
if (mounted.ok) root.render(<mounted.Component />);
```

在一个小程序内 :

```tsx
import { useRows, useJob, JobOutput, Pages } from "@ai-matrx/applets/react";

export default function Posts() {
  const { rows, update, error } = useRows("posts");          // optimistic, versioned writes
  const draft = useJob("draft");                              // a declared job, by alias
  return (
    <>
      <button onClick={() => draft.run({ topic: "launch" })}>Draft</button>
      <JobOutput job={draft} label="Drafting" />               {/* the run streams here */}
      <ul>{rows.map((r) => <li key={r._id}>{String(r.title)}</li>)}</ul>
    </>
  );
}
```

**工作总是能顺利完成 `<JobOutput job={…} />`** 从来没有 `job.text` 在某一段中, 从来没有一个"忙"的标签,而它的工作,从来没有 `<Kind>` 打开 `job.result` 在结尾。 由主机制作 运行于其一个运行中的管道(流出文本、部分类型、工具步骤、装载和出错, 最终类型)通过 `renderRun`。如果没有空间流入内线,请使用 `<JobOutput job={…} mode="window" />` (每次运行在主机浮动运行窗口打开一次)或呼叫 `job.open()` 从按钮。 主机供应 `renderRun` 编号 : `openRun` 改为 `mountApplet` 编号 : `AppletFrame`。 。 。 .

**在跑步之前 跑步从未成功过.** 一个标题,如"Content ready for 上文“出版物” `<JobOutput>` 仅在 `job.status === "done"`; 工作或失败后 (单位:千美元)`job.status === "error"`),说到底发生了什么或什么都没有. `job.error.message` 永远是句句 供访客使用`forVisitor`;服务器自己的单词去主机的错误检查器,从不去页面.

**一个人写的盒子 `<WritingBox value={text} onValueChange={setText} />`** 从来没有 `Textarea`。 。 。 . 它使主机的写入框(`renderWritingBox`),搭载平台的麦克风(起诉书)和 读-声; `<ConversationComposer>` 写过它.

**一个谈话是 `useConversation(alias)`** ——与一个申报的工作进行多回合聊天. 第一个 `send(text, variables?)` 以后再开始 `send` 继续同样的谈话, `stop()` 停下来 轮到飞行。 把它给 `<ConversationOutput conversation={…} />`: 每个答题流经 东道主的同一条直播管道, 从未手动交付.

```tsx
const chat = useConversation("assistant");
<ConversationOutput conversation={chat} label="Answering" />
<button onClick={() => chat.send(draftText)}>Send</button>
```

虎克从不掷出:每个答案一个 `status` 还有一个 `error` 带有系统本身的句子。 打开 `useRows` 编号 : `useRow`, (中文(简体) ), `error` 表示无法读取数据; 拒绝保存的存储是 `writeError` (它的句子) - 显示在旁边 保存的控件,从不替换列表. React和React DOM是同级依赖关系. 这份合同是 `common-docs/projects/applets/CONTRACTS.md` (v2) (中文(简体) ).

## 常见问题

### @ai-matrx/applets 是什么？

AI Matrx Applets: 合同类型和 AppletHost 门路,用于测试和开发的内置主机, React 帧钩 Applet 代码导入\(使用Rows, 使用Job, 使用Value, 使用Action, Pages, Applet, Kind\),和 MountApplet, 用于编译存储的多

### 如何安装 @ai-matrx/applets？

在项目目录运行 npm install @ai-matrx/applets，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=18\.0\.0）、react-dom（\>=18\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @ai-matrx/applets 支持 TypeScript 吗？

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

### @ai-matrx/applets 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @ai-matrx/applets 需要什么版本的 Node\.js？

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

### @ai-matrx/applets 可以商用吗？

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

### @ai-matrx/applets 的下载量有多少？

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

### @ai-matrx/applets 还在维护吗？

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

