520b17b351
- Remove createThreadCas alias (CAS is global, not per-thread) - Remove formatSkillDoc() legacy compat shim - Remove help command (replaced by skill) - Remove all 13 DEPRECATED_ALIASES flat commands + printDeprecation - Fix CAS prompts in develop roles: remove stale <THREAD_ID> param - Update README.md to remove createThreadCas reference - Net: -86 lines, 241 tests pass Closes #114
37 lines
2.1 KiB
Markdown
37 lines
2.1 KiB
Markdown
# @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](../../README.md) for workflow, bundle, thread, role, and registry concepts.
|
|
|
|
## Install
|
|
|
|
```bash
|
|
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
|
|
|
|
```typescript
|
|
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`.
|