@chernabog/sdk

中文文档
0.11.1发布于 2026/11/09MITES Module零依赖构建来源已验证近 30 天下载 2487

块 Chernabog 流量来自( Implement, Review, Plan, Hybrid, Pult Request, poils) , 在 @ chernabog/ core 上写, 它重新导出

中文使用文档
文档目录3 节
  1. 流量
  2. 步骤
  3. 服务

@chernabog/ sdk (英语)

块 Chernabog 流和步骤来自(Implement, (中文(简体) ), Review, (中文(简体) ), Plan, (中文(简体) ), Hybrid, (中文(简体) ), Stack, (中文(简体) ), PullRequest,提示),结束 @chernabog/core,它再出口,所以流 进口所有的东西 从这个包.

一张回购单上写着 .chernabog/package.json是因为 dependencies,在它所选择的版本上,每个Repo的基分支的快照都安装它:两个在不同的版本上并排运行在一个守护进程上. 这个 chernabog 二进制供应其自己的副本 @chernabog/core 财务报告和审定财务报表 effect 在运行时,当此软件包的对等区域打开时运行 @chernabog/core 包括二进制提供的核心. chernabog recipes upgrade 将 repo 移动到其二进制发布的版本.

流量

import { Claims, defineFlow, Implement, step } from "@chernabog/sdk";
import { Effect, Schema } from "effect";

export default defineFlow({
  trigger: Implement.triggerFor("auto:eligible"), // the work items to act on
  gate: Implement.gate, // checked before each run starts; fail with Skip to hold it back
  concurrency: 1,
  workflow: (item) =>
    Effect.gen(function* () {
      const issue = yield* Implement.issueOf(item);

      // However the run ends, its claim on the issue goes.
      return yield* Effect.gen(function* () {
        const { branch } = yield* Implement.claim(issue);
        const checked = yield* step(
          "check-scope",
          { issue },
          { output: Schema.Struct({ ok: Schema.Boolean }) },
        );
        // ...
      }).pipe(Claims.releasing(Claims.issue(issue)));
    }),
});
帮助它会做什么
activity(name, effect, { success })一个持久的步骤。 它运行一次,结果被保存;重放返回所保存的结果. 名字在跑步中是独一无二的,所以循环中的一个步骤带有它的圆: fix-ci-2。 。 。 .
step(name, input, { output })运行 .chernabog/stages/<name> 作为一种活动.
sleep(name, duration)一个能活过重启的持久暂停 .
awaitSignal(signals, { id, timeout })等待其中一个信号( 触发器报告于 WorkItem.signals或时出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出 触发器可以用 wakeOnly 唤醒等待的跑步 不开始一个新的,或与 held: "<why>" 开始不运行并显示原因 chernabog status。 。 。 .
renderPrompt(name, values)填充数 .chernabog/prompts/<name>.md,或,对于从食谱包中导入的流量(FlowPackage),包裹是当repo没有.
Skip, (中文(简体) ), NeedsHuman彻底结束逃亡,或者把物品交给一个人.

Implement, (中文(简体) ), Review 财务报告和审定财务报表 PullRequest 持有审查环路的构件,每个活动流可以重新排序,省去或包装. Hybrid 持有混合路径的块,其中一个人在交互式会话中与代理处理一个问题. Plan 持有计划食谱的块,一旦一个人批准代理人的计划,将一个分题变成一个分题的史诗. Stack 通过合并,包括下层被挤压后,将拉动请求的一叠层与基数更新,并调整层以适应所撰写的会话中移动的内容。 切纳博格的 食谱 完全的流出 这些块,一个回波烤成自己的 .chernabog/flows/; 以 @chernabog/recipes,其来源是 packages/recipes/。 。 。 .

流动也可以给 item: (key) => Effect<Option<WorkItem>>,键的工作项目 一个人的名字,触发器不报告,因为 Hybrid.itemFor 找到问题 chernabog start 名称.

副作用属于活动或步骤内部,从不出现在工作流程正文中,每回放一次都会运行.

步骤

// .chernabog/stages/find-work.ts
import { defineStage, GitHub, Skip } from "@chernabog/sdk";
import { Effect, Schema } from "effect";

export default defineStage({
  name: "find-work",
  input: Schema.Struct({}),
  output: Schema.Struct({ issue: Schema.Number }),
  run: () =>
    Effect.gen(function* () {
      const [issue] = yield* (yield* GitHub).queuedIssuesLabelled("auto:eligible");
      if (issue === undefined) return yield* new Skip({ reason: "nothing queued" });
      return { issue: issue.number };
    }),
});

服务

服务是核心的:每个都是二进制提供的端口.

服务封面
RepoRepo 合并设置: swit, Base 分支, 标签, 限制, 关口, 笔记
Run运行:流出、运行 ID 和工作项目
GitHub被排队的问题、要求、标签、评论、子问题和阻塞器、分支、拉取请求、 CI 状态
Agent通过适配器开始和恢复代理会话; withPerson 在一个人面前打开一个
Git, (中文(简体) ), Worktree提前提交, 更改文件, 推出; 每个分支一个工作树
Usage账户检查和使用闸门
RunLog运行日志

每个服务都是一层,因此一个团队可以用自己的执行来代替一个,测试可以使用假的.

版本与发布记录

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

版本发布日期距今
0.11.1latest2026/11/09今天
0.11.02026/11/09今天
0.10.02026/11/045 天前
0.9.02026/11/017 天前
0.8.12026/10/319 天前
0.8.02026/10/3010 天前

关于 @chernabog/sdk 的常见问题

@chernabog/sdk 是什么?

块 Chernabog 流量来自( Implement, Review, Plan, Hybrid, Pult Request, poils) , 在 @ chernabog/ core 上写, 它重新导出

如何安装 @chernabog/sdk?

在项目目录运行 npm install @chernabog/sdk,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:effect(4.0.5)、@chernabog/core(^1.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@chernabog/sdk 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/chernabog__sdk 是否存在。

@chernabog/sdk 支持 ESM 还是 CommonJS?

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

@chernabog/sdk 可以商用吗?

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

@chernabog/sdk 的下载量有多少?

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

@chernabog/sdk 还在维护吗?

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