Files
united-workforce/packages/workflow-cas
xiaoju 26cf51366f feat: Phase 3 — engine read path + runtime context builder
- Add buildThreadContext(headHash, cas) to workflow-runtime
- Expand extract phase to return { meta, contentPayload, refs[] }
- Add parseCasThreadNode() to workflow-cas for node type parsing
- Update createWorkflow to write ContentMerkleNode with artifact refs
- Tests: 4 pass (build-context + extract-refs)
- Biome format pass on all files

Refs #155, closes #158

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

@uncaged/workflow-cas

Content-addressable storage implementation, bundle hashing, and Merkle helpers.

What This Package Does

It implements CasStore from @uncaged/workflow-protocol, hashes workflow bundle bytes and strings with XXH64, and builds serializable Merkle nodes for thread/step/content payloads used when persisting execution artifacts.

Key Exports

From src/index.ts:

  • CAS: createCasStore
  • Hash: hashString, hashWorkflowBundleBytes
  • Merkle: createContentMerkleNode, getContentMerklePayload, parseMerkleNode, putContentMerkleNode, putStepMerkleNode, putThreadMerkleNode, serializeMerkleNode
  • Types: CasStore, MerkleNode, MerkleNodeType, StepMerklePayload, ThreadMerklePayload

Dependencies

  • Workspace: @uncaged/workflow-protocol (CasStore contract), @uncaged/workflow-util
  • npm: xxhashjs, yaml

Usage

import { createCasStore, hashWorkflowBundleBytes } from "@uncaged/workflow-cas";
import { getGlobalCasDir } from "@uncaged/workflow-util";

const store = createCasStore(getGlobalCasDir());
const hash = await hashWorkflowBundleBytes(esmJsBytes);