@brooswit/herdr-sdk

中文文档
1.0.0发布于 2026/10/17MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 3523

用于 herdr socket API 的 TypeScript 客户端, 由 herdr 发布的 JSON Schema 生成

中文使用文档
文档目录4 节
  1. 层
  2. 套接字地址
  3. 这是建立在电线上的事实(Herdr 0.8.2, 议定书20)
  4. 脚本

@brooswit/herdr-sdk (英语)

输入的脚本客户端 医生 套接字 API , 由 schema herdr 本身所生成 herdr api schema --json) (中文(简体) ).

import { HerdrClient } from "@brooswit/herdr-sdk";

const h = new HerdrClient();                       // herdr's own default config dir, or $HERDR_SOCKET_PATH
const { snapshot } = await h.session.snapshot();  // fully typed
await h.agent.wait({ target: "w1:p3", until: ["idle"], timeout_ms: 30_000 });

const sub = await h.subscribe([{ type: "pane.agent_status_changed", pane_id: "w1:p3" }]);
for await (const frame of sub) console.log(frame.event, frame.data);

层

目录任务
src/transportunix socket QQ新线限定框架 。 没有JSON 没有协议.
src/protocol信封形状, HerdrError,编号。 没有I/O.
src/client一个请求 —— 一个回应 —— 服务器关闭(即herdr的电线行为) .
src/eventsevents.subscribe:长生相接者,作同心行者.
src/services每个方法家族一个文件; 细打字外观.
src/reducers纯:快照+推放帧 → 当前舰队状态.
src/generated代码输出 . 不编辑; 运行 bun run generate。 。 。 .
scripts/gen生成器,每个输出一个文件.

套接字地址

  • 首字母顺序 : HERDR_SOCKET_PATH (herdr自己公布)胜出; HERDR_SOCKET 仅被誉为堕落的后退 HERDR_SOCKET_PATH 未设定。 偏爱 HERDR_SOCKET_PATH 在新代码.
  • 默认路径,当两者都没有设定时,镜像herdr自己的配置目录分辨率: XDG_CONFIG_HOME 如果设置; 否则在 Windows 上 %APPDATA%,则 %USERPROFILE%\AppData\Roaming,则 $HOME/.config,然后是临时目录;否则(POSIX) $HOME/.config,然后是临时目录——与 herdr/herdr.sock (或 herdr-dev/herdr.sock 与 { dev: true },或 .../sessions/<name>/herdr.sock 与 { sessionName }) (中文(简体) ).
  • 每个操作系统地址: 在 Linux/ macOS 上,上面的路径是一个真实的 Unix- domain 套接字, 使用不变 。 在 Windows 上, herdr 在命名的管子上听 \\.\pipe\<path> 相反——路径本身只有前缀,否则就永远不会被重写. 这个 SDK 自动从 process.platform· ; socketEndpoint() (从 src/transport/socket-path.ts直接需要时进行衍生.
  • Dev 构建/ 命名会话 : 通过 { dev: true } 指向一个 herdr-dev 构造的配置目录, 或 { sessionName } 连接到指定的会话套接字,例如 . new HerdrClient({ dev: true, sessionName: "work" })也从未在运行时猜测过.

这是建立在电线上的事实(Herdr 0.8.2, 议定书20)

  • 请求 {id, method, params} → {id, result:{type,…}} 或者说 {id, error:{code,message}}。 。 。 .
  • 服务器 一个答复后关闭。每个RPC都是自己的连接.
  • events.subscribe 鸡巴 subscription_started 然后保持连接打开,流出 {event, data} 边框.
  • 超时为打出错误( T)code: "timeout"从不挂起. isTimeout(e)。 。 。 .
  • 计划没有说明每种方法的返回结果; scripts/gen/method-result-map.ts 有,而且 test/live 证明这一点.

脚本

bun run generate     # schema → src/generated
bun run check        # generate + drift guard + typecheck + unit  (what CI runs)
bun run build
HERDR_LIVE=1 bun test test/live   # against your running herdr

版本与发布记录

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

版本发布日期距今
1.0.0latest2026/10/1722 天前
0.3.02026/09/281 个月前
0.2.02026/09/281 个月前
0.1.32026/08/272 个月前
0.1.22026/08/242 个月前
0.1.02026/08/242 个月前

关于 @brooswit/herdr-sdk 的常见问题

@brooswit/herdr-sdk 是什么?

用于 herdr socket API 的 TypeScript 客户端, 由 herdr 发布的 JSON Schema 生成

如何安装 @brooswit/herdr-sdk?

在项目目录运行 npm install @brooswit/herdr-sdk,或使用 pnpm add / yarn add / bun add。

@brooswit/herdr-sdk 支持 TypeScript 吗?

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

@brooswit/herdr-sdk 支持 ESM 还是 CommonJS?

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

@brooswit/herdr-sdk 可以商用吗?

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

@brooswit/herdr-sdk 的下载量有多少?

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

@brooswit/herdr-sdk 还在维护吗?

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