@cascade-flow/client

中文文档
0.2.33发布于 2026/08/12MITTypeScriptES Module近 30 天下载 2717

CascadeFlow 工作流程管弦乐器的保密程序客户端

中文使用文档
文档目录8 节
  1. 安装
  2. 带有文件系统后端( 建议开发)
  3. 带有 PostgreSQL 后端( 制作)
  4. 使用量
  5. 类型安全
  6. 方法
  7. 超时
  8. CLI 一体化

@ cascadeflow/ 客户端

用于提交和管理工作流程运行的保密程序客户端.

安装

客户端需要后端执行才能持续工作流程状态. 与您选择的后端一起安装客户端 :

npm install @cascadeflow/client @cascadeflow/backend-filesystem

带有 PostgreSQL 后端( 制作)

npm install @cascadeflow/client @cascadeflow/backend-postgres

使用量

import { WorkflowClient } from "@cascadeflow/client";
import { FileSystemBackend } from "@cascadeflow/backend-filesystem";

const client = new WorkflowClient(new FileSystemBackend("./.runs"));

// Submit run
const { runId } = await client.submit({
  workflow: "my-workflow",
  input: { userId: "123", count: 42 },
  priority: 10,
  timeout: 300000
});

// Wait for completion
const output = await client.waitForCompletion(runId, {
  timeout: 60000,
  exponentialBackoff: true
});

// Check status
const info = await client.getRun(runId);

// Cancel
await client.cancel(runId, "reason");

类型安全

interface MyInput { userId: string; count: number; }
interface MyOutput { results: string[]; }

const { runId } = await client.submit<MyInput>({
  workflow: "my-workflow",
  input: { userId: "123", count: 42 }  // Type-checked
});

const output = await client.waitForCompletion<MyOutput>(runId);
console.log(output.results);  // Type-safe access

方法

// Submit run
submit<TInput>(params: {
  workflow: string;
  input?: TInput;
  priority?: number;
  timeout?: number;
  idempotencyKey?: string;
  metadata?: Record<string, unknown>;
  tags?: string[];
}): Promise<{ runId: string; isNew: boolean }>;

// Get status
getStatus(runId: string): Promise<RunStatus>;

// Get detailed info
getRun(runId: string): Promise<RunState | null>;

// Wait for completion
waitForCompletion<TOutput>(runId: string, options?: {
  interval?: number;
  exponentialBackoff?: boolean;
  maxBackoff?: number;
  timeout?: number;
}): Promise<TOutput>;

// List runs
listRuns(options?: { status?: RunStatus; limit?: number }): Promise<RunState[]>;

// Cancel run
cancel(runId: string, reason?: string): Promise<void>;

超时

步执行的3级倒计时 :

  1. 步骤级别 : defineStep({ timeoutMs })
  2. 提交级别 : submit({ timeout }) 此软件包
  3. 系统默认: 300 000 ms (5分钟)

提交超时设置全工作流程执行限制,用于没有自己的步骤 timeoutMs。 。 。 .

CLI 一体化

内部使用:

  • cf submit → client.submit()
  • cf status → client.getRun()
  • cf cancel → client.cancel()

版本与发布记录

@cascade-flow/client 共发布 16 个版本,首次发布于 2025/11/19;过去 12 个月发布了 16 个版本。

版本发布日期距今
0.2.33latest2026/08/122 个月前
0.2.212026/02/238 个月前
0.2.202026/02/069 个月前
0.2.192026/02/069 个月前
0.2.182026/02/059 个月前
0.2.172026/01/239 个月前

关于 @cascade-flow/client 的常见问题

@cascade-flow/client 是什么?

CascadeFlow 工作流程管弦乐器的保密程序客户端

如何安装 @cascade-flow/client?

在项目目录运行 npm install @cascade-flow/client,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@cascade-flow/backend-interface(^0.2.17)、typescript(^5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cascade-flow/client 支持 TypeScript 吗?

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

@cascade-flow/client 支持 ESM 还是 CommonJS?

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

@cascade-flow/client 可以商用吗?

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

@cascade-flow/client 的下载量有多少?

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

@cascade-flow/client 还在维护吗?

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