Files
united-workforce/packages/workflow-execute
xiaoju f3aedf8d6c feat: Phase 4 — CAS-based fork + mark-and-sweep GC
- Rewrite fork to create StateNode pointing to fork point (zero duplication)
- Rewrite GC as mark-and-sweep: roots from threads.json + history, findReachableHashes via refs[]
- Remove .data.jsonl code paths
- Fix all 7 previously failing CLI tests
- New: gc-mark-sweep.test.ts verifying shared nodes survive GC
- All 166 tests pass

Refs #155, closes #159

小橘 <xiaoju@shazhou.work>
2026-05-09 08:12:49 +00:00
..

@uncaged/workflow-execute

Thread engine: execution, fork/GC, extract pipeline, supervisor/worker wiring, and workflow-as-agent.

What This Package Does

It runs WorkflowFn generators against disk-backed threads, integrates CAS and registry-backed extract (createExtract), coordinates LLM tool usage via @uncaged/workflow-reactor, handles fork plans and garbage collection, and exposes workflowAsAgent for nesting workflows.

Key Exports

From src/index.ts:

  • Engine: createWorkflow (engine-local re-export), executeThread, getWorkerHostScriptPath
  • Fork / parse: buildForkPlan, parseThreadDataJsonl, selectForkHistoricalSteps, tryParseRoleStepRecord, tryParseWorkflowResultRecord
  • GC / pause: garbageCollectCas, createThreadPauseGate
  • Engine types: ExecuteThreadIo, ExecuteThreadOptions, ForkHistoricalStep, ForkPlan, GcResult, ParsedThreadStartRecord, PrefilledDiskStep, SupervisorDecision, ThreadPauseGate
  • Extract: buildExtractUserContent, createExtract, extractFunctionToolFromZodSchema, llmErrorToCause, llmExtract, types ExtractFn, ExtractThreadContext, LlmError, LlmExtractArgs
  • Agent composition: workflowAsAgent, WorkflowAsAgentOptions

Dependencies

  • Workspace: @uncaged/workflow-protocol, @uncaged/workflow-runtime, @uncaged/workflow-util, @uncaged/workflow-cas, @uncaged/workflow-reactor, @uncaged/workflow-register
  • npm: yaml
  • Peer: zod ^4

@uncaged/workflow-reactor is used for LLM-backed extract and supervisor flows (extract-fn.ts, supervisor.ts).

Usage

import { executeThread } from "@uncaged/workflow-execute";
// Typical callers are CLI/tests that supply ExecuteThreadIo (paths, CAS, abort, logger, …).