Files
united-workforce/packages/workflow-cas
xiaoju 4582274ba4 feat(protocol): AgentFn<Opt> type + createAgentAdapter bridge
Add AgentFn<Opt = void> as the formal agent boundary type:
- Input: ThreadContext (fixed), Output: string (fixed)
- Opt: agent-specific structured options (e.g. { workspace } for Cursor)

Add createAgentAdapter<Opt>(agent, extract) → AdapterFn bridge in
workflow-util-agent, plus createSimpleAgentAdapter for Opt = void.

Also fixes: workflow-cas composite flag + cursor tsconfig reference.

Refs #252
2026-05-14 08:41:22 +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);