@@ -134,6 +134,49 @@ graph TB
134134 style UI stroke:#58a6ff
135135```
136136
137+ ## 🔍 ** Workflow Architecture**
138+
139+ ``` mermaid
140+ %%{init: {'theme': 'dark', 'themeVariables': { 'primaryColor': '#58a6ff', 'primaryTextColor': '#c9d1d9', 'primaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'sectionBkgColor': '#161b22', 'altSectionBkgColor': '#0d1117', 'sectionTextColor': '#c9d1d9', 'gridColor': '#30363d', 'tertiaryColor': '#161b22' }}}%%
141+ sequenceDiagram
142+ participant W as Workflow Step
143+ participant Writer as Writer (custom)
144+ participant UI as UI/Frontend
145+
146+ Note over W,UI: Standardized Workflow Logging Pattern
147+
148+ W->>Writer: step-start event
149+ Writer->>UI: data-workflow-step-start
150+ Note right of UI: {type: "workflow", data: "step-id", id: "step-id"}
151+
152+ W->>Writer: progress update (20%)
153+ Writer->>UI: data-workflow-progress
154+ Note right of UI: {status: "20%", message: "...", stage: "workflow"}
155+
156+ W->>W: Execute step logic
157+
158+ W->>Writer: progress update (50%)
159+ Writer->>UI: data-workflow-progress
160+ Note right of UI: {status: "50%", message: "...", stage: "workflow"}
161+
162+ W->>W: Continue execution
163+
164+ W->>Writer: progress update (100%)
165+ Writer->>UI: data-workflow-progress
166+ Note right of UI: {status: "100%", message: "...", stage: "workflow"}
167+
168+ W->>Writer: step-complete event
169+ Writer->>UI: data-workflow-step-complete
170+ Note right of UI: {stepId: "step-id", success: true, duration: ms}
171+
172+ Note over W,UI: Error Handling Pattern
173+
174+ W->>W: Error occurs
175+ W->>Writer: step-error event
176+ Writer->>UI: data-workflow-step-error
177+ Note right of UI: {stepId: "step-id", error: "error message"}
178+ ```
179+
137180## 📊 ** System Flowchart**
138181
139182``` mermaid
@@ -989,56 +1032,117 @@ _Last updated: 2025-12-05 | v1.1.0_
9891032` ` ` mermaid
9901033%%{init: {' theme' : ' dark' , ' themeVariables' : { ' primaryColor' : ' #58a6ff' , ' primaryTextColor' : ' #c9d1d9' , ' primaryBorderColor' : ' #30363d' , ' lineColor' : ' #58a6ff' , ' sectionBkgColor' : ' #161b22' , ' altSectionBkgColor' : ' #0d1117' , ' sectionTextColor' : ' #c9d1d9' , ' gridColor' : ' #30363d' , ' tertiaryColor' : ' #161b22' }}}%%
9911034classDiagram
992- class Message {
1035+ class WorkflowRun {
9931036 +string id
994- +string role
995- +MessagePart[] parts
1037+ +string workflowId
1038+ +string status
1039+ +Date startedAt
1040+ +Date finishedAt
1041+ +string error
9961042 }
9971043
998- class MessagePart {
999- +string type
1000- +AgentDataPart data
1044+ class WorkflowDataPart {
1045+ +string messageId
1046+ +number partIndex
1047+ +DataPart part
10011048 }
10021049
1003- class AgentDataPart {
1004- +string text
1005- +string status
1006- +string stage
1007- +string stepId
1008- +string message
1009- +string agentId
1010- +string workflowId
1050+ class DataPart {
1051+ +string type
1052+ +unknown data
10111053 }
10121054
1013- class ProgressEvent {
1055+ class WorkflowProgressEvent {
10141056 +string id
10151057 +string stage
10161058 +string status
10171059 +string message
1018- +string agentId
1019- +string workflowId
1060+ +string stepId
1061+ +Date timestamp
1062+ +unknown data
1063+ }
1064+
1065+ class WorkflowSuspendPayload {
1066+ +string message
1067+ +string requestId
1068+ +string stepId
10201069 }
10211070
1022- class NetworkProvider {
1023- +ProgressEvent[] extractProgressEvents(messages)
1071+ class WorkflowContextValue {
1072+ +string selectedWorkflow
1073+ +WorkflowRun currentRun
1074+ +string status
1075+ +number activeStepIndex
1076+ +WorkflowProgressEvent[] progressEvents
1077+ +WorkflowSuspendPayload suspendPayload
1078+ +WorkflowDataPart[] dataParts
1079+ +selectWorkflow(workflowId)
1080+ +runWorkflow(inputData)
1081+ +pauseWorkflow ()
1082+ +resumeWorkflow ()
1083+ +stopWorkflow ()
1084+ +runStep(stepId)
10241085 }
10251086
10261087 class WorkflowProvider {
1027- +ProgressEvent[] extractProgressEvents(messages)
1088+ -WorkflowRun currentRun
1089+ -WorkflowProgressEvent[] progressEvents
1090+ -WorkflowDataPart[] dataParts
1091+ -WorkflowSuspendPayload suspendPayload
1092+ +useEffect_parseMessages ()
1093+ +useEffect_syncStatus ()
1094+ +runWorkflow(inputData)
1095+ +pauseWorkflow ()
1096+ +resumeWorkflow ()
1097+ +stopWorkflow ()
1098+ +runStep(stepId)
10281099 }
10291100
1030- class ProgressPanel {
1031- +void render(progressEvents)
1101+ class WriterCustomPayload {
1102+ +string type
1103+ +unknown data
1104+ +string id
10321105 }
10331106
1034- Message " 1" --> " *" MessagePart : has
1035- MessagePart " 1" --> " 0..1" AgentDataPart : data
1107+ class Writer {
1108+ +custom(payload)
1109+ }
1110+
1111+ class StepExecutionContext {
1112+ +unknown inputData
1113+ +Writer writer
1114+ +unknown mastra
1115+ }
1116+
1117+ class WorkflowStep {
1118+ +string id
1119+ +execute(context)
1120+ }
1121+
1122+ class UpstashVector {
1123+ +createIndex(indexName, dimension, metric)
1124+ }
1125+
1126+ class UpstashConfig {
1127+ +initializeUpstashVector ()
1128+ +UpstashVector upstashVector
1129+ }
1130+
1131+ WorkflowProvider ..> WorkflowContextValue : provides
1132+ WorkflowProvider --> WorkflowRun : manages
1133+ WorkflowProvider --> WorkflowProgressEvent : aggregates
1134+ WorkflowProvider --> WorkflowDataPart : collects
1135+ WorkflowProvider --> WorkflowSuspendPayload : handles
1136+
1137+ WorkflowContextValue o--> WorkflowRun
1138+ WorkflowContextValue o--> WorkflowProgressEvent
1139+ WorkflowContextValue o--> WorkflowDataPart
1140+ WorkflowContextValue o--> WorkflowSuspendPayload
10361141
1037- NetworkProvider --> Message : reads
1038- WorkflowProvider --> Message : reads
1142+ WorkflowStep --> StepExecutionContext : uses
1143+ StepExecutionContext o --> Writer
10391144
1040- NetworkProvider --> ProgressEvent : creates_with_id_messageId_partType_partIndex
1041- WorkflowProvider --> ProgressEvent : creates_with_id_messageId_partType_partIndex
1145+ Writer --> WriterCustomPayload : sends
10421146
1043- ProgressPanel " 1 " --> " * " ProgressEvent : renders
1147+ UpstashConfig o --> UpstashVector
10441148` ` `
0 commit comments