@cdmbase/cdecli-agent-client

中文文档
0.4.1发布于 2026/09/12MITTypeScriptES Module零依赖近 30 天下载 2288

Cdecli-agent(POST /v1/cdecli/exec)的TypeScript客户端. Go代理服务器旁边的船.

中文使用文档
文档目录8 节
  1. 安装
  2. 为什么
  3. 层
  4. 使用量
  5. 代理聊天技巧
  6. 电线合同
  7. HTTP 保持活动状态
  8. 发展

@cdmbase/cdecli-代理客户

npm

类型脚本客户端 代理代理人 Go HTTP 服务器 .

与代理服务器在同一Repo的船舶(src/serve/cdecli_exec.go)所以说 电线协议和客户端一起移动——每个协议将地块改变为一个PR.

安装

yarn add @cdmbase/cdecli-agent-client
# optional: enable HTTP keep-alive on Node
yarn add undici

为什么

一个薄薄的、依赖性的光线包装器 环绕克氏剂电线协议 (单位:千美元)POST /v1/cdecli/exec) (中文(简体) ). 拥有监控解析器、认证头逻辑,以及 证书 - 键取器,所以呼叫者不 重新执行它们.

层

CdecliAgentClient       ← transport (fetch + headers + JSON)
    │
    ├─ CdecliConnectorClient    ← cdecli connector run/install/list/actions
    ├─ CdecliAgentChatClient    ← cdecli agent --skill … --mode … -m … (native session/chat protocol)
    ├─ CdecliAgentRunnerClient  ← cdecli agent -m … run as a child cdecli via /v1/cdecli/exec
    └─ CdecliSearchClient       ← cdecli connector search …

使用量

import {
    CdecliAgentClient,
    CdecliConnectorClient,
} from '@cdmbase/cdecli-agent-client';

const transport = new CdecliAgentClient({
    endpoint: process.env.CDECLI_AGENT_ENDPOINT ?? 'https://your-cdecli-agent.example.com',
});
const connectors = new CdecliConnectorClient(transport);

const result = await connectors.runAction({
    userToken: userJwt,            // bearer for per-user $HOME isolation
    connector: 'github',
    action: 'GITHUB_LIST_ISSUES',
    params: { repo: 'owner/repo' },
    credentialId: 'fb-cred-id',    // optional vault lookup
});

if (result.successful) {
    console.log(result.data);
} else {
    console.error(result.error);
}

代理聊天技巧

SDK 等效于

cdecli agent --endpoint https://cdecli-agent.cdebase.dev \
  --skill yantra-video-studio --no-tui --mode auto \
  -m "$(cat birthday-brief.txt)" > run.log

实值 CdecliAgentChatClient它讲的是特工的原生协议 同样的 用于远程代理的CLI: POST /v1/agent/session 创建具有预激活技能的会话,然后 POST /v1/agent/chat 将转弯作为服务器发送事件流出,并附带许可模式. 没有TUI可以关闭 没有孩子 cdecli 进程.

import { readFile } from 'node:fs/promises';
import { CdecliAgentClient, CdecliAgentChatClient } from '@cdmbase/cdecli-agent-client';

const transport = new CdecliAgentClient({ endpoint: 'https://cdecli-agent.cdebase.dev' });
const agent = new CdecliAgentChatClient(transport);

const result = await agent.run({
    userToken: userJwt,               // --token / auth.json access token
    skill: 'yantra-video-studio',     // --skill
    permissionMode: 'auto',           // --mode auto (unattended)
    message: await readFile('birthday-brief.txt', 'utf8'), // -m
    onChunk: (text) => process.stdout.write(text),         // the streamed reply
    onStatus: (status) => console.error(`[${status}]`),
});

console.log(result.sessionId, result.text.length, result.outputs);
  • run() 创建会话并发送一个转弯;通过 sessionId 改为 继续现有的会话( c)createSession, (中文(简体) ), chat, (中文(简体) ), cancel,以及 closeSession 用于多转弯控制.
  • 每个课时都启用一种技能,如同CLI授权路径一样. 这个 必须在代理人上存在技能(GET /v1/skills); SDK 没有 以 CLI 的方式推动本地技能文件夹 .
  • permissionMode 这是 --mode 词汇表 : ask | edit | plan | auto | bypass (单位:千美元)yolo =: bypass) (中文(简体) ). auto 工作需要的就是这个.
  • onEvent 接收每个已解码的事件( e)delta, (中文(简体) ), output, (中文(简体) ), status, (中文(简体) ), tool_call, (中文(简体) ), tool_result, (中文(简体) ), tool_input_delta, (中文(简体) ), ask_user, (中文(简体) ), error, (中文(简体) ), done) (中文(简体) ). 一个澄清的问题 代理 公园到达 ask_user 与已解码的有效载荷并脱去可见文本;应答 与另一个 chat() 同一届会议的报告.
  • 服务器端失败拒绝使用 CdecliAgentChatError,保留 sessionId 编辑 partialText 在错误之前流出.
  • 会话被固定在创建它们的主机上:客户端重放 入侵的粘糊糊的饼干每场, 所以共享的运输可以服务于许多 用户没有把他们都绑在一个舱里.

CdecliAgentRunnerClient.run() 给想要孩子的人留下的遗物 cdecli agent -m … 通过代理 /v1/cdecli/exec现在也是 接受 permissionMode (单位:千美元)--mode) (中文(简体) ).

电线合同

匹配 src/serve/cdecli_exec.go::ExecRequest 这回贷。 接受一个 args (argv)或 (中文(简体) ) shell_command (POSIX线). 反应形状是 { stdout, stderr, exit_code, error? }。 。 。 .

流动政策: 每换一次去 ExecRequest 编号 : ExecResponse 结构 内 src/serve/cdecli_exec.go 必须更新 src/types.ts 输入 同样的 PR。 。 。 .

HTTP 保持活动状态

在节点, 默认值 fetchImpl 使用全过程 undici.Agent (单位:千美元)connections: 128, keepAliveTimeout: 30s在所有租户中分享。 日本西北地区 和会话ids生活在每个请求头, 所以集合是安全的.

禁用为 CDECLI_AGENT_KEEPALIVE=0。 。 。 .

发展

cd packages/cdecli-agent-client
yarn install
yarn build
yarn test

这个包是独立的——不是任何工作空间的一部分. 它会自己拉起 node_modules 并独立于"去"二进制出版.

版本与发布记录

@cdmbase/cdecli-agent-client 共发布 7 个版本,首次发布于 2026/05/16;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.4.1latest2026/09/121 个月前
0.4.02026/07/213 个月前
0.3.12026/07/193 个月前
0.3.02026/05/265 个月前
0.2.02026/05/205 个月前
0.1.12026/05/165 个月前

关于 @cdmbase/cdecli-agent-client 的常见问题

@cdmbase/cdecli-agent-client 是什么?

Cdecli-agent(POST /v1/cdecli/exec)的TypeScript客户端. Go代理服务器旁边的船.

如何安装 @cdmbase/cdecli-agent-client?

在项目目录运行 npm install @cdmbase/cdecli-agent-client,或使用 pnpm add / yarn add / bun add。

@cdmbase/cdecli-agent-client 支持 TypeScript 吗?

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

@cdmbase/cdecli-agent-client 支持 ESM 还是 CommonJS?

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

@cdmbase/cdecli-agent-client 需要什么版本的 Node.js?

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

@cdmbase/cdecli-agent-client 可以商用吗?

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

@cdmbase/cdecli-agent-client 的下载量有多少?

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

@cdmbase/cdecli-agent-client 还在维护吗?

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