From 4070b0305307c99dc1055d8564a6837b568a890b Mon Sep 17 00:00:00 2001 From: Pavel Date: Sun, 27 Sep 2026 21:31:01 +0400 Subject: [PATCH] Workflow revamp --- frontend/DESIGN.md | 98 +- frontend/src/agents/AgentPageHeader.test.tsx | 48 + frontend/src/agents/AgentPageHeader.tsx | 178 +- .../src/agents/workflow/CanvasControls.tsx | 89 + .../src/agents/workflow/NodePalette.test.tsx | 83 + frontend/src/agents/workflow/NodePalette.tsx | 123 + .../src/agents/workflow/WorkflowBuilder.tsx | 2114 +++-------------- .../agents/workflow/WorkflowModelsContext.ts | 25 + .../components/NodeDocumentsControl.tsx | 4 +- .../workflow/components/PromptTextArea.tsx | 7 +- .../components/WorkflowDetailsSheet.test.tsx | 113 + .../components/WorkflowDetailsSheet.tsx | 226 ++ .../src/agents/workflow/nodeTones.test.ts | 38 + frontend/src/agents/workflow/nodeTones.ts | 71 + .../src/agents/workflow/nodes/BaseNode.tsx | 48 +- .../src/agents/workflow/nodes/CodeNode.tsx | 17 +- .../agents/workflow/nodes/ConditionNode.tsx | 14 +- .../workflow/nodes/OutputVariableLine.tsx | 25 + frontend/src/agents/workflow/nodes/index.tsx | 51 +- .../workflow/panels/AgentPanel.test.tsx | 138 ++ .../src/agents/workflow/panels/AgentPanel.tsx | 403 ++++ .../src/agents/workflow/panels/CodePanel.tsx | 152 ++ .../workflow/panels/ConditionPanel.test.tsx | 107 + .../agents/workflow/panels/ConditionPanel.tsx | 291 +++ .../agents/workflow/panels/NodePanel.test.tsx | 123 + .../src/agents/workflow/panels/NodePanel.tsx | 151 ++ .../src/agents/workflow/panels/NotePanel.tsx | 31 + .../workflow/panels/StatePanel.test.tsx | 92 + .../src/agents/workflow/panels/StatePanel.tsx | 132 + frontend/src/agents/workflow/panels/types.ts | 12 + .../agents/workflow/workflowHelpers.test.ts | 39 + .../src/agents/workflow/workflowHelpers.ts | 204 ++ frontend/src/components/FileUpload.tsx | 4 + frontend/src/components/ui/dropzone.test.tsx | 12 + frontend/src/components/ui/dropzone.tsx | 27 +- frontend/src/design/DesignSystem.tsx | 12 + frontend/src/locale/de.json | 38 +- frontend/src/locale/en.json | 39 +- frontend/src/locale/es.json | 38 +- frontend/src/locale/jp.json | 38 +- frontend/src/locale/ru.json | 38 +- frontend/src/locale/zh-TW.json | 38 +- frontend/src/locale/zh.json | 38 +- 43 files changed, 3559 insertions(+), 2010 deletions(-) create mode 100644 frontend/src/agents/workflow/CanvasControls.tsx create mode 100644 frontend/src/agents/workflow/NodePalette.test.tsx create mode 100644 frontend/src/agents/workflow/NodePalette.tsx create mode 100644 frontend/src/agents/workflow/WorkflowModelsContext.ts create mode 100644 frontend/src/agents/workflow/components/WorkflowDetailsSheet.test.tsx create mode 100644 frontend/src/agents/workflow/components/WorkflowDetailsSheet.tsx create mode 100644 frontend/src/agents/workflow/nodeTones.test.ts create mode 100644 frontend/src/agents/workflow/nodeTones.ts create mode 100644 frontend/src/agents/workflow/nodes/OutputVariableLine.tsx create mode 100644 frontend/src/agents/workflow/panels/AgentPanel.test.tsx create mode 100644 frontend/src/agents/workflow/panels/AgentPanel.tsx create mode 100644 frontend/src/agents/workflow/panels/CodePanel.tsx create mode 100644 frontend/src/agents/workflow/panels/ConditionPanel.test.tsx create mode 100644 frontend/src/agents/workflow/panels/ConditionPanel.tsx create mode 100644 frontend/src/agents/workflow/panels/NodePanel.test.tsx create mode 100644 frontend/src/agents/workflow/panels/NodePanel.tsx create mode 100644 frontend/src/agents/workflow/panels/NotePanel.tsx create mode 100644 frontend/src/agents/workflow/panels/StatePanel.test.tsx create mode 100644 frontend/src/agents/workflow/panels/StatePanel.tsx create mode 100644 frontend/src/agents/workflow/panels/types.ts create mode 100644 frontend/src/agents/workflow/workflowHelpers.test.ts create mode 100644 frontend/src/agents/workflow/workflowHelpers.ts diff --git a/frontend/DESIGN.md b/frontend/DESIGN.md index 289d9d97..078e4ed8 100644 --- a/frontend/DESIGN.md +++ b/frontend/DESIGN.md @@ -228,7 +228,8 @@ field pill`, and page-level actions go in the `ActionMenu` (`size="toolbar"`) row never holds more than three buttons and fits a phone, where the main one stretches across it (`flex-1 sm:flex-none`; `PageToolbar`'s action slot spans the stacked row below `sm`). The workflow builder's toolbar has no - title row and keeps its ⋯ at the row's end. The + title row and keeps its ⋯ at the row's end, holding Edit details, Access + details and Delete (see Workflow builder). The agent's Delete is in Overview's danger zone; only the workflow builder's toolbar has it in the ⋯ menu, as a `destructive` item. The row itself is `agents/components/AgentPageToolbar` (see Page chrome). A row's common @@ -255,8 +256,9 @@ rounded-3xl`) are `variant="sidebar-item"`: left-aligned, full-radius, normal Padding-free tabs (a sub-nav with `gap-6`) add `size="inline"`, which keeps 4px above the line; the row draws the 1px baseline, and `-mb-px` lays the underline over it. Its one use is `agents/AgentPageHeader.tsx`, the workflow - builder's fixed toolbar: a breadcrumb and the Overview / Logs / Schedules - tabs in a `