@adrkit/core

中文文档
0.20.0发布于 2026/10/11Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1.1万

纯 ADR 解析,验证,迁移,并影响解析为adrkit.

中文使用文档
文档目录5 节
  1. 建立和制作决定图
  2. 双向决定的解决
  3. 标记扫描合同
  4. 文件系统边界
  5. 批次扫描

@ adrkit/ 核心

纯正、决定性的建筑构件 裁决记录: 分析、计划验证、程序变化、MADR迁移、, 图表构造、队列投影和 affects 决议.

npm install @adrkit/core      # or: bun add @adrkit/core
import { lintCorpus } from '@adrkit/core';

const findings = lintCorpus(records);

建立和制作决定图

图形构造、过滤和序列化是纯正和决定性的. CLI拥有TTY检测;核心调用器总是选择混凝土渲染器.

import {
  buildAdrGraph,
  filterAdrGraph,
  renderDotGraph,
  renderJsonGraph,
  renderMermaidGraph,
} from '@adrkit/core';

const graph = buildAdrGraph(records);
const supersession = filterAdrGraph(graph, {
  focus: '0014',
  kinds: ['supersedes'],
});

const dot = renderDotGraph(supersession);
const mermaid = renderMermaidGraph(supersession);
const json = renderJsonGraph(supersession);

filterAdrGraph 保持焦点记录、匹配事件边缘及其 结束点。 仅对等的过滤器会丢弃无关的孤立节点 。 JSON信封 遗 物 { nodes, edges }; DOT 和 美人鱼 添加演示文稿而无需更改 图表模型.

双向决定的解决

resolveAffects 是外出边缘:一个记录声明模式,路径是 与他们相匹配. resolveSourceMarkers 是输入边: 源文件 宣布决定与 @adr <id> 在注释中标记.

import {
  mergeSourceDeclarations,
  readSourceMarkers,
  readSourceMarkersBatch,
  resolveAffects,
  resolveSourceMarkers,
  scanSourceMarkers,
  toGoverningDecisions,
} from '@adrkit/core';

const scan = await readSourceMarkers('src/services/sync/retry.ts');
const byMarker = resolveSourceMarkers({ records, markers: scan.markers });
const byPattern = resolveAffects({ records, changedFiles: ['src/services/sync/retry.ts'] });

const governedBy = mergeSourceDeclarations(
  toGoverningDecisions(records, byPattern.matches),
  records,
  byMarker.matches,
);

firedMatchers 记录ADR匹配的内容. declaredBy 记录文件内容 已声明。 保持它们分开,让消费者区分"这个记录匹配 从"这个文件选择了记录。"

标记扫描合同

scanSourceMarkers(source, path) 是纯半个: 文字输入, 标记出, 不 文件系统。 它只扫描第一个 MARKER_HEADER_WINDOW_BYTES (单位:千美元)8192 (韩语)(单位:千美元) 源头,请在窗口内最后一整行停留,并保留 第一个 MARKER_DECLARATION_FILE_CAP (单位:千美元)64国道() 实物/来源的有效声明 秩序。 秩序. omittedMarkers 报告超过上限的确切数字,不包含 分配每个标记对象.

标记必须是专用评论行上的第一个内容. 继续传教, 字符串正文,并排入从成为声明的内在评论. 行数 内部 ``` 或者说 ~~~ 围栏被忽略。 用于下标扩展 (单位:千美元).md, (中文(简体) ), .mdx, (中文(简体) ), .markdown),唯一被接受的评论介绍人是 <!-- 财务报告和审定财务报表 {/*。 。 。 .

readSourceMarkers(path) 添加已绑定的文件系统读取和报表 state 作为 scanned, (中文(简体) ), absent, (中文(简体) ), unreadable,或 out-of-tree,所以"没有找到标记"是 从来没有与"不能看"混淆。 扫描结果包括: scannedBytes 财务报告和审定财务报表 fileBytes 对观测到的扫描范围.

如果一个文件在读取时更改, 将这些字节计数为 而不是严格的算术.

文件系统边界

readSourceMarkers 取一个相对路径从 cwd。 。 。 .

  • 绝对路径被拒绝为 out-of-tree。 。 。 .
  • 从工作树上爬出的道路 out-of-tree。 。 。 .
  • 连结被拒绝为 unreadable 没有打开目标.
  • 非常规文件也 unreadable,因此 FIFOs 和类似的特殊文件 无法屏蔽读取.

批次扫描

readSourceMarkersBatch(paths, cwd) 是用于 checkChanges。它使输入路径正常化、调试和排序;扫描 首个 3 000个 最多与正常路径相通 16个 飞行中读取 返回每个已跳过的道路。 在同时读完之后,保留 第一个 MARKER_DECLARATION_BATCH_CAP (单位:千美元)1万个在代码单元路径中声明 然后是物理/源指令。 这批货 declarations 报告给出精确 total, (中文(简体) ), retained, (中文(简体) ), omitted, (中文(简体) ), perFileOmitted,以及 batchOmitted 计数.

传过去 SourceMarkerBatchScan 结束 markerScans 以获得标记意识 决策与决定 markerScan 报告而不添加文件系统 访问 checkChanges. 宣言分会产生一项咨询意见 marker-declarations-capped 查找和永远不变 CheckOutcome.ok。 。 。 .

公布的无害环境管理文物在22号节点或较新的节点上运行。 联合国 adrkit 仓库使用 Bun.

另见 @adrkit/mcp,本地只读模式上下文 协议服务器将同一实体暴露于编码代理.

联合国 https://adrkit.dev (中文(简体) )

许可证: Apache-2.0

版本与发布记录

@adrkit/core 共发布 21 个版本,首次发布于 2026/07/20;过去 12 个月发布了 21 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.20.0latest2026/10/1127 天前
0.19.02026/10/1127 天前
0.18.02026/10/1028 天前
0.17.02026/10/031 个月前
0.16.02026/10/011 个月前
0.15.02026/09/281 个月前

关于 @adrkit/core 的常见问题

@adrkit/core 是什么?

纯 ADR 解析,验证,迁移,并影响解析为adrkit.

如何安装 @adrkit/core?

在项目目录运行 npm install @adrkit/core,或使用 pnpm add / yarn add / bun add。

@adrkit/core 支持 TypeScript 吗?

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

@adrkit/core 支持 ESM 还是 CommonJS?

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

@adrkit/core 需要什么版本的 Node.js?

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

@adrkit/core 可以商用吗?

@adrkit/core 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@adrkit/core 的下载量有多少?

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

@adrkit/core 还在维护吗?

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