CodeWhale npm runtime-sdk 实战:3步把编程智能体引擎嵌入你的应用
CodeWhale npm runtime-sdk 实战3步把编程智能体引擎嵌入你的应用【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhaleCodeWhale是一个用 Rust 构建的开源终端编程智能体coding agent而codewhale/runtime-sdk就是它官方提供的 npm 包——一套轻量的 JavaScript 助手函数和 TypeScript 类型声明让你可以把 CodeWhale 引擎嵌进自己的应用在你的 Node.js 程序里创建、启动、监控一组并行执行的 AI 任务Fleet全程不绕过 CodeWhale 的沙箱、审批和权限体系。为什么需要 runtime-sdk如果你只想在终端里用 CodeWhale直接npm install -g codewhale装 codewhale npm 启动器 即可。但如果你想做这些事情就需要 SDK️ 给桌面应用如 macOS 工作台提供任务进度面板 在自己的 Web 后台里展示 AI 任务的状态和事件流 用自动化脚本编排审查 验证这类并行工作流关键在于SDK 是纯传输层transport-only它只做一件事——调用本地 Rust 运行时的 HTTP API。所有智能体行为、沙箱策略、审批提示、模型配置仍然由 Rust 引擎决定SDK 无法越权。第一步启动本地 app-server 运行时SDK 连接的对象是 CodeWhale 的本地运行时 API。用一条命令启动默认绑定127.0.0.1:7878仅本机可访问codewhale app-server --http完整接口契约路由、认证、事件流见官方文档 docs/RUNTIME_API.md。如果还没安装可参考 npm/codewhale/README.md 中的安装步骤。第二步安装并初始化客户端在 Node.js 18 项目中安装 SDKnpm install codewhale/runtime-sdk然后只需几行代码即可创建客户端完整示例见 npm/runtime-sdk/README.mdimport { createRuntimeClient } from codewhale/runtime-sdk; const client createRuntimeClient({ baseUrl: http://127.0.0.1:7878, token: process.env.CODEWHALE_RUNTIME_TOKEN, });baseUrl和token都有合理的默认与兼容处理token 来自启动 app-server 时的CODEWHALE_RUNTIME_TOKEN环境变量。第三步创建并启动 Fleet 任务这是最核心的用法。以审查 验证两条并行任务为例const created await client.createFleetRun({ target: this_computer, roles: [{ name: reviewer }, { name: verifier }], workflow: { id: release-check, kind: parallel, tasks: [ { id: review, name: Review, instructions: Review locally., worker: { role: reviewer } }, { id: verify, name: Verify, instructions: Verify locally., worker: { role: verifier } }, ], }, }); // 创建是持久化的但不会自动开工——启动必须显式调用 await client.startFleetRun(created.run.id);这里有两个值得新手记住的设计设计含义两步式启动createFleetRun只校验并持久化任务队列startFleetRun才跨越启动闸门真正派工。创建 ≠ 运行误操作不会立刻烧掉 token目标显式声明v0.9.4 只执行this_computeranother_computer/cloud会直接失败fail closed而不是悄悄在本地跑订阅实时事件流像读日志一样追踪进度fleetEvents返回一个异步迭代器直接for await就能实时消费 SSE 事件流let cursor; for await (const event of client.fleetEvents(created.run.id, { after: cursor })) { if (event.cursor) cursor event.cursor; // 持久化游标断线可续传 }事件游标cursor是不透明且跨运行时重启持久的应用重启后带上after: cursor就能从断点续读。如果账本压缩把旧游标清掉了SDK 会发出fleet.replay.cursor_unavailable控制事件提示你重新拉取任务快照再续连——不会出现静默丢事件。除事件流外SDK 还封装了完整的 Fleet 控制面listFleetRuns/getFleetRun查看运行listFleetWorkers/getFleetWorker检查工人状态stopWorker/interruptWorker/restartWorker干预单个工人stopFleetRun整批叫停replayFleetEvents一次性回放历史。所有函数签名都有完整 TypeScript 声明见 npm/runtime-sdk/index.d.ts。安全边界与常见错误处理默认只绑本机app-server 默认监听127.0.0.1不经过任何托管中转API 密钥也永远不会通过接口返回Token 防护所有/v1/*路由要求 Bearer tokenSDK 会自动带上Authorization头⚠️版本兼容连接旧版运行时、缺少某个接口时SDK 抛出带稳定能力字符串的RuntimeCapabilityError而不是含糊的网络错误——方便你在代码里精确分支处理客户端测试用例可参考 npm/runtime-sdk/test/fleet-client.test.mjs核心实现仅 npm/runtime-sdk/index.js 一个文件代码量小、易于审计。延伸阅读完整 HTTP 路由、SSE 事件词汇与数据模型docs/RUNTIME_API.mdFleet 概念与玩法docs/FLEET.md自动工作流示例docs/AUTOMATIC_WORKFLOWS.md项目更新日志CHANGELOG.mdcodewhale/runtime-sdk用最薄的封装换来了最强的保证你的应用拿到的是完整的智能体能力而安全边界始终由 CodeWhale 引擎本身把关。【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhale创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考