From b65a006d45342f7d3fbc3de21d9df39d3f1fd53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E6=9C=88?= Date: Fri, 15 May 2026 09:27:03 +0800 Subject: [PATCH] feat(dashboard): show system prompt per role in workflow detail - Add systemPrompt to WorkflowRoleDescriptor (protocol) - Propagate systemPrompt through buildDescriptor and validateWorkflowDescriptor - Display system prompt as collapsible
in RoleCard --- packages/workflow-dashboard/src/api.ts | 1 + .../src/components/workflow-detail.tsx | 22 +++++++++++++++++++ packages/workflow-protocol/src/types.ts | 1 + .../src/bundle/build-descriptor.ts | 3 ++- .../src/bundle/workflow-descriptor.ts | 2 ++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/workflow-dashboard/src/api.ts b/packages/workflow-dashboard/src/api.ts index c82ea67..ea00bcf 100644 --- a/packages/workflow-dashboard/src/api.ts +++ b/packages/workflow-dashboard/src/api.ts @@ -122,6 +122,7 @@ export type WorkflowGraph = { export type WorkflowRoleDescriptor = { description: string; + systemPrompt: string; schema: Record; }; diff --git a/packages/workflow-dashboard/src/components/workflow-detail.tsx b/packages/workflow-dashboard/src/components/workflow-detail.tsx index a5f2b6a..8c59230 100644 --- a/packages/workflow-dashboard/src/components/workflow-detail.tsx +++ b/packages/workflow-dashboard/src/components/workflow-detail.tsx @@ -179,6 +179,28 @@ function RoleCard({ roleName, role }: { roleName: string; role: WorkflowRoleDesc {role.description}

)} + {role.systemPrompt !== "" && ( +
+ + System Prompt + +
+            {role.systemPrompt}
+          
+
+ )} {rows.length > 0 && (

; export type WorkflowRoleDescriptor = { description: string; + systemPrompt: string; schema: WorkflowRoleSchema; }; diff --git a/packages/workflow-register/src/bundle/build-descriptor.ts b/packages/workflow-register/src/bundle/build-descriptor.ts index 1d04a80..d8aad98 100644 --- a/packages/workflow-register/src/bundle/build-descriptor.ts +++ b/packages/workflow-register/src/bundle/build-descriptor.ts @@ -35,11 +35,12 @@ export function buildDescriptor( ): WorkflowDescriptor { const roles: WorkflowDescriptor["roles"] = {}; for (const [key, roleDef] of Object.entries(def.roles) as Array< - [string, { description: string; schema: z.ZodType }] + [string, { description: string; systemPrompt: string; schema: z.ZodType }] >) { const rawJsonSchema = z.toJSONSchema(roleDef.schema) as Record; roles[key] = { description: roleDef.description, + systemPrompt: roleDef.systemPrompt, schema: stripJsonSchemaMeta(rawJsonSchema), }; } diff --git a/packages/workflow-register/src/bundle/workflow-descriptor.ts b/packages/workflow-register/src/bundle/workflow-descriptor.ts index fc62c62..e8cebbc 100644 --- a/packages/workflow-register/src/bundle/workflow-descriptor.ts +++ b/packages/workflow-register/src/bundle/workflow-descriptor.ts @@ -88,8 +88,10 @@ export function validateWorkflowDescriptor(value: unknown): Result