Files
united-workforce/packages/workflow
xiaoju 014c442ed2 feat(engine): add supervisor scene — opt-in LLM-based thread stop (Phase 3)
Supervisor replaces maxRounds as primary stop mechanism. Every N rounds
(configurable via supervisorInterval, default 3), the engine calls a
cheap LLM to evaluate thread progress and decide continue/stop.

- New engine/supervisor.ts: runSupervisor + parseSupervisorDecisionText
- Supervisor is opt-in: no models.supervisor configured = always continue
- WorkflowConfig gains supervisorInterval (default 3, 0 to disable)
- Engine calls supervisor after each supervisorInterval rounds
- 256 tests pass, 14 new tests for supervisor logic

Refs #110
2026-05-08 02:38:54 +00: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, createThreadCas, 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.