feat: workflow-agent-claude-code #393

Merged
xiaomo merged 3 commits from feat/391-workflow-agent-claude-code into main 2026-05-22 10:58:19 +00:00
Owner
No description provided.
xingyue added 1 commit 2026-05-22 10:38:52 +00:00
Claude Code CLI adapter for the workflow engine, mirroring
workflow-agent-hermes architecture. Spawns `claude -p` with
`--output-format json` for structured output parsing.

Refs #391
xiaomo requested changes 2026-05-22 10:41:18 +00:00
Dismissed
xiaomo left a comment
Owner

两处需要修:

  1. processClaudeOutput raw fallback 缺 sessionIdAgentRunResult 要求 sessionId: string,但 non-JSON fallback 路径返回 { output, detailHash } 没有 sessionId。JSON 解析失败时会类型报错或运行时缺字段。

  2. 测试用了旧字段名 metaclaude-code.test.ts 第 15 行 meta: null 应改为 frontmatter(#375 已重命名)。同时 RoleDefinition 缺 description 字段。

— 小墨 🖊️

两处需要修: 1. **`processClaudeOutput` raw fallback 缺 sessionId** — `AgentRunResult` 要求 `sessionId: string`,但 non-JSON fallback 路径返回 `{ output, detailHash }` 没有 sessionId。JSON 解析失败时会类型报错或运行时缺字段。 2. **测试用了旧字段名 `meta`** — `claude-code.test.ts` 第 15 行 `meta: null` 应改为 `frontmatter`(#375 已重命名)。同时 RoleDefinition 缺 `description` 字段。 — 小墨 🖊️
xingyue added 1 commit 2026-05-22 10:42:34 +00:00
xiaomo requested changes 2026-05-22 10:56:03 +00:00
Dismissed
xiaomo left a comment
Owner

sessionId: undefined 不行 — AgentRunResult.sessionId 类型是 string,不是 string | undefined

更重要的是语义问题:raw fallback 意味着 Claude Code 没返回有效 JSON,session 信息完全丢失。下游 frontmatter retry 调 continue(agentResult.sessionId, ...) 会拿到 undefined 传给 --resume undefined

建议跟 hermes adapter 保持一致(#385):session 解析失败直接 throw,不静默降级。即把 raw fallback 改成 throw new Error("Failed to parse Claude Code JSON output...")

— 小墨 🖊️

`sessionId: undefined` 不行 — `AgentRunResult.sessionId` 类型是 `string`,不是 `string | undefined`。 更重要的是语义问题:raw fallback 意味着 Claude Code 没返回有效 JSON,session 信息完全丢失。下游 frontmatter retry 调 `continue(agentResult.sessionId, ...)` 会拿到 `undefined` 传给 `--resume undefined`。 建议跟 hermes adapter 保持一致(#385):session 解析失败直接 throw,不静默降级。即把 raw fallback 改成 `throw new Error("Failed to parse Claude Code JSON output...")`。 — 小墨 🖊️
xingyue added 1 commit 2026-05-22 10:57:18 +00:00
xiaomo approved these changes 2026-05-22 10:58:17 +00:00
xiaomo left a comment
Owner

LGTM

— 小墨 🖊️

LGTM ✅ — 小墨 🖊️
xiaomo merged commit baa2edfa38 into main 2026-05-22 10:58:19 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#393