@ 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