From 79cf97e6176b73335b0d33180b6148d260f3fa5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=A9=98?= Date: Wed, 6 May 2026 11:01:09 +0000 Subject: [PATCH] refactor: remove name from WorkflowDefinition, fix threadId type errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WorkflowDefinition no longer carries 'name' — name is a registry-level concern, not a bundle property. Also fixed all missing threadId in test fixtures to match the updated ThreadContext type. 小橘 --- .../workflow-agent-llm/__tests__/create-llm-adapter.test.ts | 3 ++- .../workflow-util-agent/__tests__/build-agent-prompt.test.ts | 4 ++++ packages/workflow-util-role/__tests__/create-role.test.ts | 3 ++- packages/workflow-util-role/__tests__/decorators.test.ts | 3 ++- packages/workflow/src/engine.ts | 1 + packages/workflow/src/types.ts | 1 - packages/workflow/src/worker.ts | 2 +- 7 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/workflow-agent-llm/__tests__/create-llm-adapter.test.ts b/packages/workflow-agent-llm/__tests__/create-llm-adapter.test.ts index df410a1..13f1655 100644 --- a/packages/workflow-agent-llm/__tests__/create-llm-adapter.test.ts +++ b/packages/workflow-agent-llm/__tests__/create-llm-adapter.test.ts @@ -11,7 +11,8 @@ function makeCtx(userContent: string): ThreadContext { meta: { maxRounds: 10 }, timestamp: 1, }, - steps: [], + steps: [], + threadId: "01TEST000000000000000000TR", }; } diff --git a/packages/workflow-util-agent/__tests__/build-agent-prompt.test.ts b/packages/workflow-util-agent/__tests__/build-agent-prompt.test.ts index fecb9b6..1844eb1 100644 --- a/packages/workflow-util-agent/__tests__/build-agent-prompt.test.ts +++ b/packages/workflow-util-agent/__tests__/build-agent-prompt.test.ts @@ -17,6 +17,7 @@ describe("buildAgentPrompt", () => { const ctx: ThreadContext = { start: startTask("fix the bug"), steps: [], + threadId: "01TEST000000000000000000TR", }; const text = buildAgentPrompt("You are an agent.", ctx); expect(text).toContain("You are an agent."); @@ -28,6 +29,7 @@ describe("buildAgentPrompt", () => { test("single step shows full content and meta, and includes tools", () => { const ctx: ThreadContext = { start: startTask("user task"), + threadId: "01TEST000000000000000000TR", steps: [ { role: "coder", @@ -50,6 +52,7 @@ describe("buildAgentPrompt", () => { test("two or more steps: previous steps are meta-only; latest step is full", () => { const ctx: ThreadContext = { start: startTask("first message full: task content here"), + threadId: "01TEST000000000000000000TR", steps: [ { role: "planner", @@ -80,6 +83,7 @@ describe("buildAgentPrompt", () => { test("middle steps show meta summary only, not full content", () => { const ctx: ThreadContext = { start: startTask("start"), + threadId: "01TEST000000000000000000TR", steps: [ { role: "a", diff --git a/packages/workflow-util-role/__tests__/create-role.test.ts b/packages/workflow-util-role/__tests__/create-role.test.ts index 6501cf7..91b3c22 100644 --- a/packages/workflow-util-role/__tests__/create-role.test.ts +++ b/packages/workflow-util-role/__tests__/create-role.test.ts @@ -42,7 +42,8 @@ function makeCtx(): ThreadContext { meta: { maxRounds: 10 }, timestamp: Date.now(), }, - steps: [], + steps: [], + threadId: "01TEST000000000000000000TR", }; } diff --git a/packages/workflow-util-role/__tests__/decorators.test.ts b/packages/workflow-util-role/__tests__/decorators.test.ts index 13b7b1a..44d600d 100644 --- a/packages/workflow-util-role/__tests__/decorators.test.ts +++ b/packages/workflow-util-role/__tests__/decorators.test.ts @@ -16,7 +16,8 @@ function fakeCtx(): ThreadContext { }, timestamp: Date.now(), }, - steps: [], + steps: [], + threadId: "01TEST000000000000000000TR", }; } diff --git a/packages/workflow/src/engine.ts b/packages/workflow/src/engine.ts index e3277bb..0182620 100644 --- a/packages/workflow/src/engine.ts +++ b/packages/workflow/src/engine.ts @@ -167,6 +167,7 @@ export async function executeThread( } const bundleOptions: WorkflowFnOptions = { + threadId: io.threadId, isDryRun: options.isDryRun, maxRounds: options.maxRounds, }; diff --git a/packages/workflow/src/types.ts b/packages/workflow/src/types.ts index 0dc627f..517b272 100644 --- a/packages/workflow/src/types.ts +++ b/packages/workflow/src/types.ts @@ -89,7 +89,6 @@ export type Moderator = ( /** Complete workflow definition as authored by users. */ export type WorkflowDefinition = { - name: string; roles: { [K in keyof M & string]: Role }; moderator: Moderator; }; diff --git a/packages/workflow/src/worker.ts b/packages/workflow/src/worker.ts index c0e6f9c..0261184 100644 --- a/packages/workflow/src/worker.ts +++ b/packages/workflow/src/worker.ts @@ -136,7 +136,7 @@ function parseRunControlPayload(rec: Record): RunCommand | null threadId, workflowName, prompt, - options: { threadId, isDryRun, maxRounds }, + options: { isDryRun, maxRounds }, steps: parsedSteps.steps, stepTimestamps: parsedSteps.stepTimestamps, forkSourceThreadId,