Files
united-workforce/packages/workflow-util-agent
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-util-agent

Shared helpers for CLI-backed workflow agents: assemble prompts from thread context and spawn subprocesses with timeouts.

Used by @uncaged/workflow-agent-cursor and @uncaged/workflow-agent-hermes. Depends on @uncaged/workflow for CAS reads (getContentMerklePayload) and Result typing.

Install

bun add @uncaged/workflow-util-agent @uncaged/workflow

In this monorepo: workspace:* for both packages.

Usage

import { buildAgentPrompt, spawnCli } from "@uncaged/workflow-util-agent";

const prompt = await buildAgentPrompt(agentContext);
const result = await spawnCli("my-cli", ["--json"], { cwd: "/tmp", timeoutMs: 60_000 });
if (!result.ok) { /* handle SpawnCliError */ }
const stdout = result.value;

API overview

Export Description
buildAgentPrompt(ctx) System prompt + task + prior step summaries + latest body from CAS; appends uncaged-workflow thread <id> tool hint
spawnCli(cmd, args, { cwd, timeoutMs }) Promise<Result<string, SpawnCliError>>; captures stdout, non-zero exit and spawn failures as err
SpawnCliConfig cwd: string | null, timeoutMs: number | null
SpawnCliError non_zero_exit | timeout | spawn_failed
SpawnCliResult Alias for Result<string, SpawnCliError>