@kedge-agentic/workflow-client
v0.1.0
Published
Framework-free HTTP client for pushing ontology events to the platform Workflow engine. Solution-side outbox workers wrap this with their own persistence + retry.
Readme
@kedge-agentic/workflow-client
把 ontology 事件推到平台 Workflow 引擎的框架无关 HTTP 客户端。
类型: 框架无关库 · 状态: public · v0.1.0
用途
无状态 HTTP 客户端,覆盖:
POST /api/v1/workflow/sessions/:id/events— 事件 ingestPUT /api/v1/workflow/sessions/:id/indicators— indicator 目录推送GET /api/v1/workflow/sessions/:id/dashboard— DashboardPayload 拉取DELETE /api/v1/workflow/sessions/:sessionId— session 生命周期
Solution 端 outbox worker 在它外层包装持久化 (小 TypeORM entity) + 重试 + 持久性保证。 客户端本身无状态: 构建请求 → 发送 → 解析响应 → 返回 discriminated outcome。
无 NestJS、无 TypeORM、无 Zod。 只用 globalThis.fetch (Node 18+)。 Solution 拿到的是一个紧凑的 surface,可以集成进自己的架构。
主要导出
import {
WorkflowClient,
WorkflowEventPayload,
IngestOutcome,
} from '@kedge-agentic/workflow-client'用法
const client = new WorkflowClient({
baseUrl: 'http://localhost:3001',
apiKey: process.env.CCAAS_API_KEY,
})
const outcome = await client.ingestEvent(sessionId, {
eventId: 'evt-' + uuidv4(),
manifestName: 'LessonSession',
streamApiName: 'events',
payload: { type: 'chat_turn', studentId: 'student-42', student: '你好', ai: 'Hello' },
occurredAt: Date.now(),
})
if (outcome.ok) {
// 事件已 ingest
} else {
// outcome.kind === 'duplicate' | 'unavailable' | 'unauthorized' | 'bad-request'
}依赖
- 运行时: 无 (用
globalThis.fetch) - 无 peerDeps
关联包
- @kedge-agentic/workflow — 事件最终落地的框架无关引擎
- @kedge-agentic/workflow-nest — 暴露 ingest endpoint 的 NestJS 适配
构建 / 测试
npm run build:workflow-client
npm test -w @kedge-agentic/workflow-client架构上下文
跨进程事件推送契约见 docs/architecture/ontology-bridge-protocol.md。
