@aaac/工具链
受人工活性约束的工具链声明——定义了哪些工具可以操作哪些文物.
安装
npm install @aaac/toolchain
它会做什么
toolchain-contracts 是一个声明式合同层, 绑定 工具 文物. 每一个工具链条目都宣布其消费和生产的内容,从而能够进行静态验证和数据流动,跨越文物合同、代理合同和工具链合同.
快速启动
创建 toolchain-contracts.yaml数字 :
schema: aaac/toolchain/0.1
system:
id: my-project
toolchains:
prettier:
kind: library
module: prettier
artifacts:
consumes: [source-code]
produces: [source-code]
operations: [format]
eslint:
kind: cli
command: npx eslint --fix
artifacts:
consumes: [source-code]
produces: [source-code]
speckeeper:
kind: component
component_contract: ./speckeeper.component.yaml
artifacts:
consumes: [spec-md, codebase]
produces: [conformance-report]
验证它:
npx aaac-toolchain validate toolchain-contracts.yaml
DSL 示马
| 外地 | 说明 |
|---|---|
schema | Schema版本(例如:. aaac/toolchain/0.1(中文(简体) ) |
system | 项目身份id选项 name(中文(简体) ) |
toolchains | 工具链 ID-工具链定义地图 |
每个工具链条目 :
| 外地 | 说明 |
|---|---|
kind | 装订类型 : library, (中文(简体) ), cli,或 component |
module | npm 软件包名称( 需要 library(中文(简体) ) |
command | 贝壳命令(用于 cli 否时 cli_contract(中文(简体) ) |
cli_contract | Cli-contracts YAML 路径( 用于 cli(中文(简体) ) |
component_contract | 此工具链包含的组件合同路径( 需要 component(中文(简体) ) |
artifacts | consumes 财务报告和审定财务报表 produces 文物标识 |
operations | 操作名称, 在命名空间 component_contract 名称——该组件设定时的操作,工具自己的动词(format, (中文(简体) ), lint当它不是 |
类型
| 仁爱 | 含义 | 需要的字段 |
|---|---|---|
library | 在程序上引用 npm 软件包 | module |
cli | 外部 CLI 工具 | command 或者说 cli_contract |
component | AaaC部分有自己的合同 | component_contract |
$refs
使用工具链定义分割文件 $refs数字 :
schema: aaac/toolchain/0.1
system:
id: my-project
toolchains:
inline-tool:
kind: library
module: inline-lib
artifacts:
consumes: [source-code]
$refs:
- ./formatting.yaml
- ./linting.yaml
参考文件包含额外的 toolchains 合并到根文档中的条目。 跨文件的复制工具链ID被拒绝 .
CLI 命令
aaac-toolchain validate
验证工具链-合同文件的图案和语义规则.
npx aaac-toolchain validate toolchain-contracts.yaml
# Optional: check artifact IDs against a known set
npx aaac-toolchain validate toolchain-contracts.yaml \
--artifact-ids source-code spec-md codebase conformance-report
aaac-toolchain lint
检查合同层的数据流完整性.
npx aaac-toolchain lint toolchain-contracts.yaml \
--artifact-contracts artifact-contracts.yaml \
--agent-contracts agent-contracts.yaml
退出代码
| 代码 | 含义 |
|---|---|
| 0 个 | 所有支票通行证 |
| 1个 | B. 发现的验证或提示问题 |
| 2个 | 文件读取或计划出错 |
图书馆 API
import {
loadToolchainContracts,
parseToolchainFile,
validateToolchainContracts,
lintDataflow,
} from "@aaac/toolchain";
// Load and parse (resolves $refs)
const doc = await loadToolchainContracts("./toolchain-contracts.yaml");
// Validate
const issues = validateToolchainContracts(doc, {
artifactIds: ["source-code", "spec-md"],
});
// Lint dataflow against other contract layers
const lintIssues = lintDataflow(doc, {
artifacts: [{ id: "source-code", derived_from: [] }],
agents: [{ id: "reviewer", consumes: ["source-code"], produces: ["review-report"] }],
});
| 函数 | 说明 |
|---|---|
loadToolchainContracts | 装入 YAML 文件, 解析 $refs,验证计划 |
parseToolchainFile | 解析文件没有 $ref 决议 |
validateToolchainContracts | 语义验证(艺术标识、复制件) |
lintDataflow | 跨合同数据流程完整性检查 |
相关软件包
@aaac/contracts• 构成部分合同汇编器和代码生成器@aaac/runtime执行AaaC工作流程的运行时间 SDK
许可证
麻省理工学院——见 自由主义。 。 。 .