Files
united-workforce/packages/workflow
Scott Wei cc3f2b576c refactor(workflow): decouple agent context from CAS and fix monorepo checks
Move CAS access into extract dependencies so AgentContext stays state-only, and clean up type/lint/check regressions across CLI/dashboard to keep full check green.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-08 17:30:07 +08:00
..
2026-05-08 10:27:27 +08:00

@uncaged/workflow

Core workflow engine: registry, CAS, thread execution, bundle validation, and role/workflow types.

This package implements the three-phase engine loop that runs single-file ESM workflow bundles (each exports run and descriptor). It persists threads under ~/.uncaged/workflow/ by default and hashes bundles with XXH64 (Crockford Base32). See the repo root README for workflow, bundle, thread, role, and registry concepts.

Install

bun add @uncaged/workflow zod

In this monorepo, depend with "@uncaged/workflow": "workspace:*". zod is a peer dependency (used by bundle/shape validation at the integration boundary).

Usage

import { createWorkflow, readWorkflowRegistry, executeThread } from "@uncaged/workflow";
// Wire a WorkflowDefinition + AgentBinding + extract + optional LlmProvider into createWorkflow,
// then run the returned WorkflowFn inside your host (or use executeThread for disk-backed runs).

API overview

Area Exports (representative)
Types WorkflowDefinition, WorkflowFn, AgentFn, AgentBinding, Moderator, RoleDefinition, ThreadContext, LlmProvider, Result shape via ok / err, START / END
Bundle buildDescriptor, extractBundleExports, validateWorkflowBundle, validateWorkflowDescriptor, WorkflowDescriptor, WorkflowRoleDescriptor
Registry readWorkflowRegistry, writeWorkflowRegistry, registerWorkflowVersion, workflowRegistryPath, YAML helpers
CAS createCasStore, Merkle helpers (putStepMerkleNode, getContentMerklePayload, …), hashWorkflowBundleBytes
Engine createWorkflow, executeThread, parseThreadDataJsonl, fork helpers, garbageCollectCas
Extract / LLM tools llmExtract, reactExtract, createExtract, getExtractProvider
Agent bridge workflowAsAgent — expose a registered workflow as an agent-backed role
Utilities createLogger, ULID / Crockford Base32 codecs, getDefaultWorkflowStorageRoot, paths

Full surface is re-exported from src/index.ts.