# @ai-matrx/kit 中文文档

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

版本：0\.45\.48
npm 元数据更新时间：2026-10-30T11:42:32.299Z
中文译文更新时间：2026-11-05T18:06:45.988Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：5.1 MB，412 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：3 个
- peer 依赖：react \>=18\.0\.0，typescript \>=5\.0\.0
- 首次发布：2026-08-29T06:29:13.122Z
- 最新版本发布：2026-10-30T11:42:32.098Z
- 近 30 天下载量：106034（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：162（近 12 个月 162 个）

## 中文简介

总是包含AI Matrx工具包:每个 Matrx 应用程序都讲出小原始语——自动保存,永不丢失键盘, stale-response guard,剪贴板有优雅的倒背——每个子路径一个,用什么来划树.

## 安装

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

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

## README

# @ai- matrx/ kit (英语)

总是包括AI Matrx工具箱:每个Matrx应用程序都讲小原始语, 每条子道都有一种能力, 树会震动你的用法。 唯一需要的反应 pal; 只有两个子路径带有运行时的依赖性, 每个都因为依赖性 IS 能力: `/json-format` (单位:千美元)`json5` ——以宽容的剖析为特点, `/idb-store` (单位:千美元)`idb` ——被打出索引的DB包装机是引擎. (QR解码器移到 `@ai-matrx/capture/qr`. ) (中文(简体) )

**确认的DIALOG不在这里——开口者是.** 从0.9.0起 尸体 (单位:千美元)`ConfirmDialog`, (中文(简体) ), `ConfirmDialogHost`生活在这里 [`@ai-matrx/design-system`](https://npmcn.com/package/%40ai-matrx/design-system/README.md)拥有警报导航仪, 运出的运动层和上方的scrim符号。 挂载 `<ConfirmDialogHost />` 从那里一次在你的应用根, 然后打电话 `confirm()` 从 `@ai-matrx/kit/confirm-opener` 随便哪里 自0.1.0起,打开器是一个 稀疏专业 `@ai-matrx/kit/opener` – 任何应用程序都可以使用相同的引擎 对于它自己必须的对话。 一个地表,一个主人:工具箱 再导出任何对话框 .

```bash
npm install @ai-matrx/kit
```

| 子路径 | 导出 | 它会做什么 |
| --- | --- | --- |
| `@ai-matrx/kit/autosave` | `useAutosave` | 与飞行中联动自动保存, UI 状态(`idle/unsaved/saving/saved/error`),响亮的非抛出故障重新排出有效载荷,并冲入出舱,所以没有键盘被丢失. |
| `@ai-matrx/kit/latest-request` | `useLatestRequest` | 使替代的同声响应无法应用:声称尝试,然后在每个国家写作之后检查上游 `await`. 在唯一重要的时刻——应用时间——杀死命令外响应错误(在自信标签下的错误记录). 以建筑为平地. |
| `@ai-matrx/kit/clipboard` | `useClipboard`, (中文(简体) ), `copyText` | 复制/粘贴文本,链接和图像与浏览器突起已解析: cause-PNG 重编码用于图像复制, Safari `clipboard.read` 特性检测, param- stripping 链接副本。 通知员注射了 自己包好祝酒词. |
| `@ai-matrx/kit/transfer-json` | `normalizeTransferJson`, (中文(简体) ), `ContentTransferError`, (中文(简体) ), `Json` | 无依赖的JSON-转移验证器并塑造了Alchemy和表格复制合同股份. |

表面控点省略了自己所捕获值为 `undefined`,递归,所以主机可选字段保留了缺值语义. `normalizeTransferJson(value)` 默认情况下保持严格; 呼叫者必须明确通过 `{ omitUndefinedObjectProperties: true }` 以请求同一对象的省略。 阵列 `undefined` 在他们的JSON指针上仍然失败.

| `@ai-matrx/kit/search-scoring` | `filterAndSortBySearch`, (中文(简体) ), `computeSearchScore`, (中文(简体) ), `matchesSearch`, (中文(简体) ), `idMatchesQuery` QQ 关联加权搜索排名 – 标题以上描述,精确以上前缀包含,粘贴的UUID相配 – 而不是天真相配 `.includes()` 过滤器 | `@ai-matrx/kit/concurrency` | `runWithConcurrency` 被捆绑的工人集合在一个阵列上 与每个故障隔离 和合作社 `shouldStart()` 取消钩子 | `@ai-matrx/kit/text-case` | `formatText`, (中文(简体) ), `createFormatter` \* 将混乱的DB/API字符串变成标题/判决案件,并取消文字替换。 | | `@ai-matrx/kit/drafts` | `useDurableDraft` + 本地草稿存储QQ用户授权的文本, 幸存在任何东西上: 通过本地Storage草稿, 恢复上载, 更改密钥的通过, 只有在内容持续地落地后才清除 。 | | `@ai-matrx/kit/opener` | `createOpener`, (中文(简体) ), `Opener`, (中文(简体) ), `OpenerHostController`, (中文(简体) ), `OpenerAbortError` | **开口模式,一次.** 建立必备条件 `await open(request)` 对于任何全局对话框:纯TS,零回放,因此数百个呼叫站点(thunks, utils,同步处理器)以接近零的成本导入,而重体则停留在懒散的主机后. 免费获得整个合同——一次一个主机,请求在主机水合物前按呼叫顺序排队,从不默不作的默认回答,当一个请求等待没有主机时,一个控制台叫出要挂载的组件,选择入站去dupe,所以双击动作无法堆叠两个对话框,选择入站 `AbortSignal` 取消 。 国家生活 `globalThis` `Symbol.for(slot)`因此,主机和呼叫器通过包和跨无害环境管理/CJS模块图找到彼此 | `@ai-matrx/kit/credential-generator` | `generateCredentialSecret`, (中文(简体) ), `CREDENTIAL_GENERATION_TECHNICAL_LIMITS` 一个纯本地的Web Crypto密码/密码句生成器 。 主机在已公布的技术工作天花板内提供经验证的特性限制;发电机从不存储,日志,取回,或从安全 en回落. | | `@ai-matrx/kit/opener-react` | `useOpenerHost` QQ 打开器的挂载侧: 将组件注册为主机, 排出队列一次请求一个, 手返回 `{ request, open, settle }`(笑声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) | | `@ai-matrx/kit/outbound` | `withReferral`, (中文(简体) ), `openOutbound`, (中文(简体) ), `stripReferral`, (中文(简体) ), `isOutboundUrl`, (中文(简体) ), `outboundAnchorProps`, (中文(简体) ), `rehypeOutboundReferral`, (中文(简体) ), `configureOutboundReferral` | **每一个连接的门 AI Matrx.** 标记第三方链接 `utm_source=aimatrx.com&utm_medium=referral` (一个 knob), 将现有的查询和片段保持准确, 跳过我们的域, 其他方案以及签名/ 证书 URL 。 纯正 — 服务器组件中的合法 。 @ info | `@ai-matrx/kit/outbound-react` | `OutboundLink`, (中文(简体) ), `OutboundMarkdownLink`, (中文(简体) ), `outboundMarkdownComponents`, (中文(简体) ), `installOutboundReferralDecorator` QQ 链接元素( 滴入) `<a>`新标签, `rel="noopener"` ——裁判员保留)和反应-标记 `a` 变形器。 印出 `"use client"`: 服务器组件作为客户端引用导入; `renderToStaticMarkup` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}还是有电子邮件的 | `@ai-matrx/kit/outbound-decorator` | `OutboundReferralDecorator` QQ 一次上载到一个app root: 在文档使用时标记任意原始第三方主机(单击,中键,上下文菜单). 仅限客户使用 | `@ai-matrx/kit/confirm-opener` | `confirm`, (中文(简体) ), `ConfirmOptions` {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `window.confirm` 替换必须的半个 — 纯 TS, 零反应, 0 弧度, 否 `"use client"`,所以一个Redux thunk,一个用电机或同步处理器可以以接近零捆绑的成本导入. `await confirm({ title, description, variant: "destructive" })` 决定 `true`编号 :`false`; 挂载前调用队列和同时调用一次呈现一个; 没有挂载主机, 它将永远等待, 而不是发明一个静默的默认 。 需求 `<ConfirmDialogHost />` 从 `@ai-matrx/design-system` 安装一次——通过一个 `globalThis` 插槽 | `@ai-matrx/kit/toast` | `createMatrxToast` 被俘的音响工当工厂:通过你的音响工 `toast` 进来,快进来 `toast` 回到谁 `.error`编号 :`.warning` 并输入您输入的错误控制槽, 加上 `toastErrorAlreadyCaptured` 给那些在上游已经发现失败的通知。 没有输入音标,也不宣布音标为附属物或对等物。 | | `@ai-matrx/kit/reversible` | `reversibleTier`, (中文(简体) ), `countReversible`, (中文(简体) ), `isReversibleUndoShortcut` QQ可逆动作的核心: 宣告形状 教 ~ 指向 ~ 平庸的政策 关键在一个人以前做过的事,每层的窗口,QZ-从不入手的字段规则,被找到的链接. 纯;由主机绘制. \] | `@ai-matrx/kit/invalidation` | `registerInvalidationCallback`, (中文(简体) ), `fireInvalidation` 零输入,名键回调登记册能将导入边缘分解为重块集群:自有模块的重块注册,名下无所不在的模块起火. 未注册的名字是故意的禁止;一次倒回呼喊,永不打倒打电话者. 将您的密钥常数保存在一个主机模块中 。 @ @ info | `@ai-matrx/kit/delimiter-guard` | `guardMarkdownDelimiters` (+ 数) `guardMathDelimiters`, (中文(简体) ), `guardRunawayLinks`, (中文(简体) ), `reportDelimiterViolations`\* \* 使一个流畅的分隔器不会吞下整个部分:a `$$` 或未关闭 `[` 它会把一个部分变成一个巨大的链接, 被隐形地中和,而真正的数学和链接 不断渲染。 纯;通过可选注入的捕获槽大声报告侵权情况 | `@ai-matrx/kit/json-format` | `detectJson`, (中文(简体) ), `formatJsonText`, (中文(简体) ), `stringifyJson` \\"这是JSON的文本, 它应该是什么形状?" 侦测是在密码栅栏中存活下来的,周围传言,以及宽容的(JSON5)输入—— `looksLikeJson` 门祭出, `ok` 门在跑 写作的人会 `minify` / 宽度 - 认识 `compact` (线上+包) / `pretty`,按键排序,栅栏加/出/保. 从不扔,从不说脏话 它没有分析 | `@ai-matrx/kit/idle-scheduler` | `useIdleTask`, (中文(简体) ), `useIdleReady`, (中文(简体) ), `useIdleGate`, (中文(简体) ), `useIdleRegister` + 键 `registerIdleTask`, (中文(简体) ), `onFlushComplete`, (中文(简体) ), `whenPageIdle` QQ 优先意识延迟执行: 工作等待文件负载 ~ 油漆 ~ 真浏览器闲置( )`scheduler.postTask` 编号 : `requestIdleCallback` / MessageChannel倒置,隐藏的标签仍然被冲走),然后运行 1-first -- 5-last. 0重接注册; 1重接备发信号. QQ | `@ai-matrx/kit/url-state` | `useUrlState` + 编码器, `useMirroredUrlState`, (中文(简体) ), `useUrlSearchParams`, (中文(简体) ), `commitUrlParams` QQ URL 作为视图状态的真理源:刷新,复制链接,后/后再复制相同视图. 编解码器(字符串/enum/boolean/正切/JSON)省略了默认,这样原始的URL保持了干净;离散的决定推出,高频文本被替换;每个书写都通知了页面上其他每个由URL支撑的控制. XQ | `@ai-matrx/kit/idb-store` | `DBStoreManager`, (中文(简体) ), `PublicStoreManager`, (中文(简体) ), `FeatureStore`, (中文(简体) ), `getIdbStoreSingleton` QQ 已打入, 已版本索引 DB 存储 `idb`: 子类,在 `setupStores`,每个行动都决定 `{ data, error }` ——从不投出入门之前或之后. 每家店都有一个例子 `getIdbStoreSingleton(key, create)` 联合国 `globalThis` 因此,无害环境管理和CJS图表共享) | `@ai-matrx/kit/color-util` | `findNearestTailwindColor`, (中文(简体) ), `getColorFromTailwind`, (中文(简体) ), `formatTailwindColor`, (中文(简体) ), `format*` 正常化者, `createColorNormalizer`, (中文(简体) ), `tailwindColors` \* 双向 Tailwind-token 色彩映射, 零依赖性: 符号 = 十六进制( 包括模糊输入等) `"skyblue598"`),和六进制/`rgb()` 相近的符号, 以感知的 CIEDE2000 距离( 与彩色实验室插件的位同; 彩色实例也直接插入结构中) `{ delta(hex) }` (电话) 加上纯粘贴-任何东西的输入规范化器和注射-有效性 `normalizeColorInput` {\\fn华文楷体\\fs16\\1che0e0e0}瀑布 | `@ai-matrx/kit/react-tree` | `treeContainsComponent` 对可选的a11y儿童进行安全反应儿童-树木扫描(是一种 `DialogDescription` 这些孩子下面的任何地方呢? ):用手来走元素,阵列,碎片,活生生的东西,和传送门, SKIPS 一个无法承受的孩子 大声地尖叫,而不是像坠入探测器一样 `React.Children.toArray` 会的 | `@ai-matrx/kit/format` | `formatDurationMs` 编号 : `Seconds` 编号 : `Minutes`, (中文(简体) ), `formatRelativeTime`, (中文(简体) ), `formatAbsoluteDate`, (中文(简体) ), `parseTimestamp`, (中文(简体) ), `durationMsBetween`, (中文(简体) ), `formatFileSize`, (中文(简体) ), `getInitials`, (中文(简体) ), `avatarPaletteIndex` 用于小型显示格式化器的家 没有什么其他东西可以拥有,每个声音的显示决定是ONCE。 持续时间 `clock` (单位:千美元)`9:04`, (中文(简体) ), `compact` (单位:千美元)`5.2s`, (中文(简体) ), `1m 30s`, (中文(简体) ), `coarse` (单位:千美元)`45 min`, (中文(简体) ), `3d 4h`)或(或) `long` (单位:千美元)`45 minutes`, (中文(简体) ), `3 days` 句子内的声音; `parts: 2` 确切的长度一个人选择, `1 hour 30 minutes`),以及 `round: "down"` 让他们安全地倒计时 相对邮票说话 `short`, (中文(简体) ), `long` 或 地方意识 `intl`,所有三个方向——"2d ago"和"in 2d"——的分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分 `suffix: false` 对于一个密集的列,其标题已经说出"岁"或"德"(它会减少"以前"和"同样"),以及 `absolute: "date"` 对于固定宽度单元格中后缀的邮票(一年前打印) `8/26/2025`(b) 时间; `absoluteAfter` + 键 `absolute: "monthDay"` + 键 `minUnit: "minute"` 是饲料声音("现在","14m","3d",后为"Sep 3"). 持续时间也会讲 macOS 桌面声音(`long` + 键 `parts: 2` + 键 `abbreviate` —— 说 `2 hr 5 min`)和计时表时钟(`granularity: "minute"` —— 说 `0:45`(三); `formatFileSize(b, { base: 1000 })` 属于查找者( E)`45.3 GB`, (中文(简体) ), `512 bytes`(三); `formatPercent(x, { maxDigits: 1 })` 丢弃不必要的 `.0`单位总是在名称上——故意不 `formatDuration`它还拥有HONEST数字合同: `formatUsd` (与 `digits: "trim"` 价格是.. `$0.075`, (中文(简体) ), `$1.50` - 和 `digits: "whole"` 计划价格 `$19`, (中文(简体) ), `$19.50`, (中文(简体) ), `formatMoney` (任何ISO货币, `unit: "minor" | "major"` 所需 -- -- `€19.50`, (中文(简体) ), `¥1,500`, (中文(简体) ), `formatCount` (契约 `decimalsBelow: 100` 表格 `12.3k`, (中文(简体) ), `formatPercentFromFraction`, (中文(简体) ), `safeRatio` 财务报告和审定财务报表 `sumKnown` 拒绝创建一个值——未知读取为 `UNKNOWN_DISPLAY` ("-"),一个测量 `0` 仍然读作 `0`,以及 `sumKnown` 手拿回来它不能在总数之外测量多少数值,所以 `?? 0` 绝不是通向集合的简单途径

`credential-generator` 捆绑 [EFF 大词列表](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) (7 776个条目;SHA-256) `addd35536511597a02fa0a9ff1e5284677b8883b83e986e43f15a3db996b903e`(原始内容存档于2013-10-12). EFF's [版权政策](https://www.eff.org/copyright) 将其原始材料公布于CC-BY 4.0.

更多子路径在行进图上:复制来.

## 主机接线 : `/url-state`

不需要接线。 模块通过历史 API 写入 (单位:千美元)`history.pushState`编号 :`replaceState`),并发送自己的同步事件——此 这正是它是如何运行在 Next.js App 路由器主机内部的 从; 不要通过 Next.js 路由器。 仅在主机出现时输入路由器 路由器必须观察或执行 URL 写作(反应-路由器,内存路由器) 在测试中,原生壳:

```ts
import { setUrlStateRouter } from "@ai-matrx/kit/url-state";

setUrlStateRouter({
  push: (url) => myRouter.navigate(url),               // full relative URL: pathname?query#hash
  replace: (url) => myRouter.navigate(url, { replace: true }),
  // Optional: where the current URL is read from (default: window.location)
  getLocation: () => ({ pathname, search, hash }),
});
```

在应用启动时调用它一次( N)`setUrlStateRouter(null)` 删去). 没有 被注入的路由器,行为与Matrx前端原作的字节相同.

## 点数和成本(`/format`: 单位对位置

`formatCost` 编号 : `formatPoints` 编号 : `usdToPoints` (Arman, 2026-09-27):成员见 点数,只有系统管理员谁要看到美元). 他们不许可显示价格。 哪个 价格可能是2026-10-18规则(法律14, `common-docs/policies/points-and-money-in-the-ui.md`\- 只有在该人正在作出决定或 调查(战斗、拾取者、详细页、历史表、批量/重复确认步骤, 收帐、收帐、烤面包、扣子.

## 设计

-   一个包,很多子路径——你总是包括包;你只包你进口的东西.
-   注入主机(剪贴板通知器),有意见的行为(自动保存状态) 合同,申请时间警卫。 意见为出产.
-   ESM + 通用JS条件与相匹配的申报,由包装的柏油丸证明. 这个 `"use client"` 边界是每个块所盖的:反应触摸的子道携带它, 纯正的 (搜索分数、 货币、 文本大小写、 无效、 分隔符、, json-format,idb-store,彩色-用法,反应-树木,证书-生成者) 船无印章和RSC-安全.

麻省理工学院

## 常见问题

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

总是包含AI Matrx工具包:每个 Matrx 应用程序都讲出小原始语——自动保存,永不丢失键盘, stale-response guard,剪贴板有优雅的倒背——每个子路径一个,用什么来划树\.

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

在项目目录运行 npm install @ai-matrx/kit，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 matrx-check-outbound-referral，可以用 npx matrx-check-outbound-referral 直接运行。

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

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

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

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

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

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

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

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

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

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

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

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

