@cascade-flow/client

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

Type-safe programmatic client for CascadeFlow workflow orchestrator

原始使用文档
文档目录8 节
  1. Installation
  2. With Filesystem Backend (Recommended for Development)
  3. With PostgreSQL Backend (Production)
  4. Usage
  5. Type Safety
  6. Methods
  7. Timeouts
  8. CLI Integration

@cascadeflow/client

Type-safe programmatic client for submitting and managing workflow runs.

Installation

The client requires a backend implementation to persist workflow state. Install the client along with your chosen backend:

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

With PostgreSQL Backend (Production)

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

Usage

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");

Type Safety

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

Methods

// 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>;

Timeouts

3-tier fallback for step execution:

  1. Step-level: defineStep({ timeoutMs })
  2. Submission-level: submit({ timeout }) ← This package
  3. System default: 300000ms (5 min)

Submission timeout sets workflow-wide execution limit for steps without their own timeoutMs.

CLI Integration

Used internally by:

  • 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 是什么?

Type-safe programmatic client for CascadeFlow workflow orchestrator

如何安装 @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 和提交记录判断。